UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 9.06 kB
{"version":3,"file":"VDateRangePicker.mjs","names":["VBtn","VTextField","VPicker","createDatePicker","makeTransitionProps","useDate","makeVPickerProps","ref","watch","genericComponent","propsFactory","useRender","makeVDateRangePickerHeaderProps","VDateRangePickerHeader","makeVDateRangePickerMonthProps","VDateRangePickerMonth","makeVDateRangePickerProps","viewMode","type","String","default","transition","VDateRangePicker","name","props","emits","date","mode","input","save","cancel","setup","_ref","emit","adapter","selected","modelValue","inputModel","format","isValid","value","handleCancel","handleSave","pickerProps","filterProps","dateRangePickerHeaderProps","dateRangePickerMonthProps","_createVNode","_mergeProps","inputMode","header","displayDate","$event","actions","color","_createTextVNode","undefined"],"sources":["../../../src/labs/VDateRangePicker/VDateRangePicker.tsx"],"sourcesContent":["// Styles\nimport './VDateRangePicker.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VTextField } from '@/components/VTextField'\nimport { VPicker } from '@/labs/VPicker'\n\n// Composables\nimport { createDatePicker } from '../VDatePicker/composables'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useDate } from '@/labs/date'\nimport { makeVPickerProps } from '@/labs/VPicker/VPicker'\n\n// Utilities\nimport { ref, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { makeVDateRangePickerHeaderProps, VDateRangePickerHeader } from './VDateRangePickerHeader'\nimport { makeVDateRangePickerMonthProps, VDateRangePickerMonth } from './VDateRangePickerMonth'\n\nexport const makeVDateRangePickerProps = propsFactory({\n viewMode: {\n type: String as PropType<'month' | 'years'>,\n default: 'month',\n },\n\n ...makeVPickerProps(),\n ...makeVDateRangePickerHeaderProps(),\n ...makeVDateRangePickerMonthProps(),\n ...makeTransitionProps({ transition: 'fade' }),\n}, 'VDateRangePicker')\n\nexport const VDateRangePicker = genericComponent()({\n name: 'VDateRangePicker',\n\n props: makeVDateRangePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:viewMode': (mode: 'month' | 'years') => true,\n 'update:inputMode': (input: string) => true,\n 'update:displayDate': (date: any) => true,\n save: (date: any) => true,\n cancel: () => true,\n },\n\n setup (props, { emit }) {\n const adapter = useDate()\n createDatePicker(props)\n\n const selected = ref(props.modelValue)\n const inputModel = ref(props.modelValue[0] ? adapter.format(props.modelValue[0], 'keyboardDate') : '')\n\n // watch(() => props.modelValue, newValue => {\n // if (!newValue?.length) return\n\n // inputModel.value = adapter.format(newValue[0], 'keyboardDate')\n // })\n\n watch(inputModel, () => {\n const { isValid, date } = adapter\n\n selected.value = isValid(inputModel.value) ? [date(inputModel.value)] : []\n })\n\n // watch(selected, () => {\n // if (!props.showActions) {\n // emit('update:modelValue', selected.value)\n // }\n // })\n\n // function handleInput (value: any, index: number) {\n // if (value.length === 10 && adapter.isValid(value)) {\n // const modelValue = props.modelValue.slice()\n // modelValue.splice(index, value)\n // emit('update:modelValue', modelValue)\n // }\n // }\n\n const handleCancel = () => emit('cancel')\n const handleSave = () => {\n emit('update:modelValue', selected.value)\n emit('save', selected.value)\n }\n\n useRender(() => {\n const [pickerProps] = VPicker.filterProps(props)\n const [dateRangePickerHeaderProps] = VDateRangePickerHeader.filterProps(props)\n const [dateRangePickerMonthProps] = VDateRangePickerMonth.filterProps(props)\n\n return (\n <VPicker\n { ...pickerProps }\n key={ props.inputMode }\n class={[\n 'v-date-range-picker',\n `v-date-range-picker--${props.inputMode}`,\n ]}\n width={ 328 }\n v-slots={{\n header: () => (\n <VDateRangePickerHeader\n { ...dateRangePickerHeaderProps }\n modelValue={ selected.value }\n onUpdate:displayDate={ displayDate => emit('update:displayDate', displayDate) }\n onUpdate:inputMode={ inputMode => emit('update:inputMode', inputMode) }\n onCancel={ handleCancel }\n onSave={ handleSave }\n />\n ),\n default: () => props.inputMode === 'calendar' ? (\n <VDateRangePickerMonth\n { ...dateRangePickerMonthProps }\n v-model={ selected.value }\n />\n ) : (\n <div class=\"v-date-range-picker__input\">\n <VTextField\n label=\"From\"\n placeholder=\"yyyy/mm/dd\"\n v-model={ inputModel.value }\n />\n <VTextField\n label=\"To\"\n placeholder=\"yyyy/mm/dd\"\n v-model={ inputModel.value }\n />\n </div>\n ),\n actions: props.inputMode === 'keyboard' ? () => (\n <div>\n <VBtn variant=\"text\" color={ props.color } onClick={ handleCancel }>Cancel</VBtn>\n <VBtn variant=\"text\" color={ props.color } onClick={ handleSave }>Ok</VBtn>\n </div>\n ) : undefined,\n }}\n />\n )\n })\n },\n})\n\nexport type VDateRangePicker = InstanceType<typeof VDateRangePicker>\n"],"mappings":"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"}