Tracking de l'application VApp (IHM du jeu)
This commit is contained in:
26
VApp/node_modules/vuetify/lib/composables/border.mjs
generated
vendored
Normal file
26
VApp/node_modules/vuetify/lib/composables/border.mjs
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
// Utilities
|
||||
import { computed, isRef } from 'vue';
|
||||
import { getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeBorderProps = propsFactory({
|
||||
border: [Boolean, Number, String]
|
||||
}, 'border');
|
||||
export function useBorder(props) {
|
||||
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
||||
const borderClasses = computed(() => {
|
||||
const border = isRef(props) ? props.value : props.border;
|
||||
const classes = [];
|
||||
if (border === true || border === '') {
|
||||
classes.push(`${name}--border`);
|
||||
} else if (typeof border === 'string' || border === 0) {
|
||||
for (const value of String(border).split(' ')) {
|
||||
classes.push(`border-${value}`);
|
||||
}
|
||||
}
|
||||
return classes;
|
||||
});
|
||||
return {
|
||||
borderClasses
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=border.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/border.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/border.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"border.mjs","names":["computed","isRef","getCurrentInstanceName","propsFactory","makeBorderProps","border","Boolean","Number","String","useBorder","props","name","arguments","length","undefined","borderClasses","value","classes","push","split"],"sources":["../../src/composables/border.ts"],"sourcesContent":["// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface BorderProps {\n border?: boolean | number | string\n}\n\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String],\n}, 'border')\n\nexport function useBorder (\n props: BorderProps,\n name = getCurrentInstanceName(),\n) {\n const borderClasses = computed(() => {\n const border = isRef(props) ? props.value : props.border\n const classes: string[] = []\n\n if (border === true || border === '') {\n classes.push(`${name}--border`)\n } else if (\n typeof border === 'string' ||\n border === 0\n ) {\n for (const value of String(border).split(' ')) {\n classes.push(`border-${value}`)\n }\n }\n\n return classes\n })\n\n return { borderClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,sBAAsB,EAAEC,YAAY,6BAE7C;AAKA;AACA,OAAO,MAAMC,eAAe,GAAGD,YAAY,CAAC;EAC1CE,MAAM,EAAE,CAACC,OAAO,EAAEC,MAAM,EAAEC,MAAM;AAClC,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,SAASC,SAASA,CACvBC,KAAkB,EAElB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGV,sBAAsB,CAAC,CAAC;EAE/B,MAAMa,aAAa,GAAGf,QAAQ,CAAC,MAAM;IACnC,MAAMK,MAAM,GAAGJ,KAAK,CAACS,KAAK,CAAC,GAAGA,KAAK,CAACM,KAAK,GAAGN,KAAK,CAACL,MAAM;IACxD,MAAMY,OAAiB,GAAG,EAAE;IAE5B,IAAIZ,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,EAAE,EAAE;MACpCY,OAAO,CAACC,IAAI,CAAE,GAAEP,IAAK,UAAS,CAAC;IACjC,CAAC,MAAM,IACL,OAAON,MAAM,KAAK,QAAQ,IAC1BA,MAAM,KAAK,CAAC,EACZ;MACA,KAAK,MAAMW,KAAK,IAAIR,MAAM,CAACH,MAAM,CAAC,CAACc,KAAK,CAAC,GAAG,CAAC,EAAE;QAC7CF,OAAO,CAACC,IAAI,CAAE,UAASF,KAAM,EAAC,CAAC;MACjC;IACF;IAEA,OAAOC,OAAO;EAChB,CAAC,CAAC;EAEF,OAAO;IAAEF;EAAc,CAAC;AAC1B"}
|
134
VApp/node_modules/vuetify/lib/composables/calendar.mjs
generated
vendored
Normal file
134
VApp/node_modules/vuetify/lib/composables/calendar.mjs
generated
vendored
Normal file
@ -0,0 +1,134 @@
|
||||
// Composables
|
||||
import { getWeek, useDate } from "./date/date.mjs";
|
||||
import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
|
||||
import { computed } from 'vue';
|
||||
import { propsFactory, wrapInArray } from "../util/index.mjs"; // Types
|
||||
// Types
|
||||
// Composables
|
||||
export const makeCalendarProps = propsFactory({
|
||||
allowedDates: [Array, Function],
|
||||
disabled: Boolean,
|
||||
displayValue: null,
|
||||
modelValue: Array,
|
||||
month: [Number, String],
|
||||
max: null,
|
||||
min: null,
|
||||
showAdjacentMonths: Boolean,
|
||||
year: [Number, String],
|
||||
weekdays: {
|
||||
type: Array,
|
||||
default: () => [0, 1, 2, 3, 4, 5, 6]
|
||||
}
|
||||
}, 'calendar');
|
||||
export function useCalendar(props) {
|
||||
const adapter = useDate();
|
||||
const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v));
|
||||
const displayValue = computed(() => {
|
||||
if (props.displayValue) return adapter.date(props.displayValue);
|
||||
if (model.value.length > 0) return adapter.date(model.value[0]);
|
||||
if (props.min) return adapter.date(props.min);
|
||||
if (Array.isArray(props.allowedDates)) return adapter.date(props.allowedDates[0]);
|
||||
return adapter.date();
|
||||
});
|
||||
const year = useProxiedModel(props, 'year', undefined, v => {
|
||||
const value = v != null ? Number(v) : adapter.getYear(displayValue.value);
|
||||
return adapter.startOfYear(adapter.setYear(adapter.date(), value));
|
||||
}, v => adapter.getYear(v));
|
||||
const month = useProxiedModel(props, 'month', undefined, v => {
|
||||
const value = v != null ? Number(v) : adapter.getMonth(displayValue.value);
|
||||
const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
|
||||
return adapter.setMonth(date, value);
|
||||
}, v => adapter.getMonth(v));
|
||||
const weeksInMonth = computed(() => {
|
||||
const weeks = adapter.getWeekArray(month.value);
|
||||
const days = weeks.flat();
|
||||
|
||||
// Make sure there's always 6 weeks in month (6 * 7 days)
|
||||
// But only do it if we're not hiding adjacent months?
|
||||
const daysInMonth = 6 * 7;
|
||||
if (days.length < daysInMonth) {
|
||||
const lastDay = days[days.length - 1];
|
||||
let week = [];
|
||||
for (let day = 1; day <= daysInMonth - days.length; day++) {
|
||||
week.push(adapter.addDays(lastDay, day));
|
||||
if (day % 7 === 0) {
|
||||
weeks.push(week);
|
||||
week = [];
|
||||
}
|
||||
}
|
||||
}
|
||||
return weeks;
|
||||
});
|
||||
function genDays(days, today) {
|
||||
return days.filter(date => {
|
||||
return props.weekdays.includes(adapter.toJsDate(date).getDay());
|
||||
}).map((date, index) => {
|
||||
const isoDate = adapter.toISO(date);
|
||||
const isAdjacent = !adapter.isSameMonth(date, month.value);
|
||||
const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));
|
||||
const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value));
|
||||
const isSame = adapter.isSameDay(date, month.value);
|
||||
return {
|
||||
date,
|
||||
isoDate,
|
||||
formatted: adapter.format(date, 'keyboardDate'),
|
||||
year: adapter.getYear(date),
|
||||
month: adapter.getMonth(date),
|
||||
isDisabled: isDisabled(date),
|
||||
isWeekStart: index % 7 === 0,
|
||||
isWeekEnd: index % 7 === 6,
|
||||
isToday: adapter.isSameDay(date, today),
|
||||
isAdjacent,
|
||||
isHidden: isAdjacent && !props.showAdjacentMonths,
|
||||
isStart,
|
||||
isSelected: model.value.some(value => adapter.isSameDay(date, value)),
|
||||
isEnd,
|
||||
isSame,
|
||||
localized: adapter.format(date, 'dayOfMonth')
|
||||
};
|
||||
});
|
||||
}
|
||||
const daysInWeek = computed(() => {
|
||||
const lastDay = adapter.startOfWeek(model.value);
|
||||
const week = [];
|
||||
for (let day = 0; day <= 6; day++) {
|
||||
week.push(adapter.addDays(lastDay, day));
|
||||
}
|
||||
const days = week;
|
||||
const today = adapter.date();
|
||||
return genDays(days, today);
|
||||
});
|
||||
const daysInMonth = computed(() => {
|
||||
const days = weeksInMonth.value.flat();
|
||||
const today = adapter.date();
|
||||
return genDays(days, today);
|
||||
});
|
||||
const weekNumbers = computed(() => {
|
||||
return weeksInMonth.value.map(week => {
|
||||
return week.length ? getWeek(adapter, week[0]) : null;
|
||||
});
|
||||
});
|
||||
function isDisabled(value) {
|
||||
if (props.disabled) return true;
|
||||
const date = adapter.date(value);
|
||||
if (props.min && adapter.isAfter(adapter.date(props.min), date)) return true;
|
||||
if (props.max && adapter.isAfter(date, adapter.date(props.max))) return true;
|
||||
if (Array.isArray(props.allowedDates) && props.allowedDates.length > 0) {
|
||||
return !props.allowedDates.some(d => adapter.isSameDay(adapter.date(d), date));
|
||||
}
|
||||
if (typeof props.allowedDates === 'function') {
|
||||
return !props.allowedDates(date);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return {
|
||||
displayValue,
|
||||
daysInMonth,
|
||||
daysInWeek,
|
||||
genDays,
|
||||
model,
|
||||
weeksInMonth,
|
||||
weekNumbers
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=calendar.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/calendar.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/calendar.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
64
VApp/node_modules/vuetify/lib/composables/color.mjs
generated
vendored
Normal file
64
VApp/node_modules/vuetify/lib/composables/color.mjs
generated
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
// Utilities
|
||||
import { computed, isRef } from 'vue';
|
||||
import { destructComputed, getForeground, isCssColor, isParsableColor, parseColor } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export function useColor(colors) {
|
||||
return destructComputed(() => {
|
||||
const classes = [];
|
||||
const styles = {};
|
||||
if (colors.value.background) {
|
||||
if (isCssColor(colors.value.background)) {
|
||||
styles.backgroundColor = colors.value.background;
|
||||
if (!colors.value.text && isParsableColor(colors.value.background)) {
|
||||
const backgroundColor = parseColor(colors.value.background);
|
||||
if (backgroundColor.a == null || backgroundColor.a === 1) {
|
||||
const textColor = getForeground(backgroundColor);
|
||||
styles.color = textColor;
|
||||
styles.caretColor = textColor;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
classes.push(`bg-${colors.value.background}`);
|
||||
}
|
||||
}
|
||||
if (colors.value.text) {
|
||||
if (isCssColor(colors.value.text)) {
|
||||
styles.color = colors.value.text;
|
||||
styles.caretColor = colors.value.text;
|
||||
} else {
|
||||
classes.push(`text-${colors.value.text}`);
|
||||
}
|
||||
}
|
||||
return {
|
||||
colorClasses: classes,
|
||||
colorStyles: styles
|
||||
};
|
||||
});
|
||||
}
|
||||
export function useTextColor(props, name) {
|
||||
const colors = computed(() => ({
|
||||
text: isRef(props) ? props.value : name ? props[name] : null
|
||||
}));
|
||||
const {
|
||||
colorClasses: textColorClasses,
|
||||
colorStyles: textColorStyles
|
||||
} = useColor(colors);
|
||||
return {
|
||||
textColorClasses,
|
||||
textColorStyles
|
||||
};
|
||||
}
|
||||
export function useBackgroundColor(props, name) {
|
||||
const colors = computed(() => ({
|
||||
background: isRef(props) ? props.value : name ? props[name] : null
|
||||
}));
|
||||
const {
|
||||
colorClasses: backgroundColorClasses,
|
||||
colorStyles: backgroundColorStyles
|
||||
} = useColor(colors);
|
||||
return {
|
||||
backgroundColorClasses,
|
||||
backgroundColorStyles
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=color.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/color.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/color.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
11
VApp/node_modules/vuetify/lib/composables/component.mjs
generated
vendored
Normal file
11
VApp/node_modules/vuetify/lib/composables/component.mjs
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
// Utilities
|
||||
import { propsFactory } from "../util/propsFactory.mjs"; // Types
|
||||
// Composables
|
||||
export const makeComponentProps = propsFactory({
|
||||
class: [String, Array],
|
||||
style: {
|
||||
type: [String, Array, Object],
|
||||
default: null
|
||||
}
|
||||
}, 'component');
|
||||
//# sourceMappingURL=component.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/component.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/component.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"component.mjs","names":["propsFactory","makeComponentProps","class","String","Array","style","type","Object","default"],"sources":["../../src/composables/component.ts"],"sourcesContent":["// Utilities\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type { PropType, StyleValue } from 'vue'\n\nexport type ClassValue = any\n\nexport interface ComponentProps {\n class?: ClassValue\n style: StyleValue | undefined\n}\n\n// Composables\nexport const makeComponentProps = propsFactory({\n class: [String, Array] as PropType<ClassValue>,\n style: {\n type: [String, Array, Object] as PropType<StyleValue>,\n default: null,\n },\n}, 'component')\n"],"mappings":"AAAA;AAAA,SACSA,YAAY,oCAErB;AAUA;AACA,OAAO,MAAMC,kBAAkB,GAAGD,YAAY,CAAC;EAC7CE,KAAK,EAAE,CAACC,MAAM,EAAEC,KAAK,CAAyB;EAC9CC,KAAK,EAAE;IACLC,IAAI,EAAE,CAACH,MAAM,EAAEC,KAAK,EAAEG,MAAM,CAAyB;IACrDC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,WAAW,CAAC"}
|
2
VApp/node_modules/vuetify/lib/composables/date/DateAdapter.mjs
generated
vendored
Normal file
2
VApp/node_modules/vuetify/lib/composables/date/DateAdapter.mjs
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
export {};
|
||||
//# sourceMappingURL=DateAdapter.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/date/DateAdapter.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/date/DateAdapter.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"DateAdapter.mjs","names":[],"sources":["../../../src/composables/date/DateAdapter.ts"],"sourcesContent":["export interface DateAdapter<T = unknown> {\n date (value?: any): T | null\n format (date: T, formatString: string): string\n toJsDate (value: T): Date\n parseISO (date: string): T\n toISO (date: T): string\n\n startOfDay (date: T): T\n endOfDay (date: T): T\n startOfWeek (date: T): T\n endOfWeek (date: T): T\n startOfMonth (date: T): T\n endOfMonth (date: T): T\n startOfYear (date: T): T\n endOfYear (date: T): T\n\n isBefore (date: T, comparing: T): boolean\n isAfter (date: T, comparing: T): boolean\n isEqual (date: T, comparing: T): boolean\n isSameDay (date: T, comparing: T): boolean\n isSameMonth (date: T, comparing: T): boolean\n isValid (date: any): boolean\n isWithinRange (date: T, range: [T, T]): boolean\n\n addMinutes (date: T, amount: number): T\n addHours (date: T, amount: number): T\n addDays (date: T, amount: number): T\n addWeeks (date: T, amount: number): T\n addMonths (date: T, amount: number): T\n\n getYear (date: T): number\n setYear (date: T, year: number): T\n getDiff (date: T, comparing: T | string, unit?: string): number\n getWeekArray (date: T): T[][]\n getWeekdays (): string[]\n getMonth (date: T): number\n setMonth (date: T, month: number): T\n getNextMonth (date: T): T\n getHours (date: T): number\n setHours (date: T, hours: number): T\n getMinutes (date: T): number\n setMinutes (date: T, minutes: number): T\n}\n"],"mappings":""}
|
557
VApp/node_modules/vuetify/lib/composables/date/adapters/vuetify.mjs
generated
vendored
Normal file
557
VApp/node_modules/vuetify/lib/composables/date/adapters/vuetify.mjs
generated
vendored
Normal file
@ -0,0 +1,557 @@
|
||||
// Utilities
|
||||
import { createRange, padStart } from "../../../util/index.mjs"; // Types
|
||||
const firstDay = {
|
||||
'001': 1,
|
||||
AD: 1,
|
||||
AE: 6,
|
||||
AF: 6,
|
||||
AG: 0,
|
||||
AI: 1,
|
||||
AL: 1,
|
||||
AM: 1,
|
||||
AN: 1,
|
||||
AR: 1,
|
||||
AS: 0,
|
||||
AT: 1,
|
||||
AU: 1,
|
||||
AX: 1,
|
||||
AZ: 1,
|
||||
BA: 1,
|
||||
BD: 0,
|
||||
BE: 1,
|
||||
BG: 1,
|
||||
BH: 6,
|
||||
BM: 1,
|
||||
BN: 1,
|
||||
BR: 0,
|
||||
BS: 0,
|
||||
BT: 0,
|
||||
BW: 0,
|
||||
BY: 1,
|
||||
BZ: 0,
|
||||
CA: 0,
|
||||
CH: 1,
|
||||
CL: 1,
|
||||
CM: 1,
|
||||
CN: 1,
|
||||
CO: 0,
|
||||
CR: 1,
|
||||
CY: 1,
|
||||
CZ: 1,
|
||||
DE: 1,
|
||||
DJ: 6,
|
||||
DK: 1,
|
||||
DM: 0,
|
||||
DO: 0,
|
||||
DZ: 6,
|
||||
EC: 1,
|
||||
EE: 1,
|
||||
EG: 6,
|
||||
ES: 1,
|
||||
ET: 0,
|
||||
FI: 1,
|
||||
FJ: 1,
|
||||
FO: 1,
|
||||
FR: 1,
|
||||
GB: 1,
|
||||
'GB-alt-variant': 0,
|
||||
GE: 1,
|
||||
GF: 1,
|
||||
GP: 1,
|
||||
GR: 1,
|
||||
GT: 0,
|
||||
GU: 0,
|
||||
HK: 0,
|
||||
HN: 0,
|
||||
HR: 1,
|
||||
HU: 1,
|
||||
ID: 0,
|
||||
IE: 1,
|
||||
IL: 0,
|
||||
IN: 0,
|
||||
IQ: 6,
|
||||
IR: 6,
|
||||
IS: 1,
|
||||
IT: 1,
|
||||
JM: 0,
|
||||
JO: 6,
|
||||
JP: 0,
|
||||
KE: 0,
|
||||
KG: 1,
|
||||
KH: 0,
|
||||
KR: 0,
|
||||
KW: 6,
|
||||
KZ: 1,
|
||||
LA: 0,
|
||||
LB: 1,
|
||||
LI: 1,
|
||||
LK: 1,
|
||||
LT: 1,
|
||||
LU: 1,
|
||||
LV: 1,
|
||||
LY: 6,
|
||||
MC: 1,
|
||||
MD: 1,
|
||||
ME: 1,
|
||||
MH: 0,
|
||||
MK: 1,
|
||||
MM: 0,
|
||||
MN: 1,
|
||||
MO: 0,
|
||||
MQ: 1,
|
||||
MT: 0,
|
||||
MV: 5,
|
||||
MX: 0,
|
||||
MY: 1,
|
||||
MZ: 0,
|
||||
NI: 0,
|
||||
NL: 1,
|
||||
NO: 1,
|
||||
NP: 0,
|
||||
NZ: 1,
|
||||
OM: 6,
|
||||
PA: 0,
|
||||
PE: 0,
|
||||
PH: 0,
|
||||
PK: 0,
|
||||
PL: 1,
|
||||
PR: 0,
|
||||
PT: 0,
|
||||
PY: 0,
|
||||
QA: 6,
|
||||
RE: 1,
|
||||
RO: 1,
|
||||
RS: 1,
|
||||
RU: 1,
|
||||
SA: 0,
|
||||
SD: 6,
|
||||
SE: 1,
|
||||
SG: 0,
|
||||
SI: 1,
|
||||
SK: 1,
|
||||
SM: 1,
|
||||
SV: 0,
|
||||
SY: 6,
|
||||
TH: 0,
|
||||
TJ: 1,
|
||||
TM: 1,
|
||||
TR: 1,
|
||||
TT: 0,
|
||||
TW: 0,
|
||||
UA: 1,
|
||||
UM: 0,
|
||||
US: 0,
|
||||
UY: 1,
|
||||
UZ: 1,
|
||||
VA: 1,
|
||||
VE: 0,
|
||||
VI: 0,
|
||||
VN: 1,
|
||||
WS: 0,
|
||||
XK: 1,
|
||||
YE: 0,
|
||||
ZA: 0,
|
||||
ZW: 0
|
||||
};
|
||||
function getWeekArray(date, locale) {
|
||||
const weeks = [];
|
||||
let currentWeek = [];
|
||||
const firstDayOfMonth = startOfMonth(date);
|
||||
const lastDayOfMonth = endOfMonth(date);
|
||||
const firstDayWeekIndex = (firstDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()] + 7) % 7;
|
||||
const lastDayWeekIndex = (lastDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()] + 7) % 7;
|
||||
for (let i = 0; i < firstDayWeekIndex; i++) {
|
||||
const adjacentDay = new Date(firstDayOfMonth);
|
||||
adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));
|
||||
currentWeek.push(adjacentDay);
|
||||
}
|
||||
for (let i = 1; i <= lastDayOfMonth.getDate(); i++) {
|
||||
const day = new Date(date.getFullYear(), date.getMonth(), i);
|
||||
|
||||
// Add the day to the current week
|
||||
currentWeek.push(day);
|
||||
|
||||
// If the current week has 7 days, add it to the weeks array and start a new week
|
||||
if (currentWeek.length === 7) {
|
||||
weeks.push(currentWeek);
|
||||
currentWeek = [];
|
||||
}
|
||||
}
|
||||
for (let i = 1; i < 7 - lastDayWeekIndex; i++) {
|
||||
const adjacentDay = new Date(lastDayOfMonth);
|
||||
adjacentDay.setDate(adjacentDay.getDate() + i);
|
||||
currentWeek.push(adjacentDay);
|
||||
}
|
||||
if (currentWeek.length > 0) {
|
||||
weeks.push(currentWeek);
|
||||
}
|
||||
return weeks;
|
||||
}
|
||||
function startOfWeek(date) {
|
||||
const d = new Date(date);
|
||||
while (d.getDay() !== 0) {
|
||||
d.setDate(d.getDate() - 1);
|
||||
}
|
||||
return d;
|
||||
}
|
||||
function endOfWeek(date) {
|
||||
const d = new Date(date);
|
||||
while (d.getDay() !== 6) {
|
||||
d.setDate(d.getDate() + 1);
|
||||
}
|
||||
return d;
|
||||
}
|
||||
function startOfMonth(date) {
|
||||
return new Date(date.getFullYear(), date.getMonth(), 1);
|
||||
}
|
||||
function endOfMonth(date) {
|
||||
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
||||
}
|
||||
function parseLocalDate(value) {
|
||||
const parts = value.split('-').map(Number);
|
||||
|
||||
// new Date() uses local time zone when passing individual date component values
|
||||
return new Date(parts[0], parts[1] - 1, parts[2]);
|
||||
}
|
||||
const _YYYMMDD = /^([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))$/;
|
||||
function date(value) {
|
||||
if (value == null) return new Date();
|
||||
if (value instanceof Date) return value;
|
||||
if (typeof value === 'string') {
|
||||
let parsed;
|
||||
if (_YYYMMDD.test(value)) {
|
||||
return parseLocalDate(value);
|
||||
} else {
|
||||
parsed = Date.parse(value);
|
||||
}
|
||||
if (!isNaN(parsed)) return new Date(parsed);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
||||
function getWeekdays(locale) {
|
||||
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
||||
return createRange(7).map(i => {
|
||||
const weekday = new Date(sundayJanuarySecond2000);
|
||||
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
||||
return new Intl.DateTimeFormat(locale, {
|
||||
weekday: 'narrow'
|
||||
}).format(weekday);
|
||||
});
|
||||
}
|
||||
function format(value, formatString, locale, formats) {
|
||||
const newDate = date(value) ?? new Date();
|
||||
const customFormat = formats?.[formatString];
|
||||
if (typeof customFormat === 'function') {
|
||||
return customFormat(newDate, formatString, locale);
|
||||
}
|
||||
let options = {};
|
||||
switch (formatString) {
|
||||
case 'fullDateWithWeekday':
|
||||
options = {
|
||||
weekday: 'long',
|
||||
day: 'numeric',
|
||||
month: 'long',
|
||||
year: 'numeric'
|
||||
};
|
||||
break;
|
||||
case 'hours12h':
|
||||
options = {
|
||||
hour: 'numeric',
|
||||
hour12: true
|
||||
};
|
||||
break;
|
||||
case 'normalDateWithWeekday':
|
||||
options = {
|
||||
weekday: 'short',
|
||||
day: 'numeric',
|
||||
month: 'short'
|
||||
};
|
||||
break;
|
||||
case 'keyboardDate':
|
||||
options = {
|
||||
day: '2-digit',
|
||||
month: '2-digit',
|
||||
year: 'numeric'
|
||||
};
|
||||
break;
|
||||
case 'monthAndDate':
|
||||
options = {
|
||||
month: 'long',
|
||||
day: 'numeric'
|
||||
};
|
||||
break;
|
||||
case 'monthAndYear':
|
||||
options = {
|
||||
month: 'long',
|
||||
year: 'numeric'
|
||||
};
|
||||
break;
|
||||
case 'month':
|
||||
options = {
|
||||
month: 'long'
|
||||
};
|
||||
break;
|
||||
case 'monthShort':
|
||||
options = {
|
||||
month: 'short'
|
||||
};
|
||||
break;
|
||||
case 'dayOfMonth':
|
||||
return new Intl.NumberFormat(locale).format(newDate.getDate());
|
||||
case 'shortDate':
|
||||
options = {
|
||||
year: '2-digit',
|
||||
month: 'numeric',
|
||||
day: 'numeric'
|
||||
};
|
||||
break;
|
||||
case 'weekdayShort':
|
||||
options = {
|
||||
weekday: 'short'
|
||||
};
|
||||
break;
|
||||
case 'year':
|
||||
options = {
|
||||
year: 'numeric'
|
||||
};
|
||||
break;
|
||||
default:
|
||||
options = customFormat ?? {
|
||||
timeZone: 'UTC',
|
||||
timeZoneName: 'short'
|
||||
};
|
||||
}
|
||||
return new Intl.DateTimeFormat(locale, options).format(newDate);
|
||||
}
|
||||
function toISO(adapter, value) {
|
||||
const date = adapter.toJsDate(value);
|
||||
const year = date.getFullYear();
|
||||
const month = padStart(String(date.getMonth() + 1), 2, '0');
|
||||
const day = padStart(String(date.getDate()), 2, '0');
|
||||
return `${year}-${month}-${day}`;
|
||||
}
|
||||
function parseISO(value) {
|
||||
const [year, month, day] = value.split('-').map(Number);
|
||||
return new Date(year, month - 1, day);
|
||||
}
|
||||
function addMinutes(date, amount) {
|
||||
const d = new Date(date);
|
||||
d.setMinutes(d.getMinutes() + amount);
|
||||
return d;
|
||||
}
|
||||
function addHours(date, amount) {
|
||||
const d = new Date(date);
|
||||
d.setHours(d.getHours() + amount);
|
||||
return d;
|
||||
}
|
||||
function addDays(date, amount) {
|
||||
const d = new Date(date);
|
||||
d.setDate(d.getDate() + amount);
|
||||
return d;
|
||||
}
|
||||
function addWeeks(date, amount) {
|
||||
const d = new Date(date);
|
||||
d.setDate(d.getDate() + amount * 7);
|
||||
return d;
|
||||
}
|
||||
function addMonths(date, amount) {
|
||||
const d = new Date(date);
|
||||
d.setMonth(d.getMonth() + amount);
|
||||
return d;
|
||||
}
|
||||
function getYear(date) {
|
||||
return date.getFullYear();
|
||||
}
|
||||
function getMonth(date) {
|
||||
return date.getMonth();
|
||||
}
|
||||
function getNextMonth(date) {
|
||||
return new Date(date.getFullYear(), date.getMonth() + 1, 1);
|
||||
}
|
||||
function getHours(date) {
|
||||
return date.getHours();
|
||||
}
|
||||
function getMinutes(date) {
|
||||
return date.getMinutes();
|
||||
}
|
||||
function startOfYear(date) {
|
||||
return new Date(date.getFullYear(), 0, 1);
|
||||
}
|
||||
function endOfYear(date) {
|
||||
return new Date(date.getFullYear(), 11, 31);
|
||||
}
|
||||
function isWithinRange(date, range) {
|
||||
return isAfter(date, range[0]) && isBefore(date, range[1]);
|
||||
}
|
||||
function isValid(date) {
|
||||
const d = new Date(date);
|
||||
return d instanceof Date && !isNaN(d.getTime());
|
||||
}
|
||||
function isAfter(date, comparing) {
|
||||
return date.getTime() > comparing.getTime();
|
||||
}
|
||||
function isBefore(date, comparing) {
|
||||
return date.getTime() < comparing.getTime();
|
||||
}
|
||||
function isEqual(date, comparing) {
|
||||
return date.getTime() === comparing.getTime();
|
||||
}
|
||||
function isSameDay(date, comparing) {
|
||||
return date.getDate() === comparing.getDate() && date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
||||
}
|
||||
function isSameMonth(date, comparing) {
|
||||
return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
|
||||
}
|
||||
function getDiff(date, comparing, unit) {
|
||||
const d = new Date(date);
|
||||
const c = new Date(comparing);
|
||||
if (unit === 'month') {
|
||||
return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
|
||||
}
|
||||
return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
|
||||
}
|
||||
function setHours(date, count) {
|
||||
const d = new Date(date);
|
||||
d.setHours(count);
|
||||
return d;
|
||||
}
|
||||
function setMinutes(date, count) {
|
||||
const d = new Date(date);
|
||||
d.setMinutes(count);
|
||||
return d;
|
||||
}
|
||||
function setMonth(date, count) {
|
||||
const d = new Date(date);
|
||||
d.setMonth(count);
|
||||
return d;
|
||||
}
|
||||
function setYear(date, year) {
|
||||
const d = new Date(date);
|
||||
d.setFullYear(year);
|
||||
return d;
|
||||
}
|
||||
function startOfDay(date) {
|
||||
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
||||
}
|
||||
function endOfDay(date) {
|
||||
return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);
|
||||
}
|
||||
export class VuetifyDateAdapter {
|
||||
constructor(options) {
|
||||
this.locale = options.locale;
|
||||
this.formats = options.formats;
|
||||
}
|
||||
date(value) {
|
||||
return date(value);
|
||||
}
|
||||
toJsDate(date) {
|
||||
return date;
|
||||
}
|
||||
toISO(date) {
|
||||
return toISO(this, date);
|
||||
}
|
||||
parseISO(date) {
|
||||
return parseISO(date);
|
||||
}
|
||||
addMinutes(date, amount) {
|
||||
return addMinutes(date, amount);
|
||||
}
|
||||
addHours(date, amount) {
|
||||
return addHours(date, amount);
|
||||
}
|
||||
addDays(date, amount) {
|
||||
return addDays(date, amount);
|
||||
}
|
||||
addWeeks(date, amount) {
|
||||
return addWeeks(date, amount);
|
||||
}
|
||||
addMonths(date, amount) {
|
||||
return addMonths(date, amount);
|
||||
}
|
||||
getWeekArray(date) {
|
||||
return getWeekArray(date, this.locale);
|
||||
}
|
||||
startOfWeek(date) {
|
||||
return startOfWeek(date);
|
||||
}
|
||||
endOfWeek(date) {
|
||||
return endOfWeek(date);
|
||||
}
|
||||
startOfMonth(date) {
|
||||
return startOfMonth(date);
|
||||
}
|
||||
endOfMonth(date) {
|
||||
return endOfMonth(date);
|
||||
}
|
||||
format(date, formatString) {
|
||||
return format(date, formatString, this.locale, this.formats);
|
||||
}
|
||||
isEqual(date, comparing) {
|
||||
return isEqual(date, comparing);
|
||||
}
|
||||
isValid(date) {
|
||||
return isValid(date);
|
||||
}
|
||||
isWithinRange(date, range) {
|
||||
return isWithinRange(date, range);
|
||||
}
|
||||
isAfter(date, comparing) {
|
||||
return isAfter(date, comparing);
|
||||
}
|
||||
isBefore(date, comparing) {
|
||||
return !isAfter(date, comparing) && !isEqual(date, comparing);
|
||||
}
|
||||
isSameDay(date, comparing) {
|
||||
return isSameDay(date, comparing);
|
||||
}
|
||||
isSameMonth(date, comparing) {
|
||||
return isSameMonth(date, comparing);
|
||||
}
|
||||
setMinutes(date, count) {
|
||||
return setMinutes(date, count);
|
||||
}
|
||||
setHours(date, count) {
|
||||
return setHours(date, count);
|
||||
}
|
||||
setMonth(date, count) {
|
||||
return setMonth(date, count);
|
||||
}
|
||||
setYear(date, year) {
|
||||
return setYear(date, year);
|
||||
}
|
||||
getDiff(date, comparing, unit) {
|
||||
return getDiff(date, comparing, unit);
|
||||
}
|
||||
getWeekdays() {
|
||||
return getWeekdays(this.locale);
|
||||
}
|
||||
getYear(date) {
|
||||
return getYear(date);
|
||||
}
|
||||
getMonth(date) {
|
||||
return getMonth(date);
|
||||
}
|
||||
getNextMonth(date) {
|
||||
return getNextMonth(date);
|
||||
}
|
||||
getHours(date) {
|
||||
return getHours(date);
|
||||
}
|
||||
getMinutes(date) {
|
||||
return getMinutes(date);
|
||||
}
|
||||
startOfDay(date) {
|
||||
return startOfDay(date);
|
||||
}
|
||||
endOfDay(date) {
|
||||
return endOfDay(date);
|
||||
}
|
||||
startOfYear(date) {
|
||||
return startOfYear(date);
|
||||
}
|
||||
endOfYear(date) {
|
||||
return endOfYear(date);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=vuetify.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/date/adapters/vuetify.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/date/adapters/vuetify.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
100
VApp/node_modules/vuetify/lib/composables/date/date.mjs
generated
vendored
Normal file
100
VApp/node_modules/vuetify/lib/composables/date/date.mjs
generated
vendored
Normal file
@ -0,0 +1,100 @@
|
||||
// Composables
|
||||
import { useLocale } from "../locale.mjs"; // Utilities
|
||||
import { inject, reactive, watch } from 'vue';
|
||||
import { mergeDeep } from "../../util/index.mjs"; // Types
|
||||
// Adapters
|
||||
import { VuetifyDateAdapter } from "./adapters/vuetify.mjs";
|
||||
/** Supports module augmentation to specify date object types */
|
||||
export const DateOptionsSymbol = Symbol.for('vuetify:date-options');
|
||||
export const DateAdapterSymbol = Symbol.for('vuetify:date-adapter');
|
||||
export function createDate(options, locale) {
|
||||
const _options = mergeDeep({
|
||||
adapter: VuetifyDateAdapter,
|
||||
locale: {
|
||||
af: 'af-ZA',
|
||||
// ar: '', # not the same value for all variants
|
||||
bg: 'bg-BG',
|
||||
ca: 'ca-ES',
|
||||
ckb: '',
|
||||
cs: 'cs-CZ',
|
||||
de: 'de-DE',
|
||||
el: 'el-GR',
|
||||
en: 'en-US',
|
||||
// es: '', # not the same value for all variants
|
||||
et: 'et-EE',
|
||||
fa: 'fa-IR',
|
||||
fi: 'fi-FI',
|
||||
// fr: '', #not the same value for all variants
|
||||
hr: 'hr-HR',
|
||||
hu: 'hu-HU',
|
||||
he: 'he-IL',
|
||||
id: 'id-ID',
|
||||
it: 'it-IT',
|
||||
ja: 'ja-JP',
|
||||
ko: 'ko-KR',
|
||||
lv: 'lv-LV',
|
||||
lt: 'lt-LT',
|
||||
nl: 'nl-NL',
|
||||
no: 'no-NO',
|
||||
pl: 'pl-PL',
|
||||
pt: 'pt-PT',
|
||||
ro: 'ro-RO',
|
||||
ru: 'ru-RU',
|
||||
sk: 'sk-SK',
|
||||
sl: 'sl-SI',
|
||||
srCyrl: 'sr-SP',
|
||||
srLatn: 'sr-SP',
|
||||
sv: 'sv-SE',
|
||||
th: 'th-TH',
|
||||
tr: 'tr-TR',
|
||||
az: 'az-AZ',
|
||||
uk: 'uk-UA',
|
||||
vi: 'vi-VN',
|
||||
zhHans: 'zh-CN',
|
||||
zhHant: 'zh-TW'
|
||||
}
|
||||
}, options);
|
||||
return {
|
||||
options: _options,
|
||||
instance: createInstance(_options, locale)
|
||||
};
|
||||
}
|
||||
function createInstance(options, locale) {
|
||||
const instance = reactive(typeof options.adapter === 'function'
|
||||
// eslint-disable-next-line new-cap
|
||||
? new options.adapter({
|
||||
locale: options.locale[locale.current.value] ?? locale.current.value,
|
||||
formats: options.formats
|
||||
}) : options.adapter);
|
||||
watch(locale.current, value => {
|
||||
instance.locale = options.locale[value] ?? value ?? instance.locale;
|
||||
});
|
||||
return instance;
|
||||
}
|
||||
export function useDate() {
|
||||
const options = inject(DateOptionsSymbol);
|
||||
if (!options) throw new Error('[Vuetify] Could not find injected date options');
|
||||
const locale = useLocale();
|
||||
return createInstance(options, locale);
|
||||
}
|
||||
|
||||
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
||||
export function getWeek(adapter, value) {
|
||||
const date = adapter.toJsDate(value);
|
||||
let year = date.getFullYear();
|
||||
let d1w1 = new Date(year, 0, 1);
|
||||
if (date < d1w1) {
|
||||
year = year - 1;
|
||||
d1w1 = new Date(year, 0, 1);
|
||||
} else {
|
||||
const tv = new Date(year + 1, 0, 1);
|
||||
if (date >= tv) {
|
||||
year = year + 1;
|
||||
d1w1 = tv;
|
||||
}
|
||||
}
|
||||
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
||||
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
||||
return Math.floor(diffDays / 7) + 1;
|
||||
}
|
||||
//# sourceMappingURL=date.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/date/date.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/date/date.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
2
VApp/node_modules/vuetify/lib/composables/date/index.mjs
generated
vendored
Normal file
2
VApp/node_modules/vuetify/lib/composables/date/index.mjs
generated
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
export { createDate, useDate, DateAdapterSymbol } from "./date.mjs";
|
||||
//# sourceMappingURL=index.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/date/index.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/date/index.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.mjs","names":["createDate","useDate","DateAdapterSymbol"],"sources":["../../../src/composables/date/index.ts"],"sourcesContent":["export { createDate, useDate, DateAdapterSymbol } from './date'\nexport type { DateAdapter } from './DateAdapter'\nexport type { DateOptions, DateInstance } from './date'\n"],"mappings":"SAASA,UAAU,EAAEC,OAAO,EAAEC,iBAAiB"}
|
104
VApp/node_modules/vuetify/lib/composables/defaults.mjs
generated
vendored
Normal file
104
VApp/node_modules/vuetify/lib/composables/defaults.mjs
generated
vendored
Normal file
@ -0,0 +1,104 @@
|
||||
// Utilities
|
||||
import { computed, inject, provide, ref, shallowRef, unref, watchEffect } from 'vue';
|
||||
import { getCurrentInstance, injectSelf, mergeDeep, toKebabCase } from "../util/index.mjs"; // Types
|
||||
export const DefaultsSymbol = Symbol.for('vuetify:defaults');
|
||||
export function createDefaults(options) {
|
||||
return ref(options);
|
||||
}
|
||||
export function injectDefaults() {
|
||||
const defaults = inject(DefaultsSymbol);
|
||||
if (!defaults) throw new Error('[Vuetify] Could not find defaults instance');
|
||||
return defaults;
|
||||
}
|
||||
export function provideDefaults(defaults, options) {
|
||||
const injectedDefaults = injectDefaults();
|
||||
const providedDefaults = ref(defaults);
|
||||
const newDefaults = computed(() => {
|
||||
const disabled = unref(options?.disabled);
|
||||
if (disabled) return injectedDefaults.value;
|
||||
const scoped = unref(options?.scoped);
|
||||
const reset = unref(options?.reset);
|
||||
const root = unref(options?.root);
|
||||
if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value;
|
||||
let properties = mergeDeep(providedDefaults.value, {
|
||||
prev: injectedDefaults.value
|
||||
});
|
||||
if (scoped) return properties;
|
||||
if (reset || root) {
|
||||
const len = Number(reset || Infinity);
|
||||
for (let i = 0; i <= len; i++) {
|
||||
if (!properties || !('prev' in properties)) {
|
||||
break;
|
||||
}
|
||||
properties = properties.prev;
|
||||
}
|
||||
if (properties && typeof root === 'string' && root in properties) {
|
||||
properties = mergeDeep(mergeDeep(properties, {
|
||||
prev: properties
|
||||
}), properties[root]);
|
||||
}
|
||||
return properties;
|
||||
}
|
||||
return properties.prev ? mergeDeep(properties.prev, properties) : properties;
|
||||
});
|
||||
provide(DefaultsSymbol, newDefaults);
|
||||
return newDefaults;
|
||||
}
|
||||
function propIsDefined(vnode, prop) {
|
||||
return typeof vnode.props?.[prop] !== 'undefined' || typeof vnode.props?.[toKebabCase(prop)] !== 'undefined';
|
||||
}
|
||||
export function internalUseDefaults() {
|
||||
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
let name = arguments.length > 1 ? arguments[1] : undefined;
|
||||
let defaults = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : injectDefaults();
|
||||
const vm = getCurrentInstance('useDefaults');
|
||||
name = name ?? vm.type.name ?? vm.type.__name;
|
||||
if (!name) {
|
||||
throw new Error('[Vuetify] Could not determine component name');
|
||||
}
|
||||
const componentDefaults = computed(() => defaults.value?.[props._as ?? name]);
|
||||
const _props = new Proxy(props, {
|
||||
get(target, prop) {
|
||||
const propValue = Reflect.get(target, prop);
|
||||
if (prop === 'class' || prop === 'style') {
|
||||
return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
|
||||
} else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
|
||||
return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue;
|
||||
}
|
||||
return propValue;
|
||||
}
|
||||
});
|
||||
const _subcomponentDefaults = shallowRef();
|
||||
watchEffect(() => {
|
||||
if (componentDefaults.value) {
|
||||
const subComponents = Object.entries(componentDefaults.value).filter(_ref => {
|
||||
let [key] = _ref;
|
||||
return key.startsWith(key[0].toUpperCase());
|
||||
});
|
||||
_subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : undefined;
|
||||
} else {
|
||||
_subcomponentDefaults.value = undefined;
|
||||
}
|
||||
});
|
||||
function provideSubDefaults() {
|
||||
const injected = injectSelf(DefaultsSymbol, vm);
|
||||
provide(DefaultsSymbol, computed(() => {
|
||||
return _subcomponentDefaults.value ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value) : injected?.value;
|
||||
}));
|
||||
}
|
||||
return {
|
||||
props: _props,
|
||||
provideSubDefaults
|
||||
};
|
||||
}
|
||||
export function useDefaults() {
|
||||
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
let name = arguments.length > 1 ? arguments[1] : undefined;
|
||||
const {
|
||||
props: _props,
|
||||
provideSubDefaults
|
||||
} = internalUseDefaults(props, name);
|
||||
provideSubDefaults();
|
||||
return _props;
|
||||
}
|
||||
//# sourceMappingURL=defaults.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/defaults.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/defaults.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
32
VApp/node_modules/vuetify/lib/composables/delay.mjs
generated
vendored
Normal file
32
VApp/node_modules/vuetify/lib/composables/delay.mjs
generated
vendored
Normal file
@ -0,0 +1,32 @@
|
||||
// Utilities
|
||||
import { defer, propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeDelayProps = propsFactory({
|
||||
closeDelay: [Number, String],
|
||||
openDelay: [Number, String]
|
||||
}, 'delay');
|
||||
export function useDelay(props, cb) {
|
||||
let clearDelay = () => {};
|
||||
function runDelay(isOpening) {
|
||||
clearDelay?.();
|
||||
const delay = Number(isOpening ? props.openDelay : props.closeDelay);
|
||||
return new Promise(resolve => {
|
||||
clearDelay = defer(delay, () => {
|
||||
cb?.(isOpening);
|
||||
resolve(isOpening);
|
||||
});
|
||||
});
|
||||
}
|
||||
function runOpenDelay() {
|
||||
return runDelay(true);
|
||||
}
|
||||
function runCloseDelay() {
|
||||
return runDelay(false);
|
||||
}
|
||||
return {
|
||||
clearDelay,
|
||||
runOpenDelay,
|
||||
runCloseDelay
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=delay.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/delay.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/delay.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"delay.mjs","names":["defer","propsFactory","makeDelayProps","closeDelay","Number","String","openDelay","useDelay","props","cb","clearDelay","runDelay","isOpening","delay","Promise","resolve","runOpenDelay","runCloseDelay"],"sources":["../../src/composables/delay.ts"],"sourcesContent":["// Utilities\nimport { defer, propsFactory } from '@/util'\n\n// Types\nexport interface DelayProps {\n closeDelay?: number | string\n openDelay?: number | string\n}\n\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String],\n}, 'delay')\n\nexport function useDelay (props: DelayProps, cb?: (value: boolean) => void) {\n let clearDelay: (() => void) = () => {}\n\n function runDelay (isOpening: boolean) {\n clearDelay?.()\n\n const delay = Number(isOpening ? props.openDelay : props.closeDelay)\n\n return new Promise(resolve => {\n clearDelay = defer(delay, () => {\n cb?.(isOpening)\n resolve(isOpening)\n })\n })\n }\n\n function runOpenDelay () {\n return runDelay(true)\n }\n\n function runCloseDelay () {\n return runDelay(false)\n }\n\n return {\n clearDelay,\n runOpenDelay,\n runCloseDelay,\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,KAAK,EAAEC,YAAY,6BAE5B;AAMA;AACA,OAAO,MAAMC,cAAc,GAAGD,YAAY,CAAC;EACzCE,UAAU,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;EAC5BC,SAAS,EAAE,CAACF,MAAM,EAAEC,MAAM;AAC5B,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,SAASE,QAAQA,CAAEC,KAAiB,EAAEC,EAA6B,EAAE;EAC1E,IAAIC,UAAwB,GAAGA,CAAA,KAAM,CAAC,CAAC;EAEvC,SAASC,QAAQA,CAAEC,SAAkB,EAAE;IACrCF,UAAU,GAAG,CAAC;IAEd,MAAMG,KAAK,GAAGT,MAAM,CAACQ,SAAS,GAAGJ,KAAK,CAACF,SAAS,GAAGE,KAAK,CAACL,UAAU,CAAC;IAEpE,OAAO,IAAIW,OAAO,CAACC,OAAO,IAAI;MAC5BL,UAAU,GAAGV,KAAK,CAACa,KAAK,EAAE,MAAM;QAC9BJ,EAAE,GAAGG,SAAS,CAAC;QACfG,OAAO,CAACH,SAAS,CAAC;MACpB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,SAASI,YAAYA,CAAA,EAAI;IACvB,OAAOL,QAAQ,CAAC,IAAI,CAAC;EACvB;EAEA,SAASM,aAAaA,CAAA,EAAI;IACxB,OAAON,QAAQ,CAAC,KAAK,CAAC;EACxB;EAEA,OAAO;IACLD,UAAU;IACVM,YAAY;IACZC;EACF,CAAC;AACH"}
|
26
VApp/node_modules/vuetify/lib/composables/density.mjs
generated
vendored
Normal file
26
VApp/node_modules/vuetify/lib/composables/density.mjs
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
// Utilities
|
||||
import { computed } from 'vue';
|
||||
import { getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
|
||||
const allowedDensities = [null, 'default', 'comfortable', 'compact'];
|
||||
|
||||
// typeof allowedDensities[number] evalutes to any
|
||||
// when generating api types for whatever reason.
|
||||
|
||||
// Composables
|
||||
export const makeDensityProps = propsFactory({
|
||||
density: {
|
||||
type: String,
|
||||
default: 'default',
|
||||
validator: v => allowedDensities.includes(v)
|
||||
}
|
||||
}, 'density');
|
||||
export function useDensity(props) {
|
||||
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
||||
const densityClasses = computed(() => {
|
||||
return `${name}--density-${props.density}`;
|
||||
});
|
||||
return {
|
||||
densityClasses
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=density.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/density.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/density.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"density.mjs","names":["computed","getCurrentInstanceName","propsFactory","allowedDensities","makeDensityProps","density","type","String","default","validator","v","includes","useDensity","props","name","arguments","length","undefined","densityClasses"],"sources":["../../src/composables/density.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'] as const\n\n// typeof allowedDensities[number] evalutes to any\n// when generating api types for whatever reason.\nexport type Density = null | 'default' | 'comfortable' | 'compact'\n\nexport interface DensityProps {\n density?: Density\n}\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n}, 'density')\n\nexport function useDensity (\n props: DensityProps,\n name = getCurrentInstanceName(),\n) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAGA,MAAMC,gBAAgB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,CAAU;;AAE7E;AACA;;AAOA;AACA,OAAO,MAAMC,gBAAgB,GAAGF,YAAY,CAAC;EAC3CG,OAAO,EAAE;IACPC,IAAI,EAAEC,MAA2B;IACjCC,OAAO,EAAE,SAAS;IAClBC,SAAS,EAAGC,CAAM,IAAKP,gBAAgB,CAACQ,QAAQ,CAACD,CAAC;EACpD;AACF,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,SAASE,UAAUA,CACxBC,KAAmB,EAEnB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGd,sBAAsB,CAAC,CAAC;EAE/B,MAAMiB,cAAc,GAAGlB,QAAQ,CAAC,MAAM;IACpC,OAAQ,GAAEc,IAAK,aAAYD,KAAK,CAACR,OAAQ,EAAC;EAC5C,CAAC,CAAC;EAEF,OAAO;IAAEa;EAAe,CAAC;AAC3B"}
|
26
VApp/node_modules/vuetify/lib/composables/dimensions.mjs
generated
vendored
Normal file
26
VApp/node_modules/vuetify/lib/composables/dimensions.mjs
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
// Utilities
|
||||
import { computed } from 'vue';
|
||||
import { convertToUnit, propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeDimensionProps = propsFactory({
|
||||
height: [Number, String],
|
||||
maxHeight: [Number, String],
|
||||
maxWidth: [Number, String],
|
||||
minHeight: [Number, String],
|
||||
minWidth: [Number, String],
|
||||
width: [Number, String]
|
||||
}, 'dimension');
|
||||
export function useDimension(props) {
|
||||
const dimensionStyles = computed(() => ({
|
||||
height: convertToUnit(props.height),
|
||||
maxHeight: convertToUnit(props.maxHeight),
|
||||
maxWidth: convertToUnit(props.maxWidth),
|
||||
minHeight: convertToUnit(props.minHeight),
|
||||
minWidth: convertToUnit(props.minWidth),
|
||||
width: convertToUnit(props.width)
|
||||
}));
|
||||
return {
|
||||
dimensionStyles
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=dimensions.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/dimensions.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/dimensions.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"dimensions.mjs","names":["computed","convertToUnit","propsFactory","makeDimensionProps","height","Number","String","maxHeight","maxWidth","minHeight","minWidth","width","useDimension","props","dimensionStyles"],"sources":["../../src/composables/dimensions.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => ({\n height: convertToUnit(props.height),\n maxHeight: convertToUnit(props.maxHeight),\n maxWidth: convertToUnit(props.maxWidth),\n minHeight: convertToUnit(props.minHeight),\n minWidth: convertToUnit(props.minWidth),\n width: convertToUnit(props.width),\n }))\n\n return { dimensionStyles }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,aAAa,EAAEC,YAAY,6BAEpC;AAUA;AACA,OAAO,MAAMC,kBAAkB,GAAGD,YAAY,CAAC;EAC7CE,MAAM,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;EACxBC,SAAS,EAAE,CAACF,MAAM,EAAEC,MAAM,CAAC;EAC3BE,QAAQ,EAAE,CAACH,MAAM,EAAEC,MAAM,CAAC;EAC1BG,SAAS,EAAE,CAACJ,MAAM,EAAEC,MAAM,CAAC;EAC3BI,QAAQ,EAAE,CAACL,MAAM,EAAEC,MAAM,CAAC;EAC1BK,KAAK,EAAE,CAACN,MAAM,EAAEC,MAAM;AACxB,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,SAASM,YAAYA,CAAEC,KAAqB,EAAE;EACnD,MAAMC,eAAe,GAAGd,QAAQ,CAAC,OAAO;IACtCI,MAAM,EAAEH,aAAa,CAACY,KAAK,CAACT,MAAM,CAAC;IACnCG,SAAS,EAAEN,aAAa,CAACY,KAAK,CAACN,SAAS,CAAC;IACzCC,QAAQ,EAAEP,aAAa,CAACY,KAAK,CAACL,QAAQ,CAAC;IACvCC,SAAS,EAAER,aAAa,CAACY,KAAK,CAACJ,SAAS,CAAC;IACzCC,QAAQ,EAAET,aAAa,CAACY,KAAK,CAACH,QAAQ,CAAC;IACvCC,KAAK,EAAEV,aAAa,CAACY,KAAK,CAACF,KAAK;EAClC,CAAC,CAAC,CAAC;EAEH,OAAO;IAAEG;EAAgB,CAAC;AAC5B"}
|
69
VApp/node_modules/vuetify/lib/composables/directiveComponent.mjs
generated
vendored
Normal file
69
VApp/node_modules/vuetify/lib/composables/directiveComponent.mjs
generated
vendored
Normal file
@ -0,0 +1,69 @@
|
||||
// Utilities
|
||||
import { h, mergeProps, render, resolveComponent } from 'vue';
|
||||
|
||||
// Types
|
||||
|
||||
export const useDirectiveComponent = (component, props) => {
|
||||
const concreteComponent = typeof component === 'string' ? resolveComponent(component) : component;
|
||||
return {
|
||||
mounted(el, binding, vnode) {
|
||||
const {
|
||||
value
|
||||
} = binding;
|
||||
|
||||
// Get the children from the props or directive value, or the element's children
|
||||
const children = props.text || value.text || el.innerHTML;
|
||||
|
||||
// If vnode.ctx is the same as the instance, then we're bound to a plain element
|
||||
// and need to find the nearest parent component instance to inherit provides from
|
||||
const provides = (vnode.ctx === binding.instance.$ ? findComponentParent(vnode, binding.instance.$)?.provides : vnode.ctx?.provides) ?? binding.instance.$.provides;
|
||||
const node = h(concreteComponent, mergeProps(props, value), children);
|
||||
node.appContext = Object.assign(Object.create(null), binding.instance.$.appContext, {
|
||||
provides
|
||||
});
|
||||
render(node, el);
|
||||
},
|
||||
unmounted(el) {
|
||||
render(null, el);
|
||||
}
|
||||
};
|
||||
};
|
||||
function findComponentParent(vnode, root) {
|
||||
// Walk the tree from root until we find the child vnode
|
||||
const stack = new Set();
|
||||
const walk = children => {
|
||||
for (const child of children) {
|
||||
if (!child) continue;
|
||||
if (child === vnode) {
|
||||
return true;
|
||||
}
|
||||
stack.add(child);
|
||||
if (Array.isArray(child.children)) {
|
||||
const result = walk(child.children);
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
} else if (child.component?.vnode) {
|
||||
const result = walk([child.component?.subTree]);
|
||||
if (result) {
|
||||
return result;
|
||||
}
|
||||
}
|
||||
stack.delete(child);
|
||||
}
|
||||
return false;
|
||||
};
|
||||
if (!walk([root.subTree])) {
|
||||
throw new Error('Could not find original vnode');
|
||||
}
|
||||
|
||||
// Return the first component parent
|
||||
const result = Array.from(stack).reverse();
|
||||
for (const child of result) {
|
||||
if (child.component) {
|
||||
return child.component;
|
||||
}
|
||||
}
|
||||
return root;
|
||||
}
|
||||
//# sourceMappingURL=directiveComponent.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/directiveComponent.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/directiveComponent.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
148
VApp/node_modules/vuetify/lib/composables/display.mjs
generated
vendored
Normal file
148
VApp/node_modules/vuetify/lib/composables/display.mjs
generated
vendored
Normal file
@ -0,0 +1,148 @@
|
||||
// Utilities
|
||||
import { computed, inject, reactive, shallowRef, toRefs, watchEffect } from 'vue';
|
||||
import { getCurrentInstanceName, mergeDeep, propsFactory } from "../util/index.mjs";
|
||||
import { IN_BROWSER, SUPPORTS_TOUCH } from "../util/globals.mjs"; // Types
|
||||
export const breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl']; // no xs
|
||||
|
||||
export const DisplaySymbol = Symbol.for('vuetify:display');
|
||||
const defaultDisplayOptions = {
|
||||
mobileBreakpoint: 'lg',
|
||||
thresholds: {
|
||||
xs: 0,
|
||||
sm: 600,
|
||||
md: 960,
|
||||
lg: 1280,
|
||||
xl: 1920,
|
||||
xxl: 2560
|
||||
}
|
||||
};
|
||||
const parseDisplayOptions = function () {
|
||||
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultDisplayOptions;
|
||||
return mergeDeep(defaultDisplayOptions, options);
|
||||
};
|
||||
function getClientWidth(ssr) {
|
||||
return IN_BROWSER && !ssr ? window.innerWidth : typeof ssr === 'object' && ssr.clientWidth || 0;
|
||||
}
|
||||
function getClientHeight(ssr) {
|
||||
return IN_BROWSER && !ssr ? window.innerHeight : typeof ssr === 'object' && ssr.clientHeight || 0;
|
||||
}
|
||||
function getPlatform(ssr) {
|
||||
const userAgent = IN_BROWSER && !ssr ? window.navigator.userAgent : 'ssr';
|
||||
function match(regexp) {
|
||||
return Boolean(userAgent.match(regexp));
|
||||
}
|
||||
const android = match(/android/i);
|
||||
const ios = match(/iphone|ipad|ipod/i);
|
||||
const cordova = match(/cordova/i);
|
||||
const electron = match(/electron/i);
|
||||
const chrome = match(/chrome/i);
|
||||
const edge = match(/edge/i);
|
||||
const firefox = match(/firefox/i);
|
||||
const opera = match(/opera/i);
|
||||
const win = match(/win/i);
|
||||
const mac = match(/mac/i);
|
||||
const linux = match(/linux/i);
|
||||
return {
|
||||
android,
|
||||
ios,
|
||||
cordova,
|
||||
electron,
|
||||
chrome,
|
||||
edge,
|
||||
firefox,
|
||||
opera,
|
||||
win,
|
||||
mac,
|
||||
linux,
|
||||
touch: SUPPORTS_TOUCH,
|
||||
ssr: userAgent === 'ssr'
|
||||
};
|
||||
}
|
||||
export function createDisplay(options, ssr) {
|
||||
const {
|
||||
thresholds,
|
||||
mobileBreakpoint
|
||||
} = parseDisplayOptions(options);
|
||||
const height = shallowRef(getClientHeight(ssr));
|
||||
const platform = shallowRef(getPlatform(ssr));
|
||||
const state = reactive({});
|
||||
const width = shallowRef(getClientWidth(ssr));
|
||||
function updateSize() {
|
||||
height.value = getClientHeight();
|
||||
width.value = getClientWidth();
|
||||
}
|
||||
function update() {
|
||||
updateSize();
|
||||
platform.value = getPlatform();
|
||||
}
|
||||
|
||||
// eslint-disable-next-line max-statements
|
||||
watchEffect(() => {
|
||||
const xs = width.value < thresholds.sm;
|
||||
const sm = width.value < thresholds.md && !xs;
|
||||
const md = width.value < thresholds.lg && !(sm || xs);
|
||||
const lg = width.value < thresholds.xl && !(md || sm || xs);
|
||||
const xl = width.value < thresholds.xxl && !(lg || md || sm || xs);
|
||||
const xxl = width.value >= thresholds.xxl;
|
||||
const name = xs ? 'xs' : sm ? 'sm' : md ? 'md' : lg ? 'lg' : xl ? 'xl' : 'xxl';
|
||||
const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint];
|
||||
const mobile = width.value < breakpointValue;
|
||||
state.xs = xs;
|
||||
state.sm = sm;
|
||||
state.md = md;
|
||||
state.lg = lg;
|
||||
state.xl = xl;
|
||||
state.xxl = xxl;
|
||||
state.smAndUp = !xs;
|
||||
state.mdAndUp = !(xs || sm);
|
||||
state.lgAndUp = !(xs || sm || md);
|
||||
state.xlAndUp = !(xs || sm || md || lg);
|
||||
state.smAndDown = !(md || lg || xl || xxl);
|
||||
state.mdAndDown = !(lg || xl || xxl);
|
||||
state.lgAndDown = !(xl || xxl);
|
||||
state.xlAndDown = !xxl;
|
||||
state.name = name;
|
||||
state.height = height.value;
|
||||
state.width = width.value;
|
||||
state.mobile = mobile;
|
||||
state.mobileBreakpoint = mobileBreakpoint;
|
||||
state.platform = platform.value;
|
||||
state.thresholds = thresholds;
|
||||
});
|
||||
if (IN_BROWSER) {
|
||||
window.addEventListener('resize', updateSize, {
|
||||
passive: true
|
||||
});
|
||||
}
|
||||
return {
|
||||
...toRefs(state),
|
||||
update,
|
||||
ssr: !!ssr
|
||||
};
|
||||
}
|
||||
export const makeDisplayProps = propsFactory({
|
||||
mobileBreakpoint: [Number, String]
|
||||
}, 'display');
|
||||
export function useDisplay() {
|
||||
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
||||
const display = inject(DisplaySymbol);
|
||||
if (!display) throw new Error('Could not find Vuetify display injection');
|
||||
const mobile = computed(() => {
|
||||
if (!props.mobileBreakpoint) return display.mobile.value;
|
||||
const breakpointValue = typeof props.mobileBreakpoint === 'number' ? props.mobileBreakpoint : display.thresholds.value[props.mobileBreakpoint];
|
||||
return display.width.value < breakpointValue;
|
||||
});
|
||||
const displayClasses = computed(() => {
|
||||
if (!name) return {};
|
||||
return {
|
||||
[`${name}--mobile`]: mobile.value
|
||||
};
|
||||
});
|
||||
return {
|
||||
...display,
|
||||
displayClasses,
|
||||
mobile
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=display.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/display.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/display.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
29
VApp/node_modules/vuetify/lib/composables/elevation.mjs
generated
vendored
Normal file
29
VApp/node_modules/vuetify/lib/composables/elevation.mjs
generated
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
// Utilities
|
||||
import { computed, isRef } from 'vue';
|
||||
import { propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeElevationProps = propsFactory({
|
||||
elevation: {
|
||||
type: [Number, String],
|
||||
validator(v) {
|
||||
const value = parseInt(v);
|
||||
return !isNaN(value) && value >= 0 &&
|
||||
// Material Design has a maximum elevation of 24
|
||||
// https://material.io/design/environment/elevation.html#default-elevations
|
||||
value <= 24;
|
||||
}
|
||||
}
|
||||
}, 'elevation');
|
||||
export function useElevation(props) {
|
||||
const elevationClasses = computed(() => {
|
||||
const elevation = isRef(props) ? props.value : props.elevation;
|
||||
const classes = [];
|
||||
if (elevation == null) return classes;
|
||||
classes.push(`elevation-${elevation}`);
|
||||
return classes;
|
||||
});
|
||||
return {
|
||||
elevationClasses
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=elevation.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/elevation.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/elevation.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"elevation.mjs","names":["computed","isRef","propsFactory","makeElevationProps","elevation","type","Number","String","validator","v","value","parseInt","isNaN","useElevation","props","elevationClasses","classes","push"],"sources":["../../src/composables/elevation.ts"],"sourcesContent":["// Utilities\nimport { computed, isRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nexport interface ElevationProps {\n elevation?: number | string | null\n}\n\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator (v: any) {\n const value = parseInt(v)\n\n return (\n !isNaN(value) &&\n value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24\n )\n },\n },\n}, 'elevation')\n\ntype ElevationData = {\n elevationClasses: Ref<string[]>\n}\n\nexport function useElevation (props: ElevationProps | Ref<number | string | undefined>): ElevationData {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation\n const classes: string[] = []\n\n if (elevation == null) return classes\n\n classes.push(`elevation-${elevation}`)\n\n return classes\n })\n\n return { elevationClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,YAAY,6BAErB;AAMA;AACA,OAAO,MAAMC,kBAAkB,GAAGD,YAAY,CAAC;EAC7CE,SAAS,EAAE;IACTC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,SAASA,CAAEC,CAAM,EAAE;MACjB,MAAMC,KAAK,GAAGC,QAAQ,CAACF,CAAC,CAAC;MAEzB,OACE,CAACG,KAAK,CAACF,KAAK,CAAC,IACbA,KAAK,IAAI,CAAC;MACV;MACA;MACAA,KAAK,IAAI,EAAE;IAEf;EACF;AACF,CAAC,EAAE,WAAW,CAAC;AAMf,OAAO,SAASG,YAAYA,CAAEC,KAAwD,EAAiB;EACrG,MAAMC,gBAAgB,GAAGf,QAAQ,CAAC,MAAM;IACtC,MAAMI,SAAS,GAAGH,KAAK,CAACa,KAAK,CAAC,GAAGA,KAAK,CAACJ,KAAK,GAAGI,KAAK,CAACV,SAAS;IAC9D,MAAMY,OAAiB,GAAG,EAAE;IAE5B,IAAIZ,SAAS,IAAI,IAAI,EAAE,OAAOY,OAAO;IAErCA,OAAO,CAACC,IAAI,CAAE,aAAYb,SAAU,EAAC,CAAC;IAEtC,OAAOY,OAAO;EAChB,CAAC,CAAC;EAEF,OAAO;IAAED;EAAiB,CAAC;AAC7B"}
|
116
VApp/node_modules/vuetify/lib/composables/filter.mjs
generated
vendored
Normal file
116
VApp/node_modules/vuetify/lib/composables/filter.mjs
generated
vendored
Normal file
@ -0,0 +1,116 @@
|
||||
/* eslint-disable max-statements */
|
||||
/* eslint-disable no-labels */
|
||||
|
||||
// Utilities
|
||||
import { computed, ref, unref, watchEffect } from 'vue';
|
||||
import { getPropertyFromItem, propsFactory, wrapInArray } from "../util/index.mjs"; // Types
|
||||
/**
|
||||
* - match without highlight
|
||||
* - single match (index), length already known
|
||||
* - single match (start, end)
|
||||
* - multiple matches (start, end), probably shouldn't overlap
|
||||
*/
|
||||
// Composables
|
||||
export const defaultFilter = (value, query, item) => {
|
||||
if (value == null || query == null) return -1;
|
||||
return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase());
|
||||
};
|
||||
export const makeFilterProps = propsFactory({
|
||||
customFilter: Function,
|
||||
customKeyFilter: Object,
|
||||
filterKeys: [Array, String],
|
||||
filterMode: {
|
||||
type: String,
|
||||
default: 'intersection'
|
||||
},
|
||||
noFilter: Boolean
|
||||
}, 'filter');
|
||||
export function filterItems(items, query, options) {
|
||||
const array = [];
|
||||
// always ensure we fall back to a functioning filter
|
||||
const filter = options?.default ?? defaultFilter;
|
||||
const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false;
|
||||
const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length;
|
||||
if (!items?.length) return array;
|
||||
loop: for (let i = 0; i < items.length; i++) {
|
||||
const [item, transformed = item] = wrapInArray(items[i]);
|
||||
const customMatches = {};
|
||||
const defaultMatches = {};
|
||||
let match = -1;
|
||||
if (query && !options?.noFilter) {
|
||||
if (typeof item === 'object') {
|
||||
const filterKeys = keys || Object.keys(transformed);
|
||||
for (const key of filterKeys) {
|
||||
const value = getPropertyFromItem(transformed, key, transformed);
|
||||
const keyFilter = options?.customKeyFilter?.[key];
|
||||
match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);
|
||||
if (match !== -1 && match !== false) {
|
||||
if (keyFilter) customMatches[key] = match;else defaultMatches[key] = match;
|
||||
} else if (options?.filterMode === 'every') {
|
||||
continue loop;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
match = filter(item, query, item);
|
||||
if (match !== -1 && match !== false) {
|
||||
defaultMatches.title = match;
|
||||
}
|
||||
}
|
||||
const defaultMatchesLength = Object.keys(defaultMatches).length;
|
||||
const customMatchesLength = Object.keys(customMatches).length;
|
||||
if (!defaultMatchesLength && !customMatchesLength) continue;
|
||||
if (options?.filterMode === 'union' && customMatchesLength !== customFiltersLength && !defaultMatchesLength) continue;
|
||||
if (options?.filterMode === 'intersection' && (customMatchesLength !== customFiltersLength || !defaultMatchesLength)) continue;
|
||||
}
|
||||
array.push({
|
||||
index: i,
|
||||
matches: {
|
||||
...defaultMatches,
|
||||
...customMatches
|
||||
}
|
||||
});
|
||||
}
|
||||
return array;
|
||||
}
|
||||
export function useFilter(props, items, query, options) {
|
||||
const filteredItems = ref([]);
|
||||
const filteredMatches = ref(new Map());
|
||||
const transformedItems = computed(() => options?.transform ? unref(items).map(item => [item, options.transform(item)]) : unref(items));
|
||||
watchEffect(() => {
|
||||
const _query = typeof query === 'function' ? query() : unref(query);
|
||||
const strQuery = typeof _query !== 'string' && typeof _query !== 'number' ? '' : String(_query);
|
||||
const results = filterItems(transformedItems.value, strQuery, {
|
||||
customKeyFilter: {
|
||||
...props.customKeyFilter,
|
||||
...unref(options?.customKeyFilter)
|
||||
},
|
||||
default: props.customFilter,
|
||||
filterKeys: props.filterKeys,
|
||||
filterMode: props.filterMode,
|
||||
noFilter: props.noFilter
|
||||
});
|
||||
const originalItems = unref(items);
|
||||
const _filteredItems = [];
|
||||
const _filteredMatches = new Map();
|
||||
results.forEach(_ref => {
|
||||
let {
|
||||
index,
|
||||
matches
|
||||
} = _ref;
|
||||
const item = originalItems[index];
|
||||
_filteredItems.push(item);
|
||||
_filteredMatches.set(item.value, matches);
|
||||
});
|
||||
filteredItems.value = _filteredItems;
|
||||
filteredMatches.value = _filteredMatches;
|
||||
});
|
||||
function getMatches(item) {
|
||||
return filteredMatches.value.get(item.value);
|
||||
}
|
||||
return {
|
||||
filteredItems,
|
||||
filteredMatches,
|
||||
getMatches
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=filter.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/filter.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/filter.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
31
VApp/node_modules/vuetify/lib/composables/focus.mjs
generated
vendored
Normal file
31
VApp/node_modules/vuetify/lib/composables/focus.mjs
generated
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
// Composables
|
||||
import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
|
||||
import { computed } from 'vue';
|
||||
import { EventProp, getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeFocusProps = propsFactory({
|
||||
focused: Boolean,
|
||||
'onUpdate:focused': EventProp()
|
||||
}, 'focus');
|
||||
export function useFocus(props) {
|
||||
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
||||
const isFocused = useProxiedModel(props, 'focused');
|
||||
const focusClasses = computed(() => {
|
||||
return {
|
||||
[`${name}--focused`]: isFocused.value
|
||||
};
|
||||
});
|
||||
function focus() {
|
||||
isFocused.value = true;
|
||||
}
|
||||
function blur() {
|
||||
isFocused.value = false;
|
||||
}
|
||||
return {
|
||||
focusClasses,
|
||||
isFocused,
|
||||
focus,
|
||||
blur
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=focus.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/focus.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/focus.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"focus.mjs","names":["useProxiedModel","computed","EventProp","getCurrentInstanceName","propsFactory","makeFocusProps","focused","Boolean","useFocus","props","name","arguments","length","undefined","isFocused","focusClasses","value","focus","blur"],"sources":["../../src/composables/focus.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((focused: boolean) => any) | undefined\n}\n\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp<[boolean]>(),\n}, 'focus')\n\nexport function useFocus (\n props: FocusProps,\n name = getCurrentInstanceName()\n) {\n const isFocused = useProxiedModel(props, 'focused')\n const focusClasses = computed(() => {\n return ({\n [`${name}--focused`]: isFocused.value,\n })\n })\n\n function focus () {\n isFocused.value = true\n }\n\n function blur () {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,8BAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,SAAS,EAAEC,sBAAsB,EAAEC,YAAY,6BAExD;AAMA;AACA,OAAO,MAAMC,cAAc,GAAGD,YAAY,CAAC;EACzCE,OAAO,EAAEC,OAAO;EAChB,kBAAkB,EAAEL,SAAS,CAAY;AAC3C,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,SAASM,QAAQA,CACtBC,KAAiB,EAEjB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGR,sBAAsB,CAAC,CAAC;EAE/B,MAAMW,SAAS,GAAGd,eAAe,CAACS,KAAK,EAAE,SAAS,CAAC;EACnD,MAAMM,YAAY,GAAGd,QAAQ,CAAC,MAAM;IAClC,OAAQ;MACN,CAAE,GAAES,IAAK,WAAU,GAAGI,SAAS,CAACE;IAClC,CAAC;EACH,CAAC,CAAC;EAEF,SAASC,KAAKA,CAAA,EAAI;IAChBH,SAAS,CAACE,KAAK,GAAG,IAAI;EACxB;EAEA,SAASE,IAAIA,CAAA,EAAI;IACfJ,SAAS,CAACE,KAAK,GAAG,KAAK;EACzB;EAEA,OAAO;IAAED,YAAY;IAAED,SAAS;IAAEG,KAAK;IAAEC;EAAK,CAAC;AACjD"}
|
126
VApp/node_modules/vuetify/lib/composables/form.mjs
generated
vendored
Normal file
126
VApp/node_modules/vuetify/lib/composables/form.mjs
generated
vendored
Normal file
@ -0,0 +1,126 @@
|
||||
// Composables
|
||||
import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
|
||||
import { computed, inject, provide, ref, shallowRef, toRef, watch } from 'vue';
|
||||
import { consoleWarn, propsFactory } from "../util/index.mjs"; // Types
|
||||
export const FormKey = Symbol.for('vuetify:form');
|
||||
export const makeFormProps = propsFactory({
|
||||
disabled: Boolean,
|
||||
fastFail: Boolean,
|
||||
readonly: Boolean,
|
||||
modelValue: {
|
||||
type: Boolean,
|
||||
default: null
|
||||
},
|
||||
validateOn: {
|
||||
type: String,
|
||||
default: 'input'
|
||||
}
|
||||
}, 'form');
|
||||
export function createForm(props) {
|
||||
const model = useProxiedModel(props, 'modelValue');
|
||||
const isDisabled = computed(() => props.disabled);
|
||||
const isReadonly = computed(() => props.readonly);
|
||||
const isValidating = shallowRef(false);
|
||||
const items = ref([]);
|
||||
const errors = ref([]);
|
||||
async function validate() {
|
||||
const results = [];
|
||||
let valid = true;
|
||||
errors.value = [];
|
||||
isValidating.value = true;
|
||||
for (const item of items.value) {
|
||||
const itemErrorMessages = await item.validate();
|
||||
if (itemErrorMessages.length > 0) {
|
||||
valid = false;
|
||||
results.push({
|
||||
id: item.id,
|
||||
errorMessages: itemErrorMessages
|
||||
});
|
||||
}
|
||||
if (!valid && props.fastFail) break;
|
||||
}
|
||||
errors.value = results;
|
||||
isValidating.value = false;
|
||||
return {
|
||||
valid,
|
||||
errors: errors.value
|
||||
};
|
||||
}
|
||||
function reset() {
|
||||
items.value.forEach(item => item.reset());
|
||||
}
|
||||
function resetValidation() {
|
||||
items.value.forEach(item => item.resetValidation());
|
||||
}
|
||||
watch(items, () => {
|
||||
let valid = 0;
|
||||
let invalid = 0;
|
||||
const results = [];
|
||||
for (const item of items.value) {
|
||||
if (item.isValid === false) {
|
||||
invalid++;
|
||||
results.push({
|
||||
id: item.id,
|
||||
errorMessages: item.errorMessages
|
||||
});
|
||||
} else if (item.isValid === true) valid++;
|
||||
}
|
||||
errors.value = results;
|
||||
model.value = invalid > 0 ? false : valid === items.value.length ? true : null;
|
||||
}, {
|
||||
deep: true
|
||||
});
|
||||
provide(FormKey, {
|
||||
register: _ref => {
|
||||
let {
|
||||
id,
|
||||
validate,
|
||||
reset,
|
||||
resetValidation
|
||||
} = _ref;
|
||||
if (items.value.some(item => item.id === id)) {
|
||||
consoleWarn(`Duplicate input name "${id}"`);
|
||||
}
|
||||
items.value.push({
|
||||
id,
|
||||
validate,
|
||||
reset,
|
||||
resetValidation,
|
||||
isValid: null,
|
||||
errorMessages: []
|
||||
});
|
||||
},
|
||||
unregister: id => {
|
||||
items.value = items.value.filter(item => {
|
||||
return item.id !== id;
|
||||
});
|
||||
},
|
||||
update: (id, isValid, errorMessages) => {
|
||||
const found = items.value.find(item => item.id === id);
|
||||
if (!found) return;
|
||||
found.isValid = isValid;
|
||||
found.errorMessages = errorMessages;
|
||||
},
|
||||
isDisabled,
|
||||
isReadonly,
|
||||
isValidating,
|
||||
isValid: model,
|
||||
items,
|
||||
validateOn: toRef(props, 'validateOn')
|
||||
});
|
||||
return {
|
||||
errors,
|
||||
isDisabled,
|
||||
isReadonly,
|
||||
isValidating,
|
||||
isValid: model,
|
||||
items,
|
||||
validate,
|
||||
reset,
|
||||
resetValidation
|
||||
};
|
||||
}
|
||||
export function useForm() {
|
||||
return inject(FormKey, null);
|
||||
}
|
||||
//# sourceMappingURL=form.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/form.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/form.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
95
VApp/node_modules/vuetify/lib/composables/forwardRefs.mjs
generated
vendored
Normal file
95
VApp/node_modules/vuetify/lib/composables/forwardRefs.mjs
generated
vendored
Normal file
@ -0,0 +1,95 @@
|
||||
// Types
|
||||
|
||||
const Refs = Symbol('Forwarded refs');
|
||||
|
||||
/** Omit properties starting with P */
|
||||
|
||||
function getDescriptor(obj, key) {
|
||||
let currentObj = obj;
|
||||
while (currentObj) {
|
||||
const descriptor = Reflect.getOwnPropertyDescriptor(currentObj, key);
|
||||
if (descriptor) return descriptor;
|
||||
currentObj = Object.getPrototypeOf(currentObj);
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
export function forwardRefs(target) {
|
||||
for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
||||
refs[_key - 1] = arguments[_key];
|
||||
}
|
||||
target[Refs] = refs;
|
||||
return new Proxy(target, {
|
||||
get(target, key) {
|
||||
if (Reflect.has(target, key)) {
|
||||
return Reflect.get(target, key);
|
||||
}
|
||||
|
||||
// Skip internal properties
|
||||
if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;
|
||||
for (const ref of refs) {
|
||||
if (ref.value && Reflect.has(ref.value, key)) {
|
||||
const val = Reflect.get(ref.value, key);
|
||||
return typeof val === 'function' ? val.bind(ref.value) : val;
|
||||
}
|
||||
}
|
||||
},
|
||||
has(target, key) {
|
||||
if (Reflect.has(target, key)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Skip internal properties
|
||||
if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;
|
||||
for (const ref of refs) {
|
||||
if (ref.value && Reflect.has(ref.value, key)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
set(target, key, value) {
|
||||
if (Reflect.has(target, key)) {
|
||||
return Reflect.set(target, key, value);
|
||||
}
|
||||
|
||||
// Skip internal properties
|
||||
if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return false;
|
||||
for (const ref of refs) {
|
||||
if (ref.value && Reflect.has(ref.value, key)) {
|
||||
return Reflect.set(ref.value, key, value);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
},
|
||||
getOwnPropertyDescriptor(target, key) {
|
||||
const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
|
||||
if (descriptor) return descriptor;
|
||||
|
||||
// Skip internal properties
|
||||
if (typeof key === 'symbol' || key.startsWith('$') || key.startsWith('__')) return;
|
||||
|
||||
// Check each ref's own properties
|
||||
for (const ref of refs) {
|
||||
if (!ref.value) continue;
|
||||
const descriptor = getDescriptor(ref.value, key) ?? ('_' in ref.value ? getDescriptor(ref.value._?.setupState, key) : undefined);
|
||||
if (descriptor) return descriptor;
|
||||
}
|
||||
|
||||
// Recursive search up each ref's prototype
|
||||
for (const ref of refs) {
|
||||
const childRefs = ref.value && ref.value[Refs];
|
||||
if (!childRefs) continue;
|
||||
const queue = childRefs.slice();
|
||||
while (queue.length) {
|
||||
const ref = queue.shift();
|
||||
const descriptor = getDescriptor(ref.value, key);
|
||||
if (descriptor) return descriptor;
|
||||
const childRefs = ref.value && ref.value[Refs];
|
||||
if (childRefs) queue.push(...childRefs);
|
||||
}
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=forwardRefs.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/forwardRefs.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/forwardRefs.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
105
VApp/node_modules/vuetify/lib/composables/goto.mjs
generated
vendored
Normal file
105
VApp/node_modules/vuetify/lib/composables/goto.mjs
generated
vendored
Normal file
@ -0,0 +1,105 @@
|
||||
// Utilities
|
||||
import { inject } from 'vue';
|
||||
import { mergeDeep, refElement } from "../util/index.mjs"; // Types
|
||||
export const GoToSymbol = Symbol.for('vuetify:goto');
|
||||
function genDefaults() {
|
||||
return {
|
||||
container: undefined,
|
||||
duration: 300,
|
||||
layout: false,
|
||||
offset: 0,
|
||||
easing: 'easeInOutCubic',
|
||||
patterns: {
|
||||
linear: t => t,
|
||||
easeInQuad: t => t ** 2,
|
||||
easeOutQuad: t => t * (2 - t),
|
||||
easeInOutQuad: t => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t,
|
||||
easeInCubic: t => t ** 3,
|
||||
easeOutCubic: t => --t ** 3 + 1,
|
||||
easeInOutCubic: t => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1,
|
||||
easeInQuart: t => t ** 4,
|
||||
easeOutQuart: t => 1 - --t ** 4,
|
||||
easeInOutQuart: t => t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4,
|
||||
easeInQuint: t => t ** 5,
|
||||
easeOutQuint: t => 1 + --t ** 5,
|
||||
easeInOutQuint: t => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5
|
||||
}
|
||||
};
|
||||
}
|
||||
function getContainer(el) {
|
||||
return getTarget(el) ?? (document.scrollingElement || document.body);
|
||||
}
|
||||
function getTarget(el) {
|
||||
return typeof el === 'string' ? document.querySelector(el) : refElement(el);
|
||||
}
|
||||
function getOffset(target, horizontal, rtl) {
|
||||
if (typeof target === 'number') return horizontal && rtl ? -target : target;
|
||||
let el = getTarget(target);
|
||||
let totalOffset = 0;
|
||||
while (el) {
|
||||
totalOffset += horizontal ? el.offsetLeft : el.offsetTop;
|
||||
el = el.offsetParent;
|
||||
}
|
||||
return totalOffset;
|
||||
}
|
||||
export function createGoTo(options, locale) {
|
||||
return {
|
||||
rtl: locale.isRtl,
|
||||
options: mergeDeep(genDefaults(), options)
|
||||
};
|
||||
}
|
||||
async function scrollTo(_target, _options, horizontal, goTo) {
|
||||
const options = mergeDeep(goTo?.options, _options);
|
||||
const rtl = goTo?.rtl.value;
|
||||
const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0;
|
||||
const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);
|
||||
const ease = typeof options.easing === 'function' ? options.easing : options.patterns[options.easing];
|
||||
if (!ease) throw new TypeError(`Easing function "${options.easing}" not found.`);
|
||||
let targetLocation;
|
||||
if (typeof target === 'number') {
|
||||
targetLocation = getOffset(target, horizontal, rtl);
|
||||
} else {
|
||||
targetLocation = getOffset(target, horizontal, rtl) - getOffset(container, horizontal, rtl);
|
||||
if (options.layout) {
|
||||
const styles = window.getComputedStyle(target);
|
||||
const layoutOffset = styles.getPropertyValue('--v-layout-top');
|
||||
if (layoutOffset) targetLocation -= parseInt(layoutOffset, 10);
|
||||
}
|
||||
}
|
||||
targetLocation += options.offset;
|
||||
const startLocation = (horizontal ? container.scrollLeft : container.scrollTop) ?? 0;
|
||||
if (targetLocation === startLocation) return Promise.resolve(targetLocation);
|
||||
const startTime = performance.now();
|
||||
return new Promise(resolve => requestAnimationFrame(function step(currentTime) {
|
||||
const timeElapsed = currentTime - startTime;
|
||||
const progress = Math.abs(options.duration ? Math.min(timeElapsed / options.duration, 1) : 1);
|
||||
const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(progress));
|
||||
container[horizontal ? 'scrollLeft' : 'scrollTop'] = location;
|
||||
if (progress === 1) return resolve(targetLocation);
|
||||
let clientSize;
|
||||
let reachEnd;
|
||||
if (!horizontal) {
|
||||
clientSize = container === document.body ? document.documentElement.clientHeight : container.clientHeight;
|
||||
reachEnd = clientSize + container.scrollTop >= container.scrollHeight;
|
||||
if (targetLocation > container.scrollTop && reachEnd) return resolve(targetLocation);
|
||||
} else {
|
||||
clientSize = container === document.body ? document.documentElement.clientWidth : container.clientWidth;
|
||||
reachEnd = clientSize + container.scrollLeft >= container.scrollWidth;
|
||||
if (targetLocation > container.scrollLeft && reachEnd) return resolve(targetLocation);
|
||||
}
|
||||
requestAnimationFrame(step);
|
||||
}));
|
||||
}
|
||||
export function useGoTo() {
|
||||
let _options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
||||
const goTo = inject(GoToSymbol);
|
||||
if (!goTo) throw new Error('[Vuetify] Could not find injected goto instance');
|
||||
async function go(target, options) {
|
||||
return scrollTo(target, mergeDeep(_options, options), false, goTo);
|
||||
}
|
||||
go.horizontal = async (target, options) => {
|
||||
return scrollTo(target, mergeDeep(_options, options), true, goTo);
|
||||
};
|
||||
return go;
|
||||
}
|
||||
//# sourceMappingURL=goto.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/goto.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/goto.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
207
VApp/node_modules/vuetify/lib/composables/group.mjs
generated
vendored
Normal file
207
VApp/node_modules/vuetify/lib/composables/group.mjs
generated
vendored
Normal file
@ -0,0 +1,207 @@
|
||||
// Composables
|
||||
import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
|
||||
import { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, unref, watch } from 'vue';
|
||||
import { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from "../util/index.mjs"; // Types
|
||||
export const makeGroupProps = propsFactory({
|
||||
modelValue: {
|
||||
type: null,
|
||||
default: undefined
|
||||
},
|
||||
multiple: Boolean,
|
||||
mandatory: [Boolean, String],
|
||||
max: Number,
|
||||
selectedClass: String,
|
||||
disabled: Boolean
|
||||
}, 'group');
|
||||
export const makeGroupItemProps = propsFactory({
|
||||
value: null,
|
||||
disabled: Boolean,
|
||||
selectedClass: String
|
||||
}, 'group-item');
|
||||
|
||||
// Composables
|
||||
|
||||
export function useGroupItem(props, injectKey) {
|
||||
let required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
||||
const vm = getCurrentInstance('useGroupItem');
|
||||
if (!vm) {
|
||||
throw new Error('[Vuetify] useGroupItem composable must be used inside a component setup function');
|
||||
}
|
||||
const id = getUid();
|
||||
provide(Symbol.for(`${injectKey.description}:id`), id);
|
||||
const group = inject(injectKey, null);
|
||||
if (!group) {
|
||||
if (!required) return group;
|
||||
throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
|
||||
}
|
||||
const value = toRef(props, 'value');
|
||||
const disabled = computed(() => !!(group.disabled.value || props.disabled));
|
||||
group.register({
|
||||
id,
|
||||
value,
|
||||
disabled
|
||||
}, vm);
|
||||
onBeforeUnmount(() => {
|
||||
group.unregister(id);
|
||||
});
|
||||
const isSelected = computed(() => {
|
||||
return group.isSelected(id);
|
||||
});
|
||||
const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass]);
|
||||
watch(isSelected, value => {
|
||||
vm.emit('group:selected', {
|
||||
value
|
||||
});
|
||||
});
|
||||
return {
|
||||
id,
|
||||
isSelected,
|
||||
toggle: () => group.select(id, !isSelected.value),
|
||||
select: value => group.select(id, value),
|
||||
selectedClass,
|
||||
value,
|
||||
disabled,
|
||||
group
|
||||
};
|
||||
}
|
||||
export function useGroup(props, injectKey) {
|
||||
let isUnmounted = false;
|
||||
const items = reactive([]);
|
||||
const selected = useProxiedModel(props, 'modelValue', [], v => {
|
||||
if (v == null) return [];
|
||||
return getIds(items, wrapInArray(v));
|
||||
}, v => {
|
||||
const arr = getValues(items, v);
|
||||
return props.multiple ? arr : arr[0];
|
||||
});
|
||||
const groupVm = getCurrentInstance('useGroup');
|
||||
function register(item, vm) {
|
||||
// Is there a better way to fix this typing?
|
||||
const unwrapped = item;
|
||||
const key = Symbol.for(`${injectKey.description}:id`);
|
||||
const children = findChildrenWithProvide(key, groupVm?.vnode);
|
||||
const index = children.indexOf(vm);
|
||||
if (unref(unwrapped.value) == null) {
|
||||
unwrapped.value = index;
|
||||
}
|
||||
if (index > -1) {
|
||||
items.splice(index, 0, unwrapped);
|
||||
} else {
|
||||
items.push(unwrapped);
|
||||
}
|
||||
}
|
||||
function unregister(id) {
|
||||
if (isUnmounted) return;
|
||||
|
||||
// TODO: re-evaluate this line's importance in the future
|
||||
// should we only modify the model if mandatory is set.
|
||||
// selected.value = selected.value.filter(v => v !== id)
|
||||
|
||||
forceMandatoryValue();
|
||||
const index = items.findIndex(item => item.id === id);
|
||||
items.splice(index, 1);
|
||||
}
|
||||
|
||||
// If mandatory and nothing is selected, then select first non-disabled item
|
||||
function forceMandatoryValue() {
|
||||
const item = items.find(item => !item.disabled);
|
||||
if (item && props.mandatory === 'force' && !selected.value.length) {
|
||||
selected.value = [item.id];
|
||||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
forceMandatoryValue();
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
isUnmounted = true;
|
||||
});
|
||||
function select(id, value) {
|
||||
const item = items.find(item => item.id === id);
|
||||
if (value && item?.disabled) return;
|
||||
if (props.multiple) {
|
||||
const internalValue = selected.value.slice();
|
||||
const index = internalValue.findIndex(v => v === id);
|
||||
const isSelected = ~index;
|
||||
value = value ?? !isSelected;
|
||||
|
||||
// We can't remove value if group is
|
||||
// mandatory, value already exists,
|
||||
// and it is the only value
|
||||
if (isSelected && props.mandatory && internalValue.length <= 1) return;
|
||||
|
||||
// We can't add value if it would
|
||||
// cause max limit to be exceeded
|
||||
if (!isSelected && props.max != null && internalValue.length + 1 > props.max) return;
|
||||
if (index < 0 && value) internalValue.push(id);else if (index >= 0 && !value) internalValue.splice(index, 1);
|
||||
selected.value = internalValue;
|
||||
} else {
|
||||
const isSelected = selected.value.includes(id);
|
||||
if (props.mandatory && isSelected) return;
|
||||
selected.value = value ?? !isSelected ? [id] : [];
|
||||
}
|
||||
}
|
||||
function step(offset) {
|
||||
// getting an offset from selected value obviously won't work with multiple values
|
||||
if (props.multiple) consoleWarn('This method is not supported when using "multiple" prop');
|
||||
if (!selected.value.length) {
|
||||
const item = items.find(item => !item.disabled);
|
||||
item && (selected.value = [item.id]);
|
||||
} else {
|
||||
const currentId = selected.value[0];
|
||||
const currentIndex = items.findIndex(i => i.id === currentId);
|
||||
let newIndex = (currentIndex + offset) % items.length;
|
||||
let newItem = items[newIndex];
|
||||
while (newItem.disabled && newIndex !== currentIndex) {
|
||||
newIndex = (newIndex + offset) % items.length;
|
||||
newItem = items[newIndex];
|
||||
}
|
||||
if (newItem.disabled) return;
|
||||
selected.value = [items[newIndex].id];
|
||||
}
|
||||
}
|
||||
const state = {
|
||||
register,
|
||||
unregister,
|
||||
selected,
|
||||
select,
|
||||
disabled: toRef(props, 'disabled'),
|
||||
prev: () => step(items.length - 1),
|
||||
next: () => step(1),
|
||||
isSelected: id => selected.value.includes(id),
|
||||
selectedClass: computed(() => props.selectedClass),
|
||||
items: computed(() => items),
|
||||
getItemIndex: value => getItemIndex(items, value)
|
||||
};
|
||||
provide(injectKey, state);
|
||||
return state;
|
||||
}
|
||||
function getItemIndex(items, value) {
|
||||
const ids = getIds(items, [value]);
|
||||
if (!ids.length) return -1;
|
||||
return items.findIndex(item => item.id === ids[0]);
|
||||
}
|
||||
function getIds(items, modelValue) {
|
||||
const ids = [];
|
||||
modelValue.forEach(value => {
|
||||
const item = items.find(item => deepEqual(value, item.value));
|
||||
const itemByIndex = items[value];
|
||||
if (item?.value != null) {
|
||||
ids.push(item.id);
|
||||
} else if (itemByIndex != null) {
|
||||
ids.push(itemByIndex.id);
|
||||
}
|
||||
});
|
||||
return ids;
|
||||
}
|
||||
function getValues(items, ids) {
|
||||
const values = [];
|
||||
ids.forEach(id => {
|
||||
const itemIndex = items.findIndex(item => item.id === id);
|
||||
if (~itemIndex) {
|
||||
const item = items[itemIndex];
|
||||
values.push(item.value != null ? item.value : itemIndex);
|
||||
}
|
||||
});
|
||||
return values;
|
||||
}
|
||||
//# sourceMappingURL=group.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/group.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/group.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
20
VApp/node_modules/vuetify/lib/composables/hydration.mjs
generated
vendored
Normal file
20
VApp/node_modules/vuetify/lib/composables/hydration.mjs
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
// Composables
|
||||
import { useDisplay } from "./display.mjs"; // Utilities
|
||||
import { onMounted, shallowRef } from 'vue';
|
||||
import { IN_BROWSER } from "../util/index.mjs";
|
||||
export function useHydration() {
|
||||
if (!IN_BROWSER) return shallowRef(false);
|
||||
const {
|
||||
ssr
|
||||
} = useDisplay();
|
||||
if (ssr) {
|
||||
const isMounted = shallowRef(false);
|
||||
onMounted(() => {
|
||||
isMounted.value = true;
|
||||
});
|
||||
return isMounted;
|
||||
} else {
|
||||
return shallowRef(true);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=hydration.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/hydration.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/hydration.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"hydration.mjs","names":["useDisplay","onMounted","shallowRef","IN_BROWSER","useHydration","ssr","isMounted","value"],"sources":["../../src/composables/hydration.ts"],"sourcesContent":["// Composables\nimport { useDisplay } from '@/composables/display'\n\n// Utilities\nimport { onMounted, shallowRef } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\nexport function useHydration () {\n if (!IN_BROWSER) return shallowRef(false)\n\n const { ssr } = useDisplay()\n\n if (ssr) {\n const isMounted = shallowRef(false)\n onMounted(() => {\n isMounted.value = true\n })\n return isMounted\n } else {\n return shallowRef(true)\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,UAAU,yBAEnB;AACA,SAASC,SAAS,EAAEC,UAAU,QAAQ,KAAK;AAAA,SAClCC,UAAU;AAEnB,OAAO,SAASC,YAAYA,CAAA,EAAI;EAC9B,IAAI,CAACD,UAAU,EAAE,OAAOD,UAAU,CAAC,KAAK,CAAC;EAEzC,MAAM;IAAEG;EAAI,CAAC,GAAGL,UAAU,CAAC,CAAC;EAE5B,IAAIK,GAAG,EAAE;IACP,MAAMC,SAAS,GAAGJ,UAAU,CAAC,KAAK,CAAC;IACnCD,SAAS,CAAC,MAAM;MACdK,SAAS,CAACC,KAAK,GAAG,IAAI;IACxB,CAAC,CAAC;IACF,OAAOD,SAAS;EAClB,CAAC,MAAM;IACL,OAAOJ,UAAU,CAAC,IAAI,CAAC;EACzB;AACF"}
|
150
VApp/node_modules/vuetify/lib/composables/icons.mjs
generated
vendored
Normal file
150
VApp/node_modules/vuetify/lib/composables/icons.mjs
generated
vendored
Normal file
@ -0,0 +1,150 @@
|
||||
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
||||
// Icons
|
||||
import { aliases, mdi } from "../iconsets/mdi.mjs"; // Utilities
|
||||
import { computed, inject, unref } from 'vue';
|
||||
import { defineComponent, genericComponent, mergeDeep, propsFactory } from "../util/index.mjs"; // Types
|
||||
export const IconValue = [String, Function, Object, Array];
|
||||
export const IconSymbol = Symbol.for('vuetify:icons');
|
||||
export const makeIconProps = propsFactory({
|
||||
icon: {
|
||||
type: IconValue
|
||||
},
|
||||
// Could not remove this and use makeTagProps, types complained because it is not required
|
||||
tag: {
|
||||
type: String,
|
||||
required: true
|
||||
}
|
||||
}, 'icon');
|
||||
export const VComponentIcon = genericComponent()({
|
||||
name: 'VComponentIcon',
|
||||
props: makeIconProps(),
|
||||
setup(props, _ref) {
|
||||
let {
|
||||
slots
|
||||
} = _ref;
|
||||
return () => {
|
||||
const Icon = props.icon;
|
||||
return _createVNode(props.tag, null, {
|
||||
default: () => [props.icon ? _createVNode(Icon, null, null) : slots.default?.()]
|
||||
});
|
||||
};
|
||||
}
|
||||
});
|
||||
export const VSvgIcon = defineComponent({
|
||||
name: 'VSvgIcon',
|
||||
inheritAttrs: false,
|
||||
props: makeIconProps(),
|
||||
setup(props, _ref2) {
|
||||
let {
|
||||
attrs
|
||||
} = _ref2;
|
||||
return () => {
|
||||
return _createVNode(props.tag, _mergeProps(attrs, {
|
||||
"style": null
|
||||
}), {
|
||||
default: () => [_createVNode("svg", {
|
||||
"class": "v-icon__svg",
|
||||
"xmlns": "http://www.w3.org/2000/svg",
|
||||
"viewBox": "0 0 24 24",
|
||||
"role": "img",
|
||||
"aria-hidden": "true"
|
||||
}, [Array.isArray(props.icon) ? props.icon.map(path => Array.isArray(path) ? _createVNode("path", {
|
||||
"d": path[0],
|
||||
"fill-opacity": path[1]
|
||||
}, null) : _createVNode("path", {
|
||||
"d": path
|
||||
}, null)) : _createVNode("path", {
|
||||
"d": props.icon
|
||||
}, null)])]
|
||||
});
|
||||
};
|
||||
}
|
||||
});
|
||||
export const VLigatureIcon = defineComponent({
|
||||
name: 'VLigatureIcon',
|
||||
props: makeIconProps(),
|
||||
setup(props) {
|
||||
return () => {
|
||||
return _createVNode(props.tag, null, {
|
||||
default: () => [props.icon]
|
||||
});
|
||||
};
|
||||
}
|
||||
});
|
||||
export const VClassIcon = defineComponent({
|
||||
name: 'VClassIcon',
|
||||
props: makeIconProps(),
|
||||
setup(props) {
|
||||
return () => {
|
||||
return _createVNode(props.tag, {
|
||||
"class": props.icon
|
||||
}, null);
|
||||
};
|
||||
}
|
||||
});
|
||||
export const defaultSets = {
|
||||
svg: {
|
||||
component: VSvgIcon
|
||||
},
|
||||
class: {
|
||||
component: VClassIcon
|
||||
}
|
||||
};
|
||||
|
||||
// Composables
|
||||
export function createIcons(options) {
|
||||
return mergeDeep({
|
||||
defaultSet: 'mdi',
|
||||
sets: {
|
||||
...defaultSets,
|
||||
mdi
|
||||
},
|
||||
aliases: {
|
||||
...aliases,
|
||||
/* eslint-disable max-len */
|
||||
vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],
|
||||
'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z'
|
||||
/* eslint-enable max-len */
|
||||
}
|
||||
}, options);
|
||||
}
|
||||
export const useIcon = props => {
|
||||
const icons = inject(IconSymbol);
|
||||
if (!icons) throw new Error('Missing Vuetify Icons provide!');
|
||||
const iconData = computed(() => {
|
||||
const iconAlias = unref(props);
|
||||
if (!iconAlias) return {
|
||||
component: VComponentIcon
|
||||
};
|
||||
let icon = iconAlias;
|
||||
if (typeof icon === 'string') {
|
||||
icon = icon.trim();
|
||||
if (icon.startsWith('$')) {
|
||||
icon = icons.aliases?.[icon.slice(1)];
|
||||
}
|
||||
}
|
||||
if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
|
||||
if (Array.isArray(icon)) {
|
||||
return {
|
||||
component: VSvgIcon,
|
||||
icon
|
||||
};
|
||||
} else if (typeof icon !== 'string') {
|
||||
return {
|
||||
component: VComponentIcon,
|
||||
icon
|
||||
};
|
||||
}
|
||||
const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));
|
||||
const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;
|
||||
const iconSet = icons.sets[iconSetName ?? icons.defaultSet];
|
||||
return {
|
||||
component: iconSet.component,
|
||||
icon: iconName
|
||||
};
|
||||
});
|
||||
return {
|
||||
iconData
|
||||
};
|
||||
};
|
||||
//# sourceMappingURL=icons.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/icons.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/icons.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
12
VApp/node_modules/vuetify/lib/composables/index.mjs
generated
vendored
Normal file
12
VApp/node_modules/vuetify/lib/composables/index.mjs
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
/*
|
||||
* PUBLIC INTERFACES ONLY
|
||||
* Imports in our code should be to the composable directly, not this file
|
||||
*/
|
||||
export { useDate } from "./date/index.mjs";
|
||||
export { useDefaults } from "./defaults.mjs";
|
||||
export { useDisplay } from "./display.mjs";
|
||||
export { useGoTo } from "./goto.mjs";
|
||||
export { useLayout } from "./layout.mjs";
|
||||
export { useLocale, useRtl } from "./locale.mjs";
|
||||
export { useTheme } from "./theme.mjs";
|
||||
//# sourceMappingURL=index.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/index.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/index.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"index.mjs","names":["useDate","useDefaults","useDisplay","useGoTo","useLayout","useLocale","useRtl","useTheme"],"sources":["../../src/composables/index.ts"],"sourcesContent":["/*\n * PUBLIC INTERFACES ONLY\n * Imports in our code should be to the composable directly, not this file\n */\n\nexport { useDate } from './date'\nexport { useDefaults } from './defaults'\nexport { useDisplay } from './display'\nexport { useGoTo } from './goto'\nexport { useLayout } from './layout'\nexport { useLocale, useRtl } from './locale'\nexport { useTheme } from './theme'\n\nexport type { DateInstance } from './date'\nexport type { DefaultsInstance } from './defaults'\nexport type { DisplayBreakpoint, DisplayInstance, DisplayThresholds } from './display'\nexport type { SubmitEventPromise } from './form'\nexport type { GoToInstance } from './goto'\nexport type { IconAliases, IconProps, IconSet, IconOptions } from './icons'\nexport type { LocaleInstance, LocaleMessages, RtlInstance, LocaleOptions, RtlOptions } from './locale'\nexport type { ThemeDefinition, ThemeInstance } from './theme'\n"],"mappings":"AAAA;AACA;AACA;AACA;AAHA,SAKSA,OAAO;AAAA,SACPC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,OAAO;AAAA,SACPC,SAAS;AAAA,SACTC,SAAS,EAAEC,MAAM;AAAA,SACjBC,QAAQ"}
|
30
VApp/node_modules/vuetify/lib/composables/intersectionObserver.mjs
generated
vendored
Normal file
30
VApp/node_modules/vuetify/lib/composables/intersectionObserver.mjs
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
// Utilities
|
||||
import { onBeforeUnmount, ref, shallowRef, watch } from 'vue';
|
||||
import { SUPPORTS_INTERSECTION } from "../util/index.mjs";
|
||||
export function useIntersectionObserver(callback, options) {
|
||||
const intersectionRef = ref();
|
||||
const isIntersecting = shallowRef(false);
|
||||
if (SUPPORTS_INTERSECTION) {
|
||||
const observer = new IntersectionObserver(entries => {
|
||||
callback?.(entries, observer);
|
||||
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
||||
}, options);
|
||||
onBeforeUnmount(() => {
|
||||
observer.disconnect();
|
||||
});
|
||||
watch(intersectionRef, (newValue, oldValue) => {
|
||||
if (oldValue) {
|
||||
observer.unobserve(oldValue);
|
||||
isIntersecting.value = false;
|
||||
}
|
||||
if (newValue) observer.observe(newValue);
|
||||
}, {
|
||||
flush: 'post'
|
||||
});
|
||||
}
|
||||
return {
|
||||
intersectionRef,
|
||||
isIntersecting
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=intersectionObserver.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/intersectionObserver.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/intersectionObserver.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"intersectionObserver.mjs","names":["onBeforeUnmount","ref","shallowRef","watch","SUPPORTS_INTERSECTION","useIntersectionObserver","callback","options","intersectionRef","isIntersecting","observer","IntersectionObserver","entries","value","find","entry","disconnect","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/intersectionObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, ref, shallowRef, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback, options?: IntersectionObserverInit) {\n const intersectionRef = ref<HTMLElement>()\n const isIntersecting = shallowRef(false)\n\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n callback?.(entries, observer)\n\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting)\n }, options)\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n isIntersecting.value = false\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return { intersectionRef, isIntersecting }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACpDC,qBAAqB;AAE9B,OAAO,SAASC,uBAAuBA,CAAEC,QAAuC,EAAEC,OAAkC,EAAE;EACpH,MAAMC,eAAe,GAAGP,GAAG,CAAc,CAAC;EAC1C,MAAMQ,cAAc,GAAGP,UAAU,CAAC,KAAK,CAAC;EAExC,IAAIE,qBAAqB,EAAE;IACzB,MAAMM,QAAQ,GAAG,IAAIC,oBAAoB,CAAEC,OAAoC,IAAK;MAClFN,QAAQ,GAAGM,OAAO,EAAEF,QAAQ,CAAC;MAE7BD,cAAc,CAACI,KAAK,GAAG,CAAC,CAACD,OAAO,CAACE,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACN,cAAc,CAAC;IACtE,CAAC,EAAEF,OAAO,CAAC;IAEXP,eAAe,CAAC,MAAM;MACpBU,QAAQ,CAACM,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFb,KAAK,CAACK,eAAe,EAAE,CAACS,QAAQ,EAAEC,QAAQ,KAAK;MAC7C,IAAIA,QAAQ,EAAE;QACZR,QAAQ,CAACS,SAAS,CAACD,QAAQ,CAAC;QAC5BT,cAAc,CAACI,KAAK,GAAG,KAAK;MAC9B;MAEA,IAAII,QAAQ,EAAEP,QAAQ,CAACU,OAAO,CAACH,QAAQ,CAAC;IAC1C,CAAC,EAAE;MACDI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IAAEb,eAAe;IAAEC;EAAe,CAAC;AAC5C"}
|
272
VApp/node_modules/vuetify/lib/composables/layout.mjs
generated
vendored
Normal file
272
VApp/node_modules/vuetify/lib/composables/layout.mjs
generated
vendored
Normal file
@ -0,0 +1,272 @@
|
||||
// Composables
|
||||
import { useResizeObserver } from "./resizeObserver.mjs"; // Utilities
|
||||
import { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref, shallowRef } from 'vue';
|
||||
import { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from "../util/index.mjs"; // Types
|
||||
export const VuetifyLayoutKey = Symbol.for('vuetify:layout');
|
||||
export const VuetifyLayoutItemKey = Symbol.for('vuetify:layout-item');
|
||||
const ROOT_ZINDEX = 1000;
|
||||
export const makeLayoutProps = propsFactory({
|
||||
overlaps: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
fullHeight: Boolean
|
||||
}, 'layout');
|
||||
|
||||
// Composables
|
||||
export const makeLayoutItemProps = propsFactory({
|
||||
name: {
|
||||
type: String
|
||||
},
|
||||
order: {
|
||||
type: [Number, String],
|
||||
default: 0
|
||||
},
|
||||
absolute: Boolean
|
||||
}, 'layout-item');
|
||||
export function useLayout() {
|
||||
const layout = inject(VuetifyLayoutKey);
|
||||
if (!layout) throw new Error('[Vuetify] Could not find injected layout');
|
||||
return {
|
||||
getLayoutItem: layout.getLayoutItem,
|
||||
mainRect: layout.mainRect,
|
||||
mainStyles: layout.mainStyles
|
||||
};
|
||||
}
|
||||
export function useLayoutItem(options) {
|
||||
const layout = inject(VuetifyLayoutKey);
|
||||
if (!layout) throw new Error('[Vuetify] Could not find injected layout');
|
||||
const id = options.id ?? `layout-item-${getUid()}`;
|
||||
const vm = getCurrentInstance('useLayoutItem');
|
||||
provide(VuetifyLayoutItemKey, {
|
||||
id
|
||||
});
|
||||
const isKeptAlive = shallowRef(false);
|
||||
onDeactivated(() => isKeptAlive.value = true);
|
||||
onActivated(() => isKeptAlive.value = false);
|
||||
const {
|
||||
layoutItemStyles,
|
||||
layoutItemScrimStyles
|
||||
} = layout.register(vm, {
|
||||
...options,
|
||||
active: computed(() => isKeptAlive.value ? false : options.active.value),
|
||||
id
|
||||
});
|
||||
onBeforeUnmount(() => layout.unregister(id));
|
||||
return {
|
||||
layoutItemStyles,
|
||||
layoutRect: layout.layoutRect,
|
||||
layoutItemScrimStyles
|
||||
};
|
||||
}
|
||||
const generateLayers = (layout, positions, layoutSizes, activeItems) => {
|
||||
let previousLayer = {
|
||||
top: 0,
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0
|
||||
};
|
||||
const layers = [{
|
||||
id: '',
|
||||
layer: {
|
||||
...previousLayer
|
||||
}
|
||||
}];
|
||||
for (const id of layout) {
|
||||
const position = positions.get(id);
|
||||
const amount = layoutSizes.get(id);
|
||||
const active = activeItems.get(id);
|
||||
if (!position || !amount || !active) continue;
|
||||
const layer = {
|
||||
...previousLayer,
|
||||
[position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0)
|
||||
};
|
||||
layers.push({
|
||||
id,
|
||||
layer
|
||||
});
|
||||
previousLayer = layer;
|
||||
}
|
||||
return layers;
|
||||
};
|
||||
export function createLayout(props) {
|
||||
const parentLayout = inject(VuetifyLayoutKey, null);
|
||||
const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX);
|
||||
const registered = ref([]);
|
||||
const positions = reactive(new Map());
|
||||
const layoutSizes = reactive(new Map());
|
||||
const priorities = reactive(new Map());
|
||||
const activeItems = reactive(new Map());
|
||||
const disabledTransitions = reactive(new Map());
|
||||
const {
|
||||
resizeRef,
|
||||
contentRect: layoutRect
|
||||
} = useResizeObserver();
|
||||
const computedOverlaps = computed(() => {
|
||||
const map = new Map();
|
||||
const overlaps = props.overlaps ?? [];
|
||||
for (const overlap of overlaps.filter(item => item.includes(':'))) {
|
||||
const [top, bottom] = overlap.split(':');
|
||||
if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;
|
||||
const topPosition = positions.get(top);
|
||||
const bottomPosition = positions.get(bottom);
|
||||
const topAmount = layoutSizes.get(top);
|
||||
const bottomAmount = layoutSizes.get(bottom);
|
||||
if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;
|
||||
map.set(bottom, {
|
||||
position: topPosition.value,
|
||||
amount: parseInt(topAmount.value, 10)
|
||||
});
|
||||
map.set(top, {
|
||||
position: bottomPosition.value,
|
||||
amount: -parseInt(bottomAmount.value, 10)
|
||||
});
|
||||
}
|
||||
return map;
|
||||
});
|
||||
const layers = computed(() => {
|
||||
const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);
|
||||
const layout = [];
|
||||
for (const p of uniquePriorities) {
|
||||
const items = registered.value.filter(id => priorities.get(id)?.value === p);
|
||||
layout.push(...items);
|
||||
}
|
||||
return generateLayers(layout, positions, layoutSizes, activeItems);
|
||||
});
|
||||
const transitionsEnabled = computed(() => {
|
||||
return !Array.from(disabledTransitions.values()).some(ref => ref.value);
|
||||
});
|
||||
const mainRect = computed(() => {
|
||||
return layers.value[layers.value.length - 1].layer;
|
||||
});
|
||||
const mainStyles = computed(() => {
|
||||
return {
|
||||
'--v-layout-left': convertToUnit(mainRect.value.left),
|
||||
'--v-layout-right': convertToUnit(mainRect.value.right),
|
||||
'--v-layout-top': convertToUnit(mainRect.value.top),
|
||||
'--v-layout-bottom': convertToUnit(mainRect.value.bottom),
|
||||
...(transitionsEnabled.value ? undefined : {
|
||||
transition: 'none'
|
||||
})
|
||||
};
|
||||
});
|
||||
const items = computed(() => {
|
||||
return layers.value.slice(1).map((_ref, index) => {
|
||||
let {
|
||||
id
|
||||
} = _ref;
|
||||
const {
|
||||
layer
|
||||
} = layers.value[index];
|
||||
const size = layoutSizes.get(id);
|
||||
const position = positions.get(id);
|
||||
return {
|
||||
id,
|
||||
...layer,
|
||||
size: Number(size.value),
|
||||
position: position.value
|
||||
};
|
||||
});
|
||||
});
|
||||
const getLayoutItem = id => {
|
||||
return items.value.find(item => item.id === id);
|
||||
};
|
||||
const rootVm = getCurrentInstance('createLayout');
|
||||
const isMounted = shallowRef(false);
|
||||
onMounted(() => {
|
||||
isMounted.value = true;
|
||||
});
|
||||
provide(VuetifyLayoutKey, {
|
||||
register: (vm, _ref2) => {
|
||||
let {
|
||||
id,
|
||||
order,
|
||||
position,
|
||||
layoutSize,
|
||||
elementSize,
|
||||
active,
|
||||
disableTransitions,
|
||||
absolute
|
||||
} = _ref2;
|
||||
priorities.set(id, order);
|
||||
positions.set(id, position);
|
||||
layoutSizes.set(id, layoutSize);
|
||||
activeItems.set(id, active);
|
||||
disableTransitions && disabledTransitions.set(id, disableTransitions);
|
||||
const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode);
|
||||
const instanceIndex = instances.indexOf(vm);
|
||||
if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id);else registered.value.push(id);
|
||||
const index = computed(() => items.value.findIndex(i => i.id === id));
|
||||
const zIndex = computed(() => rootZIndex.value + layers.value.length * 2 - index.value * 2);
|
||||
const layoutItemStyles = computed(() => {
|
||||
const isHorizontal = position.value === 'left' || position.value === 'right';
|
||||
const isOppositeHorizontal = position.value === 'right';
|
||||
const isOppositeVertical = position.value === 'bottom';
|
||||
const styles = {
|
||||
[position.value]: 0,
|
||||
zIndex: zIndex.value,
|
||||
transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -110) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}%)`,
|
||||
position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',
|
||||
...(transitionsEnabled.value ? undefined : {
|
||||
transition: 'none'
|
||||
})
|
||||
};
|
||||
if (!isMounted.value) return styles;
|
||||
const item = items.value[index.value];
|
||||
if (!item) throw new Error(`[Vuetify] Could not find layout item "${id}"`);
|
||||
const overlap = computedOverlaps.value.get(id);
|
||||
if (overlap) {
|
||||
item[overlap.position] += overlap.amount;
|
||||
}
|
||||
return {
|
||||
...styles,
|
||||
height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,
|
||||
left: isOppositeHorizontal ? undefined : `${item.left}px`,
|
||||
right: isOppositeHorizontal ? `${item.right}px` : undefined,
|
||||
top: position.value !== 'bottom' ? `${item.top}px` : undefined,
|
||||
bottom: position.value !== 'top' ? `${item.bottom}px` : undefined,
|
||||
width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined
|
||||
};
|
||||
});
|
||||
const layoutItemScrimStyles = computed(() => ({
|
||||
zIndex: zIndex.value - 1
|
||||
}));
|
||||
return {
|
||||
layoutItemStyles,
|
||||
layoutItemScrimStyles,
|
||||
zIndex
|
||||
};
|
||||
},
|
||||
unregister: id => {
|
||||
priorities.delete(id);
|
||||
positions.delete(id);
|
||||
layoutSizes.delete(id);
|
||||
activeItems.delete(id);
|
||||
disabledTransitions.delete(id);
|
||||
registered.value = registered.value.filter(v => v !== id);
|
||||
},
|
||||
mainRect,
|
||||
mainStyles,
|
||||
getLayoutItem,
|
||||
items,
|
||||
layoutRect,
|
||||
rootZIndex
|
||||
});
|
||||
const layoutClasses = computed(() => ['v-layout', {
|
||||
'v-layout--full-height': props.fullHeight
|
||||
}]);
|
||||
const layoutStyles = computed(() => ({
|
||||
zIndex: parentLayout ? rootZIndex.value : undefined,
|
||||
position: parentLayout ? 'relative' : undefined,
|
||||
overflow: parentLayout ? 'hidden' : undefined
|
||||
}));
|
||||
return {
|
||||
layoutClasses,
|
||||
layoutStyles,
|
||||
getLayoutItem,
|
||||
items,
|
||||
layoutRect,
|
||||
layoutRef: resizeRef
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=layout.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/layout.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/layout.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
20
VApp/node_modules/vuetify/lib/composables/lazy.mjs
generated
vendored
Normal file
20
VApp/node_modules/vuetify/lib/composables/lazy.mjs
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
// Utilities
|
||||
import { computed, shallowRef, watch } from 'vue';
|
||||
import { propsFactory } from "../util/index.mjs"; // Types
|
||||
export const makeLazyProps = propsFactory({
|
||||
eager: Boolean
|
||||
}, 'lazy');
|
||||
export function useLazy(props, active) {
|
||||
const isBooted = shallowRef(false);
|
||||
const hasContent = computed(() => isBooted.value || props.eager || active.value);
|
||||
watch(active, () => isBooted.value = true);
|
||||
function onAfterLeave() {
|
||||
if (!props.eager) isBooted.value = false;
|
||||
}
|
||||
return {
|
||||
isBooted,
|
||||
hasContent,
|
||||
onAfterLeave
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=lazy.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/lazy.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/lazy.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"lazy.mjs","names":["computed","shallowRef","watch","propsFactory","makeLazyProps","eager","Boolean","useLazy","props","active","isBooted","hasContent","value","onAfterLeave"],"sources":["../../src/composables/lazy.ts"],"sourcesContent":["// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport const makeLazyProps = propsFactory({\n eager: Boolean,\n}, 'lazy')\n\nexport function useLazy (props: { eager: boolean }, active: Ref<boolean>) {\n const isBooted = shallowRef(false)\n const hasContent = computed(() => isBooted.value || props.eager || active.value)\n\n watch(active, () => isBooted.value = true)\n\n function onAfterLeave () {\n if (!props.eager) isBooted.value = false\n }\n\n return { isBooted, hasContent, onAfterLeave }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACxCC,YAAY,6BAErB;AAGA,OAAO,MAAMC,aAAa,GAAGD,YAAY,CAAC;EACxCE,KAAK,EAAEC;AACT,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,SAASC,OAAOA,CAAEC,KAAyB,EAAEC,MAAoB,EAAE;EACxE,MAAMC,QAAQ,GAAGT,UAAU,CAAC,KAAK,CAAC;EAClC,MAAMU,UAAU,GAAGX,QAAQ,CAAC,MAAMU,QAAQ,CAACE,KAAK,IAAIJ,KAAK,CAACH,KAAK,IAAII,MAAM,CAACG,KAAK,CAAC;EAEhFV,KAAK,CAACO,MAAM,EAAE,MAAMC,QAAQ,CAACE,KAAK,GAAG,IAAI,CAAC;EAE1C,SAASC,YAAYA,CAAA,EAAI;IACvB,IAAI,CAACL,KAAK,CAACH,KAAK,EAAEK,QAAQ,CAACE,KAAK,GAAG,KAAK;EAC1C;EAEA,OAAO;IAAEF,QAAQ;IAAEC,UAAU;IAAEE;EAAa,CAAC;AAC/C"}
|
94
VApp/node_modules/vuetify/lib/composables/list-items.mjs
generated
vendored
Normal file
94
VApp/node_modules/vuetify/lib/composables/list-items.mjs
generated
vendored
Normal file
@ -0,0 +1,94 @@
|
||||
// Utilities
|
||||
import { computed } from 'vue';
|
||||
import { deepEqual, getPropertyFromItem, omit, propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeItemsProps = propsFactory({
|
||||
items: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
},
|
||||
itemTitle: {
|
||||
type: [String, Array, Function],
|
||||
default: 'title'
|
||||
},
|
||||
itemValue: {
|
||||
type: [String, Array, Function],
|
||||
default: 'value'
|
||||
},
|
||||
itemChildren: {
|
||||
type: [Boolean, String, Array, Function],
|
||||
default: 'children'
|
||||
},
|
||||
itemProps: {
|
||||
type: [Boolean, String, Array, Function],
|
||||
default: 'props'
|
||||
},
|
||||
returnObject: Boolean,
|
||||
valueComparator: {
|
||||
type: Function,
|
||||
default: deepEqual
|
||||
}
|
||||
}, 'list-items');
|
||||
export function transformItem(props, item) {
|
||||
const title = getPropertyFromItem(item, props.itemTitle, item);
|
||||
const value = getPropertyFromItem(item, props.itemValue, title);
|
||||
const children = getPropertyFromItem(item, props.itemChildren);
|
||||
const itemProps = props.itemProps === true ? typeof item === 'object' && item != null && !Array.isArray(item) ? 'children' in item ? omit(item, ['children']) : item : undefined : getPropertyFromItem(item, props.itemProps);
|
||||
const _props = {
|
||||
title,
|
||||
value,
|
||||
...itemProps
|
||||
};
|
||||
return {
|
||||
title: String(_props.title ?? ''),
|
||||
value: _props.value,
|
||||
props: _props,
|
||||
children: Array.isArray(children) ? transformItems(props, children) : undefined,
|
||||
raw: item
|
||||
};
|
||||
}
|
||||
export function transformItems(props, items) {
|
||||
const array = [];
|
||||
for (const item of items) {
|
||||
array.push(transformItem(props, item));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
export function useItems(props) {
|
||||
const items = computed(() => transformItems(props, props.items));
|
||||
const hasNullItem = computed(() => items.value.some(item => item.value === null));
|
||||
function transformIn(value) {
|
||||
if (!hasNullItem.value) {
|
||||
// When the model value is null, return an InternalItem
|
||||
// based on null only if null is one of the items
|
||||
value = value.filter(v => v !== null);
|
||||
}
|
||||
return value.map(v => {
|
||||
if (props.returnObject && typeof v === 'string') {
|
||||
// String model value means value is a custom input value from combobox
|
||||
// Don't look up existing items if the model value is a string
|
||||
return transformItem(props, v);
|
||||
}
|
||||
return items.value.find(item => props.valueComparator(v, item.value)) || transformItem(props, v);
|
||||
});
|
||||
}
|
||||
function transformOut(value) {
|
||||
return props.returnObject ? value.map(_ref => {
|
||||
let {
|
||||
raw
|
||||
} = _ref;
|
||||
return raw;
|
||||
}) : value.map(_ref2 => {
|
||||
let {
|
||||
value
|
||||
} = _ref2;
|
||||
return value;
|
||||
});
|
||||
}
|
||||
return {
|
||||
items,
|
||||
transformIn,
|
||||
transformOut
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=list-items.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/list-items.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/list-items.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
36
VApp/node_modules/vuetify/lib/composables/loader.mjs
generated
vendored
Normal file
36
VApp/node_modules/vuetify/lib/composables/loader.mjs
generated
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
import { createVNode as _createVNode } from "vue";
|
||||
// Components
|
||||
import { VProgressLinear } from "../components/VProgressLinear/index.mjs"; // Utilities
|
||||
import { computed } from 'vue';
|
||||
import { getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeLoaderProps = propsFactory({
|
||||
loading: [Boolean, String]
|
||||
}, 'loader');
|
||||
export function useLoader(props) {
|
||||
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
||||
const loaderClasses = computed(() => ({
|
||||
[`${name}--loading`]: props.loading
|
||||
}));
|
||||
return {
|
||||
loaderClasses
|
||||
};
|
||||
}
|
||||
export function LoaderSlot(props, _ref) {
|
||||
let {
|
||||
slots
|
||||
} = _ref;
|
||||
return _createVNode("div", {
|
||||
"class": `${props.name}__loader`
|
||||
}, [slots.default?.({
|
||||
color: props.color,
|
||||
isActive: props.active
|
||||
}) || _createVNode(VProgressLinear, {
|
||||
"absolute": props.absolute,
|
||||
"active": props.active,
|
||||
"color": props.color,
|
||||
"height": "2",
|
||||
"indeterminate": true
|
||||
}, null)]);
|
||||
}
|
||||
//# sourceMappingURL=loader.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/loader.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/loader.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"loader.mjs","names":["VProgressLinear","computed","getCurrentInstanceName","propsFactory","makeLoaderProps","loading","Boolean","String","useLoader","props","name","arguments","length","undefined","loaderClasses","LoaderSlot","_ref","slots","_createVNode","default","color","isActive","active","absolute"],"sources":["../../src/composables/loader.tsx"],"sourcesContent":["// Components\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, SetupContext } from 'vue'\nimport type { SlotsToProps } from '@/util'\n\nexport interface LoaderSlotProps {\n color: string | undefined\n isActive: boolean\n}\n\nexport interface LoaderProps {\n loading?: boolean | string\n}\n\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: [Boolean, String],\n}, 'loader')\n\nexport function useLoader (\n props: LoaderProps,\n name = getCurrentInstanceName(),\n) {\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading,\n }))\n\n return { loaderClasses }\n}\n\nexport function LoaderSlot (\n props: {\n absolute?: boolean\n active: boolean\n name: string\n color?: string\n } & ExtractPropTypes<SlotsToProps<{\n default: LoaderSlotProps\n }>>,\n { slots }: SetupContext,\n) {\n return (\n <div class={ `${props.name}__loader` }>\n { slots.default?.({\n color: props.color,\n isActive: props.active,\n } as LoaderSlotProps) || (\n <VProgressLinear\n absolute={ props.absolute }\n active={ props.active }\n color={ props.color }\n height=\"2\"\n indeterminate\n />\n )}\n </div>\n )\n}\n"],"mappings":";AAAA;AAAA,SACSA,eAAe,mDAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAaA;AACA,OAAO,MAAMC,eAAe,GAAGD,YAAY,CAAC;EAC1CE,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM;AAC3B,CAAC,EAAE,QAAQ,CAAC;AAEZ,OAAO,SAASC,SAASA,CACvBC,KAAkB,EAElB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGT,sBAAsB,CAAC,CAAC;EAE/B,MAAMY,aAAa,GAAGb,QAAQ,CAAC,OAAO;IACpC,CAAE,GAAES,IAAK,WAAU,GAAGD,KAAK,CAACJ;EAC9B,CAAC,CAAC,CAAC;EAEH,OAAO;IAAES;EAAc,CAAC;AAC1B;AAEA,OAAO,SAASC,UAAUA,CACxBN,KAOG,EAAAO,IAAA,EAEH;EAAA,IADA;IAAEC;EAAoB,CAAC,GAAAD,IAAA;EAEvB,OAAAE,YAAA;IAAA,SACgB,GAAET,KAAK,CAACC,IAAK;EAAS,IAChCO,KAAK,CAACE,OAAO,GAAG;IAChBC,KAAK,EAAEX,KAAK,CAACW,KAAK;IAClBC,QAAQ,EAAEZ,KAAK,CAACa;EAClB,CAAoB,CAAC,IAAAJ,YAAA,CAAAlB,eAAA;IAAA,YAENS,KAAK,CAACc,QAAQ;IAAA,UAChBd,KAAK,CAACa,MAAM;IAAA,SACbb,KAAK,CAACW,KAAK;IAAA;IAAA;EAAA,QAItB;AAGP"}
|
108
VApp/node_modules/vuetify/lib/composables/locale.mjs
generated
vendored
Normal file
108
VApp/node_modules/vuetify/lib/composables/locale.mjs
generated
vendored
Normal file
@ -0,0 +1,108 @@
|
||||
// Utilities
|
||||
import { computed, inject, provide, ref } from 'vue';
|
||||
import { createVuetifyAdapter } from "../locale/adapters/vuetify.mjs"; // Types
|
||||
export const LocaleSymbol = Symbol.for('vuetify:locale');
|
||||
function isLocaleInstance(obj) {
|
||||
return obj.name != null;
|
||||
}
|
||||
export function createLocale(options) {
|
||||
const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? options?.adapter : createVuetifyAdapter(options);
|
||||
const rtl = createRtl(i18n, options);
|
||||
return {
|
||||
...i18n,
|
||||
...rtl
|
||||
};
|
||||
}
|
||||
export function useLocale() {
|
||||
const locale = inject(LocaleSymbol);
|
||||
if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');
|
||||
return locale;
|
||||
}
|
||||
export function provideLocale(props) {
|
||||
const locale = inject(LocaleSymbol);
|
||||
if (!locale) throw new Error('[Vuetify] Could not find injected locale instance');
|
||||
const i18n = locale.provide(props);
|
||||
const rtl = provideRtl(i18n, locale.rtl, props);
|
||||
const data = {
|
||||
...i18n,
|
||||
...rtl
|
||||
};
|
||||
provide(LocaleSymbol, data);
|
||||
return data;
|
||||
}
|
||||
|
||||
// RTL
|
||||
|
||||
export const RtlSymbol = Symbol.for('vuetify:rtl');
|
||||
function genDefaults() {
|
||||
return {
|
||||
af: false,
|
||||
ar: true,
|
||||
bg: false,
|
||||
ca: false,
|
||||
ckb: false,
|
||||
cs: false,
|
||||
de: false,
|
||||
el: false,
|
||||
en: false,
|
||||
es: false,
|
||||
et: false,
|
||||
fa: true,
|
||||
fi: false,
|
||||
fr: false,
|
||||
hr: false,
|
||||
hu: false,
|
||||
he: true,
|
||||
id: false,
|
||||
it: false,
|
||||
ja: false,
|
||||
km: false,
|
||||
ko: false,
|
||||
lv: false,
|
||||
lt: false,
|
||||
nl: false,
|
||||
no: false,
|
||||
pl: false,
|
||||
pt: false,
|
||||
ro: false,
|
||||
ru: false,
|
||||
sk: false,
|
||||
sl: false,
|
||||
srCyrl: false,
|
||||
srLatn: false,
|
||||
sv: false,
|
||||
th: false,
|
||||
tr: false,
|
||||
az: false,
|
||||
uk: false,
|
||||
vi: false,
|
||||
zhHans: false,
|
||||
zhHant: false
|
||||
};
|
||||
}
|
||||
export function createRtl(i18n, options) {
|
||||
const rtl = ref(options?.rtl ?? genDefaults());
|
||||
const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);
|
||||
return {
|
||||
isRtl,
|
||||
rtl,
|
||||
rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
|
||||
};
|
||||
}
|
||||
export function provideRtl(locale, rtl, props) {
|
||||
const isRtl = computed(() => props.rtl ?? rtl.value[locale.current.value] ?? false);
|
||||
return {
|
||||
isRtl,
|
||||
rtl,
|
||||
rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`)
|
||||
};
|
||||
}
|
||||
export function useRtl() {
|
||||
const locale = inject(LocaleSymbol);
|
||||
if (!locale) throw new Error('[Vuetify] Could not find injected rtl instance');
|
||||
return {
|
||||
isRtl: locale.isRtl,
|
||||
rtlClasses: locale.rtlClasses
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=locale.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/locale.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/locale.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
59
VApp/node_modules/vuetify/lib/composables/location.mjs
generated
vendored
Normal file
59
VApp/node_modules/vuetify/lib/composables/location.mjs
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
||||
// Composables
|
||||
import { useRtl } from "./locale.mjs"; // Utilities
|
||||
import { computed } from 'vue';
|
||||
import { parseAnchor, propsFactory } from "../util/index.mjs"; // Types
|
||||
const oppositeMap = {
|
||||
center: 'center',
|
||||
top: 'bottom',
|
||||
bottom: 'top',
|
||||
left: 'right',
|
||||
right: 'left'
|
||||
};
|
||||
export const makeLocationProps = propsFactory({
|
||||
location: String
|
||||
}, 'location');
|
||||
export function useLocation(props) {
|
||||
let opposite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||
let offset = arguments.length > 2 ? arguments[2] : undefined;
|
||||
const {
|
||||
isRtl
|
||||
} = useRtl();
|
||||
const locationStyles = computed(() => {
|
||||
if (!props.location) return {};
|
||||
const {
|
||||
side,
|
||||
align
|
||||
} = parseAnchor(props.location.split(' ').length > 1 ? props.location : `${props.location} center`, isRtl.value);
|
||||
function getOffset(side) {
|
||||
return offset ? offset(side) : 0;
|
||||
}
|
||||
const styles = {};
|
||||
if (side !== 'center') {
|
||||
if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`;else styles[side] = 0;
|
||||
}
|
||||
if (align !== 'center') {
|
||||
if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`;else styles[align] = 0;
|
||||
} else {
|
||||
if (side === 'center') styles.top = styles.left = '50%';else {
|
||||
styles[{
|
||||
top: 'left',
|
||||
bottom: 'left',
|
||||
left: 'top',
|
||||
right: 'top'
|
||||
}[side]] = '50%';
|
||||
}
|
||||
styles.transform = {
|
||||
top: 'translateX(-50%)',
|
||||
bottom: 'translateX(-50%)',
|
||||
left: 'translateY(-50%)',
|
||||
right: 'translateY(-50%)',
|
||||
center: 'translate(-50%, -50%)'
|
||||
}[side];
|
||||
}
|
||||
return styles;
|
||||
});
|
||||
return {
|
||||
locationStyles
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=location.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/location.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/location.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"location.mjs","names":["useRtl","computed","parseAnchor","propsFactory","oppositeMap","center","top","bottom","left","right","makeLocationProps","location","String","useLocation","props","opposite","arguments","length","undefined","offset","isRtl","locationStyles","side","align","split","value","getOffset","styles","transform"],"sources":["../../src/composables/location.ts"],"sourcesContent":["// Composables\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { parseAnchor, propsFactory } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType } from 'vue'\nimport type { Anchor } from '@/util'\n\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n} as const\n\nexport interface LocationProps {\n location: Anchor | undefined\n}\n\nexport const makeLocationProps = propsFactory({\n location: String as PropType<Anchor>,\n}, 'location')\n\nexport function useLocation (props: LocationProps, opposite = false, offset?: (side: string) => number) {\n const { isRtl } = useRtl()\n\n const locationStyles = computed(() => {\n if (!props.location) return {}\n\n const { side, align } = parseAnchor(\n props.location.split(' ').length > 1\n ? props.location\n : `${props.location} center` as Anchor,\n isRtl.value\n )\n\n function getOffset (side: string) {\n return offset\n ? offset(side)\n : 0\n }\n\n const styles = {} as CSSProperties\n\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`\n else styles[side] = 0\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`\n else styles[align] = 0\n } else {\n if (side === 'center') styles.top = styles.left = '50%'\n else {\n styles[({\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top',\n } as const)[side]] = '50%'\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)',\n }[side]\n }\n\n return styles\n })\n\n return { locationStyles }\n}\n"],"mappings":"AAAA;AAAA,SACSA,MAAM,wBAEf;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,WAAW,EAAEC,YAAY,6BAElC;AAIA,MAAMC,WAAW,GAAG;EAClBC,MAAM,EAAE,QAAQ;EAChBC,GAAG,EAAE,QAAQ;EACbC,MAAM,EAAE,KAAK;EACbC,IAAI,EAAE,OAAO;EACbC,KAAK,EAAE;AACT,CAAU;AAMV,OAAO,MAAMC,iBAAiB,GAAGP,YAAY,CAAC;EAC5CQ,QAAQ,EAAEC;AACZ,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,SAASC,WAAWA,CAAEC,KAAoB,EAAuD;EAAA,IAArDC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;EAAA,IAAEG,MAAiC,GAAAH,SAAA,CAAAC,MAAA,OAAAD,SAAA,MAAAE,SAAA;EACpG,MAAM;IAAEE;EAAM,CAAC,GAAGpB,MAAM,CAAC,CAAC;EAE1B,MAAMqB,cAAc,GAAGpB,QAAQ,CAAC,MAAM;IACpC,IAAI,CAACa,KAAK,CAACH,QAAQ,EAAE,OAAO,CAAC,CAAC;IAE9B,MAAM;MAAEW,IAAI;MAAEC;IAAM,CAAC,GAAGrB,WAAW,CACjCY,KAAK,CAACH,QAAQ,CAACa,KAAK,CAAC,GAAG,CAAC,CAACP,MAAM,GAAG,CAAC,GAChCH,KAAK,CAACH,QAAQ,GACb,GAAEG,KAAK,CAACH,QAAS,SAAkB,EACxCS,KAAK,CAACK,KACR,CAAC;IAED,SAASC,SAASA,CAAEJ,IAAY,EAAE;MAChC,OAAOH,MAAM,GACTA,MAAM,CAACG,IAAI,CAAC,GACZ,CAAC;IACP;IAEA,MAAMK,MAAM,GAAG,CAAC,CAAkB;IAElC,IAAIL,IAAI,KAAK,QAAQ,EAAE;MACrB,IAAIP,QAAQ,EAAEY,MAAM,CAACvB,WAAW,CAACkB,IAAI,CAAC,CAAC,GAAI,eAAcI,SAAS,CAACJ,IAAI,CAAE,KAAI,MACxEK,MAAM,CAACL,IAAI,CAAC,GAAG,CAAC;IACvB;IACA,IAAIC,KAAK,KAAK,QAAQ,EAAE;MACtB,IAAIR,QAAQ,EAAEY,MAAM,CAACvB,WAAW,CAACmB,KAAK,CAAC,CAAC,GAAI,eAAcG,SAAS,CAACH,KAAK,CAAE,KAAI,MAC1EI,MAAM,CAACJ,KAAK,CAAC,GAAG,CAAC;IACxB,CAAC,MAAM;MACL,IAAID,IAAI,KAAK,QAAQ,EAAEK,MAAM,CAACrB,GAAG,GAAGqB,MAAM,CAACnB,IAAI,GAAG,KAAK,MAClD;QACHmB,MAAM,CAAE;UACNrB,GAAG,EAAE,MAAM;UACXC,MAAM,EAAE,MAAM;UACdC,IAAI,EAAE,KAAK;UACXC,KAAK,EAAE;QACT,CAAC,CAAWa,IAAI,CAAC,CAAC,GAAG,KAAK;MAC5B;MACAK,MAAM,CAACC,SAAS,GAAG;QACjBtB,GAAG,EAAE,kBAAkB;QACvBC,MAAM,EAAE,kBAAkB;QAC1BC,IAAI,EAAE,kBAAkB;QACxBC,KAAK,EAAE,kBAAkB;QACzBJ,MAAM,EAAE;MACV,CAAC,CAACiB,IAAI,CAAC;IACT;IAEA,OAAOK,MAAM;EACf,CAAC,CAAC;EAEF,OAAO;IAAEN;EAAe,CAAC;AAC3B"}
|
40
VApp/node_modules/vuetify/lib/composables/mutationObserver.mjs
generated
vendored
Normal file
40
VApp/node_modules/vuetify/lib/composables/mutationObserver.mjs
generated
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
// Utilities
|
||||
import { onBeforeUnmount, onMounted, ref, watch } from 'vue';
|
||||
import { refElement } from "../util/index.mjs"; // Types
|
||||
export function useMutationObserver(handler, options) {
|
||||
const mutationRef = ref();
|
||||
const {
|
||||
once,
|
||||
immediate,
|
||||
...optionKeys
|
||||
} = options || {};
|
||||
const defaultValue = !Object.keys(optionKeys).length;
|
||||
const observer = new MutationObserver((mutations, observer) => {
|
||||
handler?.(mutations, observer);
|
||||
if (options?.once) observer.disconnect();
|
||||
});
|
||||
onMounted(() => {
|
||||
if (!options?.immediate) return;
|
||||
handler?.([], observer);
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
observer.disconnect();
|
||||
});
|
||||
watch(mutationRef, (newValue, oldValue) => {
|
||||
if (oldValue) observer.disconnect();
|
||||
const el = refElement(newValue);
|
||||
if (!el) return;
|
||||
observer.observe(el, {
|
||||
attributes: options?.attr ?? defaultValue,
|
||||
characterData: options?.char ?? defaultValue,
|
||||
childList: options?.child ?? defaultValue,
|
||||
subtree: options?.sub ?? defaultValue
|
||||
});
|
||||
}, {
|
||||
flush: 'post'
|
||||
});
|
||||
return {
|
||||
mutationRef
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=mutationObserver.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/mutationObserver.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/mutationObserver.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"mutationObserver.mjs","names":["onBeforeUnmount","onMounted","ref","watch","refElement","useMutationObserver","handler","options","mutationRef","once","immediate","optionKeys","defaultValue","Object","keys","length","observer","MutationObserver","mutations","disconnect","newValue","oldValue","el","observe","attributes","attr","characterData","char","childList","child","subtree","sub","flush"],"sources":["../../src/composables/mutationObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { refElement } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport interface MutationOptions {\n attr?: boolean\n char?: boolean\n child?: boolean\n sub?: boolean\n once?: boolean\n immediate?: boolean\n}\n\nexport function useMutationObserver (\n handler?: MutationCallback,\n options?: MutationOptions,\n) {\n const mutationRef = ref<ComponentPublicInstance | HTMLElement>()\n const { once, immediate, ...optionKeys } = options || {}\n const defaultValue = !Object.keys(optionKeys).length\n\n const observer = new MutationObserver((\n mutations: MutationRecord[],\n observer: MutationObserver\n ) => {\n handler?.(mutations, observer)\n\n if (options?.once) observer.disconnect()\n })\n\n onMounted(() => {\n if (!options?.immediate) return\n\n handler?.([], observer)\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(mutationRef, (newValue, oldValue) => {\n if (oldValue) observer.disconnect()\n\n const el = refElement(newValue)\n\n if (!el) return\n\n observer.observe(el, {\n attributes: options?.attr ?? defaultValue,\n characterData: options?.char ?? defaultValue,\n childList: options?.child ?? defaultValue,\n subtree: options?.sub ?? defaultValue,\n })\n }, {\n flush: 'post',\n })\n\n return { mutationRef }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,SAAS,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACnDC,UAAU,6BAEnB;AAYA,OAAO,SAASC,mBAAmBA,CACjCC,OAA0B,EAC1BC,OAAyB,EACzB;EACA,MAAMC,WAAW,GAAGN,GAAG,CAAwC,CAAC;EAChE,MAAM;IAAEO,IAAI;IAAEC,SAAS;IAAE,GAAGC;EAAW,CAAC,GAAGJ,OAAO,IAAI,CAAC,CAAC;EACxD,MAAMK,YAAY,GAAG,CAACC,MAAM,CAACC,IAAI,CAACH,UAAU,CAAC,CAACI,MAAM;EAEpD,MAAMC,QAAQ,GAAG,IAAIC,gBAAgB,CAAC,CACpCC,SAA2B,EAC3BF,QAA0B,KACvB;IACHV,OAAO,GAAGY,SAAS,EAAEF,QAAQ,CAAC;IAE9B,IAAIT,OAAO,EAAEE,IAAI,EAAEO,QAAQ,CAACG,UAAU,CAAC,CAAC;EAC1C,CAAC,CAAC;EAEFlB,SAAS,CAAC,MAAM;IACd,IAAI,CAACM,OAAO,EAAEG,SAAS,EAAE;IAEzBJ,OAAO,GAAG,EAAE,EAAEU,QAAQ,CAAC;EACzB,CAAC,CAAC;EAEFhB,eAAe,CAAC,MAAM;IACpBgB,QAAQ,CAACG,UAAU,CAAC,CAAC;EACvB,CAAC,CAAC;EAEFhB,KAAK,CAACK,WAAW,EAAE,CAACY,QAAQ,EAAEC,QAAQ,KAAK;IACzC,IAAIA,QAAQ,EAAEL,QAAQ,CAACG,UAAU,CAAC,CAAC;IAEnC,MAAMG,EAAE,GAAGlB,UAAU,CAACgB,QAAQ,CAAC;IAE/B,IAAI,CAACE,EAAE,EAAE;IAETN,QAAQ,CAACO,OAAO,CAACD,EAAE,EAAE;MACnBE,UAAU,EAAEjB,OAAO,EAAEkB,IAAI,IAAIb,YAAY;MACzCc,aAAa,EAAEnB,OAAO,EAAEoB,IAAI,IAAIf,YAAY;MAC5CgB,SAAS,EAAErB,OAAO,EAAEsB,KAAK,IAAIjB,YAAY;MACzCkB,OAAO,EAAEvB,OAAO,EAAEwB,GAAG,IAAInB;IAC3B,CAAC,CAAC;EACJ,CAAC,EAAE;IACDoB,KAAK,EAAE;EACT,CAAC,CAAC;EAEF,OAAO;IAAExB;EAAY,CAAC;AACxB"}
|
192
VApp/node_modules/vuetify/lib/composables/nested/nested.mjs
generated
vendored
Normal file
192
VApp/node_modules/vuetify/lib/composables/nested/nested.mjs
generated
vendored
Normal file
@ -0,0 +1,192 @@
|
||||
// Composables
|
||||
import { useProxiedModel } from "../proxiedModel.mjs"; // Utilities
|
||||
import { computed, inject, onBeforeUnmount, provide, ref, shallowRef, toRaw } from 'vue';
|
||||
import { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from "./openStrategies.mjs";
|
||||
import { classicSelectStrategy, independentSelectStrategy, independentSingleSelectStrategy, leafSelectStrategy, leafSingleSelectStrategy } from "./selectStrategies.mjs";
|
||||
import { getCurrentInstance, getUid, propsFactory } from "../../util/index.mjs"; // Types
|
||||
export const VNestedSymbol = Symbol.for('vuetify:nested');
|
||||
export const emptyNested = {
|
||||
id: shallowRef(),
|
||||
root: {
|
||||
register: () => null,
|
||||
unregister: () => null,
|
||||
parents: ref(new Map()),
|
||||
children: ref(new Map()),
|
||||
open: () => null,
|
||||
openOnSelect: () => null,
|
||||
select: () => null,
|
||||
opened: ref(new Set()),
|
||||
selected: ref(new Map()),
|
||||
selectedValues: ref([])
|
||||
}
|
||||
};
|
||||
export const makeNestedProps = propsFactory({
|
||||
selectStrategy: [String, Function],
|
||||
openStrategy: [String, Object],
|
||||
opened: Array,
|
||||
selected: Array,
|
||||
mandatory: Boolean
|
||||
}, 'nested');
|
||||
export const useNested = props => {
|
||||
let isUnmounted = false;
|
||||
const children = ref(new Map());
|
||||
const parents = ref(new Map());
|
||||
const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()]);
|
||||
const selectStrategy = computed(() => {
|
||||
if (typeof props.selectStrategy === 'object') return props.selectStrategy;
|
||||
switch (props.selectStrategy) {
|
||||
case 'single-leaf':
|
||||
return leafSingleSelectStrategy(props.mandatory);
|
||||
case 'leaf':
|
||||
return leafSelectStrategy(props.mandatory);
|
||||
case 'independent':
|
||||
return independentSelectStrategy(props.mandatory);
|
||||
case 'single-independent':
|
||||
return independentSingleSelectStrategy(props.mandatory);
|
||||
case 'classic':
|
||||
default:
|
||||
return classicSelectStrategy(props.mandatory);
|
||||
}
|
||||
});
|
||||
const openStrategy = computed(() => {
|
||||
if (typeof props.openStrategy === 'object') return props.openStrategy;
|
||||
switch (props.openStrategy) {
|
||||
case 'list':
|
||||
return listOpenStrategy;
|
||||
case 'single':
|
||||
return singleOpenStrategy;
|
||||
case 'multiple':
|
||||
default:
|
||||
return multipleOpenStrategy;
|
||||
}
|
||||
});
|
||||
const selected = useProxiedModel(props, 'selected', props.selected, v => selectStrategy.value.in(v, children.value, parents.value), v => selectStrategy.value.out(v, children.value, parents.value));
|
||||
onBeforeUnmount(() => {
|
||||
isUnmounted = true;
|
||||
});
|
||||
function getPath(id) {
|
||||
const path = [];
|
||||
let parent = id;
|
||||
while (parent != null) {
|
||||
path.unshift(parent);
|
||||
parent = parents.value.get(parent);
|
||||
}
|
||||
return path;
|
||||
}
|
||||
const vm = getCurrentInstance('nested');
|
||||
const nested = {
|
||||
id: shallowRef(),
|
||||
root: {
|
||||
opened,
|
||||
selected,
|
||||
selectedValues: computed(() => {
|
||||
const arr = [];
|
||||
for (const [key, value] of selected.value.entries()) {
|
||||
if (value === 'on') arr.push(key);
|
||||
}
|
||||
return arr;
|
||||
}),
|
||||
register: (id, parentId, isGroup) => {
|
||||
parentId && id !== parentId && parents.value.set(id, parentId);
|
||||
isGroup && children.value.set(id, []);
|
||||
if (parentId != null) {
|
||||
children.value.set(parentId, [...(children.value.get(parentId) || []), id]);
|
||||
}
|
||||
},
|
||||
unregister: id => {
|
||||
if (isUnmounted) return;
|
||||
children.value.delete(id);
|
||||
const parent = parents.value.get(id);
|
||||
if (parent) {
|
||||
const list = children.value.get(parent) ?? [];
|
||||
children.value.set(parent, list.filter(child => child !== id));
|
||||
}
|
||||
parents.value.delete(id);
|
||||
opened.value.delete(id);
|
||||
},
|
||||
open: (id, value, event) => {
|
||||
vm.emit('click:open', {
|
||||
id,
|
||||
value,
|
||||
path: getPath(id),
|
||||
event
|
||||
});
|
||||
const newOpened = openStrategy.value.open({
|
||||
id,
|
||||
value,
|
||||
opened: new Set(opened.value),
|
||||
children: children.value,
|
||||
parents: parents.value,
|
||||
event
|
||||
});
|
||||
newOpened && (opened.value = newOpened);
|
||||
},
|
||||
openOnSelect: (id, value, event) => {
|
||||
const newOpened = openStrategy.value.select({
|
||||
id,
|
||||
value,
|
||||
selected: new Map(selected.value),
|
||||
opened: new Set(opened.value),
|
||||
children: children.value,
|
||||
parents: parents.value,
|
||||
event
|
||||
});
|
||||
newOpened && (opened.value = newOpened);
|
||||
},
|
||||
select: (id, value, event) => {
|
||||
vm.emit('click:select', {
|
||||
id,
|
||||
value,
|
||||
path: getPath(id),
|
||||
event
|
||||
});
|
||||
const newSelected = selectStrategy.value.select({
|
||||
id,
|
||||
value,
|
||||
selected: new Map(selected.value),
|
||||
children: children.value,
|
||||
parents: parents.value,
|
||||
event
|
||||
});
|
||||
newSelected && (selected.value = newSelected);
|
||||
nested.root.openOnSelect(id, value, event);
|
||||
},
|
||||
children,
|
||||
parents
|
||||
}
|
||||
};
|
||||
provide(VNestedSymbol, nested);
|
||||
return nested.root;
|
||||
};
|
||||
export const useNestedItem = (id, isGroup) => {
|
||||
const parent = inject(VNestedSymbol, emptyNested);
|
||||
const uidSymbol = Symbol(getUid());
|
||||
const computedId = computed(() => id.value !== undefined ? id.value : uidSymbol);
|
||||
const item = {
|
||||
...parent,
|
||||
id: computedId,
|
||||
open: (open, e) => parent.root.open(computedId.value, open, e),
|
||||
openOnSelect: (open, e) => parent.root.openOnSelect(computedId.value, open, e),
|
||||
isOpen: computed(() => parent.root.opened.value.has(computedId.value)),
|
||||
parent: computed(() => parent.root.parents.value.get(computedId.value)),
|
||||
select: (selected, e) => parent.root.select(computedId.value, selected, e),
|
||||
isSelected: computed(() => parent.root.selected.value.get(toRaw(computedId.value)) === 'on'),
|
||||
isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),
|
||||
isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),
|
||||
isGroupActivator: parent.isGroupActivator
|
||||
};
|
||||
!parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup);
|
||||
onBeforeUnmount(() => {
|
||||
!parent.isGroupActivator && parent.root.unregister(computedId.value);
|
||||
});
|
||||
isGroup && provide(VNestedSymbol, item);
|
||||
return item;
|
||||
};
|
||||
export const useNestedGroupActivator = () => {
|
||||
const parent = inject(VNestedSymbol, emptyNested);
|
||||
provide(VNestedSymbol, {
|
||||
...parent,
|
||||
isGroupActivator: true
|
||||
});
|
||||
};
|
||||
//# sourceMappingURL=nested.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/nested/nested.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/nested/nested.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
67
VApp/node_modules/vuetify/lib/composables/nested/openStrategies.mjs
generated
vendored
Normal file
67
VApp/node_modules/vuetify/lib/composables/nested/openStrategies.mjs
generated
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
export const singleOpenStrategy = {
|
||||
open: _ref => {
|
||||
let {
|
||||
id,
|
||||
value,
|
||||
opened,
|
||||
parents
|
||||
} = _ref;
|
||||
if (value) {
|
||||
const newOpened = new Set();
|
||||
newOpened.add(id);
|
||||
let parent = parents.get(id);
|
||||
while (parent != null) {
|
||||
newOpened.add(parent);
|
||||
parent = parents.get(parent);
|
||||
}
|
||||
return newOpened;
|
||||
} else {
|
||||
opened.delete(id);
|
||||
return opened;
|
||||
}
|
||||
},
|
||||
select: () => null
|
||||
};
|
||||
export const multipleOpenStrategy = {
|
||||
open: _ref2 => {
|
||||
let {
|
||||
id,
|
||||
value,
|
||||
opened,
|
||||
parents
|
||||
} = _ref2;
|
||||
if (value) {
|
||||
let parent = parents.get(id);
|
||||
opened.add(id);
|
||||
while (parent != null && parent !== id) {
|
||||
opened.add(parent);
|
||||
parent = parents.get(parent);
|
||||
}
|
||||
return opened;
|
||||
} else {
|
||||
opened.delete(id);
|
||||
}
|
||||
return opened;
|
||||
},
|
||||
select: () => null
|
||||
};
|
||||
export const listOpenStrategy = {
|
||||
open: multipleOpenStrategy.open,
|
||||
select: _ref3 => {
|
||||
let {
|
||||
id,
|
||||
value,
|
||||
opened,
|
||||
parents
|
||||
} = _ref3;
|
||||
if (!value) return opened;
|
||||
const path = [];
|
||||
let parent = parents.get(id);
|
||||
while (parent != null) {
|
||||
path.push(parent);
|
||||
parent = parents.get(parent);
|
||||
}
|
||||
return new Set(path);
|
||||
}
|
||||
};
|
||||
//# sourceMappingURL=openStrategies.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/nested/openStrategies.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/nested/openStrategies.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"openStrategies.mjs","names":["singleOpenStrategy","open","_ref","id","value","opened","parents","newOpened","Set","add","parent","get","delete","select","multipleOpenStrategy","_ref2","listOpenStrategy","_ref3","path","push"],"sources":["../../../src/composables/nested/openStrategies.ts"],"sourcesContent":["export type OpenStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set<unknown>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown>\n\nexport type OpenSelectStrategyFn = (data: {\n id: unknown\n value: boolean\n opened: Set<unknown>\n selected: Map<unknown, 'on' | 'off' | 'indeterminate'>\n children: Map<unknown, unknown[]>\n parents: Map<unknown, unknown>\n event?: Event\n}) => Set<unknown> | null\n\nexport type OpenStrategy = {\n open: OpenStrategyFn\n select: OpenSelectStrategyFn\n}\n\nexport const singleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n const newOpened = new Set<unknown>()\n newOpened.add(id)\n\n let parent = parents.get(id)\n\n while (parent != null) {\n newOpened.add(parent)\n parent = parents.get(parent)\n }\n\n return newOpened\n } else {\n opened.delete(id)\n return opened\n }\n },\n select: () => null,\n}\n\nexport const multipleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n let parent = parents.get(id)\n opened.add(id)\n\n while (parent != null && parent !== id) {\n opened.add(parent)\n parent = parents.get(parent)\n }\n\n return opened\n } else {\n opened.delete(id)\n }\n return opened\n },\n select: () => null,\n}\n\nexport const listOpenStrategy: OpenStrategy = {\n open: multipleOpenStrategy.open,\n select: ({ id, value, opened, parents }) => {\n if (!value) return opened\n\n const path: unknown[] = []\n\n let parent = parents.get(id)\n\n while (parent != null) {\n path.push(parent)\n parent = parents.get(parent)\n }\n\n return new Set(path)\n },\n}\n"],"mappings":"AAwBA,OAAO,MAAMA,kBAAgC,GAAG;EAC9CC,IAAI,EAAEC,IAAA,IAAoC;IAAA,IAAnC;MAAEC,EAAE;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAQ,CAAC,GAAAJ,IAAA;IACnC,IAAIE,KAAK,EAAE;MACT,MAAMG,SAAS,GAAG,IAAIC,GAAG,CAAU,CAAC;MACpCD,SAAS,CAACE,GAAG,CAACN,EAAE,CAAC;MAEjB,IAAIO,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACR,EAAE,CAAC;MAE5B,OAAOO,MAAM,IAAI,IAAI,EAAE;QACrBH,SAAS,CAACE,GAAG,CAACC,MAAM,CAAC;QACrBA,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACD,MAAM,CAAC;MAC9B;MAEA,OAAOH,SAAS;IAClB,CAAC,MAAM;MACLF,MAAM,CAACO,MAAM,CAACT,EAAE,CAAC;MACjB,OAAOE,MAAM;IACf;EACF,CAAC;EACDQ,MAAM,EAAEA,CAAA,KAAM;AAChB,CAAC;AAED,OAAO,MAAMC,oBAAkC,GAAG;EAChDb,IAAI,EAAEc,KAAA,IAAoC;IAAA,IAAnC;MAAEZ,EAAE;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAQ,CAAC,GAAAS,KAAA;IACnC,IAAIX,KAAK,EAAE;MACT,IAAIM,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACR,EAAE,CAAC;MAC5BE,MAAM,CAACI,GAAG,CAACN,EAAE,CAAC;MAEd,OAAOO,MAAM,IAAI,IAAI,IAAIA,MAAM,KAAKP,EAAE,EAAE;QACtCE,MAAM,CAACI,GAAG,CAACC,MAAM,CAAC;QAClBA,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACD,MAAM,CAAC;MAC9B;MAEA,OAAOL,MAAM;IACf,CAAC,MAAM;MACLA,MAAM,CAACO,MAAM,CAACT,EAAE,CAAC;IACnB;IACA,OAAOE,MAAM;EACf,CAAC;EACDQ,MAAM,EAAEA,CAAA,KAAM;AAChB,CAAC;AAED,OAAO,MAAMG,gBAA8B,GAAG;EAC5Cf,IAAI,EAAEa,oBAAoB,CAACb,IAAI;EAC/BY,MAAM,EAAEI,KAAA,IAAoC;IAAA,IAAnC;MAAEd,EAAE;MAAEC,KAAK;MAAEC,MAAM;MAAEC;IAAQ,CAAC,GAAAW,KAAA;IACrC,IAAI,CAACb,KAAK,EAAE,OAAOC,MAAM;IAEzB,MAAMa,IAAe,GAAG,EAAE;IAE1B,IAAIR,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACR,EAAE,CAAC;IAE5B,OAAOO,MAAM,IAAI,IAAI,EAAE;MACrBQ,IAAI,CAACC,IAAI,CAACT,MAAM,CAAC;MACjBA,MAAM,GAAGJ,OAAO,CAACK,GAAG,CAACD,MAAM,CAAC;IAC9B;IAEA,OAAO,IAAIF,GAAG,CAACU,IAAI,CAAC;EACtB;AACF,CAAC"}
|
190
VApp/node_modules/vuetify/lib/composables/nested/selectStrategies.mjs
generated
vendored
Normal file
190
VApp/node_modules/vuetify/lib/composables/nested/selectStrategies.mjs
generated
vendored
Normal file
@ -0,0 +1,190 @@
|
||||
/* eslint-disable sonarjs/no-identical-functions */
|
||||
// Utilities
|
||||
import { toRaw } from 'vue';
|
||||
export const independentSelectStrategy = mandatory => {
|
||||
const strategy = {
|
||||
select: _ref => {
|
||||
let {
|
||||
id,
|
||||
value,
|
||||
selected
|
||||
} = _ref;
|
||||
id = toRaw(id);
|
||||
|
||||
// When mandatory and we're trying to deselect when id
|
||||
// is the only currently selected item then do nothing
|
||||
if (mandatory && !value) {
|
||||
const on = Array.from(selected.entries()).reduce((arr, _ref2) => {
|
||||
let [key, value] = _ref2;
|
||||
return value === 'on' ? [...arr, key] : arr;
|
||||
}, []);
|
||||
if (on.length === 1 && on[0] === id) return selected;
|
||||
}
|
||||
selected.set(id, value ? 'on' : 'off');
|
||||
return selected;
|
||||
},
|
||||
in: (v, children, parents) => {
|
||||
let map = new Map();
|
||||
for (const id of v || []) {
|
||||
map = strategy.select({
|
||||
id,
|
||||
value: true,
|
||||
selected: new Map(map),
|
||||
children,
|
||||
parents
|
||||
});
|
||||
}
|
||||
return map;
|
||||
},
|
||||
out: v => {
|
||||
const arr = [];
|
||||
for (const [key, value] of v.entries()) {
|
||||
if (value === 'on') arr.push(key);
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
};
|
||||
return strategy;
|
||||
};
|
||||
export const independentSingleSelectStrategy = mandatory => {
|
||||
const parentStrategy = independentSelectStrategy(mandatory);
|
||||
const strategy = {
|
||||
select: _ref3 => {
|
||||
let {
|
||||
selected,
|
||||
id,
|
||||
...rest
|
||||
} = _ref3;
|
||||
id = toRaw(id);
|
||||
const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)]]) : new Map();
|
||||
return parentStrategy.select({
|
||||
...rest,
|
||||
id,
|
||||
selected: singleSelected
|
||||
});
|
||||
},
|
||||
in: (v, children, parents) => {
|
||||
let map = new Map();
|
||||
if (v?.length) {
|
||||
map = parentStrategy.in(v.slice(0, 1), children, parents);
|
||||
}
|
||||
return map;
|
||||
},
|
||||
out: (v, children, parents) => {
|
||||
return parentStrategy.out(v, children, parents);
|
||||
}
|
||||
};
|
||||
return strategy;
|
||||
};
|
||||
export const leafSelectStrategy = mandatory => {
|
||||
const parentStrategy = independentSelectStrategy(mandatory);
|
||||
const strategy = {
|
||||
select: _ref4 => {
|
||||
let {
|
||||
id,
|
||||
selected,
|
||||
children,
|
||||
...rest
|
||||
} = _ref4;
|
||||
id = toRaw(id);
|
||||
if (children.has(id)) return selected;
|
||||
return parentStrategy.select({
|
||||
id,
|
||||
selected,
|
||||
children,
|
||||
...rest
|
||||
});
|
||||
},
|
||||
in: parentStrategy.in,
|
||||
out: parentStrategy.out
|
||||
};
|
||||
return strategy;
|
||||
};
|
||||
export const leafSingleSelectStrategy = mandatory => {
|
||||
const parentStrategy = independentSingleSelectStrategy(mandatory);
|
||||
const strategy = {
|
||||
select: _ref5 => {
|
||||
let {
|
||||
id,
|
||||
selected,
|
||||
children,
|
||||
...rest
|
||||
} = _ref5;
|
||||
id = toRaw(id);
|
||||
if (children.has(id)) return selected;
|
||||
return parentStrategy.select({
|
||||
id,
|
||||
selected,
|
||||
children,
|
||||
...rest
|
||||
});
|
||||
},
|
||||
in: parentStrategy.in,
|
||||
out: parentStrategy.out
|
||||
};
|
||||
return strategy;
|
||||
};
|
||||
export const classicSelectStrategy = mandatory => {
|
||||
const strategy = {
|
||||
select: _ref6 => {
|
||||
let {
|
||||
id,
|
||||
value,
|
||||
selected,
|
||||
children,
|
||||
parents
|
||||
} = _ref6;
|
||||
id = toRaw(id);
|
||||
const original = new Map(selected);
|
||||
const items = [id];
|
||||
while (items.length) {
|
||||
const item = items.shift();
|
||||
selected.set(item, value ? 'on' : 'off');
|
||||
if (children.has(item)) {
|
||||
items.push(...children.get(item));
|
||||
}
|
||||
}
|
||||
let parent = parents.get(id);
|
||||
while (parent) {
|
||||
const childrenIds = children.get(parent);
|
||||
const everySelected = childrenIds.every(cid => selected.get(cid) === 'on');
|
||||
const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off');
|
||||
selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate');
|
||||
parent = parents.get(parent);
|
||||
}
|
||||
|
||||
// If mandatory and planned deselect results in no selected
|
||||
// items then we can't do it, so return original state
|
||||
if (mandatory && !value) {
|
||||
const on = Array.from(selected.entries()).reduce((arr, _ref7) => {
|
||||
let [key, value] = _ref7;
|
||||
return value === 'on' ? [...arr, key] : arr;
|
||||
}, []);
|
||||
if (on.length === 0) return original;
|
||||
}
|
||||
return selected;
|
||||
},
|
||||
in: (v, children, parents) => {
|
||||
let map = new Map();
|
||||
for (const id of v || []) {
|
||||
map = strategy.select({
|
||||
id,
|
||||
value: true,
|
||||
selected: new Map(map),
|
||||
children,
|
||||
parents
|
||||
});
|
||||
}
|
||||
return map;
|
||||
},
|
||||
out: (v, children) => {
|
||||
const arr = [];
|
||||
for (const [key, value] of v.entries()) {
|
||||
if (value === 'on' && !children.has(key)) arr.push(key);
|
||||
}
|
||||
return arr;
|
||||
}
|
||||
};
|
||||
return strategy;
|
||||
};
|
||||
//# sourceMappingURL=selectStrategies.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/nested/selectStrategies.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/nested/selectStrategies.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
21
VApp/node_modules/vuetify/lib/composables/position.mjs
generated
vendored
Normal file
21
VApp/node_modules/vuetify/lib/composables/position.mjs
generated
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
// Utilities
|
||||
import { computed } from 'vue';
|
||||
import { getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
|
||||
const positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'];
|
||||
// Composables
|
||||
export const makePositionProps = propsFactory({
|
||||
position: {
|
||||
type: String,
|
||||
validator: /* istanbul ignore next */v => positionValues.includes(v)
|
||||
}
|
||||
}, 'position');
|
||||
export function usePosition(props) {
|
||||
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
||||
const positionClasses = computed(() => {
|
||||
return props.position ? `${name}--${props.position}` : undefined;
|
||||
});
|
||||
return {
|
||||
positionClasses
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=position.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/position.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/position.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"position.mjs","names":["computed","getCurrentInstanceName","propsFactory","positionValues","makePositionProps","position","type","String","validator","v","includes","usePosition","props","name","arguments","length","undefined","positionClasses"],"sources":["../../src/composables/position.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAGA,MAAMC,cAAc,GAAG,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAU;AAQrF;AACA,OAAO,MAAMC,iBAAiB,GAAGF,YAAY,CAAC;EAC5CG,QAAQ,EAAE;IACRC,IAAI,EAAEC,MAA4B;IAClCC,SAAS,EAAE,0BAA4BC,CAAM,IAAKN,cAAc,CAACO,QAAQ,CAACD,CAAC;EAC7E;AACF,CAAC,EAAE,UAAU,CAAC;AAEd,OAAO,SAASE,WAAWA,CACzBC,KAAoB,EAEpB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGb,sBAAsB,CAAC,CAAC;EAE/B,MAAMgB,eAAe,GAAGjB,QAAQ,CAAC,MAAM;IACrC,OAAOY,KAAK,CAACP,QAAQ,GAAI,GAAEQ,IAAK,KAAID,KAAK,CAACP,QAAS,EAAC,GAAGW,SAAS;EAClE,CAAC,CAAC;EAEF,OAAO;IAAEC;EAAgB,CAAC;AAC5B"}
|
45
VApp/node_modules/vuetify/lib/composables/proxiedModel.mjs
generated
vendored
Normal file
45
VApp/node_modules/vuetify/lib/composables/proxiedModel.mjs
generated
vendored
Normal file
@ -0,0 +1,45 @@
|
||||
// Composables
|
||||
import { useToggleScope } from "./toggleScope.mjs"; // Utilities
|
||||
import { computed, ref, toRaw, watch } from 'vue';
|
||||
import { getCurrentInstance, toKebabCase } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export function useProxiedModel(props, prop, defaultValue) {
|
||||
let transformIn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;
|
||||
let transformOut = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : v => v;
|
||||
const vm = getCurrentInstance('useProxiedModel');
|
||||
const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue);
|
||||
const kebabProp = toKebabCase(prop);
|
||||
const checkKebab = kebabProp !== prop;
|
||||
const isControlled = checkKebab ? computed(() => {
|
||||
void props[prop];
|
||||
return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));
|
||||
}) : computed(() => {
|
||||
void props[prop];
|
||||
return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));
|
||||
});
|
||||
useToggleScope(() => !isControlled.value, () => {
|
||||
watch(() => props[prop], val => {
|
||||
internal.value = val;
|
||||
});
|
||||
});
|
||||
const model = computed({
|
||||
get() {
|
||||
const externalValue = props[prop];
|
||||
return transformIn(isControlled.value ? externalValue : internal.value);
|
||||
},
|
||||
set(internalValue) {
|
||||
const newValue = transformOut(internalValue);
|
||||
const value = toRaw(isControlled.value ? props[prop] : internal.value);
|
||||
if (value === newValue || transformIn(value) === internalValue) {
|
||||
return;
|
||||
}
|
||||
internal.value = newValue;
|
||||
vm?.emit(`update:${prop}`, newValue);
|
||||
}
|
||||
});
|
||||
Object.defineProperty(model, 'externalValue', {
|
||||
get: () => isControlled.value ? props[prop] : internal.value
|
||||
});
|
||||
return model;
|
||||
}
|
||||
//# sourceMappingURL=proxiedModel.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/proxiedModel.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/proxiedModel.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
17
VApp/node_modules/vuetify/lib/composables/refs.mjs
generated
vendored
Normal file
17
VApp/node_modules/vuetify/lib/composables/refs.mjs
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
// Utilities
|
||||
import { onBeforeUpdate, ref } from 'vue';
|
||||
|
||||
// Types
|
||||
|
||||
export function useRefs() {
|
||||
const refs = ref([]);
|
||||
onBeforeUpdate(() => refs.value = []);
|
||||
function updateRef(e, i) {
|
||||
refs.value[i] = e;
|
||||
}
|
||||
return {
|
||||
refs,
|
||||
updateRef
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=refs.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/refs.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/refs.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"refs.mjs","names":["onBeforeUpdate","ref","useRefs","refs","value","updateRef","e","i"],"sources":["../../src/composables/refs.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUpdate, ref } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useRefs <T extends {}> () {\n const refs = ref<(T | undefined)[]>([]) as Ref<(T | undefined)[]>\n\n onBeforeUpdate(() => (refs.value = []))\n\n function updateRef (e: any, i: number) {\n refs.value[i] = e\n }\n\n return { refs, updateRef }\n}\n"],"mappings":"AAAA;AACA,SAASA,cAAc,EAAEC,GAAG,QAAQ,KAAK;;AAEzC;;AAGA,OAAO,SAASC,OAAOA,CAAA,EAAmB;EACxC,MAAMC,IAAI,GAAGF,GAAG,CAAoB,EAAE,CAA2B;EAEjED,cAAc,CAAC,MAAOG,IAAI,CAACC,KAAK,GAAG,EAAG,CAAC;EAEvC,SAASC,SAASA,CAAEC,CAAM,EAAEC,CAAS,EAAE;IACrCJ,IAAI,CAACC,KAAK,CAACG,CAAC,CAAC,GAAGD,CAAC;EACnB;EAEA,OAAO;IAAEH,IAAI;IAAEE;EAAU,CAAC;AAC5B"}
|
37
VApp/node_modules/vuetify/lib/composables/resizeObserver.mjs
generated
vendored
Normal file
37
VApp/node_modules/vuetify/lib/composables/resizeObserver.mjs
generated
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
// Utilities
|
||||
import { onBeforeUnmount, readonly, ref, watch } from 'vue';
|
||||
import { refElement } from "../util/index.mjs";
|
||||
import { IN_BROWSER } from "../util/globals.mjs"; // Types
|
||||
export function useResizeObserver(callback) {
|
||||
let box = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'content';
|
||||
const resizeRef = ref();
|
||||
const contentRect = ref();
|
||||
if (IN_BROWSER) {
|
||||
const observer = new ResizeObserver(entries => {
|
||||
callback?.(entries, observer);
|
||||
if (!entries.length) return;
|
||||
if (box === 'content') {
|
||||
contentRect.value = entries[0].contentRect;
|
||||
} else {
|
||||
contentRect.value = entries[0].target.getBoundingClientRect();
|
||||
}
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
observer.disconnect();
|
||||
});
|
||||
watch(resizeRef, (newValue, oldValue) => {
|
||||
if (oldValue) {
|
||||
observer.unobserve(refElement(oldValue));
|
||||
contentRect.value = undefined;
|
||||
}
|
||||
if (newValue) observer.observe(refElement(newValue));
|
||||
}, {
|
||||
flush: 'post'
|
||||
});
|
||||
}
|
||||
return {
|
||||
resizeRef,
|
||||
contentRect: readonly(contentRect)
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=resizeObserver.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/resizeObserver.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/resizeObserver.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"resizeObserver.mjs","names":["onBeforeUnmount","readonly","ref","watch","refElement","IN_BROWSER","useResizeObserver","callback","box","arguments","length","undefined","resizeRef","contentRect","observer","ResizeObserver","entries","value","target","getBoundingClientRect","disconnect","newValue","oldValue","unobserve","observe","flush"],"sources":["../../src/composables/resizeObserver.ts"],"sourcesContent":["// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport { refElement } from '@/util'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type { DeepReadonly, Ref } from 'vue'\n\ninterface ResizeState {\n resizeRef: Ref<HTMLElement | undefined>\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback, box: 'content' | 'border' = 'content'): ResizeState {\n const resizeRef = ref<HTMLElement>()\n const contentRect = ref<DOMRectReadOnly>()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n if (box === 'content') {\n contentRect.value = entries[0].contentRect\n } else {\n contentRect.value = entries[0].target.getBoundingClientRect()\n }\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(resizeRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(refElement(oldValue) as Element)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(refElement(newValue) as Element)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,eAAe,EAAEC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAClDC,UAAU;AAAA,SACVC,UAAU,+BAEnB;AAQA,OAAO,SAASC,iBAAiBA,CAAEC,QAAiC,EAAsD;EAAA,IAApDC,GAAyB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,SAAS;EACzG,MAAMG,SAAS,GAAGV,GAAG,CAAc,CAAC;EACpC,MAAMW,WAAW,GAAGX,GAAG,CAAkB,CAAC;EAE1C,IAAIG,UAAU,EAAE;IACd,MAAMS,QAAQ,GAAG,IAAIC,cAAc,CAAEC,OAA8B,IAAK;MACtET,QAAQ,GAAGS,OAAO,EAAEF,QAAQ,CAAC;MAE7B,IAAI,CAACE,OAAO,CAACN,MAAM,EAAE;MAErB,IAAIF,GAAG,KAAK,SAAS,EAAE;QACrBK,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACH,WAAW;MAC5C,CAAC,MAAM;QACLA,WAAW,CAACI,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC,CAACE,MAAM,CAACC,qBAAqB,CAAC,CAAC;MAC/D;IACF,CAAC,CAAC;IAEFnB,eAAe,CAAC,MAAM;MACpBc,QAAQ,CAACM,UAAU,CAAC,CAAC;IACvB,CAAC,CAAC;IAEFjB,KAAK,CAACS,SAAS,EAAE,CAACS,QAAQ,EAAEC,QAAQ,KAAK;MACvC,IAAIA,QAAQ,EAAE;QACZR,QAAQ,CAACS,SAAS,CAACnB,UAAU,CAACkB,QAAQ,CAAY,CAAC;QACnDT,WAAW,CAACI,KAAK,GAAGN,SAAS;MAC/B;MAEA,IAAIU,QAAQ,EAAEP,QAAQ,CAACU,OAAO,CAACpB,UAAU,CAACiB,QAAQ,CAAY,CAAC;IACjE,CAAC,EAAE;MACDI,KAAK,EAAE;IACT,CAAC,CAAC;EACJ;EAEA,OAAO;IACLb,SAAS;IACTC,WAAW,EAAEZ,QAAQ,CAACY,WAAW;EACnC,CAAC;AACH"}
|
29
VApp/node_modules/vuetify/lib/composables/rounded.mjs
generated
vendored
Normal file
29
VApp/node_modules/vuetify/lib/composables/rounded.mjs
generated
vendored
Normal file
@ -0,0 +1,29 @@
|
||||
// Utilities
|
||||
import { computed, isRef } from 'vue';
|
||||
import { getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeRoundedProps = propsFactory({
|
||||
rounded: {
|
||||
type: [Boolean, Number, String],
|
||||
default: undefined
|
||||
}
|
||||
}, 'rounded');
|
||||
export function useRounded(props) {
|
||||
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
||||
const roundedClasses = computed(() => {
|
||||
const rounded = isRef(props) ? props.value : props.rounded;
|
||||
const classes = [];
|
||||
if (rounded === true || rounded === '') {
|
||||
classes.push(`${name}--rounded`);
|
||||
} else if (typeof rounded === 'string' || rounded === 0) {
|
||||
for (const value of String(rounded).split(' ')) {
|
||||
classes.push(`rounded-${value}`);
|
||||
}
|
||||
}
|
||||
return classes;
|
||||
});
|
||||
return {
|
||||
roundedClasses
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=rounded.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/rounded.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/rounded.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"rounded.mjs","names":["computed","isRef","getCurrentInstanceName","propsFactory","makeRoundedProps","rounded","type","Boolean","Number","String","default","undefined","useRounded","props","name","arguments","length","roundedClasses","value","classes","push","split"],"sources":["../../src/composables/rounded.ts"],"sourcesContent":["// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype RoundedValue = boolean | string | number | null | undefined\n\nexport interface RoundedProps {\n rounded?: RoundedValue\n tile?: boolean\n}\n\ntype RoundedData = {\n roundedClasses: Ref<string[]>\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n}, 'rounded')\n\nexport function useRounded (\n props: RoundedProps | Ref<RoundedValue>,\n name = getCurrentInstanceName(),\n): RoundedData {\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded\n const classes: string[] = []\n\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof rounded === 'string' ||\n rounded === 0\n ) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC5BC,sBAAsB,EAAEC,YAAY,6BAE7C;AAcA;AACA,OAAO,MAAMC,gBAAgB,GAAGD,YAAY,CAAC;EAC3CE,OAAO,EAAE;IACPC,IAAI,EAAE,CAACC,OAAO,EAAEC,MAAM,EAAEC,MAAM,CAAC;IAC/BC,OAAO,EAAEC;EACX;AACF,CAAC,EAAE,SAAS,CAAC;AAEb,OAAO,SAASC,UAAUA,CACxBC,KAAuC,EAE1B;EAAA,IADbC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAJ,SAAA,GAAAI,SAAA,MAAGb,sBAAsB,CAAC,CAAC;EAE/B,MAAMe,cAAc,GAAGjB,QAAQ,CAAC,MAAM;IACpC,MAAMK,OAAO,GAAGJ,KAAK,CAACY,KAAK,CAAC,GAAGA,KAAK,CAACK,KAAK,GAAGL,KAAK,CAACR,OAAO;IAC1D,MAAMc,OAAiB,GAAG,EAAE;IAE5B,IAAId,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK,EAAE,EAAE;MACtCc,OAAO,CAACC,IAAI,CAAE,GAAEN,IAAK,WAAU,CAAC;IAClC,CAAC,MAAM,IACL,OAAOT,OAAO,KAAK,QAAQ,IAC3BA,OAAO,KAAK,CAAC,EACb;MACA,KAAK,MAAMa,KAAK,IAAIT,MAAM,CAACJ,OAAO,CAAC,CAACgB,KAAK,CAAC,GAAG,CAAC,EAAE;QAC9CF,OAAO,CAACC,IAAI,CAAE,WAAUF,KAAM,EAAC,CAAC;MAClC;IACF;IAEA,OAAOC,OAAO;EAChB,CAAC,CAAC;EAEF,OAAO;IAAEF;EAAe,CAAC;AAC3B"}
|
77
VApp/node_modules/vuetify/lib/composables/router.mjs
generated
vendored
Normal file
77
VApp/node_modules/vuetify/lib/composables/router.mjs
generated
vendored
Normal file
@ -0,0 +1,77 @@
|
||||
// Utilities
|
||||
import { computed, nextTick, onScopeDispose, resolveDynamicComponent, toRef } from 'vue';
|
||||
import { deepEqual, getCurrentInstance, hasEvent, IN_BROWSER, propsFactory } from "../util/index.mjs"; // Types
|
||||
export function useRoute() {
|
||||
const vm = getCurrentInstance('useRoute');
|
||||
return computed(() => vm?.proxy?.$route);
|
||||
}
|
||||
export function useRouter() {
|
||||
return getCurrentInstance('useRouter')?.proxy?.$router;
|
||||
}
|
||||
export function useLink(props, attrs) {
|
||||
const RouterLink = resolveDynamicComponent('RouterLink');
|
||||
const isLink = computed(() => !!(props.href || props.to));
|
||||
const isClickable = computed(() => {
|
||||
return isLink?.value || hasEvent(attrs, 'click') || hasEvent(props, 'click');
|
||||
});
|
||||
if (typeof RouterLink === 'string') {
|
||||
return {
|
||||
isLink,
|
||||
isClickable,
|
||||
href: toRef(props, 'href')
|
||||
};
|
||||
}
|
||||
const link = props.to ? RouterLink.useLink(props) : undefined;
|
||||
const route = useRoute();
|
||||
return {
|
||||
isLink,
|
||||
isClickable,
|
||||
route: link?.route,
|
||||
navigate: link?.navigate,
|
||||
isActive: link && computed(() => {
|
||||
if (!props.exact) return link.isActive?.value;
|
||||
if (!route.value) return link.isExactActive?.value;
|
||||
return link.isExactActive?.value && deepEqual(link.route.value.query, route.value.query);
|
||||
}),
|
||||
href: computed(() => props.to ? link?.route.value.href : props.href)
|
||||
};
|
||||
}
|
||||
export const makeRouterProps = propsFactory({
|
||||
href: String,
|
||||
replace: Boolean,
|
||||
to: [String, Object],
|
||||
exact: Boolean
|
||||
}, 'router');
|
||||
let inTransition = false;
|
||||
export function useBackButton(router, cb) {
|
||||
let popped = false;
|
||||
let removeBefore;
|
||||
let removeAfter;
|
||||
if (IN_BROWSER) {
|
||||
nextTick(() => {
|
||||
window.addEventListener('popstate', onPopstate);
|
||||
removeBefore = router?.beforeEach((to, from, next) => {
|
||||
if (!inTransition) {
|
||||
setTimeout(() => popped ? cb(next) : next());
|
||||
} else {
|
||||
popped ? cb(next) : next();
|
||||
}
|
||||
inTransition = true;
|
||||
});
|
||||
removeAfter = router?.afterEach(() => {
|
||||
inTransition = false;
|
||||
});
|
||||
});
|
||||
onScopeDispose(() => {
|
||||
window.removeEventListener('popstate', onPopstate);
|
||||
removeBefore?.();
|
||||
removeAfter?.();
|
||||
});
|
||||
}
|
||||
function onPopstate(e) {
|
||||
if (e.state?.replaced) return;
|
||||
popped = true;
|
||||
setTimeout(() => popped = false);
|
||||
}
|
||||
}
|
||||
//# sourceMappingURL=router.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/router.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/router.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
12
VApp/node_modules/vuetify/lib/composables/scopeId.mjs
generated
vendored
Normal file
12
VApp/node_modules/vuetify/lib/composables/scopeId.mjs
generated
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
// Utilities
|
||||
import { getCurrentInstance } from "../util/index.mjs";
|
||||
export function useScopeId() {
|
||||
const vm = getCurrentInstance('useScopeId');
|
||||
const scopeId = vm.vnode.scopeId;
|
||||
return {
|
||||
scopeId: scopeId ? {
|
||||
[scopeId]: ''
|
||||
} : undefined
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=scopeId.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/scopeId.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/scopeId.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"scopeId.mjs","names":["getCurrentInstance","useScopeId","vm","scopeId","vnode","undefined"],"sources":["../../src/composables/scopeId.ts"],"sourcesContent":["// Utilities\nimport { getCurrentInstance } from '@/util'\n\nexport function useScopeId () {\n const vm = getCurrentInstance('useScopeId')\n\n const scopeId = vm!.vnode.scopeId\n\n return { scopeId: scopeId ? { [scopeId]: '' } : undefined }\n}\n"],"mappings":"AAAA;AAAA,SACSA,kBAAkB;AAE3B,OAAO,SAASC,UAAUA,CAAA,EAAI;EAC5B,MAAMC,EAAE,GAAGF,kBAAkB,CAAC,YAAY,CAAC;EAE3C,MAAMG,OAAO,GAAGD,EAAE,CAAEE,KAAK,CAACD,OAAO;EAEjC,OAAO;IAAEA,OAAO,EAAEA,OAAO,GAAG;MAAE,CAACA,OAAO,GAAG;IAAG,CAAC,GAAGE;EAAU,CAAC;AAC7D"}
|
90
VApp/node_modules/vuetify/lib/composables/scroll.mjs
generated
vendored
Normal file
90
VApp/node_modules/vuetify/lib/composables/scroll.mjs
generated
vendored
Normal file
@ -0,0 +1,90 @@
|
||||
// Utilities
|
||||
import { computed, onBeforeUnmount, onMounted, ref, shallowRef, watch } from 'vue';
|
||||
import { clamp, consoleWarn, propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeScrollProps = propsFactory({
|
||||
scrollTarget: {
|
||||
type: String
|
||||
},
|
||||
scrollThreshold: {
|
||||
type: [String, Number],
|
||||
default: 300
|
||||
}
|
||||
}, 'scroll');
|
||||
export function useScroll(props) {
|
||||
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
||||
const {
|
||||
canScroll
|
||||
} = args;
|
||||
let previousScroll = 0;
|
||||
const target = ref(null);
|
||||
const currentScroll = shallowRef(0);
|
||||
const savedScroll = shallowRef(0);
|
||||
const currentThreshold = shallowRef(0);
|
||||
const isScrollActive = shallowRef(false);
|
||||
const isScrollingUp = shallowRef(false);
|
||||
const scrollThreshold = computed(() => {
|
||||
return Number(props.scrollThreshold);
|
||||
});
|
||||
|
||||
/**
|
||||
* 1: at top
|
||||
* 0: at threshold
|
||||
*/
|
||||
const scrollRatio = computed(() => {
|
||||
return clamp((scrollThreshold.value - currentScroll.value) / scrollThreshold.value || 0);
|
||||
});
|
||||
const onScroll = () => {
|
||||
const targetEl = target.value;
|
||||
if (!targetEl || canScroll && !canScroll.value) return;
|
||||
previousScroll = currentScroll.value;
|
||||
currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
|
||||
isScrollingUp.value = currentScroll.value < previousScroll;
|
||||
currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
|
||||
};
|
||||
watch(isScrollingUp, () => {
|
||||
savedScroll.value = savedScroll.value || currentScroll.value;
|
||||
});
|
||||
watch(isScrollActive, () => {
|
||||
savedScroll.value = 0;
|
||||
});
|
||||
onMounted(() => {
|
||||
watch(() => props.scrollTarget, scrollTarget => {
|
||||
const newTarget = scrollTarget ? document.querySelector(scrollTarget) : window;
|
||||
if (!newTarget) {
|
||||
consoleWarn(`Unable to locate element with identifier ${scrollTarget}`);
|
||||
return;
|
||||
}
|
||||
if (newTarget === target.value) return;
|
||||
target.value?.removeEventListener('scroll', onScroll);
|
||||
target.value = newTarget;
|
||||
target.value.addEventListener('scroll', onScroll, {
|
||||
passive: true
|
||||
});
|
||||
}, {
|
||||
immediate: true
|
||||
});
|
||||
});
|
||||
onBeforeUnmount(() => {
|
||||
target.value?.removeEventListener('scroll', onScroll);
|
||||
});
|
||||
|
||||
// Do we need this? If yes - seems that
|
||||
// there's no need to expose onScroll
|
||||
canScroll && watch(canScroll, onScroll, {
|
||||
immediate: true
|
||||
});
|
||||
return {
|
||||
scrollThreshold,
|
||||
currentScroll,
|
||||
currentThreshold,
|
||||
isScrollActive,
|
||||
scrollRatio,
|
||||
// required only for testing
|
||||
// probably can be removed
|
||||
// later (2 chars chlng)
|
||||
isScrollingUp,
|
||||
savedScroll
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=scroll.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/scroll.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/scroll.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
17
VApp/node_modules/vuetify/lib/composables/selectLink.mjs
generated
vendored
Normal file
17
VApp/node_modules/vuetify/lib/composables/selectLink.mjs
generated
vendored
Normal file
@ -0,0 +1,17 @@
|
||||
// Utilities
|
||||
import { nextTick, watch } from 'vue';
|
||||
|
||||
// Types
|
||||
|
||||
export function useSelectLink(link, select) {
|
||||
watch(() => link.isActive?.value, isActive => {
|
||||
if (link.isLink.value && isActive && select) {
|
||||
nextTick(() => {
|
||||
select(true);
|
||||
});
|
||||
}
|
||||
}, {
|
||||
immediate: true
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=selectLink.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/selectLink.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/selectLink.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"selectLink.mjs","names":["nextTick","watch","useSelectLink","link","select","isActive","value","isLink","immediate"],"sources":["../../src/composables/selectLink.ts"],"sourcesContent":["// Utilities\nimport { nextTick, watch } from 'vue'\n\n// Types\nimport type { UseLink } from './router'\n\nexport function useSelectLink (link: UseLink, select?: (value: boolean, e?: Event) => void) {\n watch(() => link.isActive?.value, isActive => {\n if (link.isLink.value && isActive && select) {\n nextTick(() => {\n select(true)\n })\n }\n }, {\n immediate: true,\n })\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,KAAK,QAAQ,KAAK;;AAErC;;AAGA,OAAO,SAASC,aAAaA,CAAEC,IAAa,EAAEC,MAA4C,EAAE;EAC1FH,KAAK,CAAC,MAAME,IAAI,CAACE,QAAQ,EAAEC,KAAK,EAAED,QAAQ,IAAI;IAC5C,IAAIF,IAAI,CAACI,MAAM,CAACD,KAAK,IAAID,QAAQ,IAAID,MAAM,EAAE;MAC3CJ,QAAQ,CAAC,MAAM;QACbI,MAAM,CAAC,IAAI,CAAC;MACd,CAAC,CAAC;IACJ;EACF,CAAC,EAAE;IACDI,SAAS,EAAE;EACb,CAAC,CAAC;AACJ"}
|
30
VApp/node_modules/vuetify/lib/composables/size.mjs
generated
vendored
Normal file
30
VApp/node_modules/vuetify/lib/composables/size.mjs
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
// Utilities
|
||||
import { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from "../util/index.mjs"; // Types
|
||||
const predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large'];
|
||||
// Composables
|
||||
export const makeSizeProps = propsFactory({
|
||||
size: {
|
||||
type: [String, Number],
|
||||
default: 'default'
|
||||
}
|
||||
}, 'size');
|
||||
export function useSize(props) {
|
||||
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
||||
return destructComputed(() => {
|
||||
let sizeClasses;
|
||||
let sizeStyles;
|
||||
if (includes(predefinedSizes, props.size)) {
|
||||
sizeClasses = `${name}--size-${props.size}`;
|
||||
} else if (props.size) {
|
||||
sizeStyles = {
|
||||
width: convertToUnit(props.size),
|
||||
height: convertToUnit(props.size)
|
||||
};
|
||||
}
|
||||
return {
|
||||
sizeClasses,
|
||||
sizeStyles
|
||||
};
|
||||
});
|
||||
}
|
||||
//# sourceMappingURL=size.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/size.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/size.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"size.mjs","names":["convertToUnit","destructComputed","getCurrentInstanceName","includes","propsFactory","predefinedSizes","makeSizeProps","size","type","String","Number","default","useSize","props","name","arguments","length","undefined","sizeClasses","sizeStyles","width","height"],"sources":["../../src/composables/size.ts"],"sourcesContent":["// Utilities\nimport { convertToUnit, destructComputed, getCurrentInstanceName, includes, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (\n props: SizeProps,\n name = getCurrentInstanceName(),\n) {\n return destructComputed(() => {\n let sizeClasses\n let sizeStyles\n if (includes(predefinedSizes, props.size)) {\n sizeClasses = `${name}--size-${props.size}`\n } else if (props.size) {\n sizeStyles = {\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }\n }\n return { sizeClasses, sizeStyles }\n })\n}\n"],"mappings":"AAAA;AAAA,SACSA,aAAa,EAAEC,gBAAgB,EAAEC,sBAAsB,EAAEC,QAAQ,EAAEC,YAAY,6BAExF;AACA,MAAMC,eAAe,GAAG,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC;AAM3E;AACA,OAAO,MAAMC,aAAa,GAAGF,YAAY,CAAC;EACxCG,IAAI,EAAE;IACJC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,SAASC,OAAOA,CACrBC,KAAgB,EAEhB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGb,sBAAsB,CAAC,CAAC;EAE/B,OAAOD,gBAAgB,CAAC,MAAM;IAC5B,IAAIiB,WAAW;IACf,IAAIC,UAAU;IACd,IAAIhB,QAAQ,CAACE,eAAe,EAAEQ,KAAK,CAACN,IAAI,CAAC,EAAE;MACzCW,WAAW,GAAI,GAAEJ,IAAK,UAASD,KAAK,CAACN,IAAK,EAAC;IAC7C,CAAC,MAAM,IAAIM,KAAK,CAACN,IAAI,EAAE;MACrBY,UAAU,GAAG;QACXC,KAAK,EAAEpB,aAAa,CAACa,KAAK,CAACN,IAAI,CAAC;QAChCc,MAAM,EAAErB,aAAa,CAACa,KAAK,CAACN,IAAI;MAClC,CAAC;IACH;IACA,OAAO;MAAEW,WAAW;MAAEC;IAAW,CAAC;EACpC,CAAC,CAAC;AACJ"}
|
20
VApp/node_modules/vuetify/lib/composables/ssrBoot.mjs
generated
vendored
Normal file
20
VApp/node_modules/vuetify/lib/composables/ssrBoot.mjs
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
// Utilities
|
||||
import { computed, onMounted, readonly, shallowRef } from 'vue';
|
||||
|
||||
// Composables
|
||||
export function useSsrBoot() {
|
||||
const isBooted = shallowRef(false);
|
||||
onMounted(() => {
|
||||
window.requestAnimationFrame(() => {
|
||||
isBooted.value = true;
|
||||
});
|
||||
});
|
||||
const ssrBootStyles = computed(() => !isBooted.value ? {
|
||||
transition: 'none !important'
|
||||
} : undefined);
|
||||
return {
|
||||
ssrBootStyles,
|
||||
isBooted: readonly(isBooted)
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=ssrBoot.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/ssrBoot.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/ssrBoot.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"ssrBoot.mjs","names":["computed","onMounted","readonly","shallowRef","useSsrBoot","isBooted","window","requestAnimationFrame","value","ssrBootStyles","transition","undefined"],"sources":["../../src/composables/ssrBoot.ts"],"sourcesContent":["// Utilities\nimport { computed, onMounted, readonly, shallowRef } from 'vue'\n\n// Composables\nexport function useSsrBoot () {\n const isBooted = shallowRef(false)\n\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n\n const ssrBootStyles = computed(() => !isBooted.value ? ({\n transition: 'none !important',\n }) : undefined)\n\n return { ssrBootStyles, isBooted: readonly(isBooted) }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,UAAU,QAAQ,KAAK;;AAE/D;AACA,OAAO,SAASC,UAAUA,CAAA,EAAI;EAC5B,MAAMC,QAAQ,GAAGF,UAAU,CAAC,KAAK,CAAC;EAElCF,SAAS,CAAC,MAAM;IACdK,MAAM,CAACC,qBAAqB,CAAC,MAAM;MACjCF,QAAQ,CAACG,KAAK,GAAG,IAAI;IACvB,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMC,aAAa,GAAGT,QAAQ,CAAC,MAAM,CAACK,QAAQ,CAACG,KAAK,GAAI;IACtDE,UAAU,EAAE;EACd,CAAC,GAAIC,SAAS,CAAC;EAEf,OAAO;IAAEF,aAAa;IAAEJ,QAAQ,EAAEH,QAAQ,CAACG,QAAQ;EAAE,CAAC;AACxD"}
|
47
VApp/node_modules/vuetify/lib/composables/stack.mjs
generated
vendored
Normal file
47
VApp/node_modules/vuetify/lib/composables/stack.mjs
generated
vendored
Normal file
@ -0,0 +1,47 @@
|
||||
// Composables
|
||||
import { useToggleScope } from "./toggleScope.mjs"; // Utilities
|
||||
import { computed, inject, onScopeDispose, provide, reactive, readonly, shallowRef, toRaw, watchEffect } from 'vue';
|
||||
import { getCurrentInstance } from "../util/index.mjs"; // Types
|
||||
const StackSymbol = Symbol.for('vuetify:stack');
|
||||
const globalStack = reactive([]);
|
||||
export function useStack(isActive, zIndex, disableGlobalStack) {
|
||||
const vm = getCurrentInstance('useStack');
|
||||
const createStackEntry = !disableGlobalStack;
|
||||
const parent = inject(StackSymbol, undefined);
|
||||
const stack = reactive({
|
||||
activeChildren: new Set()
|
||||
});
|
||||
provide(StackSymbol, stack);
|
||||
const _zIndex = shallowRef(+zIndex.value);
|
||||
useToggleScope(isActive, () => {
|
||||
const lastZIndex = globalStack.at(-1)?.[1];
|
||||
_zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;
|
||||
if (createStackEntry) {
|
||||
globalStack.push([vm.uid, _zIndex.value]);
|
||||
}
|
||||
parent?.activeChildren.add(vm.uid);
|
||||
onScopeDispose(() => {
|
||||
if (createStackEntry) {
|
||||
const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid);
|
||||
globalStack.splice(idx, 1);
|
||||
}
|
||||
parent?.activeChildren.delete(vm.uid);
|
||||
});
|
||||
});
|
||||
const globalTop = shallowRef(true);
|
||||
if (createStackEntry) {
|
||||
watchEffect(() => {
|
||||
const _isTop = globalStack.at(-1)?.[0] === vm.uid;
|
||||
setTimeout(() => globalTop.value = _isTop);
|
||||
});
|
||||
}
|
||||
const localTop = computed(() => !stack.activeChildren.size);
|
||||
return {
|
||||
globalTop: readonly(globalTop),
|
||||
localTop,
|
||||
stackStyles: computed(() => ({
|
||||
zIndex: _zIndex.value
|
||||
}))
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=stack.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/stack.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/stack.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"stack.mjs","names":["useToggleScope","computed","inject","onScopeDispose","provide","reactive","readonly","shallowRef","toRaw","watchEffect","getCurrentInstance","StackSymbol","Symbol","for","globalStack","useStack","isActive","zIndex","disableGlobalStack","vm","createStackEntry","parent","undefined","stack","activeChildren","Set","_zIndex","value","lastZIndex","at","push","uid","add","idx","findIndex","v","splice","delete","globalTop","_isTop","setTimeout","localTop","size","stackStyles"],"sources":["../../src/composables/stack.ts"],"sourcesContent":["// Composables\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, inject, onScopeDispose, provide, reactive, readonly, shallowRef, toRaw, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\nconst StackSymbol: InjectionKey<StackProvide> = Symbol.for('vuetify:stack')\n\ninterface StackProvide {\n activeChildren: Set<number>\n}\n\nconst globalStack = reactive<[uid: number, zIndex: number][]>([])\n\nexport function useStack (\n isActive: Readonly<Ref<boolean>>,\n zIndex: Readonly<Ref<string | number>>,\n disableGlobalStack: boolean\n) {\n const vm = getCurrentInstance('useStack')\n const createStackEntry = !disableGlobalStack\n\n const parent = inject(StackSymbol, undefined)\n const stack: StackProvide = reactive({\n activeChildren: new Set<number>(),\n })\n provide(StackSymbol, stack)\n\n const _zIndex = shallowRef(+zIndex.value)\n useToggleScope(isActive, () => {\n const lastZIndex = globalStack.at(-1)?.[1]\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value\n\n if (createStackEntry) {\n globalStack.push([vm.uid, _zIndex.value])\n }\n\n parent?.activeChildren.add(vm.uid)\n\n onScopeDispose(() => {\n if (createStackEntry) {\n const idx = toRaw(globalStack).findIndex(v => v[0] === vm.uid)\n globalStack.splice(idx, 1)\n }\n\n parent?.activeChildren.delete(vm.uid)\n })\n })\n\n const globalTop = shallowRef(true)\n if (createStackEntry) {\n watchEffect(() => {\n const _isTop = globalStack.at(-1)?.[0] === vm.uid\n setTimeout(() => globalTop.value = _isTop)\n })\n }\n\n const localTop = computed(() => !stack.activeChildren.size)\n\n return {\n globalTop: readonly(globalTop),\n localTop,\n stackStyles: computed(() => ({ zIndex: _zIndex.value })),\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,cAAc,6BAEvB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,cAAc,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAC1GC,kBAAkB,6BAE3B;AAGA,MAAMC,WAAuC,GAAGC,MAAM,CAACC,GAAG,CAAC,eAAe,CAAC;AAM3E,MAAMC,WAAW,GAAGT,QAAQ,CAAkC,EAAE,CAAC;AAEjE,OAAO,SAASU,QAAQA,CACtBC,QAAgC,EAChCC,MAAsC,EACtCC,kBAA2B,EAC3B;EACA,MAAMC,EAAE,GAAGT,kBAAkB,CAAC,UAAU,CAAC;EACzC,MAAMU,gBAAgB,GAAG,CAACF,kBAAkB;EAE5C,MAAMG,MAAM,GAAGnB,MAAM,CAACS,WAAW,EAAEW,SAAS,CAAC;EAC7C,MAAMC,KAAmB,GAAGlB,QAAQ,CAAC;IACnCmB,cAAc,EAAE,IAAIC,GAAG,CAAS;EAClC,CAAC,CAAC;EACFrB,OAAO,CAACO,WAAW,EAAEY,KAAK,CAAC;EAE3B,MAAMG,OAAO,GAAGnB,UAAU,CAAC,CAACU,MAAM,CAACU,KAAK,CAAC;EACzC3B,cAAc,CAACgB,QAAQ,EAAE,MAAM;IAC7B,MAAMY,UAAU,GAAGd,WAAW,CAACe,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1CH,OAAO,CAACC,KAAK,GAAGC,UAAU,GAAGA,UAAU,GAAG,EAAE,GAAG,CAACX,MAAM,CAACU,KAAK;IAE5D,IAAIP,gBAAgB,EAAE;MACpBN,WAAW,CAACgB,IAAI,CAAC,CAACX,EAAE,CAACY,GAAG,EAAEL,OAAO,CAACC,KAAK,CAAC,CAAC;IAC3C;IAEAN,MAAM,EAAEG,cAAc,CAACQ,GAAG,CAACb,EAAE,CAACY,GAAG,CAAC;IAElC5B,cAAc,CAAC,MAAM;MACnB,IAAIiB,gBAAgB,EAAE;QACpB,MAAMa,GAAG,GAAGzB,KAAK,CAACM,WAAW,CAAC,CAACoB,SAAS,CAACC,CAAC,IAAIA,CAAC,CAAC,CAAC,CAAC,KAAKhB,EAAE,CAACY,GAAG,CAAC;QAC9DjB,WAAW,CAACsB,MAAM,CAACH,GAAG,EAAE,CAAC,CAAC;MAC5B;MAEAZ,MAAM,EAAEG,cAAc,CAACa,MAAM,CAAClB,EAAE,CAACY,GAAG,CAAC;IACvC,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMO,SAAS,GAAG/B,UAAU,CAAC,IAAI,CAAC;EAClC,IAAIa,gBAAgB,EAAE;IACpBX,WAAW,CAAC,MAAM;MAChB,MAAM8B,MAAM,GAAGzB,WAAW,CAACe,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAKV,EAAE,CAACY,GAAG;MACjDS,UAAU,CAAC,MAAMF,SAAS,CAACX,KAAK,GAAGY,MAAM,CAAC;IAC5C,CAAC,CAAC;EACJ;EAEA,MAAME,QAAQ,GAAGxC,QAAQ,CAAC,MAAM,CAACsB,KAAK,CAACC,cAAc,CAACkB,IAAI,CAAC;EAE3D,OAAO;IACLJ,SAAS,EAAEhC,QAAQ,CAACgC,SAAS,CAAC;IAC9BG,QAAQ;IACRE,WAAW,EAAE1C,QAAQ,CAAC,OAAO;MAAEgB,MAAM,EAAES,OAAO,CAACC;IAAM,CAAC,CAAC;EACzD,CAAC;AACH"}
|
10
VApp/node_modules/vuetify/lib/composables/tag.mjs
generated
vendored
Normal file
10
VApp/node_modules/vuetify/lib/composables/tag.mjs
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
// Utilities
|
||||
import { propsFactory } from "../util/index.mjs"; // Types
|
||||
// Composables
|
||||
export const makeTagProps = propsFactory({
|
||||
tag: {
|
||||
type: String,
|
||||
default: 'div'
|
||||
}
|
||||
}, 'tag');
|
||||
//# sourceMappingURL=tag.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/tag.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/tag.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"tag.mjs","names":["propsFactory","makeTagProps","tag","type","String","default"],"sources":["../../src/composables/tag.ts"],"sourcesContent":["// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface TagProps {\n tag: string\n}\n\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div',\n },\n}, 'tag')\n"],"mappings":"AAAA;AAAA,SACSA,YAAY,6BAErB;AAKA;AACA,OAAO,MAAMC,YAAY,GAAGD,YAAY,CAAC;EACvCE,GAAG,EAAE;IACHC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,KAAK,CAAC"}
|
25
VApp/node_modules/vuetify/lib/composables/teleport.mjs
generated
vendored
Normal file
25
VApp/node_modules/vuetify/lib/composables/teleport.mjs
generated
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
// Utilities
|
||||
import { computed, warn } from 'vue';
|
||||
import { IN_BROWSER } from "../util/index.mjs"; // Types
|
||||
export function useTeleport(target) {
|
||||
const teleportTarget = computed(() => {
|
||||
const _target = target.value;
|
||||
if (_target === true || !IN_BROWSER) return undefined;
|
||||
const targetElement = _target === false ? document.body : typeof _target === 'string' ? document.querySelector(_target) : _target;
|
||||
if (targetElement == null) {
|
||||
warn(`Unable to locate target ${_target}`);
|
||||
return undefined;
|
||||
}
|
||||
let container = targetElement.querySelector(':scope > .v-overlay-container');
|
||||
if (!container) {
|
||||
container = document.createElement('div');
|
||||
container.className = 'v-overlay-container';
|
||||
targetElement.appendChild(container);
|
||||
}
|
||||
return container;
|
||||
});
|
||||
return {
|
||||
teleportTarget
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=teleport.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/teleport.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/teleport.mjs.map
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"file":"teleport.mjs","names":["computed","warn","IN_BROWSER","useTeleport","target","teleportTarget","_target","value","undefined","targetElement","document","body","querySelector","container","createElement","className","appendChild"],"sources":["../../src/composables/teleport.ts"],"sourcesContent":["// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTeleport (target: Ref<boolean | string | Element>) {\n const teleportTarget = computed(() => {\n const _target = target.value\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n let container = targetElement.querySelector(':scope > .v-overlay-container')\n\n if (!container) {\n container = document.createElement('div')\n container.className = 'v-overlay-container'\n targetElement.appendChild(container)\n }\n\n return container\n })\n\n return { teleportTarget }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,IAAI,QAAQ,KAAK;AAAA,SAC3BC,UAAU,6BAEnB;AAGA,OAAO,SAASC,WAAWA,CAAEC,MAAuC,EAAE;EACpE,MAAMC,cAAc,GAAGL,QAAQ,CAAC,MAAM;IACpC,MAAMM,OAAO,GAAGF,MAAM,CAACG,KAAK;IAE5B,IAAID,OAAO,KAAK,IAAI,IAAI,CAACJ,UAAU,EAAE,OAAOM,SAAS;IAErD,MAAMC,aAAa,GACjBH,OAAO,KAAK,KAAK,GAAGI,QAAQ,CAACC,IAAI,GAC/B,OAAOL,OAAO,KAAK,QAAQ,GAAGI,QAAQ,CAACE,aAAa,CAACN,OAAO,CAAC,GAC7DA,OAAO;IAEX,IAAIG,aAAa,IAAI,IAAI,EAAE;MACzBR,IAAI,CAAE,2BAA0BK,OAAQ,EAAC,CAAC;MAC1C,OAAOE,SAAS;IAClB;IAEA,IAAIK,SAAS,GAAGJ,aAAa,CAACG,aAAa,CAAC,+BAA+B,CAAC;IAE5E,IAAI,CAACC,SAAS,EAAE;MACdA,SAAS,GAAGH,QAAQ,CAACI,aAAa,CAAC,KAAK,CAAC;MACzCD,SAAS,CAACE,SAAS,GAAG,qBAAqB;MAC3CN,aAAa,CAACO,WAAW,CAACH,SAAS,CAAC;IACtC;IAEA,OAAOA,SAAS;EAClB,CAAC,CAAC;EAEF,OAAO;IAAER;EAAe,CAAC;AAC3B"}
|
283
VApp/node_modules/vuetify/lib/composables/theme.mjs
generated
vendored
Normal file
283
VApp/node_modules/vuetify/lib/composables/theme.mjs
generated
vendored
Normal file
@ -0,0 +1,283 @@
|
||||
// Utilities
|
||||
import { computed, inject, provide, ref, watch, watchEffect } from 'vue';
|
||||
import { createRange, darken, getCurrentInstance, getForeground, getLuma, IN_BROWSER, lighten, mergeDeep, parseColor, propsFactory, RGBtoHex } from "../util/index.mjs"; // Types
|
||||
export const ThemeSymbol = Symbol.for('vuetify:theme');
|
||||
export const makeThemeProps = propsFactory({
|
||||
theme: String
|
||||
}, 'theme');
|
||||
function genDefaults() {
|
||||
return {
|
||||
defaultTheme: 'light',
|
||||
variations: {
|
||||
colors: [],
|
||||
lighten: 0,
|
||||
darken: 0
|
||||
},
|
||||
themes: {
|
||||
light: {
|
||||
dark: false,
|
||||
colors: {
|
||||
background: '#FFFFFF',
|
||||
surface: '#FFFFFF',
|
||||
'surface-bright': '#FFFFFF',
|
||||
'surface-light': '#EEEEEE',
|
||||
'surface-variant': '#424242',
|
||||
'on-surface-variant': '#EEEEEE',
|
||||
primary: '#1867C0',
|
||||
'primary-darken-1': '#1F5592',
|
||||
secondary: '#48A9A6',
|
||||
'secondary-darken-1': '#018786',
|
||||
error: '#B00020',
|
||||
info: '#2196F3',
|
||||
success: '#4CAF50',
|
||||
warning: '#FB8C00'
|
||||
},
|
||||
variables: {
|
||||
'border-color': '#000000',
|
||||
'border-opacity': 0.12,
|
||||
'high-emphasis-opacity': 0.87,
|
||||
'medium-emphasis-opacity': 0.60,
|
||||
'disabled-opacity': 0.38,
|
||||
'idle-opacity': 0.04,
|
||||
'hover-opacity': 0.04,
|
||||
'focus-opacity': 0.12,
|
||||
'selected-opacity': 0.08,
|
||||
'activated-opacity': 0.12,
|
||||
'pressed-opacity': 0.12,
|
||||
'dragged-opacity': 0.08,
|
||||
'theme-kbd': '#212529',
|
||||
'theme-on-kbd': '#FFFFFF',
|
||||
'theme-code': '#F5F5F5',
|
||||
'theme-on-code': '#000000'
|
||||
}
|
||||
},
|
||||
dark: {
|
||||
dark: true,
|
||||
colors: {
|
||||
background: '#121212',
|
||||
surface: '#212121',
|
||||
'surface-bright': '#ccbfd6',
|
||||
'surface-light': '#424242',
|
||||
'surface-variant': '#a3a3a3',
|
||||
'on-surface-variant': '#424242',
|
||||
primary: '#2196F3',
|
||||
'primary-darken-1': '#277CC1',
|
||||
secondary: '#54B6B2',
|
||||
'secondary-darken-1': '#48A9A6',
|
||||
error: '#CF6679',
|
||||
info: '#2196F3',
|
||||
success: '#4CAF50',
|
||||
warning: '#FB8C00'
|
||||
},
|
||||
variables: {
|
||||
'border-color': '#FFFFFF',
|
||||
'border-opacity': 0.12,
|
||||
'high-emphasis-opacity': 1,
|
||||
'medium-emphasis-opacity': 0.70,
|
||||
'disabled-opacity': 0.50,
|
||||
'idle-opacity': 0.10,
|
||||
'hover-opacity': 0.04,
|
||||
'focus-opacity': 0.12,
|
||||
'selected-opacity': 0.08,
|
||||
'activated-opacity': 0.12,
|
||||
'pressed-opacity': 0.16,
|
||||
'dragged-opacity': 0.08,
|
||||
'theme-kbd': '#212529',
|
||||
'theme-on-kbd': '#FFFFFF',
|
||||
'theme-code': '#343434',
|
||||
'theme-on-code': '#CCCCCC'
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
function parseThemeOptions() {
|
||||
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults();
|
||||
const defaults = genDefaults();
|
||||
if (!options) return {
|
||||
...defaults,
|
||||
isDisabled: true
|
||||
};
|
||||
const themes = {};
|
||||
for (const [key, theme] of Object.entries(options.themes ?? {})) {
|
||||
const defaultTheme = theme.dark || key === 'dark' ? defaults.themes?.dark : defaults.themes?.light;
|
||||
themes[key] = mergeDeep(defaultTheme, theme);
|
||||
}
|
||||
return mergeDeep(defaults, {
|
||||
...options,
|
||||
themes
|
||||
});
|
||||
}
|
||||
|
||||
// Composables
|
||||
export function createTheme(options) {
|
||||
const parsedOptions = parseThemeOptions(options);
|
||||
const name = ref(parsedOptions.defaultTheme);
|
||||
const themes = ref(parsedOptions.themes);
|
||||
const computedThemes = computed(() => {
|
||||
const acc = {};
|
||||
for (const [name, original] of Object.entries(themes.value)) {
|
||||
const theme = acc[name] = {
|
||||
...original,
|
||||
colors: {
|
||||
...original.colors
|
||||
}
|
||||
};
|
||||
if (parsedOptions.variations) {
|
||||
for (const name of parsedOptions.variations.colors) {
|
||||
const color = theme.colors[name];
|
||||
if (!color) continue;
|
||||
for (const variation of ['lighten', 'darken']) {
|
||||
const fn = variation === 'lighten' ? lighten : darken;
|
||||
for (const amount of createRange(parsedOptions.variations[variation], 1)) {
|
||||
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (const color of Object.keys(theme.colors)) {
|
||||
if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
|
||||
const onColor = `on-${color}`;
|
||||
const colorVal = parseColor(theme.colors[color]);
|
||||
theme.colors[onColor] = getForeground(colorVal);
|
||||
}
|
||||
}
|
||||
return acc;
|
||||
});
|
||||
const current = computed(() => computedThemes.value[name.value]);
|
||||
const styles = computed(() => {
|
||||
const lines = [];
|
||||
if (current.value.dark) {
|
||||
createCssClass(lines, ':root', ['color-scheme: dark']);
|
||||
}
|
||||
createCssClass(lines, ':root', genCssVariables(current.value));
|
||||
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
||||
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)]);
|
||||
}
|
||||
const bgLines = [];
|
||||
const fgLines = [];
|
||||
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
||||
for (const key of colors) {
|
||||
if (/^on-[a-z]/.test(key)) {
|
||||
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
|
||||
} else {
|
||||
createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`]);
|
||||
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
|
||||
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);
|
||||
}
|
||||
}
|
||||
lines.push(...bgLines, ...fgLines);
|
||||
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
||||
});
|
||||
function getHead() {
|
||||
return {
|
||||
style: [{
|
||||
children: styles.value,
|
||||
id: 'vuetify-theme-stylesheet',
|
||||
nonce: parsedOptions.cspNonce || false
|
||||
}]
|
||||
};
|
||||
}
|
||||
function install(app) {
|
||||
if (parsedOptions.isDisabled) return;
|
||||
const head = app._context.provides.usehead;
|
||||
if (head) {
|
||||
if (head.push) {
|
||||
const entry = head.push(getHead);
|
||||
if (IN_BROWSER) {
|
||||
watch(styles, () => {
|
||||
entry.patch(getHead);
|
||||
});
|
||||
}
|
||||
} else {
|
||||
if (IN_BROWSER) {
|
||||
head.addHeadObjs(computed(getHead));
|
||||
watchEffect(() => head.updateDOM());
|
||||
} else {
|
||||
head.addHeadObjs(getHead());
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
|
||||
if (IN_BROWSER) {
|
||||
watch(styles, updateStyles, {
|
||||
immediate: true
|
||||
});
|
||||
} else {
|
||||
updateStyles();
|
||||
}
|
||||
function updateStyles() {
|
||||
if (typeof document !== 'undefined' && !styleEl) {
|
||||
const el = document.createElement('style');
|
||||
el.type = 'text/css';
|
||||
el.id = 'vuetify-theme-stylesheet';
|
||||
if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce);
|
||||
styleEl = el;
|
||||
document.head.appendChild(styleEl);
|
||||
}
|
||||
if (styleEl) styleEl.innerHTML = styles.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
|
||||
return {
|
||||
install,
|
||||
isDisabled: parsedOptions.isDisabled,
|
||||
name,
|
||||
themes,
|
||||
current,
|
||||
computedThemes,
|
||||
themeClasses,
|
||||
styles,
|
||||
global: {
|
||||
name,
|
||||
current
|
||||
}
|
||||
};
|
||||
}
|
||||
export function provideTheme(props) {
|
||||
getCurrentInstance('provideTheme');
|
||||
const theme = inject(ThemeSymbol, null);
|
||||
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
||||
const name = computed(() => {
|
||||
return props.theme ?? theme.name.value;
|
||||
});
|
||||
const current = computed(() => theme.themes.value[name.value]);
|
||||
const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
||||
const newTheme = {
|
||||
...theme,
|
||||
name,
|
||||
current,
|
||||
themeClasses
|
||||
};
|
||||
provide(ThemeSymbol, newTheme);
|
||||
return newTheme;
|
||||
}
|
||||
export function useTheme() {
|
||||
getCurrentInstance('useTheme');
|
||||
const theme = inject(ThemeSymbol, null);
|
||||
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
||||
return theme;
|
||||
}
|
||||
function createCssClass(lines, selector, content) {
|
||||
lines.push(`${selector} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
||||
}
|
||||
function genCssVariables(theme) {
|
||||
const lightOverlay = theme.dark ? 2 : 1;
|
||||
const darkOverlay = theme.dark ? 1 : 2;
|
||||
const variables = [];
|
||||
for (const [key, value] of Object.entries(theme.colors)) {
|
||||
const rgb = parseColor(value);
|
||||
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
||||
if (!key.startsWith('on-')) {
|
||||
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
||||
}
|
||||
}
|
||||
for (const [key, value] of Object.entries(theme.variables)) {
|
||||
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
||||
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
||||
variables.push(`--v-${key}: ${rgb ?? value}`);
|
||||
}
|
||||
return variables;
|
||||
}
|
||||
//# sourceMappingURL=theme.mjs.map
|
1
VApp/node_modules/vuetify/lib/composables/theme.mjs.map
generated
vendored
Normal file
1
VApp/node_modules/vuetify/lib/composables/theme.mjs.map
generated
vendored
Normal file
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user