{"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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"}