UNPKG

vuetify

Version:

Vue Material Component Framework

1 lines 6.07 kB
{"version":3,"file":"VDatePickerControls.mjs","names":["VBtn","VSpacer","useDate","computed","dateEmits","makeDateProps","genericComponent","omit","propsFactory","useRender","makeVDatePickerControlsProps","nextIcon","type","String","default","prevIcon","expandIcon","collapseIcon","range","Boolean","validator","v","includes","VDatePickerControls","name","props","emits","setup","_ref","emit","adapter","monthAndYear","month","addMonths","displayDate","format","prevBtn","_createVNode","onClick","nextBtn","viewMode","value"],"sources":["../../../src/labs/VDatePicker/VDatePickerControls.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerControls.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSpacer } from '@/components/VGrid'\n\n// Composables\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { computed } from 'vue'\nimport { dateEmits, makeDateProps } from '../VDateInput/composables'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\nexport const makeVDatePickerControlsProps = propsFactory({\n nextIcon: {\n type: [String],\n default: '$next',\n },\n prevIcon: {\n type: [String],\n default: '$prev',\n },\n expandIcon: {\n type: [String],\n default: '$expand',\n },\n collapseIcon: {\n type: [String],\n default: '$collapse',\n },\n range: {\n default: false,\n type: [Boolean, String],\n validator: (v: any) => v === false || ['start', 'end'].includes(v),\n },\n ...omit(makeDateProps(), ['modelValue', 'inputMode']),\n}, 'VDatePickerControls')\n\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n\n props: makeVDatePickerControlsProps(),\n\n emits: {\n ...omit(dateEmits, ['update:modelValue', 'update:inputMode']),\n },\n\n setup (props, { emit }) {\n const adapter = useDate()\n const monthAndYear = computed(() => {\n const month = props.range === 'end' ? adapter.addMonths(props.displayDate, 1) : props.displayDate\n return adapter.format(month, 'monthAndYear')\n })\n\n useRender(() => {\n const prevBtn = (\n <VBtn\n variant=\"text\"\n icon={ props.prevIcon }\n onClick={ () => emit('update:displayDate', adapter.addMonths(props.displayDate, -1)) }\n />\n )\n\n const nextBtn = (\n <VBtn\n variant=\"text\"\n icon={ props.nextIcon }\n onClick={ () => emit('update:displayDate', adapter.addMonths(props.displayDate, 1)) }\n />\n )\n\n return (\n <div class=\"v-date-picker-controls\">\n { props.viewMode === 'month' && props.range === 'start' && prevBtn }\n { !!props.range && <VSpacer key=\"range-spacer\" /> }\n <div class=\"v-date-picker-controls__date\">{ monthAndYear.value }</div>\n <VBtn\n key=\"expand-btn\"\n variant=\"text\"\n icon={ props.viewMode === 'month' ? props.expandIcon : props.collapseIcon }\n onClick={ () => emit('update:viewMode', props.viewMode === 'month' ? 'year' : 'month') }\n />\n <VSpacer />\n { (props.viewMode === 'month' && !props.range) && (\n <div key=\"month-buttons\">\n { prevBtn }\n { nextBtn }\n </div>\n )}\n { props.viewMode === 'month' && props.range === 'end' && nextBtn }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerControls = InstanceType<typeof VDatePickerControls>\n"],"mappings":"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"}