@vuetify/nightly 3.4.10-dev.2024-01-10 → 3.4.10-dev.2024-01-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.
- package/CHANGELOG.md +21 -2
- package/dist/json/attributes.json +265 -209
- package/dist/json/importMap.json +98 -98
- package/dist/json/tags.json +14 -0
- package/dist/json/web-types.json +626 -394
- package/dist/vuetify-labs.css +1350 -1342
- package/dist/vuetify-labs.d.ts +8353 -2175
- package/dist/vuetify-labs.esm.js +15378 -15300
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +15378 -15300
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +2341 -2335
- package/dist/vuetify.d.ts +7289 -1111
- package/dist/vuetify.esm.js +15378 -15300
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +15378 -15300
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +792 -788
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +2 -2
- package/lib/components/VAlert/_variables.scss +2 -2
- package/lib/components/VAutocomplete/VAutocomplete.css +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +1 -1
- package/lib/components/VAutocomplete/index.d.mts +1698 -0
- package/lib/components/VBanner/index.d.mts +4 -4
- package/lib/components/VBtn/VBtn.mjs +3 -1
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.mts +21 -5
- package/lib/components/VCarousel/index.d.mts +9 -9
- package/lib/components/VChipGroup/VChipGroup.css +3 -3
- package/lib/components/VChipGroup/VChipGroup.mjs +22 -16
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.sass +4 -3
- package/lib/components/VChipGroup/index.d.mts +118 -1
- package/lib/components/VCombobox/VCombobox.css +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +9 -3
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +1 -1
- package/lib/components/VCombobox/index.d.mts +1704 -0
- package/lib/components/VDataIterator/VDataIterator.mjs +2 -1
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/index.d.mts +6 -0
- package/lib/components/VDataTable/VDataTable.mjs +2 -1
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableFooter.css +9 -4
- package/lib/components/VDataTable/VDataTableFooter.sass +9 -4
- package/lib/components/VDataTable/VDataTableVirtual.mjs +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/components/VDataTable/_variables.scss +5 -0
- package/lib/components/VDataTable/composables/paginate.mjs +6 -2
- package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
- package/lib/components/VDataTable/index.d.mts +43 -30
- package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +56 -11
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +34 -19
- package/lib/components/VFileInput/VFileInput.mjs +2 -2
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +1 -0
- package/lib/components/VList/VListItem.sass +1 -0
- package/lib/components/VList/_variables.scss +1 -0
- package/lib/components/VSelect/VSelect.mjs +5 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +1689 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +6 -3
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +7 -7
- package/lib/components/VSlider/VSliderThumb.mjs +4 -3
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.css +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +1 -1
- package/lib/components/VSlider/_variables.scss +1 -0
- package/lib/components/VSystemBar/VSystemBar.css +2 -2
- package/lib/components/VSystemBar/_variables.scss +2 -2
- package/lib/components/VTabs/VTab.mjs +6 -6
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/index.d.mts +1116 -17
- package/lib/components/VTimeline/VTimeline.css +1 -1
- package/lib/components/VTimeline/_variables.scss +1 -1
- package/lib/components/VToolbar/VToolbar.css +2 -2
- package/lib/components/VToolbar/_variables.scss +2 -2
- package/lib/components/VWindow/index.d.mts +7 -7
- package/lib/components/index.d.mts +8370 -2192
- package/lib/composables/calendar.mjs +1 -1
- package/lib/composables/calendar.mjs.map +1 -1
- package/lib/composables/date/adapters/vuetify.mjs +1 -2
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/date/date.mjs +4 -4
- package/lib/composables/date/date.mjs.map +1 -1
- package/lib/composables/locale.mjs +47 -2
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/theme.mjs +2 -0
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +31 -31
- package/lib/labs/VCalendar/VCalendar.css +4 -2
- package/lib/labs/VCalendar/VCalendar.sass +4 -2
- package/lib/labs/VCalendar/_variables.scss +5 -0
- package/lib/locale/index.d.mts +2 -46
- package/lib/locale/index.mjs +0 -44
- package/lib/locale/index.mjs.map +1 -1
- package/lib/locale/km.mjs +2 -1
- package/lib/locale/km.mjs.map +1 -1
- package/lib/styles/main.css +78 -78
- package/lib/styles/settings/_utilities.scss +1 -0
- package/lib/util/helpers.mjs +1 -43
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +2 -1
- package/lib/components/VDatePicker/utils.mjs +0 -69
- package/lib/components/VDatePicker/utils.mjs.map +0 -1
- package/lib/util/dateTimeUtils.mjs +0 -115
- package/lib/util/dateTimeUtils.mjs.map +0 -1
|
@@ -605,14 +605,14 @@ declare const VDataTable: {
|
|
|
605
605
|
pageText: string;
|
|
606
606
|
density: Density;
|
|
607
607
|
valueComparator: typeof deepEqual;
|
|
608
|
+
nextIcon: string;
|
|
609
|
+
prevIcon: string;
|
|
608
610
|
selectStrategy: "all" | "page" | "single";
|
|
609
611
|
returnObject: boolean;
|
|
610
612
|
filterMode: FilterMode;
|
|
611
613
|
noFilter: boolean;
|
|
612
614
|
hideNoData: boolean;
|
|
613
615
|
hover: boolean;
|
|
614
|
-
nextIcon: string;
|
|
615
|
-
prevIcon: string;
|
|
616
616
|
multiSort: boolean;
|
|
617
617
|
mustSort: boolean;
|
|
618
618
|
groupBy: readonly SortItem[];
|
|
@@ -674,6 +674,7 @@ declare const VDataTable: {
|
|
|
674
674
|
"onUpdate:page"?: ((value: number) => any) | undefined;
|
|
675
675
|
"onUpdate:itemsPerPage"?: ((value: number) => any) | undefined;
|
|
676
676
|
"onUpdate:options"?: ((value: any) => any) | undefined;
|
|
677
|
+
"onUpdate:currentItems"?: ((value: any) => any) | undefined;
|
|
677
678
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
|
|
678
679
|
'update:modelValue': (value: any[]) => boolean;
|
|
679
680
|
'update:page': (value: number) => boolean;
|
|
@@ -682,6 +683,7 @@ declare const VDataTable: {
|
|
|
682
683
|
'update:options': (value: any) => boolean;
|
|
683
684
|
'update:groupBy': (value: any) => boolean;
|
|
684
685
|
'update:expanded': (value: any) => boolean;
|
|
686
|
+
'update:currentItems': (value: any) => boolean;
|
|
685
687
|
}, "$children" | "v-slot:default" | "v-slots" | "items" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "itemValue" | "v-slot:no-data" | "cellProps" | "itemSelectable" | "rowProps" | "v-slot:headers" | `v-slot:header.${string}` | "v-slot:data-table-group" | "v-slot:data-table-select" | `v-slot:item.${string}` | "v-slot:loading" | "v-slot:group-header" | "v-slot:expanded-row" | "v-slot:top" | "v-slot:bottom" | "v-slot:body" | "v-slot:colgroup" | "v-slot:tbody" | "v-slot:tfoot" | "v-slot:thead" | "v-slot:body.prepend" | "v-slot:body.append" | "v-slot:footer.prepend">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
|
|
686
688
|
page: string | number;
|
|
687
689
|
style: vue.StyleValue;
|
|
@@ -695,14 +697,14 @@ declare const VDataTable: {
|
|
|
695
697
|
pageText: string;
|
|
696
698
|
density: Density;
|
|
697
699
|
valueComparator: typeof deepEqual;
|
|
700
|
+
nextIcon: string;
|
|
701
|
+
prevIcon: string;
|
|
698
702
|
selectStrategy: "all" | "page" | "single";
|
|
699
703
|
returnObject: boolean;
|
|
700
704
|
filterMode: FilterMode;
|
|
701
705
|
noFilter: boolean;
|
|
702
706
|
hideNoData: boolean;
|
|
703
707
|
hover: boolean;
|
|
704
|
-
nextIcon: string;
|
|
705
|
-
prevIcon: string;
|
|
706
708
|
multiSort: boolean;
|
|
707
709
|
mustSort: boolean;
|
|
708
710
|
groupBy: readonly SortItem[];
|
|
@@ -764,6 +766,7 @@ declare const VDataTable: {
|
|
|
764
766
|
"onUpdate:page"?: ((value: number) => any) | undefined;
|
|
765
767
|
"onUpdate:itemsPerPage"?: ((value: number) => any) | undefined;
|
|
766
768
|
"onUpdate:options"?: ((value: any) => any) | undefined;
|
|
769
|
+
"onUpdate:currentItems"?: ((value: any) => any) | undefined;
|
|
767
770
|
}, {
|
|
768
771
|
page: string | number;
|
|
769
772
|
style: vue.StyleValue;
|
|
@@ -777,14 +780,14 @@ declare const VDataTable: {
|
|
|
777
780
|
pageText: string;
|
|
778
781
|
density: Density;
|
|
779
782
|
valueComparator: typeof deepEqual;
|
|
783
|
+
nextIcon: string;
|
|
784
|
+
prevIcon: string;
|
|
780
785
|
selectStrategy: "all" | "page" | "single";
|
|
781
786
|
returnObject: boolean;
|
|
782
787
|
filterMode: FilterMode;
|
|
783
788
|
noFilter: boolean;
|
|
784
789
|
hideNoData: boolean;
|
|
785
790
|
hover: boolean;
|
|
786
|
-
nextIcon: string;
|
|
787
|
-
prevIcon: string;
|
|
788
791
|
multiSort: boolean;
|
|
789
792
|
mustSort: boolean;
|
|
790
793
|
groupBy: readonly SortItem[];
|
|
@@ -951,14 +954,14 @@ declare const VDataTable: {
|
|
|
951
954
|
pageText: string;
|
|
952
955
|
density: Density;
|
|
953
956
|
valueComparator: typeof deepEqual;
|
|
957
|
+
nextIcon: string;
|
|
958
|
+
prevIcon: string;
|
|
954
959
|
selectStrategy: "all" | "page" | "single";
|
|
955
960
|
returnObject: boolean;
|
|
956
961
|
filterMode: FilterMode;
|
|
957
962
|
noFilter: boolean;
|
|
958
963
|
hideNoData: boolean;
|
|
959
964
|
hover: boolean;
|
|
960
|
-
nextIcon: string;
|
|
961
|
-
prevIcon: string;
|
|
962
965
|
multiSort: boolean;
|
|
963
966
|
mustSort: boolean;
|
|
964
967
|
groupBy: readonly SortItem[];
|
|
@@ -1020,6 +1023,7 @@ declare const VDataTable: {
|
|
|
1020
1023
|
"onUpdate:page"?: ((value: number) => any) | undefined;
|
|
1021
1024
|
"onUpdate:itemsPerPage"?: ((value: number) => any) | undefined;
|
|
1022
1025
|
"onUpdate:options"?: ((value: any) => any) | undefined;
|
|
1026
|
+
"onUpdate:currentItems"?: ((value: any) => any) | undefined;
|
|
1023
1027
|
}, {}, {}, {}, {}, {
|
|
1024
1028
|
page: string | number;
|
|
1025
1029
|
style: vue.StyleValue;
|
|
@@ -1033,14 +1037,14 @@ declare const VDataTable: {
|
|
|
1033
1037
|
pageText: string;
|
|
1034
1038
|
density: Density;
|
|
1035
1039
|
valueComparator: typeof deepEqual;
|
|
1040
|
+
nextIcon: string;
|
|
1041
|
+
prevIcon: string;
|
|
1036
1042
|
selectStrategy: "all" | "page" | "single";
|
|
1037
1043
|
returnObject: boolean;
|
|
1038
1044
|
filterMode: FilterMode;
|
|
1039
1045
|
noFilter: boolean;
|
|
1040
1046
|
hideNoData: boolean;
|
|
1041
1047
|
hover: boolean;
|
|
1042
|
-
nextIcon: string;
|
|
1043
|
-
prevIcon: string;
|
|
1044
1048
|
multiSort: boolean;
|
|
1045
1049
|
mustSort: boolean;
|
|
1046
1050
|
groupBy: readonly SortItem[];
|
|
@@ -1080,14 +1084,14 @@ declare const VDataTable: {
|
|
|
1080
1084
|
pageText: string;
|
|
1081
1085
|
density: Density;
|
|
1082
1086
|
valueComparator: typeof deepEqual;
|
|
1087
|
+
nextIcon: string;
|
|
1088
|
+
prevIcon: string;
|
|
1083
1089
|
selectStrategy: "all" | "page" | "single";
|
|
1084
1090
|
returnObject: boolean;
|
|
1085
1091
|
filterMode: FilterMode;
|
|
1086
1092
|
noFilter: boolean;
|
|
1087
1093
|
hideNoData: boolean;
|
|
1088
1094
|
hover: boolean;
|
|
1089
|
-
nextIcon: string;
|
|
1090
|
-
prevIcon: string;
|
|
1091
1095
|
multiSort: boolean;
|
|
1092
1096
|
mustSort: boolean;
|
|
1093
1097
|
groupBy: readonly SortItem[];
|
|
@@ -1149,6 +1153,7 @@ declare const VDataTable: {
|
|
|
1149
1153
|
"onUpdate:page"?: ((value: number) => any) | undefined;
|
|
1150
1154
|
"onUpdate:itemsPerPage"?: ((value: number) => any) | undefined;
|
|
1151
1155
|
"onUpdate:options"?: ((value: any) => any) | undefined;
|
|
1156
|
+
"onUpdate:currentItems"?: ((value: any) => any) | undefined;
|
|
1152
1157
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
|
|
1153
1158
|
'update:modelValue': (value: any[]) => boolean;
|
|
1154
1159
|
'update:page': (value: number) => boolean;
|
|
@@ -1157,6 +1162,7 @@ declare const VDataTable: {
|
|
|
1157
1162
|
'update:options': (value: any) => boolean;
|
|
1158
1163
|
'update:groupBy': (value: any) => boolean;
|
|
1159
1164
|
'update:expanded': (value: any) => boolean;
|
|
1165
|
+
'update:currentItems': (value: any) => boolean;
|
|
1160
1166
|
}, "$children" | "v-slot:default" | "v-slots" | "items" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "itemValue" | "v-slot:no-data" | "cellProps" | "itemSelectable" | "rowProps" | "v-slot:headers" | `v-slot:header.${string}` | "v-slot:data-table-group" | "v-slot:data-table-select" | `v-slot:item.${string}` | "v-slot:loading" | "v-slot:group-header" | "v-slot:expanded-row" | "v-slot:top" | "v-slot:bottom" | "v-slot:body" | "v-slot:colgroup" | "v-slot:tbody" | "v-slot:tfoot" | "v-slot:thead" | "v-slot:body.prepend" | "v-slot:body.append" | "v-slot:footer.prepend">, string, {
|
|
1161
1167
|
page: string | number;
|
|
1162
1168
|
style: vue.StyleValue;
|
|
@@ -1170,14 +1176,14 @@ declare const VDataTable: {
|
|
|
1170
1176
|
pageText: string;
|
|
1171
1177
|
density: Density;
|
|
1172
1178
|
valueComparator: typeof deepEqual;
|
|
1179
|
+
nextIcon: string;
|
|
1180
|
+
prevIcon: string;
|
|
1173
1181
|
selectStrategy: "all" | "page" | "single";
|
|
1174
1182
|
returnObject: boolean;
|
|
1175
1183
|
filterMode: FilterMode;
|
|
1176
1184
|
noFilter: boolean;
|
|
1177
1185
|
hideNoData: boolean;
|
|
1178
1186
|
hover: boolean;
|
|
1179
|
-
nextIcon: string;
|
|
1180
|
-
prevIcon: string;
|
|
1181
1187
|
multiSort: boolean;
|
|
1182
1188
|
mustSort: boolean;
|
|
1183
1189
|
groupBy: readonly SortItem[];
|
|
@@ -1967,6 +1973,7 @@ declare const VDataTableFooter: {
|
|
|
1967
1973
|
|
|
1968
1974
|
type VDataTableVirtualSlotProps<T> = Omit<VDataTableSlotProps<T>, 'setItemsPerPage' | 'page' | 'pageCount' | 'itemsPerPage'>;
|
|
1969
1975
|
type VDataTableVirtualSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {
|
|
1976
|
+
colgroup: VDataTableVirtualSlotProps<T>;
|
|
1970
1977
|
top: VDataTableVirtualSlotProps<T>;
|
|
1971
1978
|
headers: VDataTableHeadersSlots['headers'];
|
|
1972
1979
|
bottom: VDataTableVirtualSlotProps<T>;
|
|
@@ -2048,7 +2055,7 @@ declare const VDataTableVirtual: {
|
|
|
2048
2055
|
'update:options': (value: any) => boolean;
|
|
2049
2056
|
'update:groupBy': (value: any) => boolean;
|
|
2050
2057
|
'update:expanded': (value: any) => boolean;
|
|
2051
|
-
}, "$children" | "v-slots" | "items" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "itemValue" | "v-slot:no-data" | "cellProps" | "itemSelectable" | "rowProps" | "v-slot:headers" | `v-slot:header.${string}` | "v-slot:data-table-group" | "v-slot:data-table-select" | `v-slot:item.${string}` | "v-slot:loading" | "v-slot:group-header" | "v-slot:expanded-row" | "v-slot:top" | "v-slot:bottom" | "v-slot:body.prepend" | "v-slot:body.append">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
|
|
2058
|
+
}, "$children" | "v-slots" | "items" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "itemValue" | "v-slot:no-data" | "cellProps" | "itemSelectable" | "rowProps" | "v-slot:headers" | `v-slot:header.${string}` | "v-slot:data-table-group" | "v-slot:data-table-select" | `v-slot:item.${string}` | "v-slot:loading" | "v-slot:group-header" | "v-slot:expanded-row" | "v-slot:top" | "v-slot:bottom" | "v-slot:colgroup" | "v-slot:body.prepend" | "v-slot:body.append">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
|
|
2052
2059
|
style: vue.StyleValue;
|
|
2053
2060
|
expanded: readonly string[];
|
|
2054
2061
|
tag: string;
|
|
@@ -2232,6 +2239,9 @@ declare const VDataTableVirtual: {
|
|
|
2232
2239
|
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
2233
2240
|
[key: string]: any;
|
|
2234
2241
|
}>[];
|
|
2242
|
+
colgroup: (arg: VDataTableVirtualSlotProps<any>) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
2243
|
+
[key: string]: any;
|
|
2244
|
+
}>[];
|
|
2235
2245
|
top: (arg: VDataTableVirtualSlotProps<any>) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
2236
2246
|
[key: string]: any;
|
|
2237
2247
|
}>[];
|
|
@@ -2416,7 +2426,7 @@ declare const VDataTableVirtual: {
|
|
|
2416
2426
|
'update:options': (value: any) => boolean;
|
|
2417
2427
|
'update:groupBy': (value: any) => boolean;
|
|
2418
2428
|
'update:expanded': (value: any) => boolean;
|
|
2419
|
-
}, "$children" | "v-slots" | "items" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "itemValue" | "v-slot:no-data" | "cellProps" | "itemSelectable" | "rowProps" | "v-slot:headers" | `v-slot:header.${string}` | "v-slot:data-table-group" | "v-slot:data-table-select" | `v-slot:item.${string}` | "v-slot:loading" | "v-slot:group-header" | "v-slot:expanded-row" | "v-slot:top" | "v-slot:bottom" | "v-slot:body.prepend" | "v-slot:body.append">, string, {
|
|
2429
|
+
}, "$children" | "v-slots" | "items" | "modelValue" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "itemValue" | "v-slot:no-data" | "cellProps" | "itemSelectable" | "rowProps" | "v-slot:headers" | `v-slot:header.${string}` | "v-slot:data-table-group" | "v-slot:data-table-select" | `v-slot:item.${string}` | "v-slot:loading" | "v-slot:group-header" | "v-slot:expanded-row" | "v-slot:top" | "v-slot:bottom" | "v-slot:colgroup" | "v-slot:body.prepend" | "v-slot:body.append">, string, {
|
|
2420
2430
|
style: vue.StyleValue;
|
|
2421
2431
|
expanded: readonly string[];
|
|
2422
2432
|
tag: string;
|
|
@@ -2536,6 +2546,9 @@ declare const VDataTableVirtual: {
|
|
|
2536
2546
|
}) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
2537
2547
|
[key: string]: any;
|
|
2538
2548
|
}>[];
|
|
2549
|
+
colgroup: (arg: VDataTableVirtualSlotProps<any>) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
2550
|
+
[key: string]: any;
|
|
2551
|
+
}>[];
|
|
2539
2552
|
top: (arg: VDataTableVirtualSlotProps<any>) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
2540
2553
|
[key: string]: any;
|
|
2541
2554
|
}>[];
|
|
@@ -2820,12 +2833,12 @@ declare const VDataTableServer: {
|
|
|
2820
2833
|
pageText: string;
|
|
2821
2834
|
density: Density;
|
|
2822
2835
|
valueComparator: typeof deepEqual;
|
|
2836
|
+
nextIcon: string;
|
|
2837
|
+
prevIcon: string;
|
|
2823
2838
|
selectStrategy: "all" | "page" | "single";
|
|
2824
2839
|
returnObject: boolean;
|
|
2825
2840
|
hideNoData: boolean;
|
|
2826
2841
|
hover: boolean;
|
|
2827
|
-
nextIcon: string;
|
|
2828
|
-
prevIcon: string;
|
|
2829
2842
|
multiSort: boolean;
|
|
2830
2843
|
mustSort: boolean;
|
|
2831
2844
|
groupBy: readonly SortItem[];
|
|
@@ -2906,12 +2919,12 @@ declare const VDataTableServer: {
|
|
|
2906
2919
|
pageText: string;
|
|
2907
2920
|
density: Density;
|
|
2908
2921
|
valueComparator: typeof deepEqual;
|
|
2922
|
+
nextIcon: string;
|
|
2923
|
+
prevIcon: string;
|
|
2909
2924
|
selectStrategy: "all" | "page" | "single";
|
|
2910
2925
|
returnObject: boolean;
|
|
2911
2926
|
hideNoData: boolean;
|
|
2912
2927
|
hover: boolean;
|
|
2913
|
-
nextIcon: string;
|
|
2914
|
-
prevIcon: string;
|
|
2915
2928
|
multiSort: boolean;
|
|
2916
2929
|
mustSort: boolean;
|
|
2917
2930
|
groupBy: readonly SortItem[];
|
|
@@ -2984,12 +2997,12 @@ declare const VDataTableServer: {
|
|
|
2984
2997
|
pageText: string;
|
|
2985
2998
|
density: Density;
|
|
2986
2999
|
valueComparator: typeof deepEqual;
|
|
3000
|
+
nextIcon: string;
|
|
3001
|
+
prevIcon: string;
|
|
2987
3002
|
selectStrategy: "all" | "page" | "single";
|
|
2988
3003
|
returnObject: boolean;
|
|
2989
3004
|
hideNoData: boolean;
|
|
2990
3005
|
hover: boolean;
|
|
2991
|
-
nextIcon: string;
|
|
2992
|
-
prevIcon: string;
|
|
2993
3006
|
multiSort: boolean;
|
|
2994
3007
|
mustSort: boolean;
|
|
2995
3008
|
groupBy: readonly SortItem[];
|
|
@@ -3156,12 +3169,12 @@ declare const VDataTableServer: {
|
|
|
3156
3169
|
pageText: string;
|
|
3157
3170
|
density: Density;
|
|
3158
3171
|
valueComparator: typeof deepEqual;
|
|
3172
|
+
nextIcon: string;
|
|
3173
|
+
prevIcon: string;
|
|
3159
3174
|
selectStrategy: "all" | "page" | "single";
|
|
3160
3175
|
returnObject: boolean;
|
|
3161
3176
|
hideNoData: boolean;
|
|
3162
3177
|
hover: boolean;
|
|
3163
|
-
nextIcon: string;
|
|
3164
|
-
prevIcon: string;
|
|
3165
3178
|
multiSort: boolean;
|
|
3166
3179
|
mustSort: boolean;
|
|
3167
3180
|
groupBy: readonly SortItem[];
|
|
@@ -3234,12 +3247,12 @@ declare const VDataTableServer: {
|
|
|
3234
3247
|
pageText: string;
|
|
3235
3248
|
density: Density;
|
|
3236
3249
|
valueComparator: typeof deepEqual;
|
|
3250
|
+
nextIcon: string;
|
|
3251
|
+
prevIcon: string;
|
|
3237
3252
|
selectStrategy: "all" | "page" | "single";
|
|
3238
3253
|
returnObject: boolean;
|
|
3239
3254
|
hideNoData: boolean;
|
|
3240
3255
|
hover: boolean;
|
|
3241
|
-
nextIcon: string;
|
|
3242
|
-
prevIcon: string;
|
|
3243
3256
|
multiSort: boolean;
|
|
3244
3257
|
mustSort: boolean;
|
|
3245
3258
|
groupBy: readonly SortItem[];
|
|
@@ -3279,12 +3292,12 @@ declare const VDataTableServer: {
|
|
|
3279
3292
|
pageText: string;
|
|
3280
3293
|
density: Density;
|
|
3281
3294
|
valueComparator: typeof deepEqual;
|
|
3295
|
+
nextIcon: string;
|
|
3296
|
+
prevIcon: string;
|
|
3282
3297
|
selectStrategy: "all" | "page" | "single";
|
|
3283
3298
|
returnObject: boolean;
|
|
3284
3299
|
hideNoData: boolean;
|
|
3285
3300
|
hover: boolean;
|
|
3286
|
-
nextIcon: string;
|
|
3287
|
-
prevIcon: string;
|
|
3288
3301
|
multiSort: boolean;
|
|
3289
3302
|
mustSort: boolean;
|
|
3290
3303
|
groupBy: readonly SortItem[];
|
|
@@ -3365,12 +3378,12 @@ declare const VDataTableServer: {
|
|
|
3365
3378
|
pageText: string;
|
|
3366
3379
|
density: Density;
|
|
3367
3380
|
valueComparator: typeof deepEqual;
|
|
3381
|
+
nextIcon: string;
|
|
3382
|
+
prevIcon: string;
|
|
3368
3383
|
selectStrategy: "all" | "page" | "single";
|
|
3369
3384
|
returnObject: boolean;
|
|
3370
3385
|
hideNoData: boolean;
|
|
3371
3386
|
hover: boolean;
|
|
3372
|
-
nextIcon: string;
|
|
3373
|
-
prevIcon: string;
|
|
3374
3387
|
multiSort: boolean;
|
|
3375
3388
|
mustSort: boolean;
|
|
3376
3389
|
groupBy: readonly SortItem[];
|
|
@@ -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.setYear(adapter.setMonth(adapter.date(), month.value), year.value), 'monthAndYear');
|
|
88
|
+
return adapter.format(adapter.setYear(adapter.setMonth(adapter.startOfMonth(adapter.date()), month.value), year.value), '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`);
|
|
@@ -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","setYear","headerTransition","minDate","min","maxDate","max","disabled","targets","push","_date","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 <T, Multiple extends boolean = false> (\n props: {\n modelValue?: Multiple extends true ? T[] : T\n 'onUpdate:modelValue'?: (value: Multiple extends true ? T[] : T) => 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.setYear(adapter.setMonth(adapter.date(), month.value), year.value),\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","setYear","headerTransition","minDate","min","maxDate","max","disabled","targets","push","_date","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 <T, Multiple extends boolean = false> (\n props: {\n modelValue?: Multiple extends true ? T[] : T\n 'onUpdate:modelValue'?: (value: Multiple extends true ? T[] : T) => 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.setYear(adapter.setMonth(adapter.startOfMonth(adapter.date()), month.value), year.value),\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":";AAAA;AACA;;AAEA;AAAA,SACSA,4BAA4B,EAAEC,mBAAmB;AAAA,SACjDC,iBAAiB;AAAA,SACjBC,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,0BAA0B,EAAEC,iBAAiB;AAAA,SAC7CC,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,eAAe;AAAA,SACfC,iBAAiB;AAAA,SACjBC,gBAAgB,EAAEC,OAAO,0CAElC;AAAA,SACSC,OAAO;AAAA,SACPC,SAAS;AAAA,SACTC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC7CC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,EAAEC,WAAW,gCAErE;AAIA;AAQA,OAAO,MAAMC,oBAAoB,GAAGH,YAAY,CAAC;EAC/C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACAI,MAAM,EAAE;IACNC,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAE;EACX,CAAC;EAED,GAAG7B,4BAA4B,CAAC,CAAC;EACjC,GAAGG,yBAAyB,CAAC,CAAC;EAC9B,GAAGkB,IAAI,CAAChB,0BAA0B,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;EACrD,GAAGgB,IAAI,CAACd,yBAAyB,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;EACpD,GAAGI,gBAAgB,CAAC;IAAEmB,KAAK,EAAE;EAA4B,CAAC,CAAC;EAE3DC,UAAU,EAAE;AACd,CAAC,EAAE,aAAa,CAAC;AAEjB,OAAO,MAAMC,WAAW,GAAGZ,gBAAgB,CAOI,CAAC,CAAC;EAC/Ca,IAAI,EAAE,aAAa;EAEnBC,KAAK,EAAET,oBAAoB,CAAC,CAAC;EAE7BU,KAAK,EAAE;IACL,mBAAmB,EAAGC,IAAS,IAAK,IAAI;IACxC,cAAc,EAAGA,IAAS,IAAK,IAAI;IACnC,aAAa,EAAGA,IAAS,IAAK,IAAI;IAClC;IACA,iBAAiB,EAAGA,IAAS,IAAK;EACpC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,OAAO,GAAG5B,OAAO,CAAC,CAAC;IACzB,MAAM;MAAE6B;IAAE,CAAC,GAAG5B,SAAS,CAAC,CAAC;IAEzB,MAAM6B,KAAK,GAAG5B,eAAe,CAC3BmB,KAAK,EACL,YAAY,EACZU,SAAS,EACTC,CAAC,IAAIrB,WAAW,CAACqB,CAAC,CAAC,EACnBA,CAAC,IAAIX,KAAK,CAACY,QAAQ,GAAGD,CAAC,GAAGA,CAAC,CAAC,CAAC,CAC/B,CAAC;IAED,MAAME,QAAQ,GAAGhC,eAAe,CAACmB,KAAK,EAAE,UAAU,CAAC;IACnD;IACA,MAAMc,QAAQ,GAAGhC,QAAQ,CAAC,MAAM;MAC9B,MAAMiC,KAAK,GAAGR,OAAO,CAACL,IAAI,CAACO,KAAK,CAACM,KAAK,GAAG,CAAC,CAAC,CAAC;MAE5C,OAAOA,KAAK,IAAIR,OAAO,CAACS,OAAO,CAACD,KAAK,CAAC,GAAGA,KAAK,GAAGR,OAAO,CAACL,IAAI,CAAC,CAAC;IACjE,CAAC,CAAC;IAEF,MAAMe,KAAK,GAAGlC,GAAG,CAACmC,MAAM,CAAClB,KAAK,CAACiB,KAAK,IAAIV,OAAO,CAACY,QAAQ,CAACZ,OAAO,CAACa,YAAY,CAACN,QAAQ,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChG,MAAMM,IAAI,GAAGtC,GAAG,CAACmC,MAAM,CAAClB,KAAK,CAACqB,IAAI,IAAId,OAAO,CAACe,OAAO,CAACf,OAAO,CAACgB,WAAW,CAAChB,OAAO,CAACiB,QAAQ,CAACV,QAAQ,CAACC,KAAK,EAAEE,KAAK,CAACF,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3H,MAAMU,WAAW,GAAGzC,UAAU,CAAC,KAAK,CAAC;IACrC,MAAMQ,MAAM,GAAGV,QAAQ,CAAC,MAAM;MAC5B,OAAOkB,KAAK,CAACY,QAAQ,IAAIH,KAAK,CAACM,KAAK,CAACW,MAAM,GAAG,CAAC,GAC3ClB,CAAC,CAAC,mCAAmC,EAAEC,KAAK,CAACM,KAAK,CAACW,MAAM,CAAC,GAC1DjB,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,IAAIR,OAAO,CAACS,OAAO,CAACP,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,CAAC,GAC/CR,OAAO,CAACoB,MAAM,CAAClB,KAAK,CAACM,KAAK,CAAC,CAAC,CAAC,EAAE,uBAAuB,CAAC,GACvDP,CAAC,CAACR,KAAK,CAACR,MAAM,CAAC;IACvB,CAAC,CAAC;IACF,MAAMoC,IAAI,GAAG9C,QAAQ,CAAC,MAAM;MAC1B,OAAOyB,OAAO,CAACoB,MAAM,CACnBpB,OAAO,CAACsB,OAAO,CAACtB,OAAO,CAACiB,QAAQ,CAACjB,OAAO,CAACa,YAAY,CAACb,OAAO,CAACL,IAAI,CAAC,CAAC,CAAC,EAAEe,KAAK,CAACF,KAAK,CAAC,EAAEM,IAAI,CAACN,KAAK,CAAC,EAChG,cACF,CAAC;IACH,CAAC,CAAC;IACF;IACA,MAAMe,gBAAgB,GAAGhD,QAAQ,CAAC,MAAO,qBAAoB2C,WAAW,CAACV,KAAK,GAAG,UAAU,GAAG,EAAG,aAAY,CAAC;IAC9G,MAAMgB,OAAO,GAAGjD,QAAQ,CAAC,MAAM;MAC7B,MAAMoB,IAAI,GAAGK,OAAO,CAACL,IAAI,CAACF,KAAK,CAACgC,GAAG,CAAC;MAEpC,OAAOhC,KAAK,CAACgC,GAAG,IAAIzB,OAAO,CAACS,OAAO,CAACd,IAAI,CAAC,GAAGA,IAAI,GAAG,IAAI;IACzD,CAAC,CAAC;IACF,MAAM+B,OAAO,GAAGnD,QAAQ,CAAC,MAAM;MAC7B,MAAMoB,IAAI,GAAGK,OAAO,CAACL,IAAI,CAACF,KAAK,CAACkC,GAAG,CAAC;MAEpC,OAAOlC,KAAK,CAACkC,GAAG,IAAI3B,OAAO,CAACS,OAAO,CAACd,IAAI,CAAC,GAAGA,IAAI,GAAG,IAAI;IACzD,CAAC,CAAC;IACF,MAAMiC,QAAQ,GAAGrD,QAAQ,CAAC,MAAM;MAC9B,IAAIkB,KAAK,CAACmC,QAAQ,EAAE,OAAO,IAAI;MAE/B,MAAMC,OAAO,GAAG,EAAE;MAElB,IAAIvB,QAAQ,CAACE,KAAK,KAAK,OAAO,EAAE;QAC9BqB,OAAO,CAACC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;MACnC,CAAC,MAAM;QACL,IAAIC,KAAK,GAAG/B,OAAO,CAACL,IAAI,CAAC,CAAC;QAE1BoC,KAAK,GAAG/B,OAAO,CAACsB,OAAO,CAACS,KAAK,EAAEjB,IAAI,CAACN,KAAK,CAAC;QAC1CuB,KAAK,GAAG/B,OAAO,CAACiB,QAAQ,CAACc,KAAK,EAAErB,KAAK,CAACF,KAAK,CAAC;QAE5C,IAAIgB,OAAO,CAAChB,KAAK,EAAE;UACjB,MAAMb,IAAI,GAAGK,OAAO,CAACgC,OAAO,CAAChC,OAAO,CAACa,YAAY,CAACkB,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;UAE7D/B,OAAO,CAACiC,OAAO,CAACT,OAAO,CAAChB,KAAK,EAAEb,IAAI,CAAC,IAAIkC,OAAO,CAACC,IAAI,CAAC,MAAM,CAAC;QAC9D;QAEA,IAAIJ,OAAO,CAAClB,KAAK,EAAE;UACjB,MAAMb,IAAI,GAAGK,OAAO,CAACgC,OAAO,CAAChC,OAAO,CAACkC,UAAU,CAACH,KAAK,CAAC,EAAE,CAAC,CAAC;UAE1D/B,OAAO,CAACiC,OAAO,CAACtC,IAAI,EAAE+B,OAAO,CAAClB,KAAK,CAAC,IAAIqB,OAAO,CAACC,IAAI,CAAC,MAAM,CAAC;QAC9D;MACF;MAEA,OAAOD,OAAO;IAChB,CAAC,CAAC;;IAEF;IACA;IACA;;IAEA,SAASM,WAAWA,CAAA,EAAI;MACtB,IAAIzB,KAAK,CAACF,KAAK,GAAG,EAAE,EAAE;QACpBE,KAAK,CAACF,KAAK,EAAE;MACf,CAAC,MAAM;QACLM,IAAI,CAACN,KAAK,EAAE;QACZE,KAAK,CAACF,KAAK,GAAG,CAAC;MACjB;IACF;IAEA,SAAS4B,WAAWA,CAAA,EAAI;MACtB,IAAI1B,KAAK,CAACF,KAAK,GAAG,CAAC,EAAE;QACnBE,KAAK,CAACF,KAAK,EAAE;MACf,CAAC,MAAM;QACLM,IAAI,CAACN,KAAK,EAAE;QACZE,KAAK,CAACF,KAAK,GAAG,EAAE;MAClB;IACF;IAEA,SAAS6B,WAAWA,CAAA,EAAI;MACtB/B,QAAQ,CAACE,KAAK,GAAG,OAAO;IAC1B;IAEA,SAAS8B,YAAYA,CAAA,EAAI;MACvBhC,QAAQ,CAACE,KAAK,GAAGF,QAAQ,CAACE,KAAK,KAAK,QAAQ,GAAG,OAAO,GAAG,QAAQ;IACnE;IAEA,SAAS+B,WAAWA,CAAA,EAAI;MACtBjC,QAAQ,CAACE,KAAK,GAAGF,QAAQ,CAACE,KAAK,KAAK,MAAM,GAAG,OAAO,GAAG,MAAM;IAC/D;IAEA9B,KAAK,CAACgC,KAAK,EAAE,MAAM;MACjB,IAAIJ,QAAQ,CAACE,KAAK,KAAK,QAAQ,EAAE8B,YAAY,CAAC,CAAC;MAE/CxC,IAAI,CAAC,cAAc,EAAEY,KAAK,CAACF,KAAK,CAAC;IACnC,CAAC,CAAC;IAEF9B,KAAK,CAACoC,IAAI,EAAE,MAAM;MAChB,IAAIR,QAAQ,CAACE,KAAK,KAAK,MAAM,EAAE+B,WAAW,CAAC,CAAC;MAE5CzC,IAAI,CAAC,aAAa,EAAEgB,IAAI,CAACN,KAAK,CAAC;IACjC,CAAC,CAAC;IAEF9B,KAAK,CAACwB,KAAK,EAAE,CAACsC,GAAG,EAAEC,MAAM,KAAK;MAC5B,MAAMC,MAAM,GAAG1C,OAAO,CAACL,IAAI,CAACZ,WAAW,CAACyD,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;MAChD,MAAMG,KAAK,GAAG3C,OAAO,CAACL,IAAI,CAACZ,WAAW,CAAC0D,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;MAElDvB,WAAW,CAACV,KAAK,GAAGR,OAAO,CAAC4C,QAAQ,CAACF,MAAM,EAAEC,KAAK,CAAC;IACrD,CAAC,CAAC;IAEF7D,SAAS,CAAC,MAAM;MACd,MAAM+D,WAAW,GAAG1E,OAAO,CAAC2E,WAAW,CAACrD,KAAK,CAAC;MAC9C,MAAMsD,uBAAuB,GAAGvF,mBAAmB,CAACsF,WAAW,CAACrD,KAAK,CAAC;MACtE,MAAMuD,qBAAqB,GAAGvF,iBAAiB,CAACqF,WAAW,CAACrD,KAAK,CAAC;MAClE,MAAMwD,oBAAoB,GAAGtF,gBAAgB,CAACmF,WAAW,CAACrD,KAAK,CAAC;MAChE,MAAMyD,qBAAqB,GAAGtE,IAAI,CAACf,iBAAiB,CAACiF,WAAW,CAACrD,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;MACxF,MAAM0D,oBAAoB,GAAGvE,IAAI,CAACb,gBAAgB,CAAC+E,WAAW,CAACrD,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC;MAEtF,MAAM2D,WAAW,GAAG;QAClBnE,MAAM,EAAEA,MAAM,CAACuB,KAAK;QACpB6C,UAAU,EAAE9B,gBAAgB,CAACf;MAC/B,CAAC;MAED,OAAA8C,YAAA,CAAAnF,OAAA,EAAAoF,WAAA,CAESV,WAAW;QAAA,SACT,CACL,eAAe,EACd,kBAAiBvC,QAAQ,CAACE,KAAM,EAAC,EAClC;UACE,0BAA0B,EAAEf,KAAK,CAAC+D;QACpC,CAAC,EACD/D,KAAK,CAACgE,KAAK,CACZ;QAAA,SACOhE,KAAK,CAACiE;MAAK,IACV;QACPrE,KAAK,EAAEA,CAAA,KAAMU,KAAK,CAACV,KAAK,GAAG,CAAC,IAAAiE,YAAA;UAAA;QAAA,IAEtBrD,CAAC,CAACR,KAAK,CAACJ,KAAK,CAAC,EAEnB;QACDJ,MAAM,EAAEA,CAAA,KAAMc,KAAK,CAACd,MAAM,GAAAqE,YAAA,CAAArF,iBAAA;UAAA,YAEZ;YACRR,iBAAiB,EAAE;cAAE,GAAG2F;YAAY;UACtC;QAAC;UAAAhE,OAAA,EAAAA,CAAA,MAECW,KAAK,CAACd,MAAM,GAAGmE,WAAW,CAAC;QAAA,KAAAE,YAAA,CAAA7F,iBAAA,EAAA8F,WAAA;UAAA;QAAA,GAKxBP,qBAAqB,EACrBI,WAAW;UAAA,WACN9C,QAAQ,CAACE,KAAK,KAAK,OAAO,GAAG6B,WAAW,GAAGlC;QAAS,IACrD;UACP,GAAGJ,KAAK;UACRX,OAAO,EAAEe;QACX,CAAC,CAEJ;QACDf,OAAO,EAAEA,CAAA,KAAAkE,YAAA,CAAAK,SAAA,SAAAL,YAAA,CAAA9F,mBAAA,EAAA+F,WAAA,CAGER,uBAAuB;UAAA,YACjBnB,QAAQ,CAACpB,KAAK;UAAA,QAClBa,IAAI,CAACb,KAAK;UAAA,gBACF2B,WAAW;UAAA,gBACXC,WAAW;UAAA,iBACVE,YAAY;UAAA,gBACbC;QAAW,WAAAe,YAAA,CAAAtF,eAAA;UAAA;QAAA;UAAAoB,OAAA,EAAAA,CAAA,MAIxBkB,QAAQ,CAACE,KAAK,KAAK,QAAQ,GAAA8C,YAAA,CAAAzF,iBAAA,EAAA0F,WAAA;YAAA;UAAA,GAGpBL,qBAAqB;YAAA,cAChBxC,KAAK,CAACF,KAAK;YAAA,uBAAAoD,MAAA,IAAXlD,KAAK,CAACF,KAAK,GAAAoD,MAAA;YAAA,OACfpC,OAAO,CAAChB,KAAK;YAAA,OACbkB,OAAO,CAAClB;UAAK,YAEnBF,QAAQ,CAACE,KAAK,KAAK,MAAM,GAAA8C,YAAA,CAAAvF,gBAAA,EAAAwF,WAAA;YAAA;UAAA,GAGpBJ,oBAAoB;YAAA,cACfrC,IAAI,CAACN,KAAK;YAAA,uBAAAoD,MAAA,IAAV9C,IAAI,CAACN,KAAK,GAAAoD,MAAA;YAAA,OACdpC,OAAO,CAAChB,KAAK;YAAA,OACbkB,OAAO,CAAClB;UAAK,YAAA8C,YAAA,CAAA3F,gBAAA,EAAA4F,WAAA;YAAA;UAAA,GAKdN,oBAAoB;YAAA,cACf/C,KAAK,CAACM,KAAK;YAAA,uBAAAoD,MAAA,IAAX1D,KAAK,CAACM,KAAK,GAAAoD,MAAA;YAAA,SACLlD,KAAK,CAACF,KAAK;YAAA,kBAAAoD,MAAA,IAAXlD,KAAK,CAACF,KAAK,GAAAoD,MAAA;YAAA,QACZ9C,IAAI,CAACN,KAAK;YAAA,iBAAAoD,MAAA,IAAV9C,IAAI,CAACN,KAAK,GAAAoD,MAAA;YAAA,OACnBpC,OAAO,CAAChB,KAAK;YAAA,OACbkB,OAAO,CAAClB;UAAK,SAEtB;QAAA,IAGN;QACDqD,OAAO,EAAE9D,KAAK,CAAC8D;MACjB,CAAC;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -7,12 +7,13 @@ import { VBtn } from "../VBtn/index.mjs";
|
|
|
7
7
|
import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs"; // Composables
|
|
8
8
|
import { makeCalendarProps, useCalendar } from "../../composables/calendar.mjs";
|
|
9
9
|
import { useDate } from "../../composables/date/date.mjs"; // Utilities
|
|
10
|
-
import { ref } from 'vue';
|
|
11
|
-
import { genericComponent, propsFactory } from "../../util/index.mjs";
|
|
10
|
+
import { computed, ref, shallowRef } from 'vue';
|
|
11
|
+
import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
|
|
12
12
|
export const makeVDatePickerMonthProps = propsFactory({
|
|
13
13
|
color: String,
|
|
14
14
|
hideWeekdays: Boolean,
|
|
15
|
-
multiple: Boolean,
|
|
15
|
+
multiple: [Boolean, Number, String],
|
|
16
|
+
range: Boolean,
|
|
16
17
|
showWeek: Boolean,
|
|
17
18
|
...makeCalendarProps()
|
|
18
19
|
}, 'VDatePickerMonth');
|
|
@@ -36,16 +37,57 @@ export const VDatePickerMonth = genericComponent()({
|
|
|
36
37
|
weekNumbers
|
|
37
38
|
} = useCalendar(props); // TODO: fix typing
|
|
38
39
|
const adapter = useDate();
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
const rangeStart = shallowRef();
|
|
41
|
+
const rangeStop = shallowRef();
|
|
42
|
+
const atMax = computed(() => {
|
|
43
|
+
const max = ['number', 'string'].includes(typeof props.multiple) ? Number(props.multiple) : Infinity;
|
|
44
|
+
return model.value.length >= max;
|
|
45
|
+
});
|
|
46
|
+
function onRangeClick(value) {
|
|
47
|
+
const _value = adapter.startOfDay(value);
|
|
48
|
+
if (!rangeStart.value) {
|
|
49
|
+
rangeStart.value = _value;
|
|
50
|
+
model.value = [rangeStart.value];
|
|
51
|
+
} else if (!rangeStop.value) {
|
|
52
|
+
if (adapter.isSameDay(value, rangeStart.value)) {
|
|
53
|
+
rangeStart.value = undefined;
|
|
54
|
+
model.value = [];
|
|
55
|
+
return;
|
|
56
|
+
} else if (adapter.isBefore(value, rangeStart.value)) {
|
|
57
|
+
rangeStop.value = rangeStart.value;
|
|
58
|
+
rangeStart.value = _value;
|
|
44
59
|
} else {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
60
|
+
rangeStop.value = _value;
|
|
61
|
+
}
|
|
62
|
+
const diff = adapter.getDiff(rangeStop.value, rangeStart.value);
|
|
63
|
+
const datesInRange = [rangeStart.value];
|
|
64
|
+
for (let i = 1; i < diff; i++) {
|
|
65
|
+
const nextDate = adapter.addDays(rangeStart.value, i);
|
|
66
|
+
datesInRange.push(nextDate);
|
|
48
67
|
}
|
|
68
|
+
datesInRange.push(rangeStop.value);
|
|
69
|
+
model.value = datesInRange;
|
|
70
|
+
} else {
|
|
71
|
+
rangeStart.value = value;
|
|
72
|
+
rangeStop.value = undefined;
|
|
73
|
+
model.value = [rangeStart.value];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function onMultipleClick(value) {
|
|
77
|
+
const index = model.value.findIndex(selection => adapter.isSameDay(selection, value));
|
|
78
|
+
if (index === -1) {
|
|
79
|
+
model.value = [...model.value, value];
|
|
80
|
+
} else {
|
|
81
|
+
const value = [...model.value];
|
|
82
|
+
value.splice(index, 1);
|
|
83
|
+
model.value = value;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
function onClick(value) {
|
|
87
|
+
if (props.multiple === 'range') {
|
|
88
|
+
onRangeClick(value);
|
|
89
|
+
} else if (props.multiple) {
|
|
90
|
+
onMultipleClick(value);
|
|
49
91
|
} else {
|
|
50
92
|
model.value = [value];
|
|
51
93
|
}
|
|
@@ -73,6 +115,9 @@ export const VDatePickerMonth = genericComponent()({
|
|
|
73
115
|
item,
|
|
74
116
|
i
|
|
75
117
|
};
|
|
118
|
+
if (atMax.value && !item.isSelected) {
|
|
119
|
+
item.isDisabled = true;
|
|
120
|
+
}
|
|
76
121
|
return _createVNode("div", {
|
|
77
122
|
"class": ['v-date-picker-month__day', {
|
|
78
123
|
'v-date-picker-month__day--adjacent': item.isAdjacent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","VDefaultsProvider","makeCalendarProps","useCalendar","useDate","ref","genericComponent","propsFactory","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","showWeek","VDatePickerMonth","name","props","emits","date","setup","_ref","emit","slots","daysRef","daysInMonth","model","weekNumbers","adapter","onClick","value","index","findIndex","selection","isSameDay","splice","_createVNode","_createTextVNode","map","week","getWeekdays","weekDay","item","i","slotProps","isAdjacent","isHidden","isSelected","isWeekEnd","isWeekStart","isDisabled","isoDate","undefined","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 { ref } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\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,\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: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const {\n daysInMonth,\n model,\n weekNumbers,\n } = useCalendar(props as any) // TODO: fix typing\n const adapter = useDate()\n\n function onClick (value: unknown) {\n if (props.multiple) {\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 } 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[0] }</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 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":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB,0CAE1B;AAAA,SACSC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,OAAO,2CAEhB;AACA,SAASC,GAAG,QAAQ,KAAK;AAAA,SAChBC,gBAAgB,EAAEC,YAAY;AAYvC,OAAO,MAAMC,yBAAyB,GAAGD,YAAY,CAAC;EACpDE,KAAK,EAAEC,MAAM;EACbC,YAAY,EAAEC,OAAO;EACrBC,QAAQ,EAAED,OAAO;EACjBE,QAAQ,EAAEF,OAAO;EAEjB,GAAGV,iBAAiB,CAAC;AACvB,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMa,gBAAgB,GAAGT,gBAAgB,CAAwB,CAAC,CAAC;EACxEU,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAET,yBAAyB,CAAC,CAAC;EAElCU,KAAK,EAAE;IACL,mBAAmB,EAAGC,IAAS,IAAK,IAAI;IACxC,cAAc,EAAGA,IAAS,IAAK,IAAI;IACnC,aAAa,EAAGA,IAAS,IAAK;EAChC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAMG,OAAO,GAAGnB,GAAG,CAAC,CAAC;IAErB,MAAM;MACJoB,WAAW;MACXC,KAAK;MACLC;IACF,CAAC,GAAGxB,WAAW,CAACc,KAAY,CAAC,EAAC;IAC9B,MAAMW,OAAO,GAAGxB,OAAO,CAAC,CAAC;IAEzB,SAASyB,OAAOA,CAAEC,KAAc,EAAE;MAChC,IAAIb,KAAK,CAACJ,QAAQ,EAAE;QAClB,MAAMkB,KAAK,GAAGL,KAAK,CAACI,KAAK,CAACE,SAAS,CAACC,SAAS,IAAIL,OAAO,CAACM,SAAS,CAACD,SAAS,EAAEH,KAAK,CAAC,CAAC;QAErF,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;UAChBL,KAAK,CAACI,KAAK,GAAG,CAAC,GAAGJ,KAAK,CAACI,KAAK,EAAEA,KAAK,CAAC;QACvC,CAAC,MAAM;UACL,MAAMA,KAAK,GAAG,CAAC,GAAGJ,KAAK,CAACI,KAAK,CAAC;UAC9BA,KAAK,CAACK,MAAM,CAACJ,KAAK,EAAE,CAAC,CAAC;UACtBL,KAAK,CAACI,KAAK,GAAGA,KAAK;QACrB;MACF,CAAC,MAAM;QACLJ,KAAK,CAACI,KAAK,GAAG,CAACA,KAAK,CAAC;MACvB;IACF;IAEA,OAAO,MAAAM,YAAA;MAAA;IAAA,IAEDnB,KAAK,CAACH,QAAQ,IAAAsB,YAAA;MAAA;MAAA;IAAA,IAEV,CAACnB,KAAK,CAACN,YAAY,IAAAyB,YAAA;MAAA;MAAA;IAAA,IAAAC,gBAAA,UAEpB,EACCV,WAAW,CAACG,KAAK,CAACQ,GAAG,CAACC,IAAI,IAAAH,YAAA;MAAA,SAEjB,CACL,0BAA0B,EAC1B,oCAAoC;IACrC,IACAG,IAAI,EACR,CAAC,EAEL,EAAAH,YAAA;MAAA,OAGOZ,OAAO;MAAA;IAAA,IAGX,CAACP,KAAK,CAACN,YAAY,IAAIiB,OAAO,CAACY,WAAW,CAAC,CAAC,CAACF,GAAG,CAACG,OAAO,IAAAL,YAAA;MAAA,SAE/C,CACL,0BAA0B,EAC1B,8BAA8B;IAC/B,IACAK,OAAO,CAAC,CAAC,CAAC,EACd,CAAC,EAEAhB,WAAW,CAACK,KAAK,CAACQ,GAAG,CAAC,CAACI,IAAI,EAAEC,CAAC,KAAK;MACnC,MAAMC,SAAS,GAAG;QAChB3B,KAAK,EAAE;UACLY,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACa,IAAI,CAACvB,IAAI;QAClC,CAAC;QACDuB,IAAI;QACJC;MACF,CAAU;MAEV,OAAAP,YAAA;QAAA,SAEW,CACL,0BAA0B,EAC1B;UACE,oCAAoC,EAAEM,IAAI,CAACG,UAAU;UACrD,yCAAyC,EAAEH,IAAI,CAACI,QAAQ;UACxD,oCAAoC,EAAEJ,IAAI,CAACK,UAAU;UACrD,oCAAoC,EAAEL,IAAI,CAACM,SAAS;UACpD,sCAAsC,EAAEN,IAAI,CAACO;QAC/C,CAAC,CACF;QAAA,eACa,CAACP,IAAI,CAACQ,UAAU,GAAGR,IAAI,CAACS,OAAO,GAAGC;MAAS,IAGvD,CAACnC,KAAK,CAACoC,kBAAkB,IAAI,CAACX,IAAI,CAACG,UAAU,KAAAT,YAAA,CAAAnC,iBAAA;QAAA,YAEjC;UACRD,IAAI,EAAE;YACJS,KAAK,EAAE,CAACiC,IAAI,CAACK,UAAU,IAAIL,IAAI,CAACY,OAAO,KAAK,CAACZ,IAAI,CAACQ,UAAU,GACxDjC,KAAK,CAACR,KAAK,GACX2C,SAAS;YACbG,QAAQ,EAAEb,IAAI,CAACQ,UAAU;YACzBM,IAAI,EAAE,IAAI;YACVC,MAAM,EAAE,KAAK;YACbC,IAAI,EAAEhB,IAAI,CAACiB,SAAS;YACpBC,OAAO,EAAElB,IAAI,CAACQ,UAAU,GACpB,MAAM,GACNR,IAAI,CAACY,OAAO,IAAI,CAACZ,IAAI,CAACK,UAAU,GAAG,UAAU,GAAG,MAAM;YAC1DlB,OAAO,EAAEA,CAAA,KAAMA,OAAO,CAACa,IAAI,CAACvB,IAAI;UAClC;QACF;MAAC;QAAA0C,OAAA,EAAAA,CAAA,MAECtC,KAAK,CAACuC,GAAG,GAAGlB,SAAS,CAAC,IAAAR,YAAA,CAAApC,IAAA,EACX4C,SAAS,CAAC3B,KAAK,OAC3B;MAAA,EAEJ;IAGP,CAAC,CAAC,IAGP;EACH;AACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"VDatePickerMonth.mjs","names":["VBtn","VDefaultsProvider","makeCalendarProps","useCalendar","useDate","computed","ref","shallowRef","genericComponent","propsFactory","makeVDatePickerMonthProps","color","String","hideWeekdays","Boolean","multiple","Number","range","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' | string | number>,\n range: Boolean,\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: any) => true,\n 'update:month': (date: any) => true,\n 'update:year': (date: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const daysRef = ref()\n\n const { daysInMonth, model, weekNumbers } = useCalendar(props as any) // TODO: fix typing\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[0] }</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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"}
|