vuetify 3.3.15 → 3.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/dist/json/attributes.json +1415 -1399
  2. package/dist/json/tags.json +10 -6
  3. package/dist/json/web-types.json +2261 -2200
  4. package/dist/vuetify-labs.css +201 -162
  5. package/dist/vuetify-labs.d.ts +704 -602
  6. package/dist/vuetify-labs.esm.js +211 -192
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +211 -192
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +25 -22
  11. package/dist/vuetify.d.ts +99 -81
  12. package/dist/vuetify.esm.js +144 -154
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +144 -154
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +233 -231
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/blueprints/index.d.mts +2 -0
  20. package/lib/blueprints/md1.d.mts +2 -0
  21. package/lib/blueprints/md2.d.mts +2 -0
  22. package/lib/blueprints/md3.d.mts +2 -0
  23. package/lib/blueprints/md3.mjs +3 -0
  24. package/lib/blueprints/md3.mjs.map +1 -1
  25. package/lib/components/VApp/VApp.mjs +1 -2
  26. package/lib/components/VApp/VApp.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -26
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  29. package/lib/components/VAutocomplete/index.d.mts +40 -38
  30. package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -0
  31. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +28 -34
  32. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  33. package/lib/components/VColorPicker/VColorPickerCanvas.sass +1 -0
  34. package/lib/components/VCombobox/VCombobox.mjs +15 -25
  35. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  36. package/lib/components/VCombobox/index.d.mts +40 -38
  37. package/lib/components/VField/VField.css +3 -2
  38. package/lib/components/VField/VField.sass +3 -2
  39. package/lib/components/VLabel/VLabel.css +1 -0
  40. package/lib/components/VLabel/VLabel.sass +1 -0
  41. package/lib/components/VLabel/_variables.scss +1 -1
  42. package/lib/components/VList/index.d.mts +21 -3
  43. package/lib/components/VRangeSlider/VRangeSlider.mjs +2 -2
  44. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  45. package/lib/components/VSelect/VSelect.mjs +9 -23
  46. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  47. package/lib/components/VSelect/index.d.mts +14 -11
  48. package/lib/components/VSelectionControl/VSelectionControl.css +0 -1
  49. package/lib/components/VSelectionControl/VSelectionControl.sass +0 -1
  50. package/lib/components/VSlider/VSlider.mjs +2 -2
  51. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  52. package/lib/components/VTabs/VTab.css +1 -0
  53. package/lib/components/VTabs/VTab.mjs +2 -3
  54. package/lib/components/VTabs/VTab.mjs.map +1 -1
  55. package/lib/components/VTabs/VTab.sass +1 -0
  56. package/lib/components/VTabs/VTabs.mjs +4 -4
  57. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  58. package/lib/components/VTabs/_variables.scss +1 -0
  59. package/lib/components/VTabs/index.d.mts +1 -1
  60. package/lib/components/index.d.mts +97 -81
  61. package/lib/composables/color.mjs +7 -4
  62. package/lib/composables/color.mjs.map +1 -1
  63. package/lib/composables/filter.mjs +4 -4
  64. package/lib/composables/filter.mjs.map +1 -1
  65. package/lib/composables/layout.mjs +1 -1
  66. package/lib/composables/layout.mjs.map +1 -1
  67. package/lib/composables/list-items.mjs +26 -15
  68. package/lib/composables/list-items.mjs.map +1 -1
  69. package/lib/composables/theme.mjs +0 -11
  70. package/lib/composables/theme.mjs.map +1 -1
  71. package/lib/entry-bundler.mjs +1 -1
  72. package/lib/framework.mjs +1 -1
  73. package/lib/index.d.mts +2 -0
  74. package/lib/labs/VBottomSheet/VBottomSheet.css +1 -0
  75. package/lib/labs/VBottomSheet/VBottomSheet.mjs +1 -1
  76. package/lib/labs/VBottomSheet/VBottomSheet.mjs.map +1 -1
  77. package/lib/labs/VBottomSheet/VBottomSheet.sass +2 -0
  78. package/lib/labs/VBottomSheet/_variables.scss +1 -0
  79. package/lib/labs/VBottomSheet/index.d.mts +3 -11
  80. package/lib/labs/VDataIterator/index.d.mts +30 -26
  81. package/lib/labs/VDataTable/composables/select.mjs +1 -1
  82. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  83. package/lib/labs/VDataTable/index.d.mts +43 -39
  84. package/lib/labs/VDataTable/types.mjs.map +1 -1
  85. package/lib/labs/VDatePicker/VDatePicker.mjs +20 -8
  86. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  87. package/lib/labs/VDatePicker/VDatePickerControls.css +29 -2
  88. package/lib/labs/VDatePicker/VDatePickerControls.mjs +22 -21
  89. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
  90. package/lib/labs/VDatePicker/VDatePickerControls.sass +30 -2
  91. package/lib/labs/VDatePicker/VDatePickerHeader.css +10 -1
  92. package/lib/labs/VDatePicker/VDatePickerHeader.mjs +12 -4
  93. package/lib/labs/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  94. package/lib/labs/VDatePicker/VDatePickerHeader.sass +11 -1
  95. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +1 -2
  96. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  97. package/lib/labs/VDatePicker/VDatePickerYears.css +1 -1
  98. package/lib/labs/VDatePicker/VDatePickerYears.mjs +1 -1
  99. package/lib/labs/VDatePicker/VDatePickerYears.mjs.map +1 -1
  100. package/lib/labs/VDatePicker/VDatePickerYears.sass +1 -1
  101. package/lib/labs/VDatePicker/index.d.mts +208 -125
  102. package/lib/labs/VDateRangePicker/index.d.mts +75 -69
  103. package/lib/labs/VPicker/VPicker.css +0 -1
  104. package/lib/labs/VPicker/VPicker.mjs +16 -5
  105. package/lib/labs/VPicker/VPicker.mjs.map +1 -1
  106. package/lib/labs/VPicker/VPicker.sass +1 -1
  107. package/lib/labs/VPicker/index.d.mts +47 -35
  108. package/lib/labs/components.d.mts +1580 -1492
  109. package/lib/labs/date/DateAdapter.mjs.map +1 -1
  110. package/lib/labs/date/adapters/vuetify.d.mts +4 -0
  111. package/lib/labs/date/adapters/vuetify.mjs +18 -0
  112. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  113. package/lib/labs/date/index.d.mts +4 -0
  114. package/lib/locale/pl.mjs +14 -14
  115. package/lib/locale/pl.mjs.map +1 -1
  116. package/lib/util/colorUtils.mjs +11 -0
  117. package/lib/util/colorUtils.mjs.map +1 -1
  118. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VBtn","VTextField","dateEmits","makeDateProps","makeVPickerProps","VPicker","createDatePicker","useLocale","useDate","computed","ref","shallowRef","watch","genericComponent","propsFactory","useRender","makeVDatePickerProps","calendarIcon","type","String","default","keyboardIcon","cancelText","okText","inputText","inputPlaceholder","header","hideActions","Boolean","title","VDatePicker","name","props","emits","click:cancel","click:save","setup","_ref","emit","slots","adapter","t","model","displayDate","viewMode","inputMode","isEqual","isReversing","inputModel","value","map","date","format","temporaryModel","length","headerIcon","headerTransition","minDate","min","isValid","maxDate","max","disabled","targets","addDays","startOfMonth","isAfter","push","endOfMonth","getFullYear","val","oldVal","isBefore","updateFromInput","input","index","newModel","slice","onClickCancel","onClickSave","onClickAppend","onClickNext","addMonths","onClickPrev","onClickMode","headerSlotProps","appendIcon","transition","pickerProps","filterProps","datePickerControlsProps","datePickerMonthProps","datePickerYearsProps","_createVNode","_mergeProps","class","style","showWeek","_Fragment","$event","v","actions","color","undefined"],"sources":["../../../src/labs/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VBtn } from '@/components/VBtn'\nimport { VTextField } from '@/components/VTextField'\nimport { dateEmits, makeDateProps } from '@/labs/VDateInput/composables'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { createDatePicker } from './composables'\nimport { useLocale } from '@/composables/locale'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerSlots = {\n header: {\n header: string\n appendIcon: string\n 'onClick:append': () => void\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n calendarIcon: {\n type: String,\n default: '$calendar',\n },\n keyboardIcon: {\n type: String,\n default: '$edit',\n },\n cancelText: {\n type: String,\n default: '$vuetify.datePicker.cancel',\n },\n okText: {\n type: String,\n default: '$vuetify.datePicker.ok',\n },\n inputText: {\n type: String,\n default: '$vuetify.datePicker.input.placeholder',\n },\n inputPlaceholder: {\n type: String,\n default: 'dd/mm/yyyy',\n },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n hideActions: Boolean,\n\n ...makeDateProps(),\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...makeVDatePickerYearsProps(),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<VDatePickerSlots>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'click:cancel': () => true,\n 'click:save': () => true,\n ...dateEmits,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const { model, displayDate, viewMode, inputMode, isEqual } = createDatePicker(props)\n\n const isReversing = shallowRef(false)\n\n const inputModel = ref(model.value.map(date => adapter.format(date, 'keyboardDate')))\n const temporaryModel = ref(model.value)\n const title = computed(() => t(props.title))\n const header = computed(() => model.value.length ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header))\n const headerIcon = computed(() => inputMode.value === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n const minDate = computed(() => props.min && adapter.isValid(props.min) ? adapter.date(props.min) : null)\n const maxDate = computed(() => props.max && adapter.isValid(props.max) ? adapter.date(props.max) : null)\n\n const disabled = computed(() => {\n if (!minDate.value && !maxDate.value) return false\n\n const targets = []\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(displayDate.value), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(displayDate.value), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n\n if (minDate.value?.getFullYear() === maxDate.value?.getFullYear()) {\n targets.push('mode')\n }\n\n return targets\n })\n\n watch(model, val => {\n if (!isEqual(val, temporaryModel.value)) {\n temporaryModel.value = val\n }\n\n inputModel.value = val.map(date => adapter.format(date, 'keyboardDate'))\n })\n\n watch(temporaryModel, (val, oldVal) => {\n if (props.hideActions && !isEqual(val, model.value)) {\n model.value = val\n }\n\n if (val[0] && oldVal[0]) {\n isReversing.value = adapter.isBefore(val[0], oldVal[0])\n }\n })\n\n function updateFromInput (input: string, index: number) {\n const { isValid, date } = adapter\n\n if (isValid(input)) {\n const newModel = model.value.slice()\n newModel[index] = date(input)\n\n if (props.hideActions) {\n model.value = newModel\n } else {\n temporaryModel.value = newModel\n }\n }\n }\n\n function onClickCancel () {\n emit('click:cancel')\n }\n\n function onClickSave () {\n emit('click:save')\n\n model.value = temporaryModel.value\n }\n\n function onClickAppend () {\n inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n }\n\n function onClickNext () {\n displayDate.value = adapter.addMonths(displayDate.value, 1)\n }\n\n function onClickPrev () {\n displayDate.value = adapter.addMonths(displayDate.value, -1)\n }\n\n function onClickMode () {\n viewMode.value = viewMode.value === 'month' ? 'year' : 'month'\n }\n\n const headerSlotProps = computed(() => ({\n header: header.value,\n appendIcon: headerIcon.value,\n transition: headerTransition.value,\n 'onClick:append': onClickAppend,\n }))\n\n useRender(() => {\n const [pickerProps] = VPicker.filterProps(props)\n const [datePickerControlsProps] = VDatePickerControls.filterProps(props)\n const [datePickerMonthProps] = VDatePickerMonth.filterProps(props)\n const [datePickerYearsProps] = VDatePickerYears.filterProps(props)\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n props.class,\n ]}\n style={ props.style }\n title={ title.value }\n width={ props.showWeek ? 408 : 360 }\n v-slots={{\n header: () => slots.header?.(headerSlotProps.value) ?? (\n <VDatePickerHeader\n key=\"header\"\n { ...headerSlotProps.value }\n />\n ),\n default: () => inputMode.value === 'calendar' ? (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n displayDate={ adapter.format(displayDate.value, 'monthAndYear') }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:mode={ onClickMode }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'month' ? (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ temporaryModel.value }\n displayDate={ displayDate.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model:displayDate={ displayDate.value }\n min={ minDate.value }\n max={ maxDate.value }\n onClick:mode={ onClickMode }\n />\n )}\n </VFadeTransition>\n </>\n ) : (\n <div class=\"v-date-picker__input\">\n <VTextField\n modelValue={ inputModel.value[0] }\n onUpdate:modelValue={ v => updateFromInput(v, 0) }\n label={ t(props.inputText) }\n placeholder={ props.inputPlaceholder }\n />\n </div>\n ),\n actions: () => !props.hideActions ? (\n <div>\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickCancel }\n text={ t(props.cancelText) }\n />\n\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickSave }\n text={ t(props.okText) }\n />\n </div>\n ) : undefined,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VBtn","VTextField","dateEmits","makeDateProps","makeVPickerProps","VPicker","createDatePicker","useLocale","useDate","computed","ref","shallowRef","watch","genericComponent","propsFactory","useRender","makeVDatePickerProps","calendarIcon","type","String","default","keyboardIcon","cancelText","okText","inputText","inputPlaceholder","header","hideActions","Boolean","title","VDatePicker","name","props","emits","click:cancel","click:save","setup","_ref","emit","slots","adapter","t","model","displayDate","viewMode","inputMode","isEqual","isReversing","inputModel","value","map","date","format","temporaryModel","variant","length","headerIcon","headerTransition","minDate","min","isValid","maxDate","max","disabled","targets","addDays","startOfMonth","isAfter","push","endOfMonth","getFullYear","val","oldVal","isBefore","updateFromInput","input","index","inputDate","newModel","slice","onClickCancel","onClickSave","onClickAppend","onClickNext","addMonths","onClickPrev","onClickMode","onClickHeader","headerSlotProps","appendIcon","transition","pickerProps","filterProps","datePickerControlsProps","datePickerMonthProps","datePickerYearsProps","_createVNode","_mergeProps","class","style","showWeek","undefined","_Fragment","$event","v","actions","color"],"sources":["../../../src/labs/VDatePicker/VDatePicker.tsx"],"sourcesContent":["// Styles\nimport './VDatePicker.sass'\n\n// Components\nimport { makeVDatePickerControlsProps, VDatePickerControls } from './VDatePickerControls'\nimport { VDatePickerHeader } from './VDatePickerHeader'\nimport { makeVDatePickerMonthProps, VDatePickerMonth } from './VDatePickerMonth'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VBtn } from '@/components/VBtn'\nimport { VTextField } from '@/components/VTextField'\nimport { dateEmits, makeDateProps } from '@/labs/VDateInput/composables'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { createDatePicker } from './composables'\nimport { useLocale } from '@/composables/locale'\nimport { useDate } from '@/labs/date'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\n\n// Types\nexport type VDatePickerSlots = Omit<VPickerSlots, 'header'> & {\n header: {\n header: string\n appendIcon: string\n 'onClick:append': () => void\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n calendarIcon: {\n type: String,\n default: '$calendar',\n },\n keyboardIcon: {\n type: String,\n default: '$edit',\n },\n cancelText: {\n type: String,\n default: '$vuetify.datePicker.cancel',\n },\n okText: {\n type: String,\n default: '$vuetify.datePicker.ok',\n },\n inputText: {\n type: String,\n default: '$vuetify.datePicker.input.placeholder',\n },\n inputPlaceholder: {\n type: String,\n default: 'dd/mm/yyyy',\n },\n header: {\n type: String,\n default: '$vuetify.datePicker.header',\n },\n hideActions: Boolean,\n\n ...makeDateProps(),\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...makeVDatePickerYearsProps(),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<VDatePickerSlots>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'click:cancel': () => true,\n 'click:save': () => true,\n ...dateEmits,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const { model, displayDate, viewMode, inputMode, isEqual } = createDatePicker(props)\n\n const isReversing = shallowRef(false)\n\n const inputModel = ref(model.value.map(date => adapter.format(date, 'keyboardDate')))\n const temporaryModel = ref(model.value)\n const title = computed(() => {\n return props.variant === 'modern'\n ? t(props.title)\n : adapter.format(displayDate.value, 'shortDate')\n })\n const header = computed(() => model.value.length ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header))\n const headerIcon = computed(() => inputMode.value === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n const minDate = computed(() => props.min && adapter.isValid(props.min) ? adapter.date(props.min) : null)\n const maxDate = computed(() => props.max && adapter.isValid(props.max) ? adapter.date(props.max) : null)\n\n const disabled = computed(() => {\n if (!minDate.value && !maxDate.value) return false\n\n const targets = []\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(displayDate.value), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(displayDate.value), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n\n if (minDate.value?.getFullYear() === maxDate.value?.getFullYear()) {\n targets.push('mode')\n }\n\n return targets\n })\n\n watch(model, val => {\n if (!isEqual(val, temporaryModel.value)) {\n temporaryModel.value = val\n }\n\n inputModel.value = val.map(date => adapter.format(date, 'keyboardDate'))\n })\n\n watch(temporaryModel, (val, oldVal) => {\n if (props.hideActions && !isEqual(val, model.value)) {\n model.value = val\n }\n\n if (val[0] && oldVal[0]) {\n isReversing.value = adapter.isBefore(val[0], oldVal[0])\n }\n })\n\n function updateFromInput (input: string, index: number) {\n const { isValid, date, isAfter } = adapter\n const inputDate = date(input)\n\n if (\n isValid(input) &&\n (!minDate.value || !isAfter(minDate.value, inputDate)) &&\n (!maxDate.value || !isAfter(inputDate, maxDate.value))\n ) {\n const newModel = model.value.slice()\n newModel[index] = date(input)\n\n if (props.hideActions) {\n model.value = newModel\n } else {\n temporaryModel.value = newModel\n }\n }\n }\n\n function onClickCancel () {\n emit('click:cancel')\n }\n\n function onClickSave () {\n emit('click:save')\n\n model.value = temporaryModel.value\n }\n\n function onClickAppend () {\n inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n }\n\n function onClickNext () {\n displayDate.value = adapter.addMonths(displayDate.value, 1)\n }\n\n function onClickPrev () {\n displayDate.value = adapter.addMonths(displayDate.value, -1)\n }\n\n function onClickMode () {\n viewMode.value = viewMode.value === 'month' ? 'year' : 'month'\n }\n\n function onClickHeader () {\n viewMode.value = 'month'\n }\n\n const headerSlotProps = computed(() => ({\n header: header.value,\n appendIcon: headerIcon.value,\n transition: headerTransition.value,\n 'onClick:append': onClickAppend,\n }))\n\n useRender(() => {\n const [pickerProps] = VPicker.filterProps(props)\n const [datePickerControlsProps] = VDatePickerControls.filterProps(props)\n const [datePickerMonthProps] = VDatePickerMonth.filterProps(props)\n const [datePickerYearsProps] = VDatePickerYears.filterProps(props)\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n `v-date-picker--${viewMode.value}`,\n props.class,\n ]}\n style={ props.style }\n width={ props.showWeek ? 408 : 360 }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div\n class=\"v-date-picker__title\"\n onClick={ props.variant === 'classic' ? onClickMode : undefined }\n >\n { title.value }\n </div>\n ),\n header: () => slots.header?.(headerSlotProps.value) ?? (\n <VDatePickerHeader\n key=\"header\"\n { ...headerSlotProps.value }\n onClick={ viewMode.value === 'year' ? onClickHeader : undefined }\n />\n ),\n default: () => inputMode.value === 'calendar' ? (\n <>\n { (props.variant !== 'classic' || viewMode.value !== 'year') && (\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n displayDate={ adapter.format(displayDate.value, 'monthAndYear') }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:mode={ onClickMode }\n />\n )}\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'month' ? (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ temporaryModel.value }\n displayDate={ displayDate.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model:displayDate={ displayDate.value }\n min={ minDate.value }\n max={ maxDate.value }\n onClick:mode={ onClickMode }\n />\n )}\n </VFadeTransition>\n </>\n ) : (\n <div class=\"v-date-picker__input\">\n <VTextField\n modelValue={ inputModel.value[0] }\n onUpdate:modelValue={ v => updateFromInput(v, 0) }\n label={ t(props.inputText) }\n placeholder={ props.inputPlaceholder }\n />\n </div>\n ),\n actions: () => !props.hideActions ? (\n <div>\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickCancel }\n text={ t(props.cancelText) }\n />\n\n <VBtn\n variant=\"text\"\n color={ props.color }\n onClick={ onClickSave }\n text={ t(props.okText) }\n />\n </div>\n ) : undefined,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,4BAA4B,EAAEC,mBAAmB;AAAA,SACjDC,iBAAiB;AAAA,SACjBC,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,eAAe;AAAA,SACfC,IAAI;AAAA,SACJC,UAAU;AAAA,SACVC,SAAS,EAAEC,aAAa;AAAA,SACxBC,gBAAgB,EAAEC,OAAO,kCAElC;AAAA,SACSC,gBAAgB;AAAA,SAChBC,SAAS;AAAA,SACTC,OAAO,6BAEhB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC7CC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAYA,OAAO,MAAMC,oBAAoB,GAAGF,YAAY,CAAC;EAC/CG,YAAY,EAAE;IACZC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDC,YAAY,EAAE;IACZH,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDE,UAAU,EAAE;IACVJ,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDG,MAAM,EAAE;IACNL,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDI,SAAS,EAAE;IACTN,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDK,gBAAgB,EAAE;IAChBP,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDM,MAAM,EAAE;IACNR,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EACDO,WAAW,EAAEC,OAAO;EAEpB,GAAGzB,aAAa,EAAE;EAClB,GAAGX,4BAA4B,EAAE;EACjC,GAAGG,yBAAyB,EAAE;EAC9B,GAAGE,yBAAyB,EAAE;EAC9B,GAAGO,gBAAgB,CAAC;IAAEyB,KAAK,EAAE;EAA4B,CAAC;AAC5D,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAMC,WAAW,GAAGjB,gBAAgB,EAAoB,CAAC;EAC9DkB,IAAI,EAAE,aAAa;EAEnBC,KAAK,EAAEhB,oBAAoB,EAAE;EAE7BiB,KAAK,EAAE;IACL,cAAc,EAAEC,CAAA,KAAM,IAAI;IAC1B,YAAY,EAAEC,CAAA,KAAM,IAAI;IACxB,GAAGjC;EACL,CAAC;EAEDkC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,OAAO,GAAGhC,OAAO,EAAE;IACzB,MAAM;MAAEiC;IAAE,CAAC,GAAGlC,SAAS,EAAE;IAEzB,MAAM;MAAEmC,KAAK;MAAEC,WAAW;MAAEC,QAAQ;MAAEC,SAAS;MAAEC;IAAQ,CAAC,GAAGxC,gBAAgB,CAAC0B,KAAK,CAAC;IAEpF,MAAMe,WAAW,GAAGpC,UAAU,CAAC,KAAK,CAAC;IAErC,MAAMqC,UAAU,GAAGtC,GAAG,CAACgC,KAAK,CAACO,KAAK,CAACC,GAAG,CAACC,IAAI,IAAIX,OAAO,CAACY,MAAM,CAACD,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;IACrF,MAAME,cAAc,GAAG3C,GAAG,CAACgC,KAAK,CAACO,KAAK,CAAC;IACvC,MAAMpB,KAAK,GAAGpB,QAAQ,CAAC,MAAM;MAC3B,OAAOuB,KAAK,CAACsB,OAAO,KAAK,QAAQ,GAC7Bb,CAAC,CAACT,KAAK,CAACH,KAAK,CAAC,GACdW,OAAO,CAACY,MAAM,CAACT,WAAW,CAACM,KAAK,EAAE,WAAW,CAAC;IACpD,CAAC,CAAC;IACF,MAAMvB,MAAM,GAAGjB,QAAQ,CAAC,MAAMiC,KAAK,CAACO,KAAK,CAACM,MAAM,GAAGf,OAAO,CAACY,MAAM,CAACV,KAAK,CAACO,KAAK,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,GAAGR,CAAC,CAACT,KAAK,CAACN,MAAM,CAAC,CAAC;IAC7H,MAAM8B,UAAU,GAAG/C,QAAQ,CAAC,MAAMoC,SAAS,CAACI,KAAK,KAAK,UAAU,GAAGjB,KAAK,CAACX,YAAY,GAAGW,KAAK,CAACf,YAAY,CAAC;IAC3G,MAAMwC,gBAAgB,GAAGhD,QAAQ,CAAC,MAAO,qBAAoBsC,WAAW,CAACE,KAAK,GAAG,UAAU,GAAG,EAAG,aAAY,CAAC;IAC9G,MAAMS,OAAO,GAAGjD,QAAQ,CAAC,MAAMuB,KAAK,CAAC2B,GAAG,IAAInB,OAAO,CAACoB,OAAO,CAAC5B,KAAK,CAAC2B,GAAG,CAAC,GAAGnB,OAAO,CAACW,IAAI,CAACnB,KAAK,CAAC2B,GAAG,CAAC,GAAG,IAAI,CAAC;IACxG,MAAME,OAAO,GAAGpD,QAAQ,CAAC,MAAMuB,KAAK,CAAC8B,GAAG,IAAItB,OAAO,CAACoB,OAAO,CAAC5B,KAAK,CAAC8B,GAAG,CAAC,GAAGtB,OAAO,CAACW,IAAI,CAACnB,KAAK,CAAC8B,GAAG,CAAC,GAAG,IAAI,CAAC;IAExG,MAAMC,QAAQ,GAAGtD,QAAQ,CAAC,MAAM;MAC9B,IAAI,CAACiD,OAAO,CAACT,KAAK,IAAI,CAACY,OAAO,CAACZ,KAAK,EAAE,OAAO,KAAK;MAElD,MAAMe,OAAO,GAAG,EAAE;MAElB,IAAIN,OAAO,CAACT,KAAK,EAAE;QACjB,MAAME,IAAI,GAAGX,OAAO,CAACyB,OAAO,CAACzB,OAAO,CAAC0B,YAAY,CAACvB,WAAW,CAACM,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzET,OAAO,CAAC2B,OAAO,CAACT,OAAO,CAACT,KAAK,EAAEE,IAAI,CAAC,IAAIa,OAAO,CAACI,IAAI,CAAC,MAAM,CAAC;MAC9D;MAEA,IAAIP,OAAO,CAACZ,KAAK,EAAE;QACjB,MAAME,IAAI,GAAGX,OAAO,CAACyB,OAAO,CAACzB,OAAO,CAAC6B,UAAU,CAAC1B,WAAW,CAACM,KAAK,CAAC,EAAE,CAAC,CAAC;QAEtET,OAAO,CAAC2B,OAAO,CAAChB,IAAI,EAAEU,OAAO,CAACZ,KAAK,CAAC,IAAIe,OAAO,CAACI,IAAI,CAAC,MAAM,CAAC;MAC9D;MAEA,IAAIV,OAAO,CAACT,KAAK,EAAEqB,WAAW,EAAE,KAAKT,OAAO,CAACZ,KAAK,EAAEqB,WAAW,EAAE,EAAE;QACjEN,OAAO,CAACI,IAAI,CAAC,MAAM,CAAC;MACtB;MAEA,OAAOJ,OAAO;IAChB,CAAC,CAAC;IAEFpD,KAAK,CAAC8B,KAAK,EAAE6B,GAAG,IAAI;MAClB,IAAI,CAACzB,OAAO,CAACyB,GAAG,EAAElB,cAAc,CAACJ,KAAK,CAAC,EAAE;QACvCI,cAAc,CAACJ,KAAK,GAAGsB,GAAG;MAC5B;MAEAvB,UAAU,CAACC,KAAK,GAAGsB,GAAG,CAACrB,GAAG,CAACC,IAAI,IAAIX,OAAO,CAACY,MAAM,CAACD,IAAI,EAAE,cAAc,CAAC,CAAC;IAC1E,CAAC,CAAC;IAEFvC,KAAK,CAACyC,cAAc,EAAE,CAACkB,GAAG,EAAEC,MAAM,KAAK;MACrC,IAAIxC,KAAK,CAACL,WAAW,IAAI,CAACmB,OAAO,CAACyB,GAAG,EAAE7B,KAAK,CAACO,KAAK,CAAC,EAAE;QACnDP,KAAK,CAACO,KAAK,GAAGsB,GAAG;MACnB;MAEA,IAAIA,GAAG,CAAC,CAAC,CAAC,IAAIC,MAAM,CAAC,CAAC,CAAC,EAAE;QACvBzB,WAAW,CAACE,KAAK,GAAGT,OAAO,CAACiC,QAAQ,CAACF,GAAG,CAAC,CAAC,CAAC,EAAEC,MAAM,CAAC,CAAC,CAAC,CAAC;MACzD;IACF,CAAC,CAAC;IAEF,SAASE,eAAeA,CAAEC,KAAa,EAAEC,KAAa,EAAE;MACtD,MAAM;QAAEhB,OAAO;QAAET,IAAI;QAAEgB;MAAQ,CAAC,GAAG3B,OAAO;MAC1C,MAAMqC,SAAS,GAAG1B,IAAI,CAACwB,KAAK,CAAC;MAE7B,IACEf,OAAO,CAACe,KAAK,CAAC,KACb,CAACjB,OAAO,CAACT,KAAK,IAAI,CAACkB,OAAO,CAACT,OAAO,CAACT,KAAK,EAAE4B,SAAS,CAAC,CAAC,KACrD,CAAChB,OAAO,CAACZ,KAAK,IAAI,CAACkB,OAAO,CAACU,SAAS,EAAEhB,OAAO,CAACZ,KAAK,CAAC,CAAC,EACtD;QACA,MAAM6B,QAAQ,GAAGpC,KAAK,CAACO,KAAK,CAAC8B,KAAK,EAAE;QACpCD,QAAQ,CAACF,KAAK,CAAC,GAAGzB,IAAI,CAACwB,KAAK,CAAC;QAE7B,IAAI3C,KAAK,CAACL,WAAW,EAAE;UACrBe,KAAK,CAACO,KAAK,GAAG6B,QAAQ;QACxB,CAAC,MAAM;UACLzB,cAAc,CAACJ,KAAK,GAAG6B,QAAQ;QACjC;MACF;IACF;IAEA,SAASE,aAAaA,CAAA,EAAI;MACxB1C,IAAI,CAAC,cAAc,CAAC;IACtB;IAEA,SAAS2C,WAAWA,CAAA,EAAI;MACtB3C,IAAI,CAAC,YAAY,CAAC;MAElBI,KAAK,CAACO,KAAK,GAAGI,cAAc,CAACJ,KAAK;IACpC;IAEA,SAASiC,aAAaA,CAAA,EAAI;MACxBrC,SAAS,CAACI,KAAK,GAAGJ,SAAS,CAACI,KAAK,KAAK,UAAU,GAAG,UAAU,GAAG,UAAU;IAC5E;IAEA,SAASkC,WAAWA,CAAA,EAAI;MACtBxC,WAAW,CAACM,KAAK,GAAGT,OAAO,CAAC4C,SAAS,CAACzC,WAAW,CAACM,KAAK,EAAE,CAAC,CAAC;IAC7D;IAEA,SAASoC,WAAWA,CAAA,EAAI;MACtB1C,WAAW,CAACM,KAAK,GAAGT,OAAO,CAAC4C,SAAS,CAACzC,WAAW,CAACM,KAAK,EAAE,CAAC,CAAC,CAAC;IAC9D;IAEA,SAASqC,WAAWA,CAAA,EAAI;MACtB1C,QAAQ,CAACK,KAAK,GAAGL,QAAQ,CAACK,KAAK,KAAK,OAAO,GAAG,MAAM,GAAG,OAAO;IAChE;IAEA,SAASsC,aAAaA,CAAA,EAAI;MACxB3C,QAAQ,CAACK,KAAK,GAAG,OAAO;IAC1B;IAEA,MAAMuC,eAAe,GAAG/E,QAAQ,CAAC,OAAO;MACtCiB,MAAM,EAAEA,MAAM,CAACuB,KAAK;MACpBwC,UAAU,EAAEjC,UAAU,CAACP,KAAK;MAC5ByC,UAAU,EAAEjC,gBAAgB,CAACR,KAAK;MAClC,gBAAgB,EAAEiC;IACpB,CAAC,CAAC,CAAC;IAEHnE,SAAS,CAAC,MAAM;MACd,MAAM,CAAC4E,WAAW,CAAC,GAAGtF,OAAO,CAACuF,WAAW,CAAC5D,KAAK,CAAC;MAChD,MAAM,CAAC6D,uBAAuB,CAAC,GAAGpG,mBAAmB,CAACmG,WAAW,CAAC5D,KAAK,CAAC;MACxE,MAAM,CAAC8D,oBAAoB,CAAC,GAAGlG,gBAAgB,CAACgG,WAAW,CAAC5D,KAAK,CAAC;MAClE,MAAM,CAAC+D,oBAAoB,CAAC,GAAGjG,gBAAgB,CAAC8F,WAAW,CAAC5D,KAAK,CAAC;MAElE,OAAAgE,YAAA,CAAA3F,OAAA,EAAA4F,WAAA,CAESN,WAAW;QAAA,SACT,CACL,eAAe,EACd,kBAAiB/C,QAAQ,CAACK,KAAM,EAAC,EAClCjB,KAAK,CAACkE,KAAK,CACZ;QAAA,SACOlE,KAAK,CAACmE,KAAK;QAAA,SACXnE,KAAK,CAACoE,QAAQ,GAAG,GAAG,GAAG;MAAG,IACzB;QACPvE,KAAK,EAAEA,CAAA,KAAMU,KAAK,CAACV,KAAK,IAAI,IAAAmE,YAAA;UAAA,SAElB,sBAAsB;UAAA,WAClBhE,KAAK,CAACsB,OAAO,KAAK,SAAS,GAAGgC,WAAW,GAAGe;QAAS,IAE7DxE,KAAK,CAACoB,KAAK,EAEhB;QACDvB,MAAM,EAAEA,CAAA,KAAMa,KAAK,CAACb,MAAM,GAAG8D,eAAe,CAACvC,KAAK,CAAC,IAAA+C,YAAA,CAAAtG,iBAAA,EAAAuG,WAAA;UAAA,OAE3C;QAAQ,GACPT,eAAe,CAACvC,KAAK;UAAA,WAChBL,QAAQ,CAACK,KAAK,KAAK,MAAM,GAAGsC,aAAa,GAAGc;QAAS,SAElE;QACDjF,OAAO,EAAEA,CAAA,KAAMyB,SAAS,CAACI,KAAK,KAAK,UAAU,GAAA+C,YAAA,CAAAM,SAAA,SAEvC,CAACtE,KAAK,CAACsB,OAAO,KAAK,SAAS,IAAIV,QAAQ,CAACK,KAAK,KAAK,MAAM,KAAA+C,YAAA,CAAAvG,mBAAA,EAAAwG,WAAA,CAElDJ,uBAAuB;UAAA,YACjB9B,QAAQ,CAACd,KAAK;UAAA,eACXT,OAAO,CAACY,MAAM,CAACT,WAAW,CAACM,KAAK,EAAE,cAAc,CAAC;UAAA,gBAChDkC,WAAW;UAAA,gBACXE,WAAW;UAAA,gBACXC;QAAW,SAE7B,EAAAU,YAAA,CAAAjG,eAAA;UAAA;QAAA;UAAAqB,OAAA,EAAAA,CAAA,MAGGwB,QAAQ,CAACK,KAAK,KAAK,OAAO,GAAA+C,YAAA,CAAApG,gBAAA,EAAAqG,WAAA;YAAA,OAEpB;UAAmB,GAClBH,oBAAoB;YAAA,cACfzC,cAAc,CAACJ,KAAK;YAAA,uBAAAsD,MAAA,IAApBlD,cAAc,CAACJ,KAAK,GAAAsD,MAAA;YAAA,eAChB5D,WAAW,CAACM,KAAK;YAAA,OACzBS,OAAO,CAACT,KAAK;YAAA,OACbY,OAAO,CAACZ;UAAK,YAAA+C,YAAA,CAAAlG,gBAAA,EAAAmG,WAAA;YAAA,OAIf;UAAmB,GAClBF,oBAAoB;YAAA,eACHpD,WAAW,CAACM,KAAK;YAAA,wBAAAsD,MAAA,IAAjB5D,WAAW,CAACM,KAAK,GAAAsD,MAAA;YAAA,OACjC7C,OAAO,CAACT,KAAK;YAAA,OACbY,OAAO,CAACZ,KAAK;YAAA,gBACJqC;UAAW,SAE7B;QAAA,OAAAU,YAAA;UAAA,SAIM;QAAsB,IAAAA,YAAA,CAAA/F,UAAA;UAAA,cAEhB+C,UAAU,CAACC,KAAK,CAAC,CAAC,CAAC;UAAA,uBACVuD,CAAC,IAAI9B,eAAe,CAAC8B,CAAC,EAAE,CAAC,CAAC;UAAA,SACxC/D,CAAC,CAACT,KAAK,CAACR,SAAS,CAAC;UAAA,eACZQ,KAAK,CAACP;QAAgB,UAGzC;QACDgF,OAAO,EAAEA,CAAA,KAAM,CAACzE,KAAK,CAACL,WAAW,GAAAqE,YAAA,eAAAA,YAAA,CAAAhG,IAAA;UAAA,WAGnB,MAAM;UAAA,SACNgC,KAAK,CAAC0E,KAAK;UAAA,WACT1B,aAAa;UAAA,QAChBvC,CAAC,CAACT,KAAK,CAACV,UAAU;QAAC,UAAA0E,YAAA,CAAAhG,IAAA;UAAA,WAIlB,MAAM;UAAA,SACNgC,KAAK,CAAC0E,KAAK;UAAA,WACTzB,WAAW;UAAA,QACdxC,CAAC,CAACT,KAAK,CAACT,MAAM;QAAC,aAGxB8E;MACN,CAAC;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -8,12 +8,31 @@
8
8
  padding-bottom: 4px;
9
9
  padding-inline-end: 12px;
10
10
  }
11
+ .v-date-picker-controls--variant-classic {
12
+ padding-inline-start: 12px;
13
+ }
14
+ .v-date-picker-controls--variant-modern .v-date-picker__title:not(:hover) {
15
+ opacity: 0.7;
16
+ }
17
+ .v-date-picker--month .v-date-picker-controls--variant-modern .v-date-picker__title {
18
+ cursor: pointer;
19
+ }
20
+ .v-date-picker--year .v-date-picker-controls--variant-modern .v-date-picker__title {
21
+ opacity: 1;
22
+ }
11
23
  .v-date-picker-controls .v-btn:last-child {
12
- margin-left: 4px;
24
+ margin-inline-start: 4px;
25
+ }
26
+ .v-date-picker--year .v-date-picker-controls > .v-btn {
27
+ transform: rotate(180deg);
13
28
  }
14
29
 
15
30
  .v-date-picker-controls__date {
16
- margin-right: 4px;
31
+ margin-inline-end: 4px;
32
+ }
33
+ .v-date-picker-controls--variant-classic .v-date-picker-controls__date {
34
+ margin: auto;
35
+ text-align: center;
17
36
  }
18
37
 
19
38
  .v-date-picker-controls__month {
@@ -21,4 +40,12 @@
21
40
  }
22
41
  .v-locale--is-rtl.v-date-picker-controls__month, .v-locale--is-rtl .v-date-picker-controls__month {
23
42
  flex-direction: row-reverse;
43
+ }
44
+
45
+ .v-date-picker-controls--variant-classic .v-date-picker-controls__month {
46
+ flex: 1 0 auto;
47
+ }
48
+
49
+ .v-date-picker__title {
50
+ display: inline-block;
24
51
  }
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode } from "vue";
1
+ import { Fragment as _Fragment, createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VDatePickerControls.css";
4
4
 
@@ -10,7 +10,7 @@ import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"
10
10
  export const makeVDatePickerControlsProps = propsFactory({
11
11
  displayDate: String,
12
12
  disabled: {
13
- type: [Boolean, String],
13
+ type: [Boolean, String, Array],
14
14
  default: false
15
15
  },
16
16
  nextIcon: {
@@ -21,13 +21,13 @@ export const makeVDatePickerControlsProps = propsFactory({
21
21
  type: [String],
22
22
  default: '$prev'
23
23
  },
24
- expandIcon: {
24
+ modeIcon: {
25
25
  type: [String],
26
- default: '$expand'
26
+ default: '$subgroup'
27
27
  },
28
- collapseIcon: {
29
- type: [String],
30
- default: '$collapse'
28
+ variant: {
29
+ type: String,
30
+ default: 'modern'
31
31
  },
32
32
  viewMode: {
33
33
  type: String,
@@ -46,17 +46,14 @@ export const VDatePickerControls = genericComponent()({
46
46
  let {
47
47
  emit
48
48
  } = _ref;
49
- const modeIcon = computed(() => {
50
- return props.viewMode === 'month' ? props.expandIcon : props.collapseIcon;
51
- });
52
49
  const disableMode = computed(() => {
53
- return Array.isArray(props.disabled) ? props.disabled.includes('mode') : props.disabled;
50
+ return Array.isArray(props.disabled) ? props.disabled.includes('mode') : !!props.disabled;
54
51
  });
55
52
  const disablePrev = computed(() => {
56
- return Array.isArray(props.disabled) ? props.disabled.includes('prev') : props.disabled;
53
+ return Array.isArray(props.disabled) ? props.disabled.includes('prev') : !!props.disabled;
57
54
  });
58
55
  const disableNext = computed(() => {
59
- return Array.isArray(props.disabled) ? props.disabled.includes('next') : props.disabled;
56
+ return Array.isArray(props.disabled) ? props.disabled.includes('next') : !!props.disabled;
60
57
  });
61
58
  function onClickPrev() {
62
59
  emit('click:prev');
@@ -68,17 +65,21 @@ export const VDatePickerControls = genericComponent()({
68
65
  emit('click:mode');
69
66
  }
70
67
  useRender(() => {
71
- return _createVNode("div", {
72
- "class": "v-date-picker-controls"
73
- }, [_createVNode("div", {
68
+ const displayDate = _createVNode("div", {
74
69
  "class": "v-date-picker-controls__date"
75
- }, [props.displayDate]), _createVNode(VBtn, {
70
+ }, [props.displayDate]);
71
+ return _createVNode("div", {
72
+ "class": ['v-date-picker-controls', `v-date-picker-controls--variant-${props.variant}`]
73
+ }, [props.variant === 'modern' && _createVNode(_Fragment, null, [displayDate, _createVNode(VBtn, {
74
+ "key": "mode-btn",
76
75
  "disabled": disableMode.value,
77
- "key": "expand-btn",
78
- "icon": modeIcon.value,
76
+ "density": "comfortable",
77
+ "icon": props.modeIcon,
79
78
  "variant": "text",
80
79
  "onClick": onClickMode
81
- }, null), _createVNode(VSpacer, null, null), _createVNode("div", {
80
+ }, null), _createVNode(VSpacer, {
81
+ "key": "mode-spacer"
82
+ }, null)]), _createVNode("div", {
82
83
  "key": "month-buttons",
83
84
  "class": "v-date-picker-controls__month"
84
85
  }, [_createVNode(VBtn, {
@@ -86,7 +87,7 @@ export const VDatePickerControls = genericComponent()({
86
87
  "icon": props.prevIcon,
87
88
  "variant": "text",
88
89
  "onClick": onClickPrev
89
- }, null), _createVNode(VBtn, {
90
+ }, null), props.variant === 'classic' && displayDate, _createVNode(VBtn, {
90
91
  "disabled": disableNext.value,
91
92
  "icon": props.nextIcon,
92
93
  "variant": "text",
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePickerControls.mjs","names":["VBtn","VSpacer","computed","genericComponent","propsFactory","useRender","makeVDatePickerControlsProps","displayDate","String","disabled","type","Boolean","default","nextIcon","prevIcon","expandIcon","collapseIcon","viewMode","VDatePickerControls","name","props","emits","click:mode","click:prev","click:next","setup","_ref","emit","modeIcon","disableMode","Array","isArray","includes","disablePrev","disableNext","onClickPrev","onClickNext","onClickMode","_createVNode","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// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDatePickerControlsProps = propsFactory({\n displayDate: String,\n disabled: {\n type: [Boolean, String] as PropType<boolean | string[]>,\n default: false,\n },\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 viewMode: {\n type: String as PropType<'month' | 'year'>,\n default: 'month',\n },\n}, 'VDatePickerControls')\n\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n\n props: makeVDatePickerControlsProps(),\n\n emits: {\n 'click:mode': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n },\n\n setup (props, { emit }) {\n const modeIcon = computed(() => {\n return props.viewMode === 'month' ? props.expandIcon : props.collapseIcon\n })\n const disableMode = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('mode')\n : props.disabled\n })\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('prev')\n : props.disabled\n })\n const disableNext = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('next')\n : props.disabled\n })\n\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n function onClickMode () {\n emit('click:mode')\n }\n\n useRender(() => {\n return (\n <div class=\"v-date-picker-controls\">\n <div class=\"v-date-picker-controls__date\">{ props.displayDate }</div>\n\n <VBtn\n disabled={ disableMode.value }\n key=\"expand-btn\"\n icon={ modeIcon.value }\n variant=\"text\"\n onClick={ onClickMode }\n />\n\n <VSpacer />\n\n <div\n key=\"month-buttons\"\n class=\"v-date-picker-controls__month\"\n >\n <VBtn\n disabled={ disablePrev.value }\n icon={ props.prevIcon }\n variant=\"text\"\n onClick={ onClickPrev }\n />\n\n <VBtn\n disabled={ disableNext.value }\n icon={ props.nextIcon }\n variant=\"text\"\n onClick={ onClickNext }\n />\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerControls = InstanceType<typeof VDatePickerControls>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDatePickerControls.mjs","names":["VBtn","VSpacer","computed","genericComponent","propsFactory","useRender","makeVDatePickerControlsProps","displayDate","String","disabled","type","Boolean","Array","default","nextIcon","prevIcon","modeIcon","variant","viewMode","VDatePickerControls","name","props","emits","click:mode","click:prev","click:next","setup","_ref","emit","disableMode","isArray","includes","disablePrev","disableNext","onClickPrev","onClickNext","onClickMode","_createVNode","_Fragment","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// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDatePickerControlsProps = propsFactory({\n displayDate: String,\n disabled: {\n type: [Boolean, String, Array] as PropType<boolean | string | string[]>,\n default: false,\n },\n nextIcon: {\n type: [String],\n default: '$next',\n },\n prevIcon: {\n type: [String],\n default: '$prev',\n },\n modeIcon: {\n type: [String],\n default: '$subgroup',\n },\n variant: {\n type: String,\n default: 'modern',\n },\n viewMode: {\n type: String as PropType<'month' | 'year'>,\n default: 'month',\n },\n}, 'VDatePickerControls')\n\nexport const VDatePickerControls = genericComponent()({\n name: 'VDatePickerControls',\n\n props: makeVDatePickerControlsProps(),\n\n emits: {\n 'click:mode': () => true,\n 'click:prev': () => true,\n 'click:next': () => true,\n },\n\n setup (props, { emit }) {\n const disableMode = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('mode')\n : !!props.disabled\n })\n const disablePrev = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('prev')\n : !!props.disabled\n })\n const disableNext = computed(() => {\n return Array.isArray(props.disabled)\n ? props.disabled.includes('next')\n : !!props.disabled\n })\n\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n function onClickMode () {\n emit('click:mode')\n }\n\n useRender(() => {\n const displayDate = (\n <div class=\"v-date-picker-controls__date\">{ props.displayDate }</div>\n )\n\n return (\n <div\n class={[\n 'v-date-picker-controls',\n `v-date-picker-controls--variant-${props.variant}`,\n ]}\n >\n { props.variant === 'modern' && (\n <>\n { displayDate }\n\n <VBtn\n key=\"mode-btn\"\n disabled={ disableMode.value }\n density=\"comfortable\"\n icon={ props.modeIcon }\n variant=\"text\"\n onClick={ onClickMode }\n />\n\n <VSpacer key=\"mode-spacer\" />\n </>\n )}\n\n <div\n key=\"month-buttons\"\n class=\"v-date-picker-controls__month\"\n >\n <VBtn\n disabled={ disablePrev.value }\n icon={ props.prevIcon }\n variant=\"text\"\n onClick={ onClickPrev }\n />\n\n { props.variant === 'classic' && displayDate }\n\n <VBtn\n disabled={ disableNext.value }\n icon={ props.nextIcon }\n variant=\"text\"\n onClick={ onClickNext }\n />\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerControls = InstanceType<typeof VDatePickerControls>\n"],"mappings":"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"}
@@ -10,14 +10,42 @@
10
10
  padding-bottom: 4px
11
11
  padding-inline-end: 12px
12
12
 
13
+ &--variant-classic
14
+ padding-inline-start: 12px
15
+
16
+ &--variant-modern
17
+ .v-date-picker__title
18
+ &:not(:hover)
19
+ opacity: .7
20
+
21
+ .v-date-picker--month &
22
+ cursor: pointer
23
+
24
+ .v-date-picker--year &
25
+ opacity: 1
26
+
13
27
  .v-btn:last-child
14
- margin-left: 4px
28
+ margin-inline-start: 4px
29
+
30
+ .v-date-picker--year &
31
+ > .v-btn
32
+ transform: rotate(180deg)
15
33
 
16
34
  .v-date-picker-controls__date
17
- margin-right: 4px
35
+ margin-inline-end: 4px
36
+
37
+ .v-date-picker-controls--variant-classic &
38
+ margin: auto
39
+ text-align: center
18
40
 
19
41
  .v-date-picker-controls__month
20
42
  display: flex
21
43
 
22
44
  @include tools.rtl()
23
45
  flex-direction: row-reverse
46
+
47
+ .v-date-picker-controls--variant-classic &
48
+ flex: 1 0 auto
49
+
50
+ .v-date-picker__title
51
+ display: inline-block
@@ -19,12 +19,21 @@
19
19
 
20
20
  .v-date-picker-header__content {
21
21
  align-items: center;
22
- display: flex;
22
+ display: inline-flex;
23
23
  font-size: 32px;
24
24
  line-height: 40px;
25
25
  grid-area: content;
26
26
  justify-content: space-between;
27
27
  }
28
+ .v-date-picker-header--clickable .v-date-picker-header__content:not(:hover) {
29
+ opacity: 0.7;
30
+ }
31
+ .v-date-picker--month .v-date-picker-header__content {
32
+ opacity: 1;
33
+ }
34
+ .v-date-picker--year .v-date-picker-header__content {
35
+ cursor: pointer;
36
+ }
28
37
 
29
38
  .date-picker-header-transition-enter-active,
30
39
  .date-picker-header-reverse-transition-enter-active {
@@ -7,17 +7,19 @@ import { VBtn } from "../../components/VBtn/index.mjs";
7
7
  import { VDefaultsProvider } from "../../components/VDefaultsProvider/index.mjs"; // Composables
8
8
  import { useBackgroundColor } from "../../composables/color.mjs";
9
9
  import { MaybeTransition } from "../../composables/transition.mjs"; // Utilities
10
- import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
10
+ import { EventProp, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
11
11
  export const makeVDatePickerHeaderProps = propsFactory({
12
12
  appendIcon: String,
13
13
  color: String,
14
14
  header: String,
15
- transition: String
15
+ transition: String,
16
+ onClick: EventProp()
16
17
  }, 'VDatePickerHeader');
17
18
  export const VDatePickerHeader = genericComponent()({
18
19
  name: 'VDatePickerHeader',
19
20
  props: makeVDatePickerHeaderProps(),
20
21
  emits: {
22
+ click: () => true,
21
23
  'click:append': () => true
22
24
  },
23
25
  setup(props, _ref) {
@@ -29,6 +31,9 @@ export const VDatePickerHeader = genericComponent()({
29
31
  backgroundColorClasses,
30
32
  backgroundColorStyles
31
33
  } = useBackgroundColor(props, 'color');
34
+ function onClick() {
35
+ emit('click');
36
+ }
32
37
  function onClickAppend() {
33
38
  emit('click:append');
34
39
  }
@@ -36,8 +41,11 @@ export const VDatePickerHeader = genericComponent()({
36
41
  const hasContent = !!(slots.default || props.header);
37
42
  const hasAppend = !!(slots.append || props.appendIcon);
38
43
  return _createVNode("div", {
39
- "class": ['v-date-picker-header', backgroundColorClasses.value],
40
- "style": backgroundColorStyles.value
44
+ "class": ['v-date-picker-header', {
45
+ 'v-date-picker-header--clickable': !!props.onClick
46
+ }, backgroundColorClasses.value],
47
+ "style": backgroundColorStyles.value,
48
+ "onClick": onClick
41
49
  }, [slots.prepend && _createVNode("div", {
42
50
  "key": "prepend",
43
51
  "class": "v-date-picker-header__prepend"
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePickerHeader.mjs","names":["VBtn","VDefaultsProvider","useBackgroundColor","MaybeTransition","genericComponent","propsFactory","useRender","makeVDatePickerHeaderProps","appendIcon","String","color","header","transition","VDatePickerHeader","name","props","emits","click:append","setup","_ref","emit","slots","backgroundColorClasses","backgroundColorStyles","onClickAppend","hasContent","default","hasAppend","append","_createVNode","value","prepend","icon","variant"],"sources":["../../../src/labs/VDatePicker/VDatePickerHeader.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerHeader.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerHeaderSlots = {\n prepend: never\n default: never\n append: never\n}\n\nexport const makeVDatePickerHeaderProps = propsFactory({\n appendIcon: String,\n color: String,\n header: String,\n transition: String,\n}, 'VDatePickerHeader')\n\nexport const VDatePickerHeader = genericComponent<VDatePickerHeaderSlots>()({\n name: 'VDatePickerHeader',\n\n props: makeVDatePickerHeaderProps(),\n\n emits: {\n 'click:append': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function onClickAppend () {\n emit('click:append')\n }\n\n useRender(() => {\n const hasContent = !!(slots.default || props.header)\n const hasAppend = !!(slots.append || props.appendIcon)\n\n return (\n <div\n class={[\n 'v-date-picker-header',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { slots.prepend && (\n <div key=\"prepend\" class=\"v-date-picker-header__prepend\">\n { slots.prepend() }\n </div>\n )}\n\n { hasContent && (\n <MaybeTransition key=\"content\" name={ props.transition }>\n <div key={ props.header } class=\"v-date-picker-header__content\">\n { slots.default?.() ?? props.header }\n </div>\n </MaybeTransition>\n )}\n\n { hasAppend && (\n <div class=\"v-date-picker-header__append\">\n { !slots.append ? (\n <VBtn\n key=\"append-btn\"\n icon={ props.appendIcon }\n variant=\"text\"\n onClick={ onClickAppend }\n />\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !props.appendIcon }\n defaults={{\n VBtn: {\n icon: props.appendIcon,\n variant: 'text',\n },\n }}\n >\n { slots.append?.() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerHeader = InstanceType<typeof VDatePickerHeader>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB,wDAE1B;AAAA,SACSC,kBAAkB;AAAA,SAClBC,eAAe,4CAExB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAOA,OAAO,MAAMC,0BAA0B,GAAGF,YAAY,CAAC;EACrDG,UAAU,EAAEC,MAAM;EAClBC,KAAK,EAAED,MAAM;EACbE,MAAM,EAAEF,MAAM;EACdG,UAAU,EAAEH;AACd,CAAC,EAAE,mBAAmB,CAAC;AAEvB,OAAO,MAAMI,iBAAiB,GAAGT,gBAAgB,EAA0B,CAAC;EAC1EU,IAAI,EAAE,mBAAmB;EAEzBC,KAAK,EAAER,0BAA0B,EAAE;EAEnCS,KAAK,EAAE;IACL,cAAc,EAAEC,CAAA,KAAM;EACxB,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG,sBAAsB;MAAEC;IAAsB,CAAC,GAAGrB,kBAAkB,CAACa,KAAK,EAAE,OAAO,CAAC;IAE5F,SAASS,aAAaA,CAAA,EAAI;MACxBJ,IAAI,CAAC,cAAc,CAAC;IACtB;IAEAd,SAAS,CAAC,MAAM;MACd,MAAMmB,UAAU,GAAG,CAAC,EAAEJ,KAAK,CAACK,OAAO,IAAIX,KAAK,CAACJ,MAAM,CAAC;MACpD,MAAMgB,SAAS,GAAG,CAAC,EAAEN,KAAK,CAACO,MAAM,IAAIb,KAAK,CAACP,UAAU,CAAC;MAEtD,OAAAqB,YAAA;QAAA,SAEW,CACL,sBAAsB,EACtBP,sBAAsB,CAACQ,KAAK,CAC7B;QAAA,SACOP,qBAAqB,CAACO;MAAK,IAEjCT,KAAK,CAACU,OAAO,IAAAF,YAAA;QAAA,OACJ,SAAS;QAAA,SAAO;MAA+B,IACpDR,KAAK,CAACU,OAAO,EAAE,EAEpB,EAECN,UAAU,IAAAI,YAAA,CAAA1B,eAAA;QAAA,OACW,SAAS;QAAA,QAAQY,KAAK,CAACH;MAAU;QAAAc,OAAA,EAAAA,CAAA,MAAAG,YAAA;UAAA,OACzCd,KAAK,CAACJ,MAAM;UAAA,SAAS;QAA+B,IAC3DU,KAAK,CAACK,OAAO,IAAI,IAAIX,KAAK,CAACJ,MAAM;MAAA,EAGxC,EAECgB,SAAS,IAAAE,YAAA;QAAA,SACE;MAA8B,IACrC,CAACR,KAAK,CAACO,MAAM,GAAAC,YAAA,CAAA7B,IAAA;QAAA,OAEP,YAAY;QAAA,QACTe,KAAK,CAACP,UAAU;QAAA,WACf,MAAM;QAAA,WACJgB;MAAa,WAAAK,YAAA,CAAA5B,iBAAA;QAAA,OAInB,iBAAiB;QAAA,YACV,CAACc,KAAK,CAACP,UAAU;QAAA,YAClB;UACRR,IAAI,EAAE;YACJgC,IAAI,EAAEjB,KAAK,CAACP,UAAU;YACtByB,OAAO,EAAE;UACX;QACF;MAAC;QAAAP,OAAA,EAAAA,CAAA,MAECL,KAAK,CAACO,MAAM,IAAI;MAAA,EAErB,EAEJ;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VDatePickerHeader.mjs","names":["VBtn","VDefaultsProvider","useBackgroundColor","MaybeTransition","EventProp","genericComponent","propsFactory","useRender","makeVDatePickerHeaderProps","appendIcon","String","color","header","transition","onClick","VDatePickerHeader","name","props","emits","click","click:append","setup","_ref","emit","slots","backgroundColorClasses","backgroundColorStyles","onClickAppend","hasContent","default","hasAppend","append","_createVNode","value","prepend","icon","variant"],"sources":["../../../src/labs/VDatePicker/VDatePickerHeader.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerHeader.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerHeaderSlots = {\n prepend: never\n default: never\n append: never\n}\n\nexport const makeVDatePickerHeaderProps = propsFactory({\n appendIcon: String,\n color: String,\n header: String,\n transition: String,\n onClick: EventProp<[MouseEvent]>(),\n}, 'VDatePickerHeader')\n\nexport const VDatePickerHeader = genericComponent<VDatePickerHeaderSlots>()({\n name: 'VDatePickerHeader',\n\n props: makeVDatePickerHeaderProps(),\n\n emits: {\n click: () => true,\n 'click:append': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function onClick () {\n emit('click')\n }\n\n function onClickAppend () {\n emit('click:append')\n }\n\n useRender(() => {\n const hasContent = !!(slots.default || props.header)\n const hasAppend = !!(slots.append || props.appendIcon)\n\n return (\n <div\n class={[\n 'v-date-picker-header',\n {\n 'v-date-picker-header--clickable': !!props.onClick,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n onClick={ onClick }\n >\n { slots.prepend && (\n <div key=\"prepend\" class=\"v-date-picker-header__prepend\">\n { slots.prepend() }\n </div>\n )}\n\n { hasContent && (\n <MaybeTransition key=\"content\" name={ props.transition }>\n <div key={ props.header } class=\"v-date-picker-header__content\">\n { slots.default?.() ?? props.header }\n </div>\n </MaybeTransition>\n )}\n\n { hasAppend && (\n <div class=\"v-date-picker-header__append\">\n { !slots.append ? (\n <VBtn\n key=\"append-btn\"\n icon={ props.appendIcon }\n variant=\"text\"\n onClick={ onClickAppend }\n />\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !props.appendIcon }\n defaults={{\n VBtn: {\n icon: props.appendIcon,\n variant: 'text',\n },\n }}\n >\n { slots.append?.() }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePickerHeader = InstanceType<typeof VDatePickerHeader>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB,wDAE1B;AAAA,SACSC,kBAAkB;AAAA,SAClBC,eAAe,4CAExB;AAAA,SACSC,SAAS,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAE7D;AAOA,OAAO,MAAMC,0BAA0B,GAAGF,YAAY,CAAC;EACrDG,UAAU,EAAEC,MAAM;EAClBC,KAAK,EAAED,MAAM;EACbE,MAAM,EAAEF,MAAM;EACdG,UAAU,EAAEH,MAAM;EAClBI,OAAO,EAAEV,SAAS;AACpB,CAAC,EAAE,mBAAmB,CAAC;AAEvB,OAAO,MAAMW,iBAAiB,GAAGV,gBAAgB,EAA0B,CAAC;EAC1EW,IAAI,EAAE,mBAAmB;EAEzBC,KAAK,EAAET,0BAA0B,EAAE;EAEnCU,KAAK,EAAE;IACLC,KAAK,EAAEA,CAAA,KAAM,IAAI;IACjB,cAAc,EAAEC,CAAA,KAAM;EACxB,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG,sBAAsB;MAAEC;IAAsB,CAAC,GAAGxB,kBAAkB,CAACe,KAAK,EAAE,OAAO,CAAC;IAE5F,SAASH,OAAOA,CAAA,EAAI;MAClBS,IAAI,CAAC,OAAO,CAAC;IACf;IAEA,SAASI,aAAaA,CAAA,EAAI;MACxBJ,IAAI,CAAC,cAAc,CAAC;IACtB;IAEAhB,SAAS,CAAC,MAAM;MACd,MAAMqB,UAAU,GAAG,CAAC,EAAEJ,KAAK,CAACK,OAAO,IAAIZ,KAAK,CAACL,MAAM,CAAC;MACpD,MAAMkB,SAAS,GAAG,CAAC,EAAEN,KAAK,CAACO,MAAM,IAAId,KAAK,CAACR,UAAU,CAAC;MAEtD,OAAAuB,YAAA;QAAA,SAEW,CACL,sBAAsB,EACtB;UACE,iCAAiC,EAAE,CAAC,CAACf,KAAK,CAACH;QAC7C,CAAC,EACDW,sBAAsB,CAACQ,KAAK,CAC7B;QAAA,SACOP,qBAAqB,CAACO,KAAK;QAAA,WACzBnB;MAAO,IAEfU,KAAK,CAACU,OAAO,IAAAF,YAAA;QAAA,OACJ,SAAS;QAAA,SAAO;MAA+B,IACpDR,KAAK,CAACU,OAAO,EAAE,EAEpB,EAECN,UAAU,IAAAI,YAAA,CAAA7B,eAAA;QAAA,OACW,SAAS;QAAA,QAAQc,KAAK,CAACJ;MAAU;QAAAgB,OAAA,EAAAA,CAAA,MAAAG,YAAA;UAAA,OACzCf,KAAK,CAACL,MAAM;UAAA,SAAS;QAA+B,IAC3DY,KAAK,CAACK,OAAO,IAAI,IAAIZ,KAAK,CAACL,MAAM;MAAA,EAGxC,EAECkB,SAAS,IAAAE,YAAA;QAAA,SACE;MAA8B,IACrC,CAACR,KAAK,CAACO,MAAM,GAAAC,YAAA,CAAAhC,IAAA;QAAA,OAEP,YAAY;QAAA,QACTiB,KAAK,CAACR,UAAU;QAAA,WACf,MAAM;QAAA,WACJkB;MAAa,WAAAK,YAAA,CAAA/B,iBAAA;QAAA,OAInB,iBAAiB;QAAA,YACV,CAACgB,KAAK,CAACR,UAAU;QAAA,YAClB;UACRT,IAAI,EAAE;YACJmC,IAAI,EAAElB,KAAK,CAACR,UAAU;YACtB2B,OAAO,EAAE;UACX;QACF;MAAC;QAAAP,OAAA,EAAAA,CAAA,MAECL,KAAK,CAACO,MAAM,IAAI;MAAA,EAErB,EAEJ;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -18,12 +18,22 @@
18
18
 
19
19
  .v-date-picker-header__content
20
20
  align-items: center
21
- display: flex
21
+ display: inline-flex
22
22
  font-size: 32px
23
23
  line-height: 40px
24
24
  grid-area: content
25
25
  justify-content: space-between
26
26
 
27
+ .v-date-picker-header--clickable &
28
+ &:not(:hover)
29
+ opacity: .7
30
+
31
+ .v-date-picker--month &
32
+ opacity: 1
33
+
34
+ .v-date-picker--year &
35
+ cursor: pointer
36
+
27
37
  .date-picker-header-transition,
28
38
  .date-picker-header-reverse-transition
29
39
  &-enter-active
@@ -275,8 +275,7 @@ export const VDatePickerMonth = genericComponent()({
275
275
  "key": "in-hover",
276
276
  "class": "v-date-picker-month__day--hover"
277
277
  }, null), (props.showAdjacentMonths || !item.isAdjacent) && _createVNode(VBtn, {
278
- "active": item.isSelected,
279
- "color": color,
278
+ "color": !item.isToday || item.isSelected ? color : undefined,
280
279
  "disabled": item.isDisabled,
281
280
  "icon": true,
282
281
  "ripple": false,
@@ -1 +1 @@
1
- {"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","useDatePicker","useBackgroundColor","computed","ref","genericComponent","omit","propsFactory","getWeek","toIso","dateEmits","makeDateProps","useDate","makeVDatePickerMonthProps","color","String","showAdjacentMonths","Boolean","hideWeekdays","showWeek","hoverDate","multiple","side","type","min","Number","Date","max","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","adapter","isDragging","dragHandle","hasScrolled","month","displayDate","findClosestDate","dates","isSameDay","getDiff","startDate","endDate","distStart","Math","abs","distEnd","weeksInMonth","weeks","getWeekArray","value","days","flat","daysInMonth","length","lastDay","week","day","push","addDays","validDates","modelValue","filter","v","isRange","today","map","index","isDisabled","isAfter","isStart","isEnd","isAdjacent","isSameMonth","isSame","isoDate","formatted","format","year","getYear","getMonth","isWeekStart","isWeekEnd","isSelected","isToday","isHidden","inRange","isWithinRange","isHovered","inHover","localized","backgroundColorClasses","backgroundColorStyles","selectDate","newModel","slice","otherIndex","fn","find","d","closest","indexOf","undefined","i","isBefore","daysRef","findElement","el","dataset","vDate","parentElement","findDate","e","x","changedTouches","clientX","y","clientY","document","elementFromPoint","canDrag","handleMousedown","selected","modelIndex","findIndex","isEqual","window","addEventListener","handleTouchmove","passive","preventDefault","handleTouchend","over","cancelable","removeEventListener","end","_createVNode","_createTextVNode","getWeekdays","weekDay","item","variant","default"],"sources":["../../../src/labs/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDatePicker } from './composables'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory } from '@/util'\n\n// Types\nimport { getWeek, toIso } from '../date/date'\nimport { dateEmits, makeDateProps } from '../VDateInput/composables'\nimport { useDate } from '@/labs/date'\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n showAdjacentMonths: Boolean,\n hideWeekdays: Boolean,\n showWeek: Boolean,\n hoverDate: null,\n multiple: Boolean,\n side: {\n type: String,\n },\n min: [Number, String, Date],\n max: [Number, String, Date],\n\n ...omit(makeDateProps(), ['inputMode', 'viewMode']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps({ color: 'surface-variant' }),\n\n emits: {\n ...omit(dateEmits, ['update:inputMode', 'update:viewMode']),\n 'update:hoverDate': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { isDragging, dragHandle, hasScrolled } = useDatePicker()\n\n const month = computed(() => props.displayDate)\n\n const findClosestDate = (date: any, dates: any[]) => {\n const { isSameDay, getDiff } = adapter\n const [startDate, endDate] = dates\n\n if (isSameDay(startDate, endDate)) {\n return getDiff(date, startDate, 'days') > 0 ? endDate : startDate\n }\n\n const distStart = Math.abs(getDiff(date, startDate))\n const distEnd = Math.abs(getDiff(date, endDate))\n\n return distStart < distEnd ? startDate : endDate\n }\n\n // const hoverRange = computed<[any, any] | null>(() => {\n // if (!props.hoverDate) return null\n\n // const closestDate = findClosestDate(props.hoverDate, props.modelValue)\n\n // if (!closestDate) return null\n\n // return adapter.isAfter(props.hoverDate, closestDate) ? [closestDate, props.hoverDate] : [props.hoverDate, closestDate]\n // })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // But only do it if we're not hiding adjacent months?\n const daysInMonth = 6 * 7\n if (days.length < daysInMonth && props.showAdjacentMonths) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n const daysInMonth = computed(() => {\n const validDates = props.modelValue.filter(v => !!v)\n const isRange = validDates.length > 1\n\n const days = weeksInMonth.value.flat()\n const today = adapter.date()\n\n const startDate = validDates[0]\n const endDate = validDates[1]\n\n return days.map((date, index) => {\n const isDisabled = !!(\n (props.min && adapter.isAfter(props.min, date)) ||\n (props.max && adapter.isAfter(date, props.max))\n )\n const isStart = startDate && adapter.isSameDay(date, startDate)\n const isEnd = endDate && adapter.isSameDay(date, endDate)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isSame = validDates.length === 2 && adapter.isSameDay(startDate, endDate)\n\n return {\n date,\n isoDate: toIso(adapter, date),\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled,\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isSelected: isStart || isEnd,\n isStart,\n isEnd,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n inRange: isRange &&\n !isSame &&\n (isStart || isEnd || (validDates.length === 2 && adapter.isWithinRange(date, validDates as [any, any]))),\n // isHovered: props.hoverDate === date,\n // inHover: hoverRange.value && isWithinRange(date, hoverRange.value),\n isHovered: false,\n inHover: false,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n })\n\n const weeks = computed(() => {\n return weeksInMonth.value.map(week => {\n return getWeek(adapter, week[0])\n })\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function selectDate (date: any) {\n let newModel = props.modelValue.slice()\n\n if (props.multiple) {\n if (isDragging.value && dragHandle.value != null) {\n const otherIndex = (dragHandle.value + 1) % 2\n const fn = otherIndex === 0 ? 'isBefore' : 'isAfter'\n if (adapter[fn](date, newModel[otherIndex])) {\n newModel[dragHandle.value] = newModel[otherIndex]\n newModel[otherIndex] = date\n dragHandle.value = otherIndex\n } else {\n newModel[dragHandle.value] = date\n }\n } else {\n if (newModel.find(d => adapter.isSameDay(d, date))) {\n newModel = newModel.filter(v => !adapter.isSameDay(v, date))\n } else if (newModel.length === 2) {\n let index: number | undefined\n if (!props.side || adapter.isSameMonth(newModel[0], newModel[1])) {\n const closest = findClosestDate(date, newModel)\n index = newModel.indexOf(closest)\n } else {\n index = props.side === 'start' ? 0 : props.side === 'end' ? 1 : undefined\n }\n\n newModel = newModel.map((v, i) => i === index ? date : v)\n } else {\n if (newModel[0] && adapter.isBefore(newModel[0], date)) {\n newModel = [newModel[0], date]\n } else {\n newModel = [date, newModel[0]]\n }\n }\n }\n } else {\n newModel = [date]\n }\n\n emit('update:modelValue', newModel.filter(v => !!v))\n }\n\n const daysRef = ref()\n\n function findElement (el: HTMLElement | null): any {\n if (!el || el === daysRef.value) return null\n\n if ('vDate' in el.dataset) {\n return adapter.date(el.dataset.vDate)\n }\n\n return findElement(el.parentElement)\n }\n\n function findDate (e: MouseEvent | TouchEvent) {\n const x = 'changedTouches' in e ? e.changedTouches[0]?.clientX : e.clientX\n const y = 'changedTouches' in e ? e.changedTouches[0]?.clientY : e.clientY\n const el = document.elementFromPoint(x, y) as HTMLElement\n\n return findElement(el)\n }\n\n let canDrag = false\n function handleMousedown (e: MouseEvent | TouchEvent) {\n hasScrolled.value = false\n\n const selected = findDate(e)\n\n if (!selected) return\n\n const modelIndex = props.modelValue.findIndex(d => adapter.isEqual(d, selected))\n\n if (modelIndex >= 0) {\n canDrag = true\n dragHandle.value = modelIndex\n\n window.addEventListener('touchmove', handleTouchmove, { passive: false })\n window.addEventListener('mousemove', handleTouchmove, { passive: false })\n\n e.preventDefault()\n }\n\n window.addEventListener('touchend', handleTouchend, { passive: false })\n window.addEventListener('mouseup', handleTouchend, { passive: false })\n }\n\n function handleTouchmove (e: MouseEvent | TouchEvent) {\n if (!canDrag) return\n\n e.preventDefault()\n\n isDragging.value = true\n\n const over = findDate(e)\n\n if (!over) return\n\n selectDate(over)\n }\n\n function handleTouchend (e: MouseEvent | TouchEvent) {\n if (e.cancelable) e.preventDefault()\n\n window.removeEventListener('touchmove', handleTouchmove)\n window.removeEventListener('mousemove', handleTouchmove)\n window.removeEventListener('touchend', handleTouchend)\n window.removeEventListener('mouseup', handleTouchend)\n\n const end = findDate(e)\n\n if (!end) return\n\n if (!hasScrolled.value) {\n selectDate(end)\n }\n\n isDragging.value = false\n dragHandle.value = null\n canDrag = false\n }\n\n return () => (\n <div class=\"v-date-picker-month\">\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\">&nbsp;</div>\n )}\n { weeks.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <div\n ref={ daysRef }\n class=\"v-date-picker-month__days\"\n onMousedown={ handleMousedown }\n onTouchstart={ handleMousedown }\n >\n { !props.hideWeekdays && adapter.getWeekdays().map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, index) => {\n const color = (item.isSelected || item.isToday)\n ? props.color\n : (item.isHovered || item.isDisabled)\n ? undefined\n : 'transparent'\n const variant = item.isDisabled\n ? 'text'\n : (item.isToday || item.isHovered) && !item.isSelected\n ? 'outlined'\n : 'flat'\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--start': item.isStart,\n 'v-date-picker-month__day--end': item.isEnd,\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--hovered': item.isHovered,\n },\n ]}\n data-v-date={ !item.isHidden && !item.isDisabled ? item.isoDate : undefined }\n >\n { item.inRange && (\n <div\n key=\"in-range\"\n class={[\n 'v-date-picker-month__day--range',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n />\n )}\n\n { item.inHover && !item.isStart && !item.isEnd && !item.isHovered && !item.inRange && (\n <div\n key=\"in-hover\"\n class=\"v-date-picker-month__day--hover\"\n />\n )}\n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VBtn\n active={ item.isSelected }\n color={ color }\n disabled={ item.isDisabled }\n icon\n ripple={ false } /* ripple not working correctly since we preventDefault in touchend */\n variant={ variant }\n >\n { item.localized }\n </VBtn>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","useDatePicker","useBackgroundColor","computed","ref","genericComponent","omit","propsFactory","getWeek","toIso","dateEmits","makeDateProps","useDate","makeVDatePickerMonthProps","color","String","showAdjacentMonths","Boolean","hideWeekdays","showWeek","hoverDate","multiple","side","type","min","Number","Date","max","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","adapter","isDragging","dragHandle","hasScrolled","month","displayDate","findClosestDate","dates","isSameDay","getDiff","startDate","endDate","distStart","Math","abs","distEnd","weeksInMonth","weeks","getWeekArray","value","days","flat","daysInMonth","length","lastDay","week","day","push","addDays","validDates","modelValue","filter","v","isRange","today","map","index","isDisabled","isAfter","isStart","isEnd","isAdjacent","isSameMonth","isSame","isoDate","formatted","format","year","getYear","getMonth","isWeekStart","isWeekEnd","isSelected","isToday","isHidden","inRange","isWithinRange","isHovered","inHover","localized","backgroundColorClasses","backgroundColorStyles","selectDate","newModel","slice","otherIndex","fn","find","d","closest","indexOf","undefined","i","isBefore","daysRef","findElement","el","dataset","vDate","parentElement","findDate","e","x","changedTouches","clientX","y","clientY","document","elementFromPoint","canDrag","handleMousedown","selected","modelIndex","findIndex","isEqual","window","addEventListener","handleTouchmove","passive","preventDefault","handleTouchend","over","cancelable","removeEventListener","end","_createVNode","_createTextVNode","getWeekdays","weekDay","item","variant","default"],"sources":["../../../src/labs/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDatePicker } from './composables'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, omit, propsFactory } from '@/util'\n\n// Types\nimport { getWeek, toIso } from '../date/date'\nimport { dateEmits, makeDateProps } from '../VDateInput/composables'\nimport { useDate } from '@/labs/date'\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n showAdjacentMonths: Boolean,\n hideWeekdays: Boolean,\n showWeek: Boolean,\n hoverDate: null,\n multiple: Boolean,\n side: {\n type: String,\n },\n min: [Number, String, Date],\n max: [Number, String, Date],\n\n ...omit(makeDateProps(), ['inputMode', 'viewMode']),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps({ color: 'surface-variant' }),\n\n emits: {\n ...omit(dateEmits, ['update:inputMode', 'update:viewMode']),\n 'update:hoverDate': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { isDragging, dragHandle, hasScrolled } = useDatePicker()\n\n const month = computed(() => props.displayDate)\n\n const findClosestDate = (date: any, dates: any[]) => {\n const { isSameDay, getDiff } = adapter\n const [startDate, endDate] = dates\n\n if (isSameDay(startDate, endDate)) {\n return getDiff(date, startDate, 'days') > 0 ? endDate : startDate\n }\n\n const distStart = Math.abs(getDiff(date, startDate))\n const distEnd = Math.abs(getDiff(date, endDate))\n\n return distStart < distEnd ? startDate : endDate\n }\n\n // const hoverRange = computed<[any, any] | null>(() => {\n // if (!props.hoverDate) return null\n\n // const closestDate = findClosestDate(props.hoverDate, props.modelValue)\n\n // if (!closestDate) return null\n\n // return adapter.isAfter(props.hoverDate, closestDate) ? [closestDate, props.hoverDate] : [props.hoverDate, closestDate]\n // })\n\n const weeksInMonth = computed(() => {\n const weeks = adapter.getWeekArray(month.value)\n\n const days = weeks.flat()\n\n // Make sure there's always 6 weeks in month (6 * 7 days)\n // But only do it if we're not hiding adjacent months?\n const daysInMonth = 6 * 7\n if (days.length < daysInMonth && props.showAdjacentMonths) {\n const lastDay = days[days.length - 1]\n\n let week = []\n for (let day = 1; day <= daysInMonth - days.length; day++) {\n week.push(adapter.addDays(lastDay, day))\n\n if (day % 7 === 0) {\n weeks.push(week)\n week = []\n }\n }\n }\n\n return weeks\n })\n\n const daysInMonth = computed(() => {\n const validDates = props.modelValue.filter(v => !!v)\n const isRange = validDates.length > 1\n\n const days = weeksInMonth.value.flat()\n const today = adapter.date()\n\n const startDate = validDates[0]\n const endDate = validDates[1]\n\n return days.map((date, index) => {\n const isDisabled = !!(\n (props.min && adapter.isAfter(props.min, date)) ||\n (props.max && adapter.isAfter(date, props.max))\n )\n const isStart = startDate && adapter.isSameDay(date, startDate)\n const isEnd = endDate && adapter.isSameDay(date, endDate)\n const isAdjacent = !adapter.isSameMonth(date, month.value)\n const isSame = validDates.length === 2 && adapter.isSameDay(startDate, endDate)\n\n return {\n date,\n isoDate: toIso(adapter, date),\n formatted: adapter.format(date, 'keyboardDate'),\n year: adapter.getYear(date),\n month: adapter.getMonth(date),\n isDisabled,\n isWeekStart: index % 7 === 0,\n isWeekEnd: index % 7 === 6,\n isSelected: isStart || isEnd,\n isStart,\n isEnd,\n isToday: adapter.isSameDay(date, today),\n isAdjacent,\n isHidden: isAdjacent && !props.showAdjacentMonths,\n inRange: isRange &&\n !isSame &&\n (isStart || isEnd || (validDates.length === 2 && adapter.isWithinRange(date, validDates as [any, any]))),\n // isHovered: props.hoverDate === date,\n // inHover: hoverRange.value && isWithinRange(date, hoverRange.value),\n isHovered: false,\n inHover: false,\n localized: adapter.format(date, 'dayOfMonth'),\n }\n })\n })\n\n const weeks = computed(() => {\n return weeksInMonth.value.map(week => {\n return getWeek(adapter, week[0])\n })\n })\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n function selectDate (date: any) {\n let newModel = props.modelValue.slice()\n\n if (props.multiple) {\n if (isDragging.value && dragHandle.value != null) {\n const otherIndex = (dragHandle.value + 1) % 2\n const fn = otherIndex === 0 ? 'isBefore' : 'isAfter'\n if (adapter[fn](date, newModel[otherIndex])) {\n newModel[dragHandle.value] = newModel[otherIndex]\n newModel[otherIndex] = date\n dragHandle.value = otherIndex\n } else {\n newModel[dragHandle.value] = date\n }\n } else {\n if (newModel.find(d => adapter.isSameDay(d, date))) {\n newModel = newModel.filter(v => !adapter.isSameDay(v, date))\n } else if (newModel.length === 2) {\n let index: number | undefined\n if (!props.side || adapter.isSameMonth(newModel[0], newModel[1])) {\n const closest = findClosestDate(date, newModel)\n index = newModel.indexOf(closest)\n } else {\n index = props.side === 'start' ? 0 : props.side === 'end' ? 1 : undefined\n }\n\n newModel = newModel.map((v, i) => i === index ? date : v)\n } else {\n if (newModel[0] && adapter.isBefore(newModel[0], date)) {\n newModel = [newModel[0], date]\n } else {\n newModel = [date, newModel[0]]\n }\n }\n }\n } else {\n newModel = [date]\n }\n\n emit('update:modelValue', newModel.filter(v => !!v))\n }\n\n const daysRef = ref()\n\n function findElement (el: HTMLElement | null): any {\n if (!el || el === daysRef.value) return null\n\n if ('vDate' in el.dataset) {\n return adapter.date(el.dataset.vDate)\n }\n\n return findElement(el.parentElement)\n }\n\n function findDate (e: MouseEvent | TouchEvent) {\n const x = 'changedTouches' in e ? e.changedTouches[0]?.clientX : e.clientX\n const y = 'changedTouches' in e ? e.changedTouches[0]?.clientY : e.clientY\n const el = document.elementFromPoint(x, y) as HTMLElement\n\n return findElement(el)\n }\n\n let canDrag = false\n function handleMousedown (e: MouseEvent | TouchEvent) {\n hasScrolled.value = false\n\n const selected = findDate(e)\n\n if (!selected) return\n\n const modelIndex = props.modelValue.findIndex(d => adapter.isEqual(d, selected))\n\n if (modelIndex >= 0) {\n canDrag = true\n dragHandle.value = modelIndex\n\n window.addEventListener('touchmove', handleTouchmove, { passive: false })\n window.addEventListener('mousemove', handleTouchmove, { passive: false })\n\n e.preventDefault()\n }\n\n window.addEventListener('touchend', handleTouchend, { passive: false })\n window.addEventListener('mouseup', handleTouchend, { passive: false })\n }\n\n function handleTouchmove (e: MouseEvent | TouchEvent) {\n if (!canDrag) return\n\n e.preventDefault()\n\n isDragging.value = true\n\n const over = findDate(e)\n\n if (!over) return\n\n selectDate(over)\n }\n\n function handleTouchend (e: MouseEvent | TouchEvent) {\n if (e.cancelable) e.preventDefault()\n\n window.removeEventListener('touchmove', handleTouchmove)\n window.removeEventListener('mousemove', handleTouchmove)\n window.removeEventListener('touchend', handleTouchend)\n window.removeEventListener('mouseup', handleTouchend)\n\n const end = findDate(e)\n\n if (!end) return\n\n if (!hasScrolled.value) {\n selectDate(end)\n }\n\n isDragging.value = false\n dragHandle.value = null\n canDrag = false\n }\n\n return () => (\n <div class=\"v-date-picker-month\">\n { props.showWeek && (\n <div key=\"weeks\" class=\"v-date-picker-month__weeks\">\n { !props.hideWeekdays && (\n <div key=\"hide-week-days\" class=\"v-date-picker-month__day\">&nbsp;</div>\n )}\n { weeks.value.map(week => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__day--adjacent',\n ]}\n >{ week }</div>\n ))}\n </div>\n )}\n\n <div\n ref={ daysRef }\n class=\"v-date-picker-month__days\"\n onMousedown={ handleMousedown }\n onTouchstart={ handleMousedown }\n >\n { !props.hideWeekdays && adapter.getWeekdays().map(weekDay => (\n <div\n class={[\n 'v-date-picker-month__day',\n 'v-date-picker-month__weekday',\n ]}\n >{ weekDay }</div>\n ))}\n\n { daysInMonth.value.map((item, index) => {\n const color = (item.isSelected || item.isToday)\n ? props.color\n : (item.isHovered || item.isDisabled)\n ? undefined\n : 'transparent'\n const variant = item.isDisabled\n ? 'text'\n : (item.isToday || item.isHovered) && !item.isSelected\n ? 'outlined'\n : 'flat'\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\n 'v-date-picker-month__day--selected': item.isSelected,\n 'v-date-picker-month__day--start': item.isStart,\n 'v-date-picker-month__day--end': item.isEnd,\n 'v-date-picker-month__day--adjacent': item.isAdjacent,\n 'v-date-picker-month__day--hide-adjacent': item.isHidden,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--hovered': item.isHovered,\n },\n ]}\n data-v-date={ !item.isHidden && !item.isDisabled ? item.isoDate : undefined }\n >\n { item.inRange && (\n <div\n key=\"in-range\"\n class={[\n 'v-date-picker-month__day--range',\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n />\n )}\n\n { item.inHover && !item.isStart && !item.isEnd && !item.isHovered && !item.inRange && (\n <div\n key=\"in-hover\"\n class=\"v-date-picker-month__day--hover\"\n />\n )}\n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VBtn\n color={ (!item.isToday || item.isSelected) ? color : undefined }\n disabled={ item.isDisabled }\n icon\n ripple={ false } /* ripple not working correctly since we preventDefault in touchend */\n variant={ variant }\n >\n { item.localized }\n </VBtn>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  .v-date-picker-years {
2
- height: 308px;
2
+ height: 320px;
3
3
  overflow-y: scroll;
4
4
  }
5
5
 
@@ -30,7 +30,7 @@ export const VDatePickerYears = genericComponent()({
30
30
  const years = computed(() => {
31
31
  const min = props.min ? adapter.date(props.min).getFullYear() : displayYear.value - 100;
32
32
  const max = props.max ? adapter.date(props.max).getFullYear() : displayYear.value + 50;
33
- return createRange(max - min, min);
33
+ return createRange(max - min + 1, min);
34
34
  });
35
35
  const yearRef = ref();
36
36
  onMounted(() => {