vuetify
Version:
Vue Material Component Framework
1 lines • 13.6 kB
Source Map (JSON)
{"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VBtn","VTextField","dateEmits","makeDateProps","makeVPickerProps","VPicker","createDatePicker","useLocale","useProxiedModel","useDate","computed","ref","watch","genericComponent","propsFactory","useRender","makeVDatePickerProps","calendarIcon","type","String","default","keyboardIcon","cancelText","okText","inputText","header","hideActions","Boolean","title","VDatePicker","name","props","emits","click:cancel","click:save","setup","_ref","emit","slots","adapter","t","model","modelValue","isReversing","displayDate","inputMode","viewMode","inputModel","value","length","format","headerIcon","headerTransition","isValid","date","val","oldVal","isBefore","onClickCancel","onClickSave","onClickAppend","headerSlotProps","appendIcon","transition","pickerProps","filterProps","datePickerControlsProps","datePickerMonthProps","datePickerYearsProps","_createVNode","_mergeProps","class","style","_Fragment","$event","actions","color","undefined"],"sources":["../../../src/labs/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VBtn } from '@/components/VBtn'\nimport { VTextField } from '@/components/VTextField'\nimport { dateEmits, makeDateProps } from '@/labs/VDateInput/composables'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { createDatePicker } from './composables'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { computed, ref, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerSlots = {\n header: {\n header: string\n appendIcon: string\n 'onClick:append': () => void\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n calendarIcon: {\n type: String,\n default: '$calendar',\n },\n keyboardIcon: {\n type: String,\n default: '$edit',\n },\n cancelText: {\n type: String,\n default: '$vuetify.datePicker.cancel',\n },\n okText: {\n type: String,\n default: '$vuetify.datePicker.ok',\n },\n inputText: {\n type: String,\n default: '$vuetify.datePicker.input.placeholder',\n },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n hideActions: Boolean,\n\n ...makeDateProps(),\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...makeVDatePickerYearsProps(),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<VDatePickerSlots>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'click:cancel': () => true,\n 'click:save': () => true,\n ...dateEmits,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n createDatePicker(props)\n\n const model = ref<any[]>(props.modelValue ?? [])\n const isReversing = ref(false)\n\n const displayDate = useProxiedModel(props, 'displayDate', props.displayDate)\n const inputMode = useProxiedModel(props, 'inputMode', props.inputMode)\n const viewMode = useProxiedModel(props, 'viewMode', props.viewMode)\n\n const inputModel = computed(() => model.value.length ? adapter.format(model.value[0], 'keyboardDate') : '')\n const title = computed(() => t(props.title))\n const header = computed(() => model.value.length ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header))\n const headerIcon = computed(() => inputMode.value === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n\n watch(inputModel, () => {\n const { isValid, date } = adapter\n\n model.value = isValid(inputModel.value) ? [date(inputModel.value)] : []\n })\n\n watch(model, (val, oldVal) => {\n if (props.hideActions) {\n emit('update:modelValue', val)\n }\n\n if (val[0] && oldVal[0]) {\n isReversing.value = adapter.isBefore(val[0], oldVal[0])\n }\n })\n\n function onClickCancel () {\n emit('click:cancel')\n }\n function onClickSave () {\n emit('click:save')\n emit('update:modelValue', model.value)\n }\n function onClickAppend () {\n inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n }\n\n const headerSlotProps = computed(() => ({\n header: header.value,\n appendIcon: headerIcon.value,\n transition: headerTransition.value,\n 'onClick:append': onClickAppend,\n }))\n\n useRender(() => {\n const [pickerProps] = VPicker.filterProps(props)\n const [datePickerControlsProps] = VDatePickerControls.filterProps(props)\n const [datePickerMonthProps] = VDatePickerMonth.filterProps(props)\n const [datePickerYearsProps] = VDatePickerYears.filterProps(props)\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n props.class,\n ]}\n style={ props.style }\n title={ title.value }\n v-slots={{\n header: () => slots.header?.(headerSlotProps.value) ?? (\n <VDatePickerHeader\n key=\"header\"\n { ...headerSlotProps.value }\n />\n ),\n default: () => inputMode.value === 'calendar' ? (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n v-model:displayDate={ displayDate.value }\n v-model:viewMode={ viewMode.value }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'month' ? (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ model.value }\n v-model:displayDate={ displayDate.value }\n />\n ) : (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model:displayDate={ displayDate.value }\n v-model:viewMode={ viewMode.value }\n />\n )}\n </VFadeTransition>\n </>\n ) : (\n <div class=\"v-date-picker__input\">\n <VTextField\n v-model={ inputModel.value }\n label={ t(props.inputText) }\n placeholder=\"dd/mm/yyyy\"\n />\n </div>\n ),\n actions: !props.hideActions ? () => (\n <div>\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickCancel }\n text={ t(props.cancelText) }\n />\n\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickSave }\n text={ t(props.okText) }\n />\n </div>\n ) : undefined,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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"}