UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 7.63 kB
{"version":3,"file":"VDateRangePickerHeader.mjs","names":["VBtn","useBackgroundColor","useLocale","useDate","computed","genericComponent","propsFactory","useRender","makeVDateRangePickerHeaderProps","color","String","title","header","keyboardIcon","type","default","calendarIcon","closeIcon","showInputSwitch","Boolean","inputMode","modelValue","displayDate","range","VDateRangePickerHeader","name","props","emits","cancel","save","input","date","setup","_ref","emit","t","adapter","backgroundColorClasses","backgroundColorStyles","headerText","length","format","map","join","titleText","handleHeaderClick","_createVNode","value","onClick","_createTextVNode"],"sources":["../../../src/labs/VDateRangePicker/VDateRangePickerHeader.tsx"],"sourcesContent":["// Styles\nimport './VDateRangePickerHeader.sass'\n\n// Components\nimport { VBtn } from '../../components/VBtn'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { useLocale } from '@/composables/locale'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVDateRangePickerHeaderProps = propsFactory({\n color: String,\n title: String,\n header: String,\n keyboardIcon: {\n type: String,\n default: '$edit',\n },\n calendarIcon: {\n type: String,\n default: '$calendar',\n },\n closeIcon: {\n type: String,\n default: '$close',\n },\n showInputSwitch: Boolean,\n inputMode: String,\n modelValue: null,\n displayDate: null,\n range: null,\n}, 'VDateRangePickerHeader')\n\nexport const VDateRangePickerHeader = genericComponent()({\n name: 'VDateRangePickerHeader',\n\n props: makeVDateRangePickerHeaderProps(),\n\n emits: {\n cancel: () => true,\n save: () => true,\n 'update:inputMode': (input: string) => true,\n 'update:displayDate': (date: any) => true,\n },\n\n setup (props, { emit }) {\n const { t } = useLocale()\n const adapter = useDate()\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const headerText = computed(() => {\n if (props.header) return props.header\n\n if (!props.modelValue.length) return t(`$vuetify.datePicker.${props.range ? 'range.' : ''}header.placeholder`)\n\n if (props.modelValue.length === 1) return adapter.format(props.modelValue[0], 'normalDateWithWeekday')\n\n return props.modelValue.map((date: any) => adapter.format(date, 'shortDate')).join(' - ')\n })\n\n const titleText = computed(() => {\n if (props.title) return props.title\n\n if (!props.modelValue.length) return t(`$vuetify.datePicker.${props.range ? 'range.' : ''}title.placeholder`)\n\n return t(`$vuetify.datePicker.${props.range ? 'range.' : ''}title.selected`)\n })\n\n function handleHeaderClick () {\n if (!props.modelValue.length) return\n\n const date = props.modelValue[0]\n\n emit('update:displayDate', date)\n }\n\n useRender(() => (\n <div\n class={[\n 'v-date-range-picker-header',\n backgroundColorClasses.value,\n `v-date-range-picker-header--${props.inputMode}`,\n ]}\n style={ backgroundColorStyles.value }\n >\n { props.inputMode === 'calendar' && (\n <div key=\"calendar-buttons\" class=\"v-date-range-picker-header__buttons\">\n <VBtn\n variant=\"text\"\n icon={ props.closeIcon }\n onClick={ () => emit('cancel') }\n />\n <VBtn\n variant=\"text\"\n onClick={ () => emit('save') }\n >\n Save\n </VBtn>\n </div>\n )}\n <div class=\"v-date-range-picker-header__wrapper\">\n <div class=\"v-date-range-picker-header__title\">\n { titleText.value }\n </div>\n <div class=\"v-date-range-picker-header__text\">\n <div\n class=\"v-date-range-picker-header__date\"\n onClick={ handleHeaderClick }\n >\n { headerText.value }\n </div>\n <VBtn\n variant=\"text\"\n icon={ props.inputMode === 'keyboard' ? props.calendarIcon : props.keyboardIcon }\n onClick={ () => emit('update:inputMode', props.inputMode === 'keyboard' ? 'calendar' : 'keyboard') }\n />\n </div>\n </div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VDateRangePickerHeader = InstanceType<typeof VDateRangePickerHeader>\n"],"mappings":"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"}