UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 7.16 kB
{"version":3,"file":"vuetify.mjs","names":["ref","watch","consoleError","consoleWarn","getObjectValueByPath","useProxiedModel","en","LANG_PREFIX","replace","str","params","match","index","String","createTranslateFunction","current","fallback","messages","key","startsWith","shortKey","currentLocale","value","fallbackLocale","createNumberFunction","options","numberFormat","Intl","NumberFormat","format","useProvided","props","prop","provided","internal","v","createProvideFunction","state","name","t","n","provide","createVuetifyAdapter","locale"],"sources":["../../../src/locale/adapters/vuetify.ts"],"sourcesContent":["import { ref, watch } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport en from '@/locale/en'\n\nimport type { Ref } from 'vue'\nimport type { LocaleInstance, LocaleMessages, LocaleOptions } from '@/composables/locale'\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref<string>,\n fallback: Ref<string>,\n messages: Ref<LocaleMessages>,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref<string>, fallback: Ref<string>) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nfunction useProvided <T> (props: any, prop: string, provided: Ref<T>) {\n const internal = useProxiedModel(props, prop, props[prop] ?? provided.value)\n\n // TODO: Remove when defaultValue works\n internal.value = props[prop] ?? provided.value\n\n watch(provided, v => {\n if (props[prop] == null) {\n internal.value = provided.value\n }\n })\n\n return internal as Ref<T>\n}\n\nfunction createProvideFunction (state: { current: Ref<string>, fallback: Ref<string>, messages: Ref<LocaleMessages> }) {\n return (props: LocaleOptions): LocaleInstance => {\n const current = useProvided(props, 'locale', state.current)\n const fallback = useProvided(props, 'fallback', state.fallback)\n const messages = useProvided(props, 'messages', state.messages)\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n }\n}\n\nexport function createVuetifyAdapter (options?: LocaleOptions): LocaleInstance {\n const current = ref(options?.locale ?? 'en')\n const fallback = ref(options?.fallback ?? 'en')\n const messages = ref({ en, ...options?.messages })\n\n return {\n name: 'vuetify',\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n provide: createProvideFunction({ current, fallback, messages }),\n }\n}\n"],"mappings":"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"}