UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 7.97 kB
{"version":3,"file":"VDateInput.mjs","names":["VDialog","VMenu","makeVTextFieldProps","VTextField","VDateCard","VDatePicker","createDateInput","dateEmits","makeDateProps","useDisplay","ref","watch","genericComponent","propsFactory","useRender","makeVDateInputProps","mobile","Boolean","appendInnerIcon","dirty","placeholder","VDateInput","name","props","emits","setup","_ref","slots","adapter","model","inputMode","viewMode","displayDate","parseKeyboardDate","dialog","menu","inputModel","value","length","format","onBlur","isEqual","date","val","onSave","onCancel","textFieldProps","filterProps","_createVNode","_mergeProps","$event","default","_ref2","isActive"],"sources":["../../../src/labs/VDateInput/VDateInput.tsx"],"sourcesContent":["// Styles\nimport './VDateInput.sass'\n\n// Components\nimport { VDialog } from '@/components/VDialog'\nimport { VMenu } from '@/components/VMenu'\nimport { makeVTextFieldProps, VTextField } from '@/components/VTextField/VTextField'\nimport { VDateCard, VDatePicker } from '@/labs/VDatePicker'\n\n// Composables\nimport { createDateInput, dateEmits, makeDateProps } from './composables'\nimport { useDisplay } from '@/composables'\n\n// Utilities\nimport { ref, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VTextFieldSlots } from '@/components/VTextField/VTextField'\n\nexport type VDateInputSlots = VTextFieldSlots\n\nexport const makeVDateInputProps = propsFactory({\n mobile: Boolean,\n\n ...makeDateProps(),\n ...makeVTextFieldProps({\n appendInnerIcon: '$calendar',\n dirty: true,\n placeholder: 'mm/dd/yyyy',\n }),\n}, 'VDateInput')\n\nexport const VDateInput = genericComponent<VDateInputSlots>()({\n name: 'VDateInput',\n\n props: makeVDateInputProps(),\n\n emits: {\n ...dateEmits,\n },\n\n setup (props, { slots }) {\n const { mobile } = useDisplay()\n const { adapter, model, inputMode, viewMode, displayDate, parseKeyboardDate } = createDateInput(props, false)\n\n const dialog = ref(false)\n const menu = ref(false)\n const inputModel = ref(model.value.length ? adapter.format(model.value[0], 'keyboardDate') : '')\n\n function onBlur () {\n const { isEqual } = adapter\n const date = parseKeyboardDate(inputModel.value)\n\n if (date && (!model.value[0] || !isEqual(date, model.value[0]))) {\n model.value = date\n displayDate.value = date\n }\n }\n\n watch(model, val => {\n if (!val.length) return\n\n inputModel.value = adapter.format(val[0], 'keyboardDate')\n })\n\n function onSave () {\n dialog.value = false\n menu.value = false\n }\n\n function onCancel () {\n dialog.value = false\n menu.value = false\n }\n\n useRender(() => {\n const [textFieldProps] = VTextField.filterProps(props)\n\n return (\n <VTextField\n { ...textFieldProps }\n class=\"v-date-input\"\n v-model={ inputModel.value }\n onBlur={ onBlur }\n >\n {{\n ...slots,\n default: () => !mobile.value ? (\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n closeOnContentClick={ false }\n location=\"end bottom\"\n origin=\"top right\"\n >\n <VDateCard\n v-model={ model.value }\n v-model:displayDate={ displayDate.value }\n v-model:inputMode={ inputMode.value }\n v-model:viewMode={ viewMode.value }\n onSave={ onSave }\n onCancel={ onCancel }\n />\n </VMenu>\n ) : (\n <VDialog\n v-model={ dialog.value }\n activator=\"parent\"\n contentClass=\"v-date-input__dialog-content\"\n >\n {{\n default: ({ isActive }) => (\n <VDatePicker\n key=\"date-picker\"\n v-model={ model.value }\n v-model:displayDate={ displayDate.value }\n v-model:inputMode={ inputMode.value }\n v-model:viewMode={ viewMode.value }\n onSave={ onSave }\n onCancel={ onCancel }\n />\n ),\n }}\n </VDialog>\n ),\n }}\n </VTextField>\n )\n })\n },\n})\n\nexport type VDateInput = InstanceType<typeof VDateInput>\n"],"mappings":"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"}