vuetify 3.5.3 → 3.5.5
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.
- package/dist/json/attributes.json +2771 -2523
- package/dist/json/importMap-labs.json +12 -8
- package/dist/json/importMap.json +100 -100
- package/dist/json/tags.json +236 -169
- package/dist/json/web-types.json +3218 -2563
- package/dist/vuetify-labs.css +2265 -2242
- package/dist/vuetify-labs.d.ts +1234 -152
- package/dist/vuetify-labs.esm.js +582 -88
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +582 -88
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1316 -1293
- package/dist/vuetify.d.ts +894 -187
- package/dist/vuetify.esm.js +148 -87
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +148 -87
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +652 -647
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/index.d.mts +9 -0
- package/lib/components/VAppBar/index.d.mts +18 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +33 -6
- package/lib/components/VAvatar/VAvatar.mjs +2 -2
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/index.d.mts +9 -0
- package/lib/components/VBadge/index.d.mts +9 -0
- package/lib/components/VBanner/index.d.mts +9 -0
- package/lib/components/VBottomNavigation/index.d.mts +9 -0
- package/lib/components/VBreadcrumbs/index.d.mts +9 -0
- package/lib/components/VBtn/index.d.mts +9 -0
- package/lib/components/VBtnGroup/index.d.mts +9 -0
- package/lib/components/VBtnToggle/index.d.mts +9 -0
- package/lib/components/VCard/index.d.mts +9 -0
- package/lib/components/VCarousel/index.d.mts +9 -0
- package/lib/components/VChip/index.d.mts +9 -0
- package/lib/components/VColorPicker/VColorPicker.mjs +24 -12
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/index.d.mts +9 -0
- package/lib/components/VCombobox/index.d.mts +33 -6
- package/lib/components/VDataIterator/index.d.mts +3 -3
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +355 -117
- package/lib/components/VDataTable/types.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.css +2 -21
- package/lib/components/VDatePicker/VDatePicker.mjs +15 -11
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.sass +3 -18
- package/lib/components/VDatePicker/VDatePickerHeader.css +2 -0
- package/lib/components/VDatePicker/VDatePickerHeader.sass +3 -0
- package/lib/components/VDatePicker/VDatePickerMonth.css +11 -5
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +2 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.sass +13 -5
- package/lib/components/VDatePicker/VDatePickerMonths.css +2 -3
- package/lib/components/VDatePicker/VDatePickerMonths.mjs +6 -3
- package/lib/components/VDatePicker/VDatePickerMonths.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonths.sass +4 -3
- package/lib/components/VDatePicker/VDatePickerYears.css +2 -2
- package/lib/components/VDatePicker/VDatePickerYears.mjs +8 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.sass +4 -2
- package/lib/components/VDatePicker/_variables.scss +14 -34
- package/lib/components/VDatePicker/index.d.mts +13 -4
- package/lib/components/VExpansionPanel/VExpansionPanel.css +14 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +14 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +9 -2
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.mts +27 -0
- package/lib/components/VField/VField.css +20 -1
- package/lib/components/VField/VField.sass +19 -1
- package/lib/components/VField/index.d.mts +9 -0
- package/lib/components/VFileInput/VFileInput.mjs +1 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.mts +9 -0
- package/lib/components/VFooter/index.d.mts +9 -0
- package/lib/components/VImg/index.d.mts +9 -0
- package/lib/components/VList/VListItem.css +2 -1
- package/lib/components/VList/VListItem.sass +1 -0
- package/lib/components/VList/_variables.scss +2 -1
- package/lib/components/VList/index.d.mts +18 -0
- package/lib/components/VMenu/VMenu.mjs +5 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/shared.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.mts +9 -0
- package/lib/components/VPagination/index.d.mts +9 -0
- package/lib/components/VProgressLinear/index.d.mts +9 -0
- package/lib/components/VRangeSlider/index.d.mts +9 -0
- package/lib/components/VSelect/VSelect.mjs +4 -3
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +33 -6
- package/lib/components/VSheet/index.d.mts +9 -0
- package/lib/components/VSlider/index.d.mts +9 -0
- package/lib/components/VSnackbar/VSnackbar.mjs +1 -2
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.mts +9 -0
- package/lib/components/VStepper/index.d.mts +9 -0
- package/lib/components/VSystemBar/index.d.mts +9 -0
- package/lib/components/VTabs/index.d.mts +33 -6
- package/lib/components/VTextField/index.d.mts +33 -6
- package/lib/components/VTextarea/index.d.mts +9 -0
- package/lib/components/VTimeline/index.d.mts +9 -0
- package/lib/components/VToolbar/index.d.mts +9 -0
- package/lib/components/VTooltip/VTooltip.css +1 -0
- package/lib/components/VTooltip/VTooltip.sass +1 -0
- package/lib/components/VTooltip/_variables.scss +1 -0
- package/lib/components/index.d.mts +857 -151
- package/lib/composables/form.mjs +2 -1
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/goto.mjs +16 -18
- package/lib/composables/goto.mjs.map +1 -1
- package/lib/composables/group.mjs +2 -0
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/icons.mjs +17 -13
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/rounded.mjs +5 -1
- package/lib/composables/rounded.mjs.map +1 -1
- package/lib/composables/virtual.mjs +11 -3
- package/lib/composables/virtual.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/iconsets/fa-svg.mjs +2 -1
- package/lib/iconsets/fa-svg.mjs.map +1 -1
- package/lib/index.d.mts +37 -36
- package/lib/labs/VCalendar/VCalendar.mjs +1 -1
- package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/labs/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs +1 -1
- package/lib/labs/VConfirmEdit/__test__/VConfirmEdit.spec.cy.mjs.map +1 -1
- package/lib/labs/VPicker/VPicker.css +2 -2
- package/lib/labs/VPicker/VPicker.sass +2 -2
- package/lib/labs/VPicker/_variables.scss +2 -4
- package/lib/labs/VPicker/index.d.mts +9 -0
- package/lib/labs/VSparkline/VBarline.mjs +138 -0
- package/lib/labs/VSparkline/VBarline.mjs.map +1 -0
- package/lib/labs/VSparkline/VSparkline.mjs +49 -0
- package/lib/labs/VSparkline/VSparkline.mjs.map +1 -0
- package/lib/labs/VSparkline/VTrendline.mjs +143 -0
- package/lib/labs/VSparkline/VTrendline.mjs.map +1 -0
- package/lib/labs/VSparkline/index.d.mts +374 -0
- package/lib/labs/VSparkline/index.mjs +2 -0
- package/lib/labs/VSparkline/index.mjs.map +1 -0
- package/lib/labs/VSparkline/util/line.mjs +52 -0
- package/lib/labs/VSparkline/util/line.mjs.map +1 -0
- package/lib/labs/VSparkline/util/path.mjs +60 -0
- package/lib/labs/VSparkline/util/path.mjs.map +1 -0
- package/lib/labs/components.d.mts +376 -1
- package/lib/labs/components.mjs +1 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/locale/nl.mjs +1 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/util/helpers.mjs +10 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -2
- package/lib/components/VDatePicker/VDatePickerTitle.mjs +0 -81
- package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +0 -1
- package/lib/components/VDatePicker/VDatePickerTitle.sass +0 -33
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/VDataTable/types.ts"],"sourcesContent":["// Types\nimport type { provideExpanded } from './composables/expand'\nimport type { Group, GroupableItem, provideGroupBy } from './composables/group'\nimport type { provideSelection, SelectableItem } from './composables/select'\nimport type { FilterFunction, InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport type DataTableCompareFunction<T = any> = (a: T, b: T) => number\n\nexport type DataTableHeader = {\n key?: 'data-table-group' | 'data-table-select' | 'data-table-expand' | (string & {})\n value?: SelectItemKey
|
|
1
|
+
{"version":3,"file":"types.mjs","names":[],"sources":["../../../src/components/VDataTable/types.ts"],"sourcesContent":["// Types\nimport type { provideExpanded } from './composables/expand'\nimport type { Group, GroupableItem, provideGroupBy } from './composables/group'\nimport type { provideSelection, SelectableItem } from './composables/select'\nimport type { FilterFunction, InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport type DataTableCompareFunction<T = any> = (a: T, b: T) => number\n\nexport type DataTableHeader<T = Record<string, any>> = {\n key?: 'data-table-group' | 'data-table-select' | 'data-table-expand' | (string & {})\n value?: SelectItemKey<T>\n title?: string\n\n fixed?: boolean\n align?: 'start' | 'end' | 'center'\n\n width?: number | string\n minWidth?: string\n maxWidth?: string\n\n headerProps?: Record<string, any>\n cellProps?: HeaderCellProps\n\n sortable?: boolean\n sort?: DataTableCompareFunction\n sortRaw?: DataTableCompareFunction\n filter?: FilterFunction\n\n children?: DataTableHeader<T>[]\n}\n\nexport type InternalDataTableHeader = Omit<DataTableHeader, 'key' | 'value' | 'children'> & {\n key: string | null\n value: SelectItemKey | null\n sortable: boolean\n fixedOffset?: number\n lastFixed?: boolean\n colspan?: number\n rowspan?: number\n children?: InternalDataTableHeader[]\n}\n\nexport interface DataTableItem<T = any> extends InternalItem<T>, GroupableItem<T>, SelectableItem {\n key: any\n index: number\n columns: {\n [key: string]: any\n }\n}\n\nexport type GroupHeaderSlot = {\n index: number\n item: Group\n columns: InternalDataTableHeader[]\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n}\n\ntype ItemSlotBase<T> = {\n index: number\n item: T\n internalItem: DataTableItem<T>\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n}\n\nexport type ItemSlot<T> = ItemSlotBase<T> & {\n columns: InternalDataTableHeader[]\n}\n\nexport type ItemKeySlot<T> = ItemSlotBase<T> & {\n value: any\n column: InternalDataTableHeader\n}\n\nexport type RowProps<T> =\n | Record<string, any>\n | ((data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem'>) => Record<string, any>)\n\nexport type CellProps<T> =\n | Record<string, any>\n | ((data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem' | 'value' | 'column'>) => Record<string, any>)\n\nexport type HeaderCellProps =\n | Record<string, any>\n | ((data: Pick<ItemKeySlot<any>, 'index' | 'item' | 'internalItem' | 'value'>) => Record<string, any>)\n"],"mappings":""}
|
|
@@ -1,26 +1,7 @@
|
|
|
1
|
-
.v-date-picker__input {
|
|
2
|
-
padding-top: 16px;
|
|
3
|
-
padding-left: 24px;
|
|
4
|
-
padding-right: 24px;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
1
|
.v-date-picker {
|
|
8
2
|
overflow: hidden;
|
|
9
|
-
width:
|
|
3
|
+
width: 328px;
|
|
10
4
|
}
|
|
11
5
|
.v-date-picker--show-week {
|
|
12
|
-
width:
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.v-date-picker-month {
|
|
16
|
-
padding: 0 12px 12px;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
.v-date-picker-month__day {
|
|
20
|
-
height: 48px;
|
|
21
|
-
width: 48px;
|
|
22
|
-
}
|
|
23
|
-
.v-date-picker-month__day .v-btn {
|
|
24
|
-
--v-btn-height: 28px;
|
|
25
|
-
--v-btn-size: 0.85rem;
|
|
6
|
+
width: 368px;
|
|
26
7
|
}
|
|
@@ -85,7 +85,7 @@ export const VDatePicker = genericComponent()({
|
|
|
85
85
|
return props.multiple && model.value.length > 1 ? t('$vuetify.datePicker.itemsSelected', model.value.length) : model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header);
|
|
86
86
|
});
|
|
87
87
|
const text = computed(() => {
|
|
88
|
-
return adapter.format(adapter.
|
|
88
|
+
return adapter.format(adapter.date(new Date(year.value, month.value, 1)), 'monthAndYear');
|
|
89
89
|
});
|
|
90
90
|
// const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
|
|
91
91
|
const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
|
|
@@ -128,7 +128,9 @@ export const VDatePicker = genericComponent()({
|
|
|
128
128
|
} else {
|
|
129
129
|
year.value++;
|
|
130
130
|
month.value = 0;
|
|
131
|
+
onUpdateYear(year.value);
|
|
131
132
|
}
|
|
133
|
+
onUpdateMonth(month.value);
|
|
132
134
|
}
|
|
133
135
|
function onClickPrev() {
|
|
134
136
|
if (month.value > 0) {
|
|
@@ -136,7 +138,9 @@ export const VDatePicker = genericComponent()({
|
|
|
136
138
|
} else {
|
|
137
139
|
year.value--;
|
|
138
140
|
month.value = 11;
|
|
141
|
+
onUpdateYear(year.value);
|
|
139
142
|
}
|
|
143
|
+
onUpdateMonth(month.value);
|
|
140
144
|
}
|
|
141
145
|
function onClickDate() {
|
|
142
146
|
viewMode.value = 'month';
|
|
@@ -147,14 +151,14 @@ export const VDatePicker = genericComponent()({
|
|
|
147
151
|
function onClickYear() {
|
|
148
152
|
viewMode.value = viewMode.value === 'year' ? 'month' : 'year';
|
|
149
153
|
}
|
|
150
|
-
|
|
154
|
+
function onUpdateMonth(value) {
|
|
151
155
|
if (viewMode.value === 'months') onClickMonth();
|
|
152
|
-
emit('update:month',
|
|
153
|
-
}
|
|
154
|
-
|
|
156
|
+
emit('update:month', value);
|
|
157
|
+
}
|
|
158
|
+
function onUpdateYear(value) {
|
|
155
159
|
if (viewMode.value === 'year') onClickYear();
|
|
156
|
-
emit('update:year',
|
|
157
|
-
}
|
|
160
|
+
emit('update:year', value);
|
|
161
|
+
}
|
|
158
162
|
watch(model, (val, oldVal) => {
|
|
159
163
|
const before = adapter.date(wrapInArray(val)[0]);
|
|
160
164
|
const after = adapter.date(wrapInArray(oldVal)[0]);
|
|
@@ -210,14 +214,14 @@ export const VDatePicker = genericComponent()({
|
|
|
210
214
|
"key": "date-picker-months"
|
|
211
215
|
}, datePickerMonthsProps, {
|
|
212
216
|
"modelValue": month.value,
|
|
213
|
-
"onUpdate:modelValue": $event => month.value = $event,
|
|
217
|
+
"onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
|
|
214
218
|
"min": minDate.value,
|
|
215
219
|
"max": maxDate.value
|
|
216
220
|
}), null) : viewMode.value === 'year' ? _createVNode(VDatePickerYears, _mergeProps({
|
|
217
221
|
"key": "date-picker-years"
|
|
218
222
|
}, datePickerYearsProps, {
|
|
219
223
|
"modelValue": year.value,
|
|
220
|
-
"onUpdate:modelValue": $event => year.value = $event,
|
|
224
|
+
"onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
|
|
221
225
|
"min": minDate.value,
|
|
222
226
|
"max": maxDate.value
|
|
223
227
|
}), null) : _createVNode(VDatePickerMonth, _mergeProps({
|
|
@@ -226,9 +230,9 @@ export const VDatePicker = genericComponent()({
|
|
|
226
230
|
"modelValue": model.value,
|
|
227
231
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
228
232
|
"month": month.value,
|
|
229
|
-
"onUpdate:month": $event => month.value = $event,
|
|
233
|
+
"onUpdate:month": [$event => month.value = $event, onUpdateMonth],
|
|
230
234
|
"year": year.value,
|
|
231
|
-
"onUpdate:year": $event => year.value = $event,
|
|
235
|
+
"onUpdate:year": [$event => year.value = $event, onUpdateYear],
|
|
232
236
|
"min": minDate.value,
|
|
233
237
|
"max": maxDate.value
|
|
234
238
|
}), null)]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDatePicker.mjs","names":["makeVDatePickerControlsProps","VDatePickerControls","VDatePickerHeader","makeVDatePickerMonthProps","VDatePickerMonth","makeVDatePickerMonthsProps","VDatePickerMonths","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VDefaultsProvider","makeVPickerProps","VPicker","useDate","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDatePickerProps","header","type","String","default","title","modelValue","VDatePicker","name","props","emits","date","setup","_ref","emit","slots","adapter","t","model","undefined","v","multiple","viewMode","internal","value","isValid","month","Number","getMonth","startOfMonth","year","getYear","startOfYear","setMonth","isReversing","length","format","text","parseISO","headerTransition","minDate","min","maxDate","max","disabled","targets","push","_date","setYear","addDays","isAfter","endOfMonth","onClickNext","onClickPrev","onClickDate","onClickMonth","onClickYear","val","oldVal","before","after","isBefore","pickerProps","filterProps","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","headerProps","transition","_createVNode","_mergeProps","showWeek","class","style","_Fragment","$event","actions"],"sources":["../../../src/components/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 { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots = Omit<VPickerSlots, 'header'> & {\n header: {\n header: string\n transition: string\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\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\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<new <\n T,\n Multiple extends boolean | 'range' | number | (string & {}) = false,\n TModel = Multiple extends true | number | string\n ? T[]\n : T,\n> (\n props: {\n modelValue?: TModel\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v),\n v => props.multiple ? v : v[0],\n )\n\n const viewMode = useProxiedModel(props, 'viewMode')\n // const inputMode = useProxiedModel(props, 'inputMode')\n const internal = computed(() => {\n const value = adapter.date(model.value?.[0])\n\n return value && adapter.isValid(value) ? value : adapter.date()\n })\n\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))))\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))))\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n return props.multiple && model.value.length > 1\n ? t('$vuetify.datePicker.itemsSelected', model.value.length)\n : model.value[0] && adapter.isValid(model.value[0])\n ? adapter.format(model.value[0], 'normalDateWithWeekday')\n : t(props.header)\n })\n const text = computed(() => {\n return adapter.format(\n adapter.parseISO(`${year.value}-${month.value + 1}-01`),\n 'monthAndYear',\n )\n })\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n const minDate = computed(() => {\n const date = adapter.date(props.min)\n\n return props.min && adapter.isValid(date) ? date : null\n })\n const maxDate = computed(() => {\n const date = adapter.date(props.max)\n\n return props.max && adapter.isValid(date) ? date : null\n })\n const disabled = computed(() => {\n if (props.disabled) return true\n\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.setYear(_date, year.value)\n _date = adapter.setMonth(_date, month.value)\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n }\n\n return targets\n })\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNext () {\n if (month.value < 11) {\n month.value++\n } else {\n year.value++\n month.value = 0\n }\n }\n\n function onClickPrev () {\n if (month.value > 0) {\n month.value--\n } else {\n year.value--\n month.value = 11\n }\n }\n\n function onClickDate () {\n viewMode.value = 'month'\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n watch(month, () => {\n if (viewMode.value === 'months') onClickMonth()\n\n emit('update:month', month.value)\n })\n\n watch(year, () => {\n if (viewMode.value === 'year') onClickYear()\n\n emit('update:year', year.value)\n })\n\n watch(model, (val, oldVal) => {\n const before = adapter.date(wrapInArray(val)[0])\n const after = adapter.date(wrapInArray(oldVal)[0])\n\n isReversing.value = adapter.isBefore(before, after)\n })\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const datePickerControlsProps = VDatePickerControls.filterProps(props)\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props)\n const datePickerMonthProps = VDatePickerMonth.filterProps(props)\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue'])\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue'])\n\n const headerProps = {\n header: header.value,\n transition: headerTransition.value,\n }\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n `v-date-picker--${viewMode.value}`,\n {\n 'v-date-picker--show-week': props.showWeek,\n },\n props.class,\n ]}\n style={ props.style }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-date-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => slots.header ? (\n <VDefaultsProvider\n defaults={{\n VDatePickerHeader: { ...headerProps },\n }}\n >\n { slots.header?.(headerProps) }\n </VDefaultsProvider>\n ) : (\n <VDatePickerHeader\n key=\"header\"\n { ...datePickerHeaderProps }\n { ...headerProps }\n onClick={ viewMode.value !== 'month' ? onClickDate : undefined }\n v-slots={{\n ...slots,\n default: undefined,\n }}\n />\n ),\n default: () => (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n text={ text.value }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:month={ onClickMonth }\n onClick:year={ onClickYear }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'months' ? (\n <VDatePickerMonths\n key=\"date-picker-months\"\n { ...datePickerMonthsProps }\n v-model={ month.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : viewMode.value === 'year' ? (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model={ year.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ model.value }\n v-model:month={ month.value }\n v-model:year={ year.value }\n min={ minDate.value }\n max={ maxDate.value }\n />\n )}\n </VFadeTransition>\n </>\n ),\n actions: slots.actions,\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","makeVDatePickerMonthsProps","VDatePickerMonths","makeVDatePickerYearsProps","VDatePickerYears","VFadeTransition","VDefaultsProvider","makeVPickerProps","VPicker","useDate","useLocale","useProxiedModel","computed","ref","shallowRef","watch","genericComponent","omit","propsFactory","useRender","wrapInArray","makeVDatePickerProps","header","type","String","default","title","modelValue","VDatePicker","name","props","emits","date","setup","_ref","emit","slots","adapter","t","model","undefined","v","multiple","viewMode","internal","value","isValid","month","Number","getMonth","startOfMonth","year","getYear","startOfYear","setMonth","isReversing","length","format","text","Date","headerTransition","minDate","min","maxDate","max","disabled","targets","push","_date","setYear","addDays","isAfter","endOfMonth","onClickNext","onUpdateYear","onUpdateMonth","onClickPrev","onClickDate","onClickMonth","onClickYear","val","oldVal","before","after","isBefore","pickerProps","filterProps","datePickerControlsProps","datePickerHeaderProps","datePickerMonthProps","datePickerMonthsProps","datePickerYearsProps","headerProps","transition","_createVNode","_mergeProps","showWeek","class","style","_Fragment","$event","actions"],"sources":["../../../src/components/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 { makeVDatePickerMonthsProps, VDatePickerMonths } from './VDatePickerMonths'\nimport { makeVDatePickerYearsProps, VDatePickerYears } from './VDatePickerYears'\nimport { VFadeTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVPickerProps, VPicker } from '@/labs/VPicker/VPicker'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, shallowRef, watch } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VPickerSlots } from '@/labs/VPicker/VPicker'\nimport type { GenericProps } from '@/util'\n\n// Types\nexport type VDatePickerSlots = Omit<VPickerSlots, 'header'> & {\n header: {\n header: string\n transition: string\n }\n}\n\nexport const makeVDatePickerProps = propsFactory({\n // TODO: implement in v3.5\n // calendarIcon: {\n // type: String,\n // default: '$calendar',\n // },\n // keyboardIcon: {\n // type: String,\n // default: '$edit',\n // },\n // inputMode: {\n // type: String as PropType<'calendar' | 'keyboard'>,\n // default: 'calendar',\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\n ...makeVDatePickerControlsProps(),\n ...makeVDatePickerMonthProps(),\n ...omit(makeVDatePickerMonthsProps(), ['modelValue']),\n ...omit(makeVDatePickerYearsProps(), ['modelValue']),\n ...makeVPickerProps({ title: '$vuetify.datePicker.title' }),\n\n modelValue: null,\n}, 'VDatePicker')\n\nexport const VDatePicker = genericComponent<new <\n T,\n Multiple extends boolean | 'range' | number | (string & {}) = false,\n TModel = Multiple extends true | number | string\n ? T[]\n : T,\n> (\n props: {\n modelValue?: TModel\n 'onUpdate:modelValue'?: (value: TModel) => void\n multiple?: Multiple\n },\n slots: VDatePickerSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDatePicker',\n\n props: makeVDatePickerProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n // 'update:inputMode': (date: any) => true,\n 'update:viewMode': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const { t } = useLocale()\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => wrapInArray(v),\n v => props.multiple ? v : v[0],\n )\n\n const viewMode = useProxiedModel(props, 'viewMode')\n // const inputMode = useProxiedModel(props, 'inputMode')\n const internal = computed(() => {\n const value = adapter.date(model.value?.[0])\n\n return value && adapter.isValid(value) ? value : adapter.date()\n })\n\n const month = ref(Number(props.month ?? adapter.getMonth(adapter.startOfMonth(internal.value))))\n const year = ref(Number(props.year ?? adapter.getYear(adapter.startOfYear(adapter.setMonth(internal.value, month.value)))))\n\n const isReversing = shallowRef(false)\n const header = computed(() => {\n return props.multiple && model.value.length > 1\n ? t('$vuetify.datePicker.itemsSelected', model.value.length)\n : model.value[0] && adapter.isValid(model.value[0])\n ? adapter.format(model.value[0], 'normalDateWithWeekday')\n : t(props.header)\n })\n const text = computed(() => {\n return adapter.format(\n adapter.date(new Date(year.value, month.value, 1)),\n 'monthAndYear',\n )\n })\n // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)\n const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`)\n const minDate = computed(() => {\n const date = adapter.date(props.min)\n\n return props.min && adapter.isValid(date) ? date : null\n })\n const maxDate = computed(() => {\n const date = adapter.date(props.max)\n\n return props.max && adapter.isValid(date) ? date : null\n })\n const disabled = computed(() => {\n if (props.disabled) return true\n\n const targets = []\n\n if (viewMode.value !== 'month') {\n targets.push(...['prev', 'next'])\n } else {\n let _date = adapter.date()\n\n _date = adapter.setYear(_date, year.value)\n _date = adapter.setMonth(_date, month.value)\n\n if (minDate.value) {\n const date = adapter.addDays(adapter.startOfMonth(_date), -1)\n\n adapter.isAfter(minDate.value, date) && targets.push('prev')\n }\n\n if (maxDate.value) {\n const date = adapter.addDays(adapter.endOfMonth(_date), 1)\n\n adapter.isAfter(date, maxDate.value) && targets.push('next')\n }\n }\n\n return targets\n })\n\n // function onClickAppend () {\n // inputMode.value = inputMode.value === 'calendar' ? 'keyboard' : 'calendar'\n // }\n\n function onClickNext () {\n if (month.value < 11) {\n month.value++\n } else {\n year.value++\n month.value = 0\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickPrev () {\n if (month.value > 0) {\n month.value--\n } else {\n year.value--\n month.value = 11\n onUpdateYear(year.value)\n }\n onUpdateMonth(month.value)\n }\n\n function onClickDate () {\n viewMode.value = 'month'\n }\n\n function onClickMonth () {\n viewMode.value = viewMode.value === 'months' ? 'month' : 'months'\n }\n\n function onClickYear () {\n viewMode.value = viewMode.value === 'year' ? 'month' : 'year'\n }\n\n function onUpdateMonth (value: number) {\n if (viewMode.value === 'months') onClickMonth()\n\n emit('update:month', value)\n }\n\n function onUpdateYear (value: number) {\n if (viewMode.value === 'year') onClickYear()\n\n emit('update:year', value)\n }\n\n watch(model, (val, oldVal) => {\n const before = adapter.date(wrapInArray(val)[0])\n const after = adapter.date(wrapInArray(oldVal)[0])\n\n isReversing.value = adapter.isBefore(before, after)\n })\n\n useRender(() => {\n const pickerProps = VPicker.filterProps(props)\n const datePickerControlsProps = VDatePickerControls.filterProps(props)\n const datePickerHeaderProps = VDatePickerHeader.filterProps(props)\n const datePickerMonthProps = VDatePickerMonth.filterProps(props)\n const datePickerMonthsProps = omit(VDatePickerMonths.filterProps(props), ['modelValue'])\n const datePickerYearsProps = omit(VDatePickerYears.filterProps(props), ['modelValue'])\n\n const headerProps = {\n header: header.value,\n transition: headerTransition.value,\n }\n\n return (\n <VPicker\n { ...pickerProps }\n class={[\n 'v-date-picker',\n `v-date-picker--${viewMode.value}`,\n {\n 'v-date-picker--show-week': props.showWeek,\n },\n props.class,\n ]}\n style={ props.style }\n v-slots={{\n title: () => slots.title?.() ?? (\n <div class=\"v-date-picker__title\">\n { t(props.title) }\n </div>\n ),\n header: () => slots.header ? (\n <VDefaultsProvider\n defaults={{\n VDatePickerHeader: { ...headerProps },\n }}\n >\n { slots.header?.(headerProps) }\n </VDefaultsProvider>\n ) : (\n <VDatePickerHeader\n key=\"header\"\n { ...datePickerHeaderProps }\n { ...headerProps }\n onClick={ viewMode.value !== 'month' ? onClickDate : undefined }\n v-slots={{\n ...slots,\n default: undefined,\n }}\n />\n ),\n default: () => (\n <>\n <VDatePickerControls\n { ...datePickerControlsProps }\n disabled={ disabled.value }\n text={ text.value }\n onClick:next={ onClickNext }\n onClick:prev={ onClickPrev }\n onClick:month={ onClickMonth }\n onClick:year={ onClickYear }\n />\n\n <VFadeTransition hideOnLeave>\n { viewMode.value === 'months' ? (\n <VDatePickerMonths\n key=\"date-picker-months\"\n { ...datePickerMonthsProps }\n v-model={ month.value }\n onUpdate:modelValue={ onUpdateMonth }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : viewMode.value === 'year' ? (\n <VDatePickerYears\n key=\"date-picker-years\"\n { ...datePickerYearsProps }\n v-model={ year.value }\n onUpdate:modelValue={ onUpdateYear }\n min={ minDate.value }\n max={ maxDate.value }\n />\n ) : (\n <VDatePickerMonth\n key=\"date-picker-month\"\n { ...datePickerMonthProps }\n v-model={ model.value }\n v-model:month={ month.value }\n v-model:year={ year.value }\n onUpdate:month={ onUpdateMonth }\n onUpdate:year={ onUpdateYear }\n min={ minDate.value }\n max={ maxDate.value }\n />\n )}\n </VFadeTransition>\n </>\n ),\n actions: slots.actions,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VDatePicker = InstanceType<typeof VDatePicker>\n"],"mappings":"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"}
|
|
@@ -1,24 +1,9 @@
|
|
|
1
1
|
@use '../../styles/tools'
|
|
2
|
-
|
|
3
|
-
.v-date-picker__input
|
|
4
|
-
padding-top: 16px
|
|
5
|
-
padding-left: 24px
|
|
6
|
-
padding-right: 24px
|
|
2
|
+
@use './variables' as *
|
|
7
3
|
|
|
8
4
|
.v-date-picker
|
|
9
5
|
overflow: hidden
|
|
10
|
-
width:
|
|
6
|
+
width: $date-picker-width
|
|
11
7
|
|
|
12
8
|
&--show-week
|
|
13
|
-
width:
|
|
14
|
-
|
|
15
|
-
.v-date-picker-month
|
|
16
|
-
padding: 0 12px 12px
|
|
17
|
-
|
|
18
|
-
.v-date-picker-month__day
|
|
19
|
-
height: 48px
|
|
20
|
-
width: 48px
|
|
21
|
-
|
|
22
|
-
.v-btn
|
|
23
|
-
--v-btn-height: 28px
|
|
24
|
-
--v-btn-size: 0.85rem
|
|
9
|
+
width: $date-picker-show-week-width
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
@use '../../styles/settings'
|
|
2
|
+
@use './variables' as *
|
|
2
3
|
|
|
3
4
|
.v-date-picker-header
|
|
5
|
+
align-items: flex-end
|
|
6
|
+
height: $date-picker-header-height
|
|
4
7
|
display: grid
|
|
5
8
|
grid-template-areas: "prepend content append"
|
|
6
9
|
grid-template-columns: min-content minmax(0, 1fr) min-content
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
.v-date-picker-month {
|
|
2
2
|
display: flex;
|
|
3
3
|
justify-content: center;
|
|
4
|
-
|
|
4
|
+
padding: 0 12px 8px;
|
|
5
5
|
--v-date-picker-month-day-diff: 4px;
|
|
6
6
|
}
|
|
7
7
|
|
|
8
8
|
.v-date-picker-month__weeks {
|
|
9
9
|
display: grid;
|
|
10
10
|
grid-template-rows: min-content min-content min-content min-content min-content min-content min-content;
|
|
11
|
-
|
|
12
|
-
font-size: 0.
|
|
11
|
+
column-gap: 4px;
|
|
12
|
+
font-size: 0.85rem;
|
|
13
13
|
}
|
|
14
14
|
.v-date-picker-month__weeks + .v-date-picker-month__days {
|
|
15
15
|
grid-row-gap: 0;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
.v-date-picker-month__weekday {
|
|
19
|
-
font-size: 0.
|
|
19
|
+
font-size: 0.85rem;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
.v-date-picker-month__days {
|
|
23
23
|
display: grid;
|
|
24
24
|
grid-template-columns: min-content min-content min-content min-content min-content min-content min-content;
|
|
25
|
-
|
|
25
|
+
column-gap: 4px;
|
|
26
26
|
flex: 1 1;
|
|
27
27
|
justify-content: space-around;
|
|
28
28
|
}
|
|
@@ -32,11 +32,17 @@
|
|
|
32
32
|
display: flex;
|
|
33
33
|
justify-content: center;
|
|
34
34
|
position: relative;
|
|
35
|
+
height: 40px;
|
|
36
|
+
width: 40px;
|
|
35
37
|
}
|
|
36
38
|
.v-date-picker-month__day--selected .v-btn {
|
|
37
39
|
background-color: rgb(var(--v-theme-surface-variant));
|
|
38
40
|
color: rgb(var(--v-theme-on-surface-variant));
|
|
39
41
|
}
|
|
42
|
+
.v-date-picker-month__day .v-btn.v-date-picker-month__day-btn {
|
|
43
|
+
--v-btn-height: 24px;
|
|
44
|
+
--v-btn-size: 0.85rem;
|
|
45
|
+
}
|
|
40
46
|
.v-date-picker-month__day--week {
|
|
41
47
|
font-size: var(--v-btn-size);
|
|
42
48
|
}
|
|
@@ -129,12 +129,13 @@ export const VDatePickerMonth = genericComponent()({
|
|
|
129
129
|
}, [(props.showAdjacentMonths || !item.isAdjacent) && _createVNode(VDefaultsProvider, {
|
|
130
130
|
"defaults": {
|
|
131
131
|
VBtn: {
|
|
132
|
+
class: 'v-date-picker-month__day-btn',
|
|
132
133
|
color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
|
|
133
134
|
disabled: item.isDisabled,
|
|
134
135
|
icon: true,
|
|
135
136
|
ripple: false,
|
|
136
137
|
text: item.localized,
|
|
137
|
-
variant: item.isDisabled ? 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
|
|
138
|
+
variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
|
|
138
139
|
onClick: () => onClick(item.date)
|
|
139
140
|
}
|
|
140
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","VDefaultsProvider","makeCalendarProps","useCalendar","useDate","computed","ref","shallowRef","genericComponent","propsFactory","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","daysInMonth","model","weekNumbers","adapter","rangeStart","rangeStop","atMax","max","includes","Infinity","value","length","onRangeClick","_value","startOfDay","isSameDay","undefined","isBefore","diff","getDiff","datesInRange","i","nextDate","addDays","push","onMultipleClick","index","findIndex","selection","splice","onClick","_createVNode","_createTextVNode","map","week","getWeekdays","weekDay","item","slotProps","isSelected","isDisabled","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","isToday","disabled","icon","ripple","text","localized","variant","default","day"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\n\n// Utilities\nimport { computed, ref, shallowRef } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType<boolean | 'range' | number | (string & {})>,\n showWeek: Boolean,\n\n ...makeCalendarProps(),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent<VDatePickerMonthSlots>()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(value, rangeStart.value)) {\n rangeStop.value = rangeStart.value\n rangeStart.value = _value\n } else {\n rangeStop.value = _value\n }\n\n const diff = adapter.getDiff(rangeStop.value, rangeStart.value)\n const datesInRange = [rangeStart.value]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i)\n datesInRange.push(nextDate)\n }\n\n datesInRange.push(rangeStop.value)\n\n model.value = datesInRange\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\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\"> </div>\n )}\n { weekNumbers.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 >\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, i) => {\n const slotProps = {\n props: {\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\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--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n },\n ]}\n data-v-date={ !item.isDisabled ? item.isoDate : undefined }\n >\n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n color: (item.isSelected || item.isToday) && !item.isDisabled\n ? props.color\n : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isDisabled\n ? 'text'\n : item.isToday && !item.isSelected ? 'outlined' : 'flat',\n onClick: () => onClick(item.date),\n },\n }}\n >\n { slots.day?.(slotProps) ?? (\n <VBtn { ...slotProps.props } />\n )}\n </VDefaultsProvider>\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","VDefaultsProvider","makeCalendarProps","useCalendar","useDate","computed","ref","shallowRef","genericComponent","propsFactory","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","showWeek","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","daysInMonth","model","weekNumbers","adapter","rangeStart","rangeStop","atMax","max","includes","Infinity","value","length","onRangeClick","_value","startOfDay","isSameDay","undefined","isBefore","diff","getDiff","datesInRange","i","nextDate","addDays","push","onMultipleClick","index","findIndex","selection","splice","onClick","_createVNode","_createTextVNode","map","week","getWeekdays","weekDay","item","slotProps","isSelected","isDisabled","isAdjacent","isHidden","isWeekEnd","isWeekStart","isoDate","showAdjacentMonths","class","isToday","disabled","icon","ripple","text","localized","variant","default","day"],"sources":["../../../src/components/VDatePicker/VDatePickerMonth.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonth.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeCalendarProps, useCalendar } from '@/composables/calendar'\nimport { useDate } from '@/composables/date/date'\n\n// Utilities\nimport { computed, ref, shallowRef } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VDatePickerMonthSlots = {\n day: {\n props: {\n onClick: () => void\n }\n item: any\n i: number\n }\n}\n\nexport const makeVDatePickerMonthProps = propsFactory({\n color: String,\n hideWeekdays: Boolean,\n multiple: [Boolean, Number, String] as PropType<boolean | 'range' | number | (string & {})>,\n showWeek: Boolean,\n\n ...makeCalendarProps(),\n}, 'VDatePickerMonth')\n\nexport const VDatePickerMonth = genericComponent<VDatePickerMonthSlots>()({\n name: 'VDatePickerMonth',\n\n props: makeVDatePickerMonthProps(),\n\n emits: {\n 'update:modelValue': (date: unknown) => true,\n 'update:month': (date: number) => true,\n 'update:year': (date: number) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const { daysInMonth, model, weekNumbers } = useCalendar(props)\n const adapter = useDate()\n\n const rangeStart = shallowRef()\n const rangeStop = shallowRef()\n\n const atMax = computed(() => {\n const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity\n\n return model.value.length >= max\n })\n\n function onRangeClick (value: unknown) {\n const _value = adapter.startOfDay(value)\n\n if (!rangeStart.value) {\n rangeStart.value = _value\n model.value = [rangeStart.value]\n } else if (!rangeStop.value) {\n if (adapter.isSameDay(value, rangeStart.value)) {\n rangeStart.value = undefined\n model.value = []\n return\n } else if (adapter.isBefore(value, rangeStart.value)) {\n rangeStop.value = rangeStart.value\n rangeStart.value = _value\n } else {\n rangeStop.value = _value\n }\n\n const diff = adapter.getDiff(rangeStop.value, rangeStart.value)\n const datesInRange = [rangeStart.value]\n\n for (let i = 1; i < diff; i++) {\n const nextDate = adapter.addDays(rangeStart.value, i)\n datesInRange.push(nextDate)\n }\n\n datesInRange.push(rangeStop.value)\n\n model.value = datesInRange\n } else {\n rangeStart.value = value\n rangeStop.value = undefined\n model.value = [rangeStart.value]\n }\n }\n\n function onMultipleClick (value: unknown) {\n const index = model.value.findIndex(selection => adapter.isSameDay(selection, value))\n\n if (index === -1) {\n model.value = [...model.value, value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n }\n\n function onClick (value: unknown) {\n if (props.multiple === 'range') {\n onRangeClick(value)\n } else if (props.multiple) {\n onMultipleClick(value)\n } else {\n model.value = [value]\n }\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\"> </div>\n )}\n { weekNumbers.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 >\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, i) => {\n const slotProps = {\n props: {\n onClick: () => onClick(item.date),\n },\n item,\n i,\n } as const\n\n if (atMax.value && !item.isSelected) {\n item.isDisabled = true\n }\n\n return (\n <div\n class={[\n 'v-date-picker-month__day',\n {\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--selected': item.isSelected,\n 'v-date-picker-month__day--week-end': item.isWeekEnd,\n 'v-date-picker-month__day--week-start': item.isWeekStart,\n },\n ]}\n data-v-date={ !item.isDisabled ? item.isoDate : undefined }\n >\n\n { (props.showAdjacentMonths || !item.isAdjacent) && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n class: 'v-date-picker-month__day-btn',\n color: (item.isSelected || item.isToday) && !item.isDisabled\n ? props.color\n : undefined,\n disabled: item.isDisabled,\n icon: true,\n ripple: false,\n text: item.localized,\n variant: item.isDisabled\n ? item.isToday ? 'outlined' : 'text'\n : item.isToday && !item.isSelected ? 'outlined' : 'flat',\n onClick: () => onClick(item.date),\n },\n }}\n >\n { slots.day?.(slotProps) ?? (\n <VBtn { ...slotProps.props } />\n )}\n </VDefaultsProvider>\n )}\n </div>\n )\n })}\n </div>\n </div>\n )\n },\n})\n\nexport type VDatePickerMonth = InstanceType<typeof VDatePickerMonth>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB,0CAE1B;AAAA,SACSC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,OAAO,2CAEhB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,UAAU,QAAQ,KAAK;AAAA,SACtCC,gBAAgB,EAAEC,YAAY,gCAEvC;AAaA,OAAO,MAAMC,yBAAyB,GAAGD,YAAY,CAAC;EACpDE,KAAK,EAAEC,MAAM;EACbC,YAAY,EAAEC,OAAO;EACrBC,QAAQ,EAAE,CAACD,OAAO,EAAEE,MAAM,EAAEJ,MAAM,CAAyD;EAC3FK,QAAQ,EAAEH,OAAO;EAEjB,GAAGZ,iBAAiB,CAAC;AACvB,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMgB,gBAAgB,GAAGV,gBAAgB,CAAwB,CAAC,CAAC;EACxEW,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAEV,yBAAyB,CAAC,CAAC;EAElCW,KAAK,EAAE;IACL,mBAAmB,EAAGC,IAAa,IAAK,IAAI;IAC5C,cAAc,EAAGA,IAAY,IAAK,IAAI;IACtC,aAAa,EAAGA,IAAY,IAAK;EACnC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,OAAO,GAAGrB,GAAG,CAAC,CAAC;IAErB,MAAM;MAAEsB,WAAW;MAAEC,KAAK;MAAEC;IAAY,CAAC,GAAG3B,WAAW,CAACiB,KAAK,CAAC;IAC9D,MAAMW,OAAO,GAAG3B,OAAO,CAAC,CAAC;IAEzB,MAAM4B,UAAU,GAAGzB,UAAU,CAAC,CAAC;IAC/B,MAAM0B,SAAS,GAAG1B,UAAU,CAAC,CAAC;IAE9B,MAAM2B,KAAK,GAAG7B,QAAQ,CAAC,MAAM;MAC3B,MAAM8B,GAAG,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAACC,QAAQ,CAAC,OAAOhB,KAAK,CAACL,QAAQ,CAAC,GAAGC,MAAM,CAACI,KAAK,CAACL,QAAQ,CAAC,GAAGsB,QAAQ;MAEpG,OAAOR,KAAK,CAACS,KAAK,CAACC,MAAM,IAAIJ,GAAG;IAClC,CAAC,CAAC;IAEF,SAASK,YAAYA,CAAEF,KAAc,EAAE;MACrC,MAAMG,MAAM,GAAGV,OAAO,CAACW,UAAU,CAACJ,KAAK,CAAC;MAExC,IAAI,CAACN,UAAU,CAACM,KAAK,EAAE;QACrBN,UAAU,CAACM,KAAK,GAAGG,MAAM;QACzBZ,KAAK,CAACS,KAAK,GAAG,CAACN,UAAU,CAACM,KAAK,CAAC;MAClC,CAAC,MAAM,IAAI,CAACL,SAAS,CAACK,KAAK,EAAE;QAC3B,IAAIP,OAAO,CAACY,SAAS,CAACL,KAAK,EAAEN,UAAU,CAACM,KAAK,CAAC,EAAE;UAC9CN,UAAU,CAACM,KAAK,GAAGM,SAAS;UAC5Bf,KAAK,CAACS,KAAK,GAAG,EAAE;UAChB;QACF,CAAC,MAAM,IAAIP,OAAO,CAACc,QAAQ,CAACP,KAAK,EAAEN,UAAU,CAACM,KAAK,CAAC,EAAE;UACpDL,SAAS,CAACK,KAAK,GAAGN,UAAU,CAACM,KAAK;UAClCN,UAAU,CAACM,KAAK,GAAGG,MAAM;QAC3B,CAAC,MAAM;UACLR,SAAS,CAACK,KAAK,GAAGG,MAAM;QAC1B;QAEA,MAAMK,IAAI,GAAGf,OAAO,CAACgB,OAAO,CAACd,SAAS,CAACK,KAAK,EAAEN,UAAU,CAACM,KAAK,CAAC;QAC/D,MAAMU,YAAY,GAAG,CAAChB,UAAU,CAACM,KAAK,CAAC;QAEvC,KAAK,IAAIW,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,IAAI,EAAEG,CAAC,EAAE,EAAE;UAC7B,MAAMC,QAAQ,GAAGnB,OAAO,CAACoB,OAAO,CAACnB,UAAU,CAACM,KAAK,EAAEW,CAAC,CAAC;UACrDD,YAAY,CAACI,IAAI,CAACF,QAAQ,CAAC;QAC7B;QAEAF,YAAY,CAACI,IAAI,CAACnB,SAAS,CAACK,KAAK,CAAC;QAElCT,KAAK,CAACS,KAAK,GAAGU,YAAY;MAC5B,CAAC,MAAM;QACLhB,UAAU,CAACM,KAAK,GAAGA,KAAK;QACxBL,SAAS,CAACK,KAAK,GAAGM,SAAS;QAC3Bf,KAAK,CAACS,KAAK,GAAG,CAACN,UAAU,CAACM,KAAK,CAAC;MAClC;IACF;IAEA,SAASe,eAAeA,CAAEf,KAAc,EAAE;MACxC,MAAMgB,KAAK,GAAGzB,KAAK,CAACS,KAAK,CAACiB,SAAS,CAACC,SAAS,IAAIzB,OAAO,CAACY,SAAS,CAACa,SAAS,EAAElB,KAAK,CAAC,CAAC;MAErF,IAAIgB,KAAK,KAAK,CAAC,CAAC,EAAE;QAChBzB,KAAK,CAACS,KAAK,GAAG,CAAC,GAAGT,KAAK,CAACS,KAAK,EAAEA,KAAK,CAAC;MACvC,CAAC,MAAM;QACL,MAAMA,KAAK,GAAG,CAAC,GAAGT,KAAK,CAACS,KAAK,CAAC;QAC9BA,KAAK,CAACmB,MAAM,CAACH,KAAK,EAAE,CAAC,CAAC;QACtBzB,KAAK,CAACS,KAAK,GAAGA,KAAK;MACrB;IACF;IAEA,SAASoB,OAAOA,CAAEpB,KAAc,EAAE;MAChC,IAAIlB,KAAK,CAACL,QAAQ,KAAK,OAAO,EAAE;QAC9ByB,YAAY,CAACF,KAAK,CAAC;MACrB,CAAC,MAAM,IAAIlB,KAAK,CAACL,QAAQ,EAAE;QACzBsC,eAAe,CAACf,KAAK,CAAC;MACxB,CAAC,MAAM;QACLT,KAAK,CAACS,KAAK,GAAG,CAACA,KAAK,CAAC;MACvB;IACF;IAEA,OAAO,MAAAqB,YAAA;MAAA;IAAA,IAEDvC,KAAK,CAACH,QAAQ,IAAA0C,YAAA;MAAA;MAAA;IAAA,IAEV,CAACvC,KAAK,CAACP,YAAY,IAAA8C,YAAA;MAAA;MAAA;IAAA,IAAAC,gBAAA,UAEpB,EACC9B,WAAW,CAACQ,KAAK,CAACuB,GAAG,CAACC,IAAI,IAAAH,YAAA;MAAA,SAEjB,CACL,0BAA0B,EAC1B,oCAAoC;IACrC,IACAG,IAAI,EACR,CAAC,EAEL,EAAAH,YAAA;MAAA,OAGOhC,OAAO;MAAA;IAAA,IAGX,CAACP,KAAK,CAACP,YAAY,IAAIkB,OAAO,CAACgC,WAAW,CAAC,CAAC,CAACF,GAAG,CAACG,OAAO,IAAAL,YAAA;MAAA,SAE/C,CACL,0BAA0B,EAC1B,8BAA8B;IAC/B,IACAK,OAAO,EACX,CAAC,EAEApC,WAAW,CAACU,KAAK,CAACuB,GAAG,CAAC,CAACI,IAAI,EAAEhB,CAAC,KAAK;MACnC,MAAMiB,SAAS,GAAG;QAChB9C,KAAK,EAAE;UACLsC,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACO,IAAI,CAAC3C,IAAI;QAClC,CAAC;QACD2C,IAAI;QACJhB;MACF,CAAU;MAEV,IAAIf,KAAK,CAACI,KAAK,IAAI,CAAC2B,IAAI,CAACE,UAAU,EAAE;QACnCF,IAAI,CAACG,UAAU,GAAG,IAAI;MACxB;MAEA,OAAAT,YAAA;QAAA,SAEW,CACL,0BAA0B,EAC1B;UACE,oCAAoC,EAAEM,IAAI,CAACI,UAAU;UACrD,yCAAyC,EAAEJ,IAAI,CAACK,QAAQ;UACxD,oCAAoC,EAAEL,IAAI,CAACE,UAAU;UACrD,oCAAoC,EAAEF,IAAI,CAACM,SAAS;UACpD,sCAAsC,EAAEN,IAAI,CAACO;QAC/C,CAAC,CACF;QAAA,eACa,CAACP,IAAI,CAACG,UAAU,GAAGH,IAAI,CAACQ,OAAO,GAAG7B;MAAS,IAGvD,CAACxB,KAAK,CAACsD,kBAAkB,IAAI,CAACT,IAAI,CAACI,UAAU,KAAAV,YAAA,CAAA1D,iBAAA;QAAA,YAEjC;UACRD,IAAI,EAAE;YACJ2E,KAAK,EAAE,8BAA8B;YACrChE,KAAK,EAAE,CAACsD,IAAI,CAACE,UAAU,IAAIF,IAAI,CAACW,OAAO,KAAK,CAACX,IAAI,CAACG,UAAU,GACxDhD,KAAK,CAACT,KAAK,GACXiC,SAAS;YACbiC,QAAQ,EAAEZ,IAAI,CAACG,UAAU;YACzBU,IAAI,EAAE,IAAI;YACVC,MAAM,EAAE,KAAK;YACbC,IAAI,EAAEf,IAAI,CAACgB,SAAS;YACpBC,OAAO,EAAEjB,IAAI,CAACG,UAAU,GACpBH,IAAI,CAACW,OAAO,GAAG,UAAU,GAAG,MAAM,GAClCX,IAAI,CAACW,OAAO,IAAI,CAACX,IAAI,CAACE,UAAU,GAAG,UAAU,GAAG,MAAM;YAC1DT,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACO,IAAI,CAAC3C,IAAI;UAClC;QACF;MAAC;QAAA6D,OAAA,EAAAA,CAAA,MAECzD,KAAK,CAAC0D,GAAG,GAAGlB,SAAS,CAAC,IAAAP,YAAA,CAAA3D,IAAA,EACXkE,SAAS,CAAC9C,KAAK,OAC3B;MAAA,EAEJ;IAGP,CAAC,CAAC,IAGP;EACH;AACF,CAAC,CAAC"}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
|
+
@use './variables' as *
|
|
2
|
+
|
|
1
3
|
.v-date-picker-month
|
|
2
4
|
display: flex
|
|
3
5
|
justify-content: center
|
|
4
|
-
|
|
6
|
+
padding: $date-picker-month-padding
|
|
5
7
|
|
|
6
8
|
--v-date-picker-month-day-diff: 4px
|
|
7
9
|
|
|
8
10
|
.v-date-picker-month__weeks
|
|
9
11
|
display: grid
|
|
10
12
|
grid-template-rows: min-content min-content min-content min-content min-content min-content min-content
|
|
11
|
-
|
|
12
|
-
font-size:
|
|
13
|
+
column-gap: $date-picker-month-column-gap
|
|
14
|
+
font-size: $date-picker-month-font-size
|
|
13
15
|
|
|
14
16
|
+ .v-date-picker-month__days
|
|
15
17
|
grid-row-gap: 0
|
|
16
18
|
|
|
17
19
|
.v-date-picker-month__weekday
|
|
18
|
-
font-size:
|
|
20
|
+
font-size: $date-picker-month-font-size
|
|
19
21
|
|
|
20
22
|
.v-date-picker-month__days
|
|
21
23
|
display: grid
|
|
22
24
|
grid-template-columns: min-content min-content min-content min-content min-content min-content min-content
|
|
23
|
-
|
|
25
|
+
column-gap: $date-picker-month-column-gap
|
|
24
26
|
flex: 1 1
|
|
25
27
|
justify-content: space-around
|
|
26
28
|
|
|
@@ -29,12 +31,18 @@
|
|
|
29
31
|
display: flex
|
|
30
32
|
justify-content: center
|
|
31
33
|
position: relative
|
|
34
|
+
height: $date-picker-month-day-size
|
|
35
|
+
width: $date-picker-month-day-size
|
|
32
36
|
|
|
33
37
|
&--selected
|
|
34
38
|
.v-btn
|
|
35
39
|
background-color: rgb(var(--v-theme-surface-variant))
|
|
36
40
|
color: rgb(var(--v-theme-on-surface-variant))
|
|
37
41
|
|
|
42
|
+
.v-btn.v-date-picker-month__day-btn
|
|
43
|
+
--v-btn-height: #{$date-picker-month-btn-height}
|
|
44
|
+
--v-btn-size: #{$date-picker-month-btn-size}
|
|
45
|
+
|
|
38
46
|
&--week
|
|
39
47
|
font-size: var(--v-btn-size)
|
|
40
48
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
.v-date-picker-months {
|
|
2
|
-
height:
|
|
3
|
-
overflow-y: scroll;
|
|
2
|
+
height: 288px;
|
|
4
3
|
}
|
|
5
4
|
|
|
6
5
|
.v-date-picker-months__content {
|
|
@@ -10,7 +9,7 @@
|
|
|
10
9
|
height: inherit;
|
|
11
10
|
justify-content: space-around;
|
|
12
11
|
grid-template-columns: repeat(2, 1fr);
|
|
13
|
-
grid-gap:
|
|
12
|
+
grid-gap: 0px 24px;
|
|
14
13
|
padding-inline-start: 36px;
|
|
15
14
|
padding-inline-end: 36px;
|
|
16
15
|
}
|
|
@@ -21,6 +21,7 @@ export const VDatePickerMonths = genericComponent()({
|
|
|
21
21
|
},
|
|
22
22
|
setup(props, _ref) {
|
|
23
23
|
let {
|
|
24
|
+
emit,
|
|
24
25
|
slots
|
|
25
26
|
} = _ref;
|
|
26
27
|
const adapter = useDate();
|
|
@@ -56,6 +57,10 @@ export const VDatePickerMonths = genericComponent()({
|
|
|
56
57
|
onClick: () => onClick(i)
|
|
57
58
|
};
|
|
58
59
|
function onClick(i) {
|
|
60
|
+
if (model.value === i) {
|
|
61
|
+
emit('update:modelValue', model.value);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
59
64
|
model.value = i;
|
|
60
65
|
}
|
|
61
66
|
return slots.month?.({
|
|
@@ -64,9 +69,7 @@ export const VDatePickerMonths = genericComponent()({
|
|
|
64
69
|
props: btnProps
|
|
65
70
|
}) ?? _createVNode(VBtn, _mergeProps({
|
|
66
71
|
"key": "month"
|
|
67
|
-
}, btnProps,
|
|
68
|
-
"onClick": () => onClick(i)
|
|
69
|
-
}), null);
|
|
72
|
+
}, btnProps), null);
|
|
70
73
|
})])]));
|
|
71
74
|
return {};
|
|
72
75
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDatePickerMonths.mjs","names":["VBtn","useDate","useProxiedModel","computed","watchEffect","convertToUnit","createRange","genericComponent","propsFactory","useRender","makeVDatePickerMonthsProps","color","String","height","Number","modelValue","VDatePickerMonths","name","props","emits","date","setup","_ref","slots","adapter","model","months","startOfYear","map","i","text","format","getNextMonth","value","getMonth","_createVNode","month","btnProps","active","undefined","rounded","variant","onClick","_mergeProps"],"sources":["../../../src/components/VDatePicker/VDatePickerMonths.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonths.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { convertToUnit, createRange, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerMonthsSlots = {\n month: {\n month: {\n text: string\n value: number\n }\n i: number\n props: {\n onClick: () => void\n }\n }\n}\n\nexport const makeVDatePickerMonthsProps = propsFactory({\n color: String,\n height: [String, Number],\n modelValue: Number,\n}, 'VDatePickerMonths')\n\nexport const VDatePickerMonths = genericComponent<VDatePickerMonthsSlots>()({\n name: 'VDatePickerMonths',\n\n props: makeVDatePickerMonthsProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n },\n\n setup (props, { slots }) {\n const adapter = useDate()\n const model = useProxiedModel(props, 'modelValue')\n\n const months = computed(() => {\n let date = adapter.startOfYear(adapter.date())\n\n return createRange(12).map(i => {\n const text = adapter.format(date, 'monthShort')\n date = adapter.getNextMonth(date)\n\n return {\n text,\n value: i,\n }\n })\n })\n\n watchEffect(() => {\n model.value = model.value ?? adapter.getMonth(adapter.date())\n })\n\n useRender(() => (\n <div\n class=\"v-date-picker-months\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <div class=\"v-date-picker-months__content\">\n { months.value.map((month, i) => {\n const btnProps = {\n active: model.value === i,\n color: model.value === i ? props.color : undefined,\n rounded: true,\n text: month.text,\n variant: model.value === month.value ? 'flat' : 'text',\n onClick: () => onClick(i),\n } as const\n\n function onClick (i: number) {\n model.value = i\n }\n\n return slots.month?.({\n month,\n i,\n props: btnProps,\n }) ?? (\n <VBtn\n key=\"month\"\n { ...btnProps }\n
|
|
1
|
+
{"version":3,"file":"VDatePickerMonths.mjs","names":["VBtn","useDate","useProxiedModel","computed","watchEffect","convertToUnit","createRange","genericComponent","propsFactory","useRender","makeVDatePickerMonthsProps","color","String","height","Number","modelValue","VDatePickerMonths","name","props","emits","date","setup","_ref","emit","slots","adapter","model","months","startOfYear","map","i","text","format","getNextMonth","value","getMonth","_createVNode","month","btnProps","active","undefined","rounded","variant","onClick","_mergeProps"],"sources":["../../../src/components/VDatePicker/VDatePickerMonths.tsx"],"sourcesContent":["// Styles\nimport './VDatePickerMonths.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { useDate } from '@/composables/date'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, watchEffect } from 'vue'\nimport { convertToUnit, createRange, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nexport type VDatePickerMonthsSlots = {\n month: {\n month: {\n text: string\n value: number\n }\n i: number\n props: {\n onClick: () => void\n }\n }\n}\n\nexport const makeVDatePickerMonthsProps = propsFactory({\n color: String,\n height: [String, Number],\n modelValue: Number,\n}, 'VDatePickerMonths')\n\nexport const VDatePickerMonths = genericComponent<VDatePickerMonthsSlots>()({\n name: 'VDatePickerMonths',\n\n props: makeVDatePickerMonthsProps(),\n\n emits: {\n 'update:modelValue': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const adapter = useDate()\n const model = useProxiedModel(props, 'modelValue')\n\n const months = computed(() => {\n let date = adapter.startOfYear(adapter.date())\n\n return createRange(12).map(i => {\n const text = adapter.format(date, 'monthShort')\n date = adapter.getNextMonth(date)\n\n return {\n text,\n value: i,\n }\n })\n })\n\n watchEffect(() => {\n model.value = model.value ?? adapter.getMonth(adapter.date())\n })\n\n useRender(() => (\n <div\n class=\"v-date-picker-months\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <div class=\"v-date-picker-months__content\">\n { months.value.map((month, i) => {\n const btnProps = {\n active: model.value === i,\n color: model.value === i ? props.color : undefined,\n rounded: true,\n text: month.text,\n variant: model.value === month.value ? 'flat' : 'text',\n onClick: () => onClick(i),\n } as const\n\n function onClick (i: number) {\n if (model.value === i) {\n emit('update:modelValue', model.value)\n return\n }\n model.value = i\n }\n\n return slots.month?.({\n month,\n i,\n props: btnProps,\n }) ?? (\n <VBtn\n key=\"month\"\n { ...btnProps }\n />\n )\n })}\n </div>\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VDatePickerMonths = InstanceType<typeof VDatePickerMonths>\n"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
@use './variables' as *
|
|
2
|
+
|
|
1
3
|
.v-date-picker-months
|
|
2
|
-
height:
|
|
3
|
-
overflow-y: scroll
|
|
4
|
+
height: $date-picker-months-height
|
|
4
5
|
|
|
5
6
|
.v-date-picker-months__content
|
|
6
7
|
align-items: center
|
|
@@ -9,7 +10,7 @@
|
|
|
9
10
|
height: inherit
|
|
10
11
|
justify-content: space-around
|
|
11
12
|
grid-template-columns: repeat(2, 1fr)
|
|
12
|
-
grid-gap:
|
|
13
|
+
grid-gap: $date-picker-months-grid-gap
|
|
13
14
|
padding-inline-start: 36px
|
|
14
15
|
padding-inline-end: 36px
|
|
15
16
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
.v-date-picker-years {
|
|
2
|
-
height:
|
|
2
|
+
height: 288px;
|
|
3
3
|
overflow-y: scroll;
|
|
4
4
|
}
|
|
5
5
|
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
justify-content: space-around;
|
|
10
10
|
grid-template-columns: repeat(3, 1fr);
|
|
11
11
|
gap: 8px 24px;
|
|
12
|
-
padding-inline:
|
|
12
|
+
padding-inline: 32px;
|
|
13
13
|
}
|
|
14
14
|
.v-date-picker-years__content .v-btn {
|
|
15
15
|
padding-inline: 8px;
|
|
@@ -24,6 +24,7 @@ export const VDatePickerYears = genericComponent()({
|
|
|
24
24
|
},
|
|
25
25
|
setup(props, _ref) {
|
|
26
26
|
let {
|
|
27
|
+
emit,
|
|
27
28
|
slots
|
|
28
29
|
} = _ref;
|
|
29
30
|
const adapter = useDate();
|
|
@@ -74,7 +75,13 @@ export const VDatePickerYears = genericComponent()({
|
|
|
74
75
|
rounded: true,
|
|
75
76
|
text: year.text,
|
|
76
77
|
variant: model.value === year.value ? 'flat' : 'text',
|
|
77
|
-
onClick: () =>
|
|
78
|
+
onClick: () => {
|
|
79
|
+
if (model.value === year.value) {
|
|
80
|
+
emit('update:modelValue', model.value);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
model.value = year.value;
|
|
84
|
+
}
|
|
78
85
|
};
|
|
79
86
|
return slots.year?.({
|
|
80
87
|
year,
|