import { Kn as ref, Qn as toRef, U as computed, Yn as shallowRef, gn as watch, xt as inject } from "./vue.runtime.esm-bundler-BvoXUmaf.js"; import { A as getObjectValueByPath, it as consoleWarn, rt as consoleError } from "./defineComponent-DB6xIcDy.js"; import { t as useProxiedModel } from "./proxiedModel-DSlSIQ0y.js"; //#region node_modules/vuetify/lib/locale/en.js var en_default = { badge: "Badge", open: "Open", close: "Close", dismiss: "Dismiss", confirmEdit: { ok: "OK", cancel: "Cancel" }, dataIterator: { noResultsText: "No matching records found", loadingText: "Loading items..." }, dataTable: { itemsPerPageText: "Rows per page:", ariaLabel: { sortDescending: "Sorted descending.", sortAscending: "Sorted ascending.", sortNone: "Not sorted.", activateNone: "Activate to remove sorting.", activateDescending: "Activate to sort descending.", activateAscending: "Activate to sort ascending." }, sortBy: "Sort by" }, dataFooter: { itemsPerPageText: "Items per page:", itemsPerPageAll: "All", nextPage: "Next page", prevPage: "Previous page", firstPage: "First page", lastPage: "Last page", pageText: "{0}-{1} of {2}" }, dateRangeInput: { divider: "to" }, datePicker: { itemsSelected: "{0} selected", range: { title: "Select dates", header: "Enter dates" }, title: "Select date", header: "Enter date", input: { placeholder: "Enter date" }, ariaLabel: { previousMonth: "Previous month", nextMonth: "Next month", selectYear: "Select year", previousYear: "Previous year", nextYear: "Next year", selectMonth: "Select month", selectDate: "{0}", currentDate: "Today, {0}" } }, noDataText: "No data available", carousel: { prev: "Previous visual", next: "Next visual", ariaLabel: { delimiter: "Carousel slide {0} of {1}" } }, calendar: { moreEvents: "{0} more", today: "Today" }, input: { clear: "Clear {0}", prependAction: "{0} prepended action", appendAction: "{0} appended action", otp: "Please enter OTP character {0}" }, fileInput: { counter: "{0} files", counterSize: "{0} files ({1} in total)" }, fileUpload: { title: "Drag and drop files here", divider: "or", browse: "Browse Files" }, timePicker: { am: "AM", pm: "PM", title: "Select Time", hour: "Hour", minute: "Minute", second: "Second", notAllowed: "Value is not allowed" }, pagination: { ariaLabel: { root: "Pagination Navigation", next: "Next page", previous: "Previous page", page: "Go to page {0}", currentPage: "Page {0}, Current page", first: "First page", last: "Last page" } }, stepper: { next: "Next", prev: "Previous" }, rating: { ariaLabel: { item: "Rating {0} of {1}" } }, loading: "Loading...", infiniteScroll: { loadMore: "Load more", empty: "No more" }, rules: { required: "This field is required", email: "Please enter a valid email", number: "This field can only contain numbers", integer: "This field can only contain integer values", capital: "This field can only contain uppercase letters", maxLength: "You must enter a maximum of {0} characters", minLength: "You must enter a minimum of {0} characters", strictLength: "The length of the entered field is invalid", exclude: "The {0} character is not allowed", notEmpty: "Please choose at least one value", pattern: "Invalid format" }, command: { search: "Type a command or search..." }, hotkey: { then: "then", ctrl: "Ctrl", command: "Command", space: "Space", shift: "Shift", alt: "Alt", enter: "Enter", escape: "Escape", upArrow: "Up Arrow", downArrow: "Down Arrow", leftArrow: "Left Arrow", rightArrow: "Right Arrow", backspace: "Backspace", option: "Option", plus: "plus", shortcut: "Keyboard shortcut: {0}", or: "or" }, video: { play: "Play", pause: "Pause", seek: "Seek", volume: "Volume", showVolume: "Show volume control", mute: "Mute", unmute: "Unmute", enterFullscreen: "Full screen", exitFullscreen: "Exit full screen" }, colorPicker: { ariaLabel: { eyedropper: "Select color with eyedropper", hueSlider: "Hue", alphaSlider: "Alpha", redInput: "Red value", greenInput: "Green value", blueInput: "Blue value", alphaInput: "Alpha value", hueInput: "Hue value", saturationInput: "Saturation value", lightnessInput: "Lightness value", hexInput: "HEX value", hexaInput: "HEX with alpha value", changeFormat: "Change color format" } } }; //#endregion //#region node_modules/vuetify/lib/locale/adapters/vuetify.js var LANG_PREFIX = "$vuetify."; var replace = (str, params) => { return str.replace(/\{(\d+)\}/g, (match, index) => { return String(params[Number(index)]); }); }; var createTranslateFunction = (current, fallback, messages) => { return (key, ...params) => { 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) => { return new Intl.NumberFormat([current.value, fallback.value], options).format(value); }; } function inferDecimalSeparator(current, fallback) { return createNumberFunction(current, fallback)(.1).includes(",") ? "," : "."; } 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, decimalSeparator: toRef(() => inferDecimalSeparator(current, fallback)), t: createTranslateFunction(current, fallback, messages), n: createNumberFunction(current, fallback), provide: createProvideFunction({ current, fallback, messages }) }; }; } function createVuetifyAdapter(options) { const current = shallowRef(options?.locale ?? "en"); const fallback = shallowRef(options?.fallback ?? "en"); const messages = ref({ en: en_default, ...options?.messages }); return { name: "vuetify", current, fallback, messages, decimalSeparator: toRef(() => options?.decimalSeparator ?? inferDecimalSeparator(current, fallback)), t: createTranslateFunction(current, fallback, messages), n: createNumberFunction(current, fallback), provide: createProvideFunction({ current, fallback, messages }) }; } //#endregion //#region node_modules/vuetify/lib/composables/locale.js var LocaleSymbol = Symbol.for("vuetify:locale"); function isLocaleInstance(obj) { return obj.name != null; } function createLocale(options) { const i18n = options?.adapter && isLocaleInstance(options?.adapter) ? 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; } 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 }; } function createRtl(i18n, options) { const rtl = ref(options?.rtl ?? genDefaults()); const isRtl = computed(() => rtl.value[i18n.current.value] ?? false); return { isRtl, rtl, rtlClasses: toRef(() => `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 }; } //#endregion export { useRtl as i, createLocale as n, useLocale as r, LocaleSymbol as t }; //# sourceMappingURL=locale-DDGMqzqb.js.map