vuetify
Version:
Vue Material Component Framework
1 lines • 4.84 kB
Source Map (JSON)
{"version":3,"file":"composables.mjs","names":["useProxiedModel","useDate","propsFactory","wrapInArray","makeDateProps","modelValue","type","default","displayDate","Date","inputMode","String","viewMode","format","dateEmits","date","focused","createDateInput","props","isRange","adapter","model","v","arr","filter","map","formatted","d","value","length","parseKeyboardDate","input","fallback","isValid"],"sources":["../../../src/labs/VDateInput/composables.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeDateProps = propsFactory({\n modelValue: {\n type: null as unknown as PropType<any[]>,\n default: () => [],\n },\n displayDate: {\n type: null as unknown as PropType<any>,\n default: new Date(),\n },\n inputMode: {\n type: String as PropType<'calendar' | 'keyboard'>,\n default: 'calendar',\n },\n viewMode: {\n type: String as PropType<'month' | 'year'>,\n default: 'month',\n },\n format: String,\n}, 'date')\n\nexport const dateEmits = {\n 'update:modelValue': (date: any[]) => true,\n 'update:displayDate': (date: any) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:inputMode': (inputMode: 'calendar' | 'keyboard') => true,\n 'update:viewMode': (viewMode: 'month' | 'year') => true,\n}\n\ntype DateInputProps = {\n modelValue?: any | any[]\n 'onUpdate:modelValue': ((value: any | any[]) => void) | undefined\n displayDate?: any\n 'onUpdate:displayDate': ((value: any) => void) | undefined\n inputMode?: 'calendar' | 'keyboard'\n 'onUpdate:inputMode': ((value: 'calendar' | 'keyboard') => void) | undefined\n viewMode?: 'month' | 'year'\n 'onUpdate:viewMode': ((value: 'month' | 'year') => void) | undefined\n format?: string\n}\n\nexport function createDateInput (props: DateInputProps, isRange: boolean) {\n const adapter = useDate()\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n const arr = wrapInArray(v).filter(v => !!v)\n return arr.map(adapter.date) as Date[]\n },\n v => {\n const arr = wrapInArray(v)\n const formatted = props.format ? arr.map(d => adapter.format(d, props.format as any)) : arr\n if (isRange) return formatted\n return formatted[0]\n })\n\n const inputMode = useProxiedModel(props, 'inputMode')\n const viewMode = useProxiedModel(props, 'viewMode')\n const displayDate = useProxiedModel(props, 'displayDate', model.value.length ? model.value[0] : adapter.date())\n\n function parseKeyboardDate (input: string, fallback?: any) {\n const date = adapter.date(input)\n\n return adapter.isValid(date) ? date : fallback\n }\n\n return {\n model,\n adapter,\n inputMode,\n viewMode,\n displayDate,\n parseKeyboardDate,\n }\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe;AAAA,SACfC,OAAO,6BAEhB;AAAA,SACSC,YAAY,EAAEC,WAAW,gCAElC;AAGA,OAAO,MAAMC,aAAa,GAAGF,YAAY,CAAC;EACxCG,UAAU,EAAE;IACVC,IAAI,EAAE,IAAkC;IACxCC,OAAO,EAAEA,CAAA,KAAM;EACjB,CAAC;EACDC,WAAW,EAAE;IACXF,IAAI,EAAE,IAAgC;IACtCC,OAAO,EAAE,IAAIE,IAAI;EACnB,CAAC;EACDC,SAAS,EAAE;IACTJ,IAAI,EAAEK,MAA2C;IACjDJ,OAAO,EAAE;EACX,CAAC;EACDK,QAAQ,EAAE;IACRN,IAAI,EAAEK,MAAoC;IAC1CJ,OAAO,EAAE;EACX,CAAC;EACDM,MAAM,EAAEF;AACV,CAAC,EAAE,MAAM,CAAC;AAEV,OAAO,MAAMG,SAAS,GAAG;EACvB,mBAAmB,EAAGC,IAAW,IAAK,IAAI;EAC1C,oBAAoB,EAAGA,IAAS,IAAK,IAAI;EACzC,gBAAgB,EAAGC,OAAgB,IAAK,IAAI;EAC5C,kBAAkB,EAAGN,SAAkC,IAAK,IAAI;EAChE,iBAAiB,EAAGE,QAA0B,IAAK;AACrD,CAAC;AAcD,OAAO,SAASK,eAAeA,CAAEC,KAAqB,EAAEC,OAAgB,EAAE;EACxE,MAAMC,OAAO,GAAGnB,OAAO,EAAE;EACzB,MAAMoB,KAAK,GAAGrB,eAAe,CAC3BkB,KAAK,EACL,YAAY,EACZ,EAAE,EACFI,CAAC,IAAI;IACH,IAAIA,CAAC,IAAI,IAAI,EAAE,OAAO,EAAE;IACxB,MAAMC,GAAG,GAAGpB,WAAW,CAACmB,CAAC,CAAC,CAACE,MAAM,CAACF,CAAC,IAAI,CAAC,CAACA,CAAC,CAAC;IAC3C,OAAOC,GAAG,CAACE,GAAG,CAACL,OAAO,CAACL,IAAI,CAAC;EAC9B,CAAC,EACDO,CAAC,IAAI;IACH,MAAMC,GAAG,GAAGpB,WAAW,CAACmB,CAAC,CAAC;IAC1B,MAAMI,SAAS,GAAGR,KAAK,CAACL,MAAM,GAAGU,GAAG,CAACE,GAAG,CAACE,CAAC,IAAIP,OAAO,CAACP,MAAM,CAACc,CAAC,EAAET,KAAK,CAACL,MAAM,CAAQ,CAAC,GAAGU,GAAG;IAC3F,IAAIJ,OAAO,EAAE,OAAOO,SAAS;IAC7B,OAAOA,SAAS,CAAC,CAAC,CAAC;EACrB,CAAC,CAAC;EAEJ,MAAMhB,SAAS,GAAGV,eAAe,CAACkB,KAAK,EAAE,WAAW,CAAC;EACrD,MAAMN,QAAQ,GAAGZ,eAAe,CAACkB,KAAK,EAAE,UAAU,CAAC;EACnD,MAAMV,WAAW,GAAGR,eAAe,CAACkB,KAAK,EAAE,aAAa,EAAEG,KAAK,CAACO,KAAK,CAACC,MAAM,GAAGR,KAAK,CAACO,KAAK,CAAC,CAAC,CAAC,GAAGR,OAAO,CAACL,IAAI,EAAE,CAAC;EAE/G,SAASe,iBAAiBA,CAAEC,KAAa,EAAEC,QAAc,EAAE;IACzD,MAAMjB,IAAI,GAAGK,OAAO,CAACL,IAAI,CAACgB,KAAK,CAAC;IAEhC,OAAOX,OAAO,CAACa,OAAO,CAAClB,IAAI,CAAC,GAAGA,IAAI,GAAGiB,QAAQ;EAChD;EAEA,OAAO;IACLX,KAAK;IACLD,OAAO;IACPV,SAAS;IACTE,QAAQ;IACRJ,WAAW;IACXsB;EACF,CAAC;AACH"}