import { defaultRtl, en_default } from "./chunk-QJIII4WD.js"; import { DefaultsSymbol, IN_BROWSER, IconSymbol, RGBtoHex, SUPPORTS_TOUCH, consoleError, consoleWarn, createDefaults, createIcons, createRange, darken, defineComponent, getCurrentInstance, getLuma, getObjectValueByPath, getUid, lighten, mergeDeep, parseColor, propsFactory, toKebabCase, useDefaults, useToggleScope } from "./chunk-S3H25MSG.js"; import { computed, inject, nextTick, reactive, ref, shallowRef, toRaw, toRefs, watch, watchEffect } from "./chunk-J6475X5X.js"; import "./chunk-SSYGV25P.js"; // node_modules/vuetify/lib/composables/display.mjs var DisplaySymbol = Symbol.for("vuetify:display"); var defaultDisplayOptions = { mobileBreakpoint: "lg", thresholds: { xs: 0, sm: 600, md: 960, lg: 1280, xl: 1920, xxl: 2560 } }; var parseDisplayOptions = function() { let options = arguments.length > 0 && arguments[0] !== void 0 ? 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" }; } 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(); } 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 }; } function useDisplay() { const display = inject(DisplaySymbol); if (!display) throw new Error("Could not find Vuetify display injection"); return display; } // node_modules/vuetify/lib/composables/proxiedModel.mjs function useProxiedModel(props, prop, defaultValue) { let transformIn = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : (v) => v; let transformOut = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : (v) => v; const vm = getCurrentInstance("useProxiedModel"); const internal = ref(props[prop] !== void 0 ? props[prop] : defaultValue); const kebabProp = toKebabCase(prop); const checkKebab = kebabProp !== prop; const isControlled = checkKebab ? computed(() => { var _a, _b, _c, _d; void props[prop]; return !!((((_a = vm.vnode.props) == null ? void 0 : _a.hasOwnProperty(prop)) || ((_b = vm.vnode.props) == null ? void 0 : _b.hasOwnProperty(kebabProp))) && (((_c = vm.vnode.props) == null ? void 0 : _c.hasOwnProperty(`onUpdate:${prop}`)) || ((_d = vm.vnode.props) == null ? void 0 : _d.hasOwnProperty(`onUpdate:${kebabProp}`)))); }) : computed(() => { var _a, _b; void props[prop]; return !!(((_a = vm.vnode.props) == null ? void 0 : _a.hasOwnProperty(prop)) && ((_b = vm.vnode.props) == null ? void 0 : _b.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 == null ? void 0 : vm.emit(`update:${prop}`, newValue); } }); Object.defineProperty(model, "externalValue", { get: () => isControlled.value ? props[prop] : internal.value }); return model; } // node_modules/vuetify/lib/locale/adapters/vuetify.mjs var LANG_PREFIX = "$vuetify."; var replace = (str, params) => { return str.replace(/\{(\d+)\}/g, (match, index) => { return String(params[+index]); }); }; var createTranslateFunction = (current, fallback, messages) => { return function(key) { for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { params[_key - 1] = arguments[_key]; } if (!key.startsWith(LANG_PREFIX)) { return replace(key, params); } const shortKey = key.replace(LANG_PREFIX, ""); const currentLocale = current.value && messages.value[current.value]; const fallbackLocale = fallback.value && messages.value[fallback.value]; let str = getObjectValueByPath(currentLocale, shortKey, null); if (!str) { consoleWarn(`Translation key "${key}" not found in "${current.value}", trying fallback locale`); str = getObjectValueByPath(fallbackLocale, shortKey, null); } if (!str) { consoleError(`Translation key "${key}" not found in fallback`); str = key; } if (typeof str !== "string") { consoleError(`Translation key "${key}" has a non-string value`); str = key; } return replace(str, params); }; }; function createNumberFunction(current, fallback) { return (value, options) => { const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options); return numberFormat.format(value); }; } function useProvided(props, prop, provided) { const internal = useProxiedModel(props, prop, props[prop] ?? provided.value); internal.value = props[prop] ?? provided.value; watch(provided, (v) => { if (props[prop] == null) { internal.value = provided.value; } }); return internal; } function createProvideFunction(state) { return (props) => { const current = useProvided(props, "locale", state.current); const fallback = useProvided(props, "fallback", state.fallback); const messages = useProvided(props, "messages", state.messages); return { name: "vuetify", current, fallback, messages, t: createTranslateFunction(current, fallback, messages), n: createNumberFunction(current, fallback), provide: createProvideFunction({ current, fallback, messages }) }; }; } function createVuetifyAdapter(options) { const current = shallowRef((options == null ? void 0 : options.locale) ?? "en"); const fallback = shallowRef((options == null ? void 0 : options.fallback) ?? "en"); const messages = ref({ en: en_default, ...options == null ? void 0 : options.messages }); return { name: "vuetify", current, fallback, messages, t: createTranslateFunction(current, fallback, messages), n: createNumberFunction(current, fallback), provide: createProvideFunction({ current, fallback, messages }) }; } // node_modules/vuetify/lib/composables/locale.mjs var LocaleSymbol = Symbol.for("vuetify:locale"); function isLocaleInstance(obj) { return obj.name != null; } function createLocale(options) { const i18n = (options == null ? void 0 : options.adapter) && isLocaleInstance(options == null ? void 0 : options.adapter) ? options == null ? void 0 : options.adapter : createVuetifyAdapter(options); const rtl = createRtl(i18n, options); return { ...i18n, ...rtl }; } function useLocale() { const locale = inject(LocaleSymbol); if (!locale) throw new Error("[Vuetify] Could not find injected locale instance"); return locale; } var RtlSymbol = Symbol.for("vuetify:rtl"); function createRtl(i18n, options) { const rtl = ref((options == null ? void 0 : options.rtl) ?? defaultRtl); const isRtl = computed(() => rtl.value[i18n.current.value] ?? false); return { isRtl, rtl, rtlClasses: computed(() => `v-locale--is-${isRtl.value ? "rtl" : "ltr"}`) }; } 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 }; } // node_modules/vuetify/lib/util/color/APCA.mjs var mainTRC = 2.4; var Rco = 0.2126729; var Gco = 0.7151522; var Bco = 0.072175; var normBG = 0.55; var normTXT = 0.58; var revTXT = 0.57; var revBG = 0.62; var blkThrs = 0.03; var blkClmp = 1.45; var deltaYmin = 5e-4; var scaleBoW = 1.25; var scaleWoB = 1.25; var loConThresh = 0.078; var loConFactor = 12.82051282051282; var loConOffset = 0.06; var loClip = 1e-3; function APCAcontrast(text, background) { const Rtxt = (text.r / 255) ** mainTRC; const Gtxt = (text.g / 255) ** mainTRC; const Btxt = (text.b / 255) ** mainTRC; const Rbg = (background.r / 255) ** mainTRC; const Gbg = (background.g / 255) ** mainTRC; const Bbg = (background.b / 255) ** mainTRC; let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco; let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco; if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp; if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp; if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0; let outputContrast; if (Ybg > Ytxt) { const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW; outputContrast = SAPC < loClip ? 0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset; } else { const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB; outputContrast = SAPC > -loClip ? 0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset; } return outputContrast * 100; } // node_modules/vuetify/lib/composables/theme.mjs var ThemeSymbol = Symbol.for("vuetify:theme"); var makeThemeProps = propsFactory({ theme: String }, "theme"); var defaultThemeOptions = { defaultTheme: "light", variations: { colors: [], lighten: 0, darken: 0 }, themes: { light: { dark: false, colors: { background: "#FFFFFF", surface: "#FFFFFF", "surface-variant": "#424242", "on-surface-variant": "#EEEEEE", primary: "#6200EE", "primary-darken-1": "#3700B3", secondary: "#03DAC6", "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.6, "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-variant": "#BDBDBD", "on-surface-variant": "#424242", primary: "#BB86FC", "primary-darken-1": "#3700B3", secondary: "#03DAC5", "secondary-darken-1": "#03DAC5", error: "#CF6679", info: "#2196F3", success: "#4CAF50", warning: "#FB8C00" }, variables: { "border-color": "#FFFFFF", "border-opacity": 0.12, "high-emphasis-opacity": 1, "medium-emphasis-opacity": 0.7, "disabled-opacity": 0.5, "idle-opacity": 0.1, "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() { var _a, _b; let options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : defaultThemeOptions; if (!options) return { ...defaultThemeOptions, isDisabled: true }; const themes = {}; for (const [key, theme] of Object.entries(options.themes ?? {})) { const defaultTheme = theme.dark || key === "dark" ? (_a = defaultThemeOptions.themes) == null ? void 0 : _a.dark : (_b = defaultThemeOptions.themes) == null ? void 0 : _b.light; themes[key] = mergeDeep(defaultTheme, theme); } return mergeDeep(defaultThemeOptions, { ...options, themes }); } function createTheme(options) { const parsedOptions = parseThemeOptions(options); const name = ref(parsedOptions.defaultTheme); const themes = ref(parsedOptions.themes); const computedThemes = computed(() => { const acc = {}; for (const [name2, original] of Object.entries(themes.value)) { const theme = acc[name2] = { ...original, colors: { ...original.colors } }; if (parsedOptions.variations) { for (const name3 of parsedOptions.variations.colors) { const color = theme.colors[name3]; 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[`${name3}-${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]); const blackContrast = Math.abs(APCAcontrast(parseColor(0), colorVal)); const whiteContrast = Math.abs(APCAcontrast(parseColor(16777215), colorVal)); theme.colors[onColor] = whiteContrast > Math.min(blackContrast, 50) ? "#fff" : "#000"; } } 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 updateStyles = function() { 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; }; let styleEl = IN_BROWSER ? document.getElementById("vuetify-theme-stylesheet") : null; if (IN_BROWSER) { watch(styles, updateStyles, { immediate: true }); } else { updateStyles(); } } } const themeClasses = computed(() => parsedOptions.isDisabled ? void 0 : `v-theme--${name.value}`); return { install, isDisabled: parsedOptions.isDisabled, name, themes, current, computedThemes, themeClasses, styles, global: { name, current } }; } 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} { `, ...content.map((line) => ` ${line}; `), "}\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) : void 0; const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : void 0; variables.push(`--v-${key}: ${rgb ?? value}`); } return variables; } // node_modules/vuetify/lib/labs/date/adapters/vuetify.mjs var 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(date2, locale) { const weeks = []; let currentWeek = []; const firstDayOfMonth = startOfMonth(date2); const lastDayOfMonth = endOfMonth(date2); const firstDayWeekIndex = firstDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()]; const lastDayWeekIndex = lastDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()]; 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(date2.getFullYear(), date2.getMonth(), i); currentWeek.push(day); 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); } weeks.push(currentWeek); return weeks; } function startOfMonth(date2) { return new Date(date2.getFullYear(), date2.getMonth(), 1); } function endOfMonth(date2) { return new Date(date2.getFullYear(), date2.getMonth() + 1, 0); } function parseLocalDate(value) { const parts = value.split("-").map(Number); return new Date(parts[0], parts[1] - 1, parts[2]); } var _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 /* @__PURE__ */ 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; } var sundayJanuarySecond2000 = new Date(2e3, 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: "short" }).format(weekday); }); } function format(value, formatString, locale) { const date2 = new Date(value); let options = {}; switch (formatString) { case "fullDateWithWeekday": options = { weekday: "long", day: "numeric", month: "long", year: "numeric" }; break; case "normalDateWithWeekday": options = { weekday: "short", day: "numeric", month: "short" }; break; case "keyboardDate": options = {}; break; case "monthAndDate": options = { month: "long", day: "numeric" }; break; case "monthAndYear": options = { month: "long", year: "numeric" }; break; case "dayOfMonth": options = { day: "numeric" }; break; default: options = { timeZone: "UTC", timeZoneName: "short" }; } return new Intl.DateTimeFormat(locale, options).format(date2); } function addDays(date2, amount) { const d = new Date(date2); d.setDate(d.getDate() + amount); return d; } function addMonths(date2, amount) { const d = new Date(date2); d.setMonth(d.getMonth() + amount); return d; } function getYear(date2) { return date2.getFullYear(); } function getMonth(date2) { return date2.getMonth(); } function startOfYear(date2) { return new Date(date2.getFullYear(), 0, 1); } function endOfYear(date2) { return new Date(date2.getFullYear(), 11, 31); } function isWithinRange(date2, range) { return isAfter(date2, range[0]) && isBefore(date2, range[1]); } function isValid(date2) { const d = new Date(date2); return d instanceof Date && !isNaN(d.getTime()); } function isAfter(date2, comparing) { return date2.getTime() > comparing.getTime(); } function isBefore(date2, comparing) { return date2.getTime() < comparing.getTime(); } function isEqual(date2, comparing) { return date2.getTime() === comparing.getTime(); } function isSameDay(date2, comparing) { return date2.getDate() === comparing.getDate() && date2.getMonth() === comparing.getMonth() && date2.getFullYear() === comparing.getFullYear(); } function isSameMonth(date2, comparing) { return date2.getMonth() === comparing.getMonth() && date2.getFullYear() === comparing.getFullYear(); } function getDiff(date2, comparing, unit) { const d = new Date(date2); 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()) / (1e3 * 60 * 60 * 24)); } function setYear(date2, year) { const d = new Date(date2); d.setFullYear(year); return d; } var VuetifyDateAdapter = class { constructor(options) { this.locale = options.locale; } date(value) { return date(value); } toJsDate(date2) { return date2; } addDays(date2, amount) { return addDays(date2, amount); } addMonths(date2, amount) { return addMonths(date2, amount); } getWeekArray(date2) { return getWeekArray(date2, this.locale); } startOfMonth(date2) { return startOfMonth(date2); } endOfMonth(date2) { return endOfMonth(date2); } format(date2, formatString) { return format(date2, formatString, this.locale); } isEqual(date2, comparing) { return isEqual(date2, comparing); } isValid(date2) { return isValid(date2); } isWithinRange(date2, range) { return isWithinRange(date2, range); } isAfter(date2, comparing) { return isAfter(date2, comparing); } isBefore(date2, comparing) { return !isAfter(date2, comparing) && !isEqual(date2, comparing); } isSameDay(date2, comparing) { return isSameDay(date2, comparing); } isSameMonth(date2, comparing) { return isSameMonth(date2, comparing); } setYear(date2, year) { return setYear(date2, year); } getDiff(date2, comparing, unit) { return getDiff(date2, comparing, unit); } getWeekdays() { return getWeekdays(this.locale); } getYear(date2) { return getYear(date2); } getMonth(date2) { return getMonth(date2); } startOfYear(date2) { return startOfYear(date2); } endOfYear(date2) { return endOfYear(date2); } }; // node_modules/vuetify/lib/labs/date/date.mjs var DateAdapterSymbol = Symbol.for("vuetify:date-adapter"); function createDate(options) { return mergeDeep({ adapter: VuetifyDateAdapter, locale: { af: "af-ZA", // ar: '', # not the same value for all variants bg: "bg-BG", ca: "ca-ES", ckb: "", cs: "", 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: "nn-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); } var makeDateProps = propsFactory({ displayDate: { type: Object, default: /* @__PURE__ */ new Date() }, hideAdjacentMonths: Boolean, modelValue: { type: null, default: () => [] } }, "date"); // node_modules/vuetify/lib/composables/layout.mjs var VuetifyLayoutKey = Symbol.for("vuetify:layout"); var VuetifyLayoutItemKey = Symbol.for("vuetify:layout-item"); var makeLayoutProps = propsFactory({ overlaps: { type: Array, default: () => [] }, fullHeight: Boolean }, "layout"); var makeLayoutItemProps = propsFactory({ name: { type: String }, order: { type: [Number, String], default: 0 }, absolute: Boolean }, "layout-item"); 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 }; } // node_modules/vuetify/lib/framework.mjs function createVuetify() { let vuetify = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; const { blueprint, ...rest } = vuetify; const options = mergeDeep(blueprint, rest); const { aliases = {}, components = {}, directives = {} } = options; const defaults = createDefaults(options.defaults); const display = createDisplay(options.display, options.ssr); const theme = createTheme(options.theme); const icons = createIcons(options.icons); const locale = createLocale(options.locale); const date2 = createDate(options.date); const install = (app) => { for (const key in directives) { app.directive(key, directives[key]); } for (const key in components) { app.component(key, components[key]); } for (const key in aliases) { app.component(key, defineComponent({ ...aliases[key], name: key, aliasName: aliases[key].name })); } theme.install(app); app.provide(DefaultsSymbol, defaults); app.provide(DisplaySymbol, display); app.provide(ThemeSymbol, theme); app.provide(IconSymbol, icons); app.provide(LocaleSymbol, locale); app.provide(DateAdapterSymbol, date2); if (IN_BROWSER && options.ssr) { if (app.$nuxt) { app.$nuxt.hook("app:suspense:resolve", () => { display.update(); }); } else { const { mount } = app; app.mount = function() { const vm = mount(...arguments); nextTick(() => display.update()); app.mount = mount; return vm; }; } } getUid.reset(); if (typeof __VUE_OPTIONS_API__ !== "boolean" || __VUE_OPTIONS_API__) { app.mixin({ computed: { $vuetify() { return reactive({ defaults: inject2.call(this, DefaultsSymbol), display: inject2.call(this, DisplaySymbol), theme: inject2.call(this, ThemeSymbol), icons: inject2.call(this, IconSymbol), locale: inject2.call(this, LocaleSymbol), date: inject2.call(this, DateAdapterSymbol) }); } } }); } }; return { install, defaults, display, theme, icons, locale, date: date2 }; } var version = "3.3.11"; createVuetify.version = version; function inject2(key) { var _a, _b; const vm = this.$; const provides = ((_a = vm.parent) == null ? void 0 : _a.provides) ?? ((_b = vm.vnode.appContext) == null ? void 0 : _b.provides); if (provides && key in provides) { return provides[key]; } } export { createVuetify, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version }; //# sourceMappingURL=vuetify.js.map