@vuetify/nightly 3.9.3-master.2025-08-03 → 3.9.3-master.2025-08-05
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 +7 -6
- package/dist/json/attributes.json +3159 -3171
- package/dist/json/importMap-labs.json +42 -42
- package/dist/json/importMap.json +174 -174
- package/dist/json/tags.json +1 -4
- package/dist/json/web-types.json +5928 -6047
- package/dist/vuetify-labs.cjs +30 -71
- package/dist/vuetify-labs.css +3504 -3503
- package/dist/vuetify-labs.d.ts +86 -160
- package/dist/vuetify-labs.esm.js +30 -71
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +30 -71
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +26 -70
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4352 -4351
- package/dist/vuetify.d.ts +81 -132
- package/dist/vuetify.esm.js +26 -70
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +26 -70
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +245 -251
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +1 -0
- package/lib/components/VDataIterator/VDataIterator.d.ts +2 -2
- package/lib/components/VDataIterator/VDataIterator.js +1 -1
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +4 -6
- package/lib/components/VDataTable/VDataTable.js +1 -1
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +11 -14
- package/lib/components/VDataTable/VDataTableRows.js +0 -9
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +2 -4
- package/lib/components/VDataTable/VDataTableServer.js +1 -1
- package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +2 -4
- package/lib/components/VDataTable/VDataTableVirtual.js +1 -1
- package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
- package/lib/components/VDataTable/composables/group.d.ts +5 -13
- package/lib/components/VDataTable/composables/group.js +5 -11
- package/lib/components/VDataTable/composables/group.js.map +1 -1
- package/lib/components/VDataTable/composables/paginate.d.ts +3 -3
- package/lib/components/VDataTable/composables/paginate.js.map +1 -1
- package/lib/components/VDataTable/types.d.ts +1 -7
- package/lib/components/VDataTable/types.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.d.ts +0 -25
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +0 -25
- package/lib/components/VOverlay/scrollStrategies.js +7 -7
- package/lib/components/VOverlay/scrollStrategies.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewChildren.d.ts +2 -20
- package/lib/components/VTreeview/VTreeviewChildren.js +2 -7
- package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/composables/calendar.d.ts +0 -12
- package/lib/composables/calendar.js +1 -5
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +1 -1
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/string.d.ts +1 -1
- package/lib/composables/date/adapters/string.js +2 -2
- package/lib/composables/date/adapters/string.js.map +1 -1
- package/lib/composables/date/adapters/vuetify.d.ts +1 -1
- package/lib/composables/date/adapters/vuetify.js +5 -25
- package/lib/composables/date/adapters/vuetify.js.map +1 -1
- package/lib/composables/date/date.d.ts +1 -1
- package/lib/entry-bundler.d.ts +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +66 -66
- package/lib/framework.js +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +0 -25
- package/lib/labs/VDateInput/VDateInput.d.ts +0 -25
- package/lib/labs/VVideo/VVideo.css +3 -3
- package/lib/labs/VVideo/VVideo.d.ts +10 -0
- package/lib/labs/VVideo/VVideo.js +4 -1
- package/lib/labs/VVideo/VVideo.js.map +1 -1
- package/lib/labs/VVideo/VVideo.sass +2 -2
- package/lib/labs/VVideo/_variables.scss +3 -2
- package/lib/labs/entry-bundler.d.ts +1 -1
- package/package.json +1 -1
@@ -691,7 +691,7 @@ export declare const VDataTableVirtual: {
|
|
691
691
|
'update:options': (value: any) => true;
|
692
692
|
'update:groupBy': (value: any) => true;
|
693
693
|
'update:expanded': (value: any) => true;
|
694
|
-
}, "headers" | "$children" | "v-slots" | "modelValue" | "cellProps" | "items" | "itemValue" | "itemSelectable" | "rowProps" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "v-slot:no-data" | "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-
|
694
|
+
}, "headers" | "$children" | "v-slots" | "modelValue" | "cellProps" | "items" | "itemValue" | "itemSelectable" | "rowProps" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "v-slot:no-data" | "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:tbody" | "v-slot:tfoot" | "v-slot:thead" | "v-slot:body.prepend" | "v-slot:body.append">, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
|
695
695
|
expanded: readonly string[];
|
696
696
|
style: import("vue").StyleValue;
|
697
697
|
mobile: boolean | null;
|
@@ -756,7 +756,6 @@ export declare const VDataTableVirtual: {
|
|
756
756
|
}) => import("vue").VNode[];
|
757
757
|
loading: () => import("vue").VNode[];
|
758
758
|
'group-header': (arg: import("./types.js").GroupHeaderSlot) => import("vue").VNode[];
|
759
|
-
'group-summary': (arg: import("./types.js").GroupSummarySlot) => import("vue").VNode[];
|
760
759
|
'no-data': () => import("vue").VNode[];
|
761
760
|
'expanded-row': (arg: import("./types.js").ItemSlot<any>) => import("vue").VNode[];
|
762
761
|
headers: (arg: import("./VDataTableHeaders.js").HeadersSlotProps) => import("vue").VNode[];
|
@@ -929,7 +928,7 @@ export declare const VDataTableVirtual: {
|
|
929
928
|
'update:options': (value: any) => true;
|
930
929
|
'update:groupBy': (value: any) => true;
|
931
930
|
'update:expanded': (value: any) => true;
|
932
|
-
}, "headers" | "$children" | "v-slots" | "modelValue" | "cellProps" | "items" | "itemValue" | "itemSelectable" | "rowProps" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "v-slot:no-data" | "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-
|
931
|
+
}, "headers" | "$children" | "v-slots" | "modelValue" | "cellProps" | "items" | "itemValue" | "itemSelectable" | "rowProps" | "update:modelValue" | "v-slot:loader" | "v-slot:item" | "v-slot:no-data" | "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:tbody" | "v-slot:tfoot" | "v-slot:thead" | "v-slot:body.prepend" | "v-slot:body.append">, string, {
|
933
932
|
expanded: readonly string[];
|
934
933
|
style: import("vue").StyleValue;
|
935
934
|
mobile: boolean | null;
|
@@ -994,7 +993,6 @@ export declare const VDataTableVirtual: {
|
|
994
993
|
}) => import("vue").VNode[];
|
995
994
|
loading: () => import("vue").VNode[];
|
996
995
|
'group-header': (arg: import("./types.js").GroupHeaderSlot) => import("vue").VNode[];
|
997
|
-
'group-summary': (arg: import("./types.js").GroupSummarySlot) => import("vue").VNode[];
|
998
996
|
'no-data': () => import("vue").VNode[];
|
999
997
|
'expanded-row': (arg: import("./types.js").ItemSlot<any>) => import("vue").VNode[];
|
1000
998
|
headers: (arg: import("./VDataTableHeaders.js").HeadersSlotProps) => import("vue").VNode[];
|
@@ -101,7 +101,7 @@ export const VDataTableVirtual = genericComponent()({
|
|
101
101
|
});
|
102
102
|
const {
|
103
103
|
flatItems
|
104
|
-
} = useGroupedItems(sortedItems, groupBy, opened
|
104
|
+
} = useGroupedItems(sortedItems, groupBy, opened);
|
105
105
|
const allItems = computed(() => extractRows(flatItems.value));
|
106
106
|
const {
|
107
107
|
isSelected,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDataTableVirtual.js","names":["makeDataTableProps","VDataTableHeaders","VDataTableRow","VDataTableRows","VTable","VVirtualScrollItem","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","provideSelection","createSort","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","makeVirtualProps","useVirtual","computed","shallowRef","toRef","toRefs","convertToUnit","genericComponent","omit","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","setup","_ref","attrs","slots","groupBy","sortBy","multiSort","mustSort","disableSort","columns","headers","filterFunctions","sortFunctions","sortRawFunctions","showSelect","showExpand","items","search","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","raw","flatItems","allItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","currentPage","isExpanded","toggleExpand","containerRef","markerRef","paddingTop","paddingBottom","computedItems","handleItemResize","handleScroll","handleScrollend","calculateVisibleItems","scrollToIndex","displayItems","map","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","internalItems","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","fixedHeader","sticky","top","wrapper","_createElementVNode","height","colgroup","hideDefaultHeader","thead","hideDefaultBody","border","length","itemSlotProps","internalItem","index","default","_ref2","itemRef","tbody","tfoot","bottom"],"sources":["../../../src/components/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef, toRefs } from 'vue'\nimport { convertToUnit, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly } from 'vue'\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { CellProps, DataTableHeader, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey, TemplateRef } from '@/util'\n\ntype VDataTableVirtualSlotProps<T> = Omit<\n VDataTableSlotProps<T>,\n | 'setItemsPerPage'\n | 'page'\n | 'pageCount'\n | 'itemsPerPage'\n>\n\nexport type VDataTableVirtualSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n colgroup: VDataTableVirtualSlotProps<T>\n top: VDataTableVirtualSlotProps<T>\n headers: VDataTableHeadersSlots['headers']\n tbody: VDataTableVirtualSlotProps<T>\n thead: VDataTableVirtualSlotProps<T>\n tfoot: VDataTableVirtualSlotProps<T>\n bottom: VDataTableVirtualSlotProps<T>\n 'body.prepend': VDataTableVirtualSlotProps<T>\n 'body.append': VDataTableVirtualSlotProps<T>\n item: {\n itemRef: TemplateRef\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...omit(makeDataTableProps(), ['hideDefaultFooter']),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableVirtual = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n headers?: DeepReadonly<DataTableHeader<ItemType<T>>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableVirtualSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(() => props.showSelect),\n showExpand: toRef(() => props.showExpand),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(() => props.search)\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary'])\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n calculateVisibleItems,\n scrollToIndex,\n } = useVirtual(props, flatItems)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(() => props.hideNoData),\n noDataText: toRef(() => props.noDataText),\n loading: toRef(() => props.loading),\n loadingText: toRef(() => props.loadingText),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps<any>>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n fixedHeader={ props.fixedHeader || props.sticky }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n <thead key=\"thead\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n v-slots={ slots }\n />\n </thead>\n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n <tbody key=\"tbody\">\n <tr ref={ markerRef } style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n\n { slots['body.prepend']?.(slotProps.value) }\n\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ displayItems.value }\n >\n {{\n ...slots,\n item: itemSlotProps => (\n <VVirtualScrollItem\n key={ itemSlotProps.internalItem.index }\n renderless\n onUpdate:height={ height => handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n <VDataTableRow\n { ...itemSlotProps.props }\n ref={ itemRef }\n key={ itemSlotProps.internalItem.index }\n index={ itemSlotProps.internalItem.index }\n v-slots={ slots }\n />\n )\n )}\n </VVirtualScrollItem>\n ),\n }}\n </VDataTableRows>\n\n { slots['body.append']?.(slotProps.value) }\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n </tbody>\n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n\n return {\n calculateVisibleItems,\n scrollToIndex,\n }\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VDataTableVirtual.js","names":["makeDataTableProps","VDataTableHeaders","VDataTableRow","VDataTableRows","VTable","VVirtualScrollItem","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","provideSelection","createSort","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","makeVirtualProps","useVirtual","computed","shallowRef","toRef","toRefs","convertToUnit","genericComponent","omit","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","setup","_ref","attrs","slots","groupBy","sortBy","multiSort","mustSort","disableSort","columns","headers","filterFunctions","sortFunctions","sortRawFunctions","showSelect","showExpand","items","search","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","raw","flatItems","allItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","currentPage","isExpanded","toggleExpand","containerRef","markerRef","paddingTop","paddingBottom","computedItems","handleItemResize","handleScroll","handleScrollend","calculateVisibleItems","scrollToIndex","displayItems","map","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","internalItems","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","fixedHeader","sticky","top","wrapper","_createElementVNode","height","colgroup","hideDefaultHeader","thead","hideDefaultBody","border","length","itemSlotProps","internalItem","index","default","_ref2","itemRef","tbody","tfoot","bottom"],"sources":["../../../src/components/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef, toRefs } from 'vue'\nimport { convertToUnit, genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly } from 'vue'\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { CellProps, DataTableHeader, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey, TemplateRef } from '@/util'\n\ntype VDataTableVirtualSlotProps<T> = Omit<\n VDataTableSlotProps<T>,\n | 'setItemsPerPage'\n | 'page'\n | 'pageCount'\n | 'itemsPerPage'\n>\n\nexport type VDataTableVirtualSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n colgroup: VDataTableVirtualSlotProps<T>\n top: VDataTableVirtualSlotProps<T>\n headers: VDataTableHeadersSlots['headers']\n tbody: VDataTableVirtualSlotProps<T>\n thead: VDataTableVirtualSlotProps<T>\n tfoot: VDataTableVirtualSlotProps<T>\n bottom: VDataTableVirtualSlotProps<T>\n 'body.prepend': VDataTableVirtualSlotProps<T>\n 'body.append': VDataTableVirtualSlotProps<T>\n item: {\n itemRef: TemplateRef\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...omit(makeDataTableProps(), ['hideDefaultFooter']),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableVirtual = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n headers?: DeepReadonly<DataTableHeader<ItemType<T>>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableVirtualSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { disableSort } = toRefs(props)\n\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(() => props.showSelect),\n showExpand: toRef(() => props.showExpand),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(() => props.search)\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy, disableSort })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => ({ ...item.raw, ...item.columns }),\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n calculateVisibleItems,\n scrollToIndex,\n } = useVirtual(props, flatItems)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(() => props.hideNoData),\n noDataText: toRef(() => props.noDataText),\n loading: toRef(() => props.loading),\n loadingText: toRef(() => props.loadingText),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps<any>>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n fixedHeader={ props.fixedHeader || props.sticky }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n <thead key=\"thead\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n v-slots={ slots }\n />\n </thead>\n )}\n { slots.thead?.(slotProps.value) }\n { !props.hideDefaultBody && (\n <tbody key=\"tbody\">\n <tr ref={ markerRef } style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n\n { slots['body.prepend']?.(slotProps.value) }\n\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ displayItems.value }\n >\n {{\n ...slots,\n item: itemSlotProps => (\n <VVirtualScrollItem\n key={ itemSlotProps.internalItem.index }\n renderless\n onUpdate:height={ height => handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n <VDataTableRow\n { ...itemSlotProps.props }\n ref={ itemRef }\n key={ itemSlotProps.internalItem.index }\n index={ itemSlotProps.internalItem.index }\n v-slots={ slots }\n />\n )\n )}\n </VVirtualScrollItem>\n ),\n }}\n </VDataTableRows>\n\n { slots['body.append']?.(slotProps.value) }\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n </tbody>\n )}\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n\n return {\n calculateVisibleItems,\n scrollToIndex,\n }\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type {
|
1
|
+
import type { PropType, Ref } from 'vue';
|
2
2
|
import type { SortItem } from './sort.js';
|
3
3
|
import type { DataTableItem } from '../types.js';
|
4
4
|
export interface GroupableItem<T = any> {
|
@@ -11,15 +11,7 @@ export interface Group<T = any> {
|
|
11
11
|
id: string;
|
12
12
|
key: string;
|
13
13
|
value: any;
|
14
|
-
items: readonly (T | Group<T>
|
15
|
-
}
|
16
|
-
export interface GroupSummary<T = any> {
|
17
|
-
type: 'group-summary';
|
18
|
-
depth: number;
|
19
|
-
id: string;
|
20
|
-
key: string;
|
21
|
-
value: any;
|
22
|
-
items: readonly (T | Group<T> | GroupSummary<T>)[];
|
14
|
+
items: readonly (T | Group<T>)[];
|
23
15
|
}
|
24
16
|
export declare const makeDataTableGroupProps: <Defaults extends {
|
25
17
|
groupBy?: unknown;
|
@@ -53,7 +45,7 @@ export declare function provideGroupBy(options: {
|
|
53
45
|
toggleGroup: (group: Group) => void;
|
54
46
|
opened: Ref<Set<string> & Omit<Set<string>, keyof Set<any>>, Set<string> | (Set<string> & Omit<Set<string>, keyof Set<any>>)>;
|
55
47
|
groupBy: Ref<readonly SortItem[], readonly SortItem[]>;
|
56
|
-
extractRows: <T extends GroupableItem>(items: readonly (T | Group<T>
|
48
|
+
extractRows: <T extends GroupableItem>(items: readonly (T | Group<T>)[]) => T[];
|
57
49
|
isGroupOpen: (group: Group) => boolean;
|
58
50
|
};
|
59
51
|
export declare function useGroupBy(): {
|
@@ -64,7 +56,7 @@ export declare function useGroupBy(): {
|
|
64
56
|
groupBy: Ref<readonly SortItem[]>;
|
65
57
|
extractRows: (items: (DataTableItem | Group<DataTableItem>)[]) => DataTableItem[];
|
66
58
|
};
|
67
|
-
export declare function useGroupedItems<T extends GroupableItem>(items: Ref<T[]>, groupBy: Ref<readonly SortItem[]>, opened: Ref<Set<string
|
68
|
-
flatItems: import("vue").ComputedRef<readonly (T | Group<T>
|
59
|
+
export declare function useGroupedItems<T extends GroupableItem>(items: Ref<T[]>, groupBy: Ref<readonly SortItem[]>, opened: Ref<Set<string>>): {
|
60
|
+
flatItems: import("vue").ComputedRef<readonly (T | Group<T>)[]>;
|
69
61
|
};
|
70
62
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
// Composables
|
2
2
|
import { useProxiedModel } from "../../../composables/proxiedModel.js"; // Utilities
|
3
|
-
import { computed, inject, provide, ref
|
3
|
+
import { computed, inject, provide, ref } from 'vue';
|
4
4
|
import { getObjectValueByPath, propsFactory } from "../../../util/index.js"; // Types
|
5
5
|
export const makeDataTableGroupProps = propsFactory({
|
6
6
|
groupBy: {
|
@@ -113,7 +113,7 @@ function groupItems(items, groupBy) {
|
|
113
113
|
});
|
114
114
|
return groups;
|
115
115
|
}
|
116
|
-
function flattenItems(items, opened
|
116
|
+
function flattenItems(items, opened) {
|
117
117
|
const flatItems = [];
|
118
118
|
for (const item of items) {
|
119
119
|
// TODO: make this better
|
@@ -122,13 +122,7 @@ function flattenItems(items, opened, hasSummary) {
|
|
122
122
|
flatItems.push(item);
|
123
123
|
}
|
124
124
|
if (opened.has(item.id) || item.value == null) {
|
125
|
-
flatItems.push(...flattenItems(item.items, opened
|
126
|
-
if (hasSummary) {
|
127
|
-
flatItems.push({
|
128
|
-
...item,
|
129
|
-
type: 'group-summary'
|
130
|
-
});
|
131
|
-
}
|
125
|
+
flatItems.push(...flattenItems(item.items, opened));
|
132
126
|
}
|
133
127
|
} else {
|
134
128
|
flatItems.push(item);
|
@@ -136,11 +130,11 @@ function flattenItems(items, opened, hasSummary) {
|
|
136
130
|
}
|
137
131
|
return flatItems;
|
138
132
|
}
|
139
|
-
export function useGroupedItems(items, groupBy, opened
|
133
|
+
export function useGroupedItems(items, groupBy, opened) {
|
140
134
|
const flatItems = computed(() => {
|
141
135
|
if (!groupBy.value.length) return items.value;
|
142
136
|
const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key));
|
143
|
-
return flattenItems(groupedItems, opened.value
|
137
|
+
return flattenItems(groupedItems, opened.value);
|
144
138
|
});
|
145
139
|
return {
|
146
140
|
flatItems
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"group.js","names":["useProxiedModel","computed","inject","provide","ref","toValue","getObjectValueByPath","propsFactory","makeDataTableGroupProps","groupBy","type","Array","default","VDataTableGroupSymbol","Symbol","for","createGroupBy","props","provideGroupBy","options","disableSort","sortBy","opened","Set","sortByWithGroups","value","map","val","order","concat","isGroupOpen","group","has","id","toggleGroup","newOpened","add","delete","extractRows","items","dive","arr","item","push","key","depth","data","useGroupBy","Error","groupItemsByProperty","length","groups","Map","raw","set","get","groupItems","arguments","undefined","prefix","groupedItems","rest","slice","forEach","flattenItems","hasSummary","flatItems","useGroupedItems"],"sources":["../../../../src/components/VDataTable/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref, toValue } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, MaybeRefOrGetter, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableItem } from '../types'\n\nexport interface GroupableItem<T = any> {\n type: 'item'\n raw: T\n}\n\nexport interface Group<T = any> {\n type: 'group'\n depth: number\n id: string\n key: string\n value: any\n items: readonly (T | Group<T> | GroupSummary<T>)[]\n}\n\nexport interface GroupSummary<T = any> {\n type: 'group-summary'\n depth: number\n id: string\n key: string\n value: any\n items: readonly (T | Group<T> | GroupSummary<T>)[]\n}\n\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array as PropType<readonly SortItem[]>,\n default: () => ([]),\n },\n}, 'DataTable-group')\n\nconst VDataTableGroupSymbol: InjectionKey<{\n opened: Ref<Set<string>>\n toggleGroup: (group: Group) => void\n isGroupOpen: (group: Group) => boolean\n sortByWithGroups: Ref<SortItem[]>\n groupBy: Ref<readonly SortItem[]>\n extractRows: (items: (DataTableItem | Group<DataTableItem>)[]) => DataTableItem[]\n}> = Symbol.for('vuetify:data-table-group')\n\ntype GroupProps = {\n groupBy: readonly SortItem[]\n 'onUpdate:groupBy': ((value: SortItem[]) => void) | undefined\n}\n\nexport function createGroupBy (props: GroupProps) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n return { groupBy }\n}\n\nexport function provideGroupBy (options: {\n groupBy: Ref<readonly SortItem[]>\n sortBy: Ref<readonly SortItem[]>\n disableSort?: Ref<boolean>\n}) {\n const { disableSort, groupBy, sortBy } = options\n const opened = ref(new Set<string>())\n\n const sortByWithGroups = computed(() => {\n return groupBy.value.map<SortItem>(val => ({\n ...val,\n order: val.order ?? false,\n })).concat(disableSort?.value ? [] : sortBy.value)\n })\n\n function isGroupOpen (group: Group) {\n return opened.value.has(group.id)\n }\n\n function toggleGroup (group: Group) {\n const newOpened = new Set(opened.value)\n if (!isGroupOpen(group)) newOpened.add(group.id)\n else newOpened.delete(group.id)\n\n opened.value = newOpened\n }\n\n function extractRows <T extends GroupableItem> (items: readonly (T | Group<T> | GroupSummary<T>)[]) {\n function dive (group: Group<T>): T[] {\n const arr = []\n\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item))\n } else {\n arr.push(item as T)\n }\n }\n\n return [...new Set(arr)]\n }\n return dive({ type: 'group', items, id: 'dummy', key: 'dummy', value: 'dummy', depth: 0 })\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = { sortByWithGroups, toggleGroup, opened, groupBy, extractRows, isGroupOpen }\n\n provide(VDataTableGroupSymbol, data)\n\n return data\n}\n\nexport function useGroupBy () {\n const data = inject(VDataTableGroupSymbol)\n\n if (!data) throw new Error('Missing group!')\n\n return data\n}\n\nfunction groupItemsByProperty <T extends GroupableItem> (items: readonly T[], groupBy: string) {\n if (!items.length) return []\n\n const groups = new Map<any, T[]>()\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy)\n\n if (!groups.has(value)) {\n groups.set(value, [])\n }\n groups.get(value)!.push(item)\n }\n\n return groups\n}\n\nfunction groupItems <T extends GroupableItem> (items: readonly T[], groupBy: readonly string[], depth = 0, prefix = 'root') {\n if (!groupBy.length) return []\n\n const groupedItems = groupItemsByProperty(items, groupBy[0])\n const groups: Group<T>[] = []\n\n const rest = groupBy.slice(1)\n groupedItems.forEach((items, value) => {\n const key = groupBy[0]\n const id = `${prefix}_${key}_${value}`\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group',\n })\n })\n\n return groups\n}\n\nfunction flattenItems <T extends GroupableItem> (\n items: readonly (T | Group<T> | GroupSummary<T>)[],\n opened: Set<string>,\n hasSummary: boolean\n): readonly (T | Group<T> | GroupSummary<T>)[] {\n const flatItems: (T | Group<T> | GroupSummary<T>)[] = []\n\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item)\n }\n\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened, hasSummary))\n\n if (hasSummary) {\n flatItems.push({ ...item, type: 'group-summary' })\n }\n }\n } else {\n flatItems.push(item)\n }\n }\n\n return flatItems\n}\n\nexport function useGroupedItems <T extends GroupableItem> (\n items: Ref<T[]>,\n groupBy: Ref<readonly SortItem[]>,\n opened: Ref<Set<string>>,\n hasSummary: MaybeRefOrGetter<boolean>,\n) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value\n\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key))\n\n return flattenItems(groupedItems, opened.value, toValue(hasSummary))\n })\n\n return { flatItems }\n}\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"group.js","names":["useProxiedModel","computed","inject","provide","ref","getObjectValueByPath","propsFactory","makeDataTableGroupProps","groupBy","type","Array","default","VDataTableGroupSymbol","Symbol","for","createGroupBy","props","provideGroupBy","options","disableSort","sortBy","opened","Set","sortByWithGroups","value","map","val","order","concat","isGroupOpen","group","has","id","toggleGroup","newOpened","add","delete","extractRows","items","dive","arr","item","push","key","depth","data","useGroupBy","Error","groupItemsByProperty","length","groups","Map","raw","set","get","groupItems","arguments","undefined","prefix","groupedItems","rest","slice","forEach","flattenItems","flatItems","useGroupedItems"],"sources":["../../../../src/components/VDataTable/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { getObjectValueByPath, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableItem } from '../types'\n\nexport interface GroupableItem<T = any> {\n type: 'item'\n raw: T\n}\n\nexport interface Group<T = any> {\n type: 'group'\n depth: number\n id: string\n key: string\n value: any\n items: readonly (T | Group<T>)[]\n}\n\nexport const makeDataTableGroupProps = propsFactory({\n groupBy: {\n type: Array as PropType<readonly SortItem[]>,\n default: () => ([]),\n },\n}, 'DataTable-group')\n\nconst VDataTableGroupSymbol: InjectionKey<{\n opened: Ref<Set<string>>\n toggleGroup: (group: Group) => void\n isGroupOpen: (group: Group) => boolean\n sortByWithGroups: Ref<SortItem[]>\n groupBy: Ref<readonly SortItem[]>\n extractRows: (items: (DataTableItem | Group<DataTableItem>)[]) => DataTableItem[]\n}> = Symbol.for('vuetify:data-table-group')\n\ntype GroupProps = {\n groupBy: readonly SortItem[]\n 'onUpdate:groupBy': ((value: SortItem[]) => void) | undefined\n}\n\nexport function createGroupBy (props: GroupProps) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n return { groupBy }\n}\n\nexport function provideGroupBy (options: {\n groupBy: Ref<readonly SortItem[]>\n sortBy: Ref<readonly SortItem[]>\n disableSort?: Ref<boolean>\n}) {\n const { disableSort, groupBy, sortBy } = options\n const opened = ref(new Set<string>())\n\n const sortByWithGroups = computed(() => {\n return groupBy.value.map<SortItem>(val => ({\n ...val,\n order: val.order ?? false,\n })).concat(disableSort?.value ? [] : sortBy.value)\n })\n\n function isGroupOpen (group: Group) {\n return opened.value.has(group.id)\n }\n\n function toggleGroup (group: Group) {\n const newOpened = new Set(opened.value)\n if (!isGroupOpen(group)) newOpened.add(group.id)\n else newOpened.delete(group.id)\n\n opened.value = newOpened\n }\n\n function extractRows <T extends GroupableItem> (items: readonly (T | Group<T>)[]) {\n function dive (group: Group<T>): T[] {\n const arr = []\n\n for (const item of group.items) {\n if ('type' in item && item.type === 'group') {\n arr.push(...dive(item))\n } else {\n arr.push(item as T)\n }\n }\n\n return [...new Set(arr)]\n }\n return dive({ type: 'group', items, id: 'dummy', key: 'dummy', value: 'dummy', depth: 0 })\n }\n\n // onBeforeMount(() => {\n // for (const key of groupedItems.value.keys()) {\n // opened.value.add(key)\n // }\n // })\n\n const data = { sortByWithGroups, toggleGroup, opened, groupBy, extractRows, isGroupOpen }\n\n provide(VDataTableGroupSymbol, data)\n\n return data\n}\n\nexport function useGroupBy () {\n const data = inject(VDataTableGroupSymbol)\n\n if (!data) throw new Error('Missing group!')\n\n return data\n}\n\nfunction groupItemsByProperty <T extends GroupableItem> (items: readonly T[], groupBy: string) {\n if (!items.length) return []\n\n const groups = new Map<any, T[]>()\n for (const item of items) {\n const value = getObjectValueByPath(item.raw, groupBy)\n\n if (!groups.has(value)) {\n groups.set(value, [])\n }\n groups.get(value)!.push(item)\n }\n\n return groups\n}\n\nfunction groupItems <T extends GroupableItem> (items: readonly T[], groupBy: readonly string[], depth = 0, prefix = 'root') {\n if (!groupBy.length) return []\n\n const groupedItems = groupItemsByProperty(items, groupBy[0])\n const groups: Group<T>[] = []\n\n const rest = groupBy.slice(1)\n groupedItems.forEach((items, value) => {\n const key = groupBy[0]\n const id = `${prefix}_${key}_${value}`\n groups.push({\n depth,\n id,\n key,\n value,\n items: rest.length ? groupItems(items, rest, depth + 1, id) : items,\n type: 'group',\n })\n })\n\n return groups\n}\n\nfunction flattenItems <T extends GroupableItem> (items: readonly (T | Group<T>)[], opened: Set<string>): readonly (T | Group<T>)[] {\n const flatItems: (T | Group<T>)[] = []\n\n for (const item of items) {\n // TODO: make this better\n if ('type' in item && item.type === 'group') {\n if (item.value != null) {\n flatItems.push(item)\n }\n\n if (opened.has(item.id) || item.value == null) {\n flatItems.push(...flattenItems(item.items, opened))\n }\n } else {\n flatItems.push(item)\n }\n }\n\n return flatItems\n}\n\nexport function useGroupedItems <T extends GroupableItem> (\n items: Ref<T[]>,\n groupBy: Ref<readonly SortItem[]>,\n opened: Ref<Set<string>>\n) {\n const flatItems = computed(() => {\n if (!groupBy.value.length) return items.value\n\n const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key))\n\n return flattenItems(groupedItems, opened.value)\n })\n\n return { flatItems }\n}\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { Ref } from 'vue';
|
2
|
-
import type { Group
|
2
|
+
import type { Group } from './group.js';
|
3
3
|
import type { EventProp } from "../../../util/index.js";
|
4
4
|
export declare const makeDataTablePaginateProps: <Defaults extends {
|
5
5
|
page?: unknown;
|
@@ -70,11 +70,11 @@ export declare function usePagination(): {
|
|
70
70
|
setItemsPerPage: (value: number) => void;
|
71
71
|
};
|
72
72
|
export declare function usePaginatedItems<T>(options: {
|
73
|
-
items: Ref<readonly (T | Group<T>
|
73
|
+
items: Ref<readonly (T | Group<T>)[]>;
|
74
74
|
startIndex: Ref<number>;
|
75
75
|
stopIndex: Ref<number>;
|
76
76
|
itemsPerPage: Ref<number>;
|
77
77
|
}): {
|
78
|
-
paginatedItems: import("vue").ComputedRef<readonly (T | Group<T>
|
78
|
+
paginatedItems: import("vue").ComputedRef<readonly (T | Group<T>)[]>;
|
79
79
|
};
|
80
80
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"paginate.js","names":["useProxiedModel","computed","inject","provide","watch","clamp","getCurrentInstance","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","undefined","value","providePagination","options","itemsLength","startIndex","stopIndex","Math","min","pageCount","ceil","setItemsPerPage","nextPage","prevPage","setPage","data","usePagination","Error","usePaginatedItems","vm","items","paginatedItems","slice","val","emit","immediate"],"sources":["../../../../src/components/VDataTable/composables/paginate.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watch } from 'vue'\nimport { clamp, getCurrentInstance, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { Group
|
1
|
+
{"version":3,"file":"paginate.js","names":["useProxiedModel","computed","inject","provide","watch","clamp","getCurrentInstance","propsFactory","makeDataTablePaginateProps","page","type","Number","String","default","itemsPerPage","VDataTablePaginationSymbol","Symbol","for","createPagination","props","undefined","value","providePagination","options","itemsLength","startIndex","stopIndex","Math","min","pageCount","ceil","setItemsPerPage","nextPage","prevPage","setPage","data","usePagination","Error","usePaginatedItems","vm","items","paginatedItems","slice","val","emit","immediate"],"sources":["../../../../src/components/VDataTable/composables/paginate.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, watch } from 'vue'\nimport { clamp, getCurrentInstance, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { Group } from './group'\nimport type { EventProp } from '@/util'\n\nexport const makeDataTablePaginateProps = propsFactory({\n page: {\n type: [Number, String],\n default: 1,\n },\n itemsPerPage: {\n type: [Number, String],\n default: 10,\n },\n}, 'DataTable-paginate')\n\nconst VDataTablePaginationSymbol: InjectionKey<{\n page: Ref<number>\n itemsPerPage: Ref<number>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n pageCount: Ref<number>\n itemsLength: Ref<number>\n prevPage: () => void\n nextPage: () => void\n setPage: (value: number) => void\n setItemsPerPage: (value: number) => void\n}> = Symbol.for('vuetify:data-table-pagination')\n\ntype PaginationProps = {\n page: number | string\n 'onUpdate:page': EventProp | undefined\n itemsPerPage: number | string\n 'onUpdate:itemsPerPage': EventProp | undefined\n itemsLength?: number | string\n}\n\nexport function createPagination (props: PaginationProps) {\n const page = useProxiedModel(props, 'page', undefined, value => Number(value ?? 1))\n const itemsPerPage = useProxiedModel(props, 'itemsPerPage', undefined, value => Number(value ?? 10))\n\n return { page, itemsPerPage }\n}\n\nexport function providePagination (options: {\n page: Ref<number>\n itemsPerPage: Ref<number>\n itemsLength: Ref<number>\n}) {\n const { page, itemsPerPage, itemsLength } = options\n\n const startIndex = computed(() => {\n if (itemsPerPage.value === -1) return 0\n\n return itemsPerPage.value * (page.value - 1)\n })\n const stopIndex = computed(() => {\n if (itemsPerPage.value === -1) return itemsLength.value\n\n return Math.min(itemsLength.value, startIndex.value + itemsPerPage.value)\n })\n\n const pageCount = computed(() => {\n if (itemsPerPage.value === -1 || itemsLength.value === 0) return 1\n\n return Math.ceil(itemsLength.value / itemsPerPage.value)\n })\n\n // Don't run immediately, items may not have been loaded yet: #17966\n watch([page, pageCount], () => {\n if (page.value > pageCount.value) {\n page.value = pageCount.value\n }\n })\n\n function setItemsPerPage (value: number) {\n itemsPerPage.value = value\n page.value = 1\n }\n\n function nextPage () {\n page.value = clamp(page.value + 1, 1, pageCount.value)\n }\n\n function prevPage () {\n page.value = clamp(page.value - 1, 1, pageCount.value)\n }\n\n function setPage (value: number) {\n page.value = clamp(value, 1, pageCount.value)\n }\n\n const data = { page, itemsPerPage, startIndex, stopIndex, pageCount, itemsLength, nextPage, prevPage, setPage, setItemsPerPage }\n\n provide(VDataTablePaginationSymbol, data)\n\n return data\n}\n\nexport function usePagination () {\n const data = inject(VDataTablePaginationSymbol)\n\n if (!data) throw new Error('Missing pagination!')\n\n return data\n}\n\nexport function usePaginatedItems <T> (options: {\n items: Ref<readonly (T | Group<T>)[]>\n startIndex: Ref<number>\n stopIndex: Ref<number>\n itemsPerPage: Ref<number>\n}) {\n const vm = getCurrentInstance('usePaginatedItems')\n\n const { items, startIndex, stopIndex, itemsPerPage } = options\n const paginatedItems = computed(() => {\n if (itemsPerPage.value <= 0) return items.value\n\n return items.value.slice(startIndex.value, stopIndex.value)\n })\n\n watch(paginatedItems, val => {\n vm.emit('update:currentItems', val)\n }, { immediate: true })\n\n return { paginatedItems }\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,gDAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAC7CC,KAAK,EAAEC,kBAAkB,EAAEC,YAAY,kCAEhD;AAKA,OAAO,MAAMC,0BAA0B,GAAGD,YAAY,CAAC;EACrDE,IAAI,EAAE;IACJC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDC,YAAY,EAAE;IACZJ,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,oBAAoB,CAAC;AAExB,MAAME,0BAWJ,GAAGC,MAAM,CAACC,GAAG,CAAC,+BAA+B,CAAC;AAUhD,OAAO,SAASC,gBAAgBA,CAAEC,KAAsB,EAAE;EACxD,MAAMV,IAAI,GAAGT,eAAe,CAACmB,KAAK,EAAE,MAAM,EAAEC,SAAS,EAAEC,KAAK,IAAIV,MAAM,CAACU,KAAK,IAAI,CAAC,CAAC,CAAC;EACnF,MAAMP,YAAY,GAAGd,eAAe,CAACmB,KAAK,EAAE,cAAc,EAAEC,SAAS,EAAEC,KAAK,IAAIV,MAAM,CAACU,KAAK,IAAI,EAAE,CAAC,CAAC;EAEpG,OAAO;IAAEZ,IAAI;IAAEK;EAAa,CAAC;AAC/B;AAEA,OAAO,SAASQ,iBAAiBA,CAAEC,OAIlC,EAAE;EACD,MAAM;IAAEd,IAAI;IAAEK,YAAY;IAAEU;EAAY,CAAC,GAAGD,OAAO;EAEnD,MAAME,UAAU,GAAGxB,QAAQ,CAAC,MAAM;IAChC,IAAIa,YAAY,CAACO,KAAK,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;IAEvC,OAAOP,YAAY,CAACO,KAAK,IAAIZ,IAAI,CAACY,KAAK,GAAG,CAAC,CAAC;EAC9C,CAAC,CAAC;EACF,MAAMK,SAAS,GAAGzB,QAAQ,CAAC,MAAM;IAC/B,IAAIa,YAAY,CAACO,KAAK,KAAK,CAAC,CAAC,EAAE,OAAOG,WAAW,CAACH,KAAK;IAEvD,OAAOM,IAAI,CAACC,GAAG,CAACJ,WAAW,CAACH,KAAK,EAAEI,UAAU,CAACJ,KAAK,GAAGP,YAAY,CAACO,KAAK,CAAC;EAC3E,CAAC,CAAC;EAEF,MAAMQ,SAAS,GAAG5B,QAAQ,CAAC,MAAM;IAC/B,IAAIa,YAAY,CAACO,KAAK,KAAK,CAAC,CAAC,IAAIG,WAAW,CAACH,KAAK,KAAK,CAAC,EAAE,OAAO,CAAC;IAElE,OAAOM,IAAI,CAACG,IAAI,CAACN,WAAW,CAACH,KAAK,GAAGP,YAAY,CAACO,KAAK,CAAC;EAC1D,CAAC,CAAC;;EAEF;EACAjB,KAAK,CAAC,CAACK,IAAI,EAAEoB,SAAS,CAAC,EAAE,MAAM;IAC7B,IAAIpB,IAAI,CAACY,KAAK,GAAGQ,SAAS,CAACR,KAAK,EAAE;MAChCZ,IAAI,CAACY,KAAK,GAAGQ,SAAS,CAACR,KAAK;IAC9B;EACF,CAAC,CAAC;EAEF,SAASU,eAAeA,CAAEV,KAAa,EAAE;IACvCP,YAAY,CAACO,KAAK,GAAGA,KAAK;IAC1BZ,IAAI,CAACY,KAAK,GAAG,CAAC;EAChB;EAEA,SAASW,QAAQA,CAAA,EAAI;IACnBvB,IAAI,CAACY,KAAK,GAAGhB,KAAK,CAACI,IAAI,CAACY,KAAK,GAAG,CAAC,EAAE,CAAC,EAAEQ,SAAS,CAACR,KAAK,CAAC;EACxD;EAEA,SAASY,QAAQA,CAAA,EAAI;IACnBxB,IAAI,CAACY,KAAK,GAAGhB,KAAK,CAACI,IAAI,CAACY,KAAK,GAAG,CAAC,EAAE,CAAC,EAAEQ,SAAS,CAACR,KAAK,CAAC;EACxD;EAEA,SAASa,OAAOA,CAAEb,KAAa,EAAE;IAC/BZ,IAAI,CAACY,KAAK,GAAGhB,KAAK,CAACgB,KAAK,EAAE,CAAC,EAAEQ,SAAS,CAACR,KAAK,CAAC;EAC/C;EAEA,MAAMc,IAAI,GAAG;IAAE1B,IAAI;IAAEK,YAAY;IAAEW,UAAU;IAAEC,SAAS;IAAEG,SAAS;IAAEL,WAAW;IAAEQ,QAAQ;IAAEC,QAAQ;IAAEC,OAAO;IAAEH;EAAgB,CAAC;EAEhI5B,OAAO,CAACY,0BAA0B,EAAEoB,IAAI,CAAC;EAEzC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,aAAaA,CAAA,EAAI;EAC/B,MAAMD,IAAI,GAAGjC,MAAM,CAACa,0BAA0B,CAAC;EAE/C,IAAI,CAACoB,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,qBAAqB,CAAC;EAEjD,OAAOF,IAAI;AACb;AAEA,OAAO,SAASG,iBAAiBA,CAAMf,OAKtC,EAAE;EACD,MAAMgB,EAAE,GAAGjC,kBAAkB,CAAC,mBAAmB,CAAC;EAElD,MAAM;IAAEkC,KAAK;IAAEf,UAAU;IAAEC,SAAS;IAAEZ;EAAa,CAAC,GAAGS,OAAO;EAC9D,MAAMkB,cAAc,GAAGxC,QAAQ,CAAC,MAAM;IACpC,IAAIa,YAAY,CAACO,KAAK,IAAI,CAAC,EAAE,OAAOmB,KAAK,CAACnB,KAAK;IAE/C,OAAOmB,KAAK,CAACnB,KAAK,CAACqB,KAAK,CAACjB,UAAU,CAACJ,KAAK,EAAEK,SAAS,CAACL,KAAK,CAAC;EAC7D,CAAC,CAAC;EAEFjB,KAAK,CAACqC,cAAc,EAAEE,GAAG,IAAI;IAC3BJ,EAAE,CAACK,IAAI,CAAC,qBAAqB,EAAED,GAAG,CAAC;EACrC,CAAC,EAAE;IAAEE,SAAS,EAAE;EAAK,CAAC,CAAC;EAEvB,OAAO;IAAEJ;EAAe,CAAC;AAC3B","ignoreList":[]}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import type { provideExpanded } from './composables/expand.js';
|
2
|
-
import type { Group, GroupableItem,
|
2
|
+
import type { Group, GroupableItem, provideGroupBy } from './composables/group.js';
|
3
3
|
import type { provideSelection, SelectableItem } from './composables/select.js';
|
4
4
|
import type { FilterFunction, InternalItem } from "../../composables/filter.js";
|
5
5
|
import type { SelectItemKey } from "../../util/index.js";
|
@@ -53,12 +53,6 @@ export type GroupHeaderSlot = {
|
|
53
53
|
toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup'];
|
54
54
|
isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen'];
|
55
55
|
};
|
56
|
-
export type GroupSummarySlot = {
|
57
|
-
index: number;
|
58
|
-
item: GroupSummary;
|
59
|
-
columns: InternalDataTableHeader[];
|
60
|
-
toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup'];
|
61
|
-
};
|
62
56
|
type ItemSlotBase<T> = {
|
63
57
|
index: number;
|
64
58
|
item: T;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/VDataTable/types.ts"],"sourcesContent":["// Types\nimport type { provideExpanded } from './composables/expand'\nimport type { Group, GroupableItem,
|
1
|
+
{"version":3,"file":"types.js","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 | null\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 | 'start' | 'end'\n align?: 'start' | 'end' | 'center'\n\n width?: number | string\n minWidth?: number | string\n maxWidth?: number | string\n nowrap?: boolean\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 fixedEndOffset?: number\n lastFixed?: boolean\n firstFixedEnd?: boolean\n nowrap?: boolean\n colspan?: number\n rowspan?: number\n children?: InternalDataTableHeader[]\n}\n\nexport interface DataTableItem<T = any> extends Omit<InternalItem<T>, 'type'>, 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> = Record<string, any> | RowPropsFunction<T>\nexport type RowPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem'>\n) => Record<string, any>\n\nexport type CellProps<T> = Record<string, any> | CellPropsFunction<T>\nexport type CellPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem' | 'value' | 'column'>\n) => Record<string, any>\n\nexport type HeaderCellProps = Record<string, any> | HeaderCellPropsFunction\nexport type HeaderCellPropsFunction = (\n data: Pick<ItemKeySlot<any>, 'index' | 'item' | 'internalItem' | 'value'>\n) => Record<string, any>\n"],"mappings":"","ignoreList":[]}
|
@@ -45,7 +45,6 @@ export declare const makeVDatePickerProps: <Defaults extends {
|
|
45
45
|
weekdays?: unknown;
|
46
46
|
weeksInMonth?: unknown;
|
47
47
|
firstDayOfWeek?: unknown;
|
48
|
-
firstDayOfYear?: unknown;
|
49
48
|
allowedDates?: unknown;
|
50
49
|
weekdayFormat?: unknown;
|
51
50
|
hideWeekdays?: unknown;
|
@@ -265,16 +264,6 @@ export declare const makeVDatePickerProps: <Defaults extends {
|
|
265
264
|
type: import("vue").PropType<unknown extends Defaults["firstDayOfWeek"] ? string | number : string | number | Defaults["firstDayOfWeek"]>;
|
266
265
|
default: unknown extends Defaults["firstDayOfWeek"] ? string | number : NonNullable<string | number> | Defaults["firstDayOfWeek"];
|
267
266
|
};
|
268
|
-
firstDayOfYear: unknown extends Defaults["firstDayOfYear"] ? {
|
269
|
-
type: (StringConstructor | NumberConstructor)[];
|
270
|
-
default: undefined;
|
271
|
-
} : Omit<{
|
272
|
-
type: (StringConstructor | NumberConstructor)[];
|
273
|
-
default: undefined;
|
274
|
-
}, "type" | "default"> & {
|
275
|
-
type: import("vue").PropType<unknown extends Defaults["firstDayOfYear"] ? string | number : string | number | Defaults["firstDayOfYear"]>;
|
276
|
-
default: unknown extends Defaults["firstDayOfYear"] ? string | number : NonNullable<string | number> | Defaults["firstDayOfYear"];
|
277
|
-
};
|
278
267
|
allowedDates: unknown extends Defaults["allowedDates"] ? import("vue").PropType<unknown[] | ((date: unknown) => boolean)> : {
|
279
268
|
type: import("vue").PropType<unknown extends Defaults["allowedDates"] ? unknown[] | ((date: unknown) => boolean) : unknown[] | ((date: unknown) => boolean) | Defaults["allowedDates"]>;
|
280
269
|
default: unknown extends Defaults["allowedDates"] ? unknown[] | ((date: unknown) => boolean) : NonNullable<unknown[] | ((date: unknown) => boolean)> | Defaults["allowedDates"];
|
@@ -435,7 +424,6 @@ export declare const VDatePicker: {
|
|
435
424
|
controlHeight?: string | number | undefined;
|
436
425
|
headerColor?: string | undefined;
|
437
426
|
firstDayOfWeek?: string | number | undefined;
|
438
|
-
firstDayOfYear?: string | number | undefined;
|
439
427
|
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
440
428
|
weekdayFormat?: "long" | "short" | "narrow" | undefined;
|
441
429
|
allowedMonths?: number[] | ((date: number) => boolean) | undefined;
|
@@ -471,7 +459,6 @@ export declare const VDatePicker: {
|
|
471
459
|
weekdays: import("../../composables/calendar.js").CalendarWeekdays[];
|
472
460
|
weeksInMonth: "static" | "dynamic";
|
473
461
|
firstDayOfWeek: string | number;
|
474
|
-
firstDayOfYear: string | number;
|
475
462
|
hideWeekdays: boolean;
|
476
463
|
showWeek: boolean;
|
477
464
|
}, true, {}, import("vue").SlotsType<Partial<{
|
@@ -568,7 +555,6 @@ export declare const VDatePicker: {
|
|
568
555
|
controlHeight?: string | number | undefined;
|
569
556
|
headerColor?: string | undefined;
|
570
557
|
firstDayOfWeek?: string | number | undefined;
|
571
|
-
firstDayOfYear?: string | number | undefined;
|
572
558
|
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
573
559
|
weekdayFormat?: "long" | "short" | "narrow" | undefined;
|
574
560
|
allowedMonths?: number[] | ((date: number) => boolean) | undefined;
|
@@ -599,7 +585,6 @@ export declare const VDatePicker: {
|
|
599
585
|
weekdays: import("../../composables/calendar.js").CalendarWeekdays[];
|
600
586
|
weeksInMonth: "static" | "dynamic";
|
601
587
|
firstDayOfWeek: string | number;
|
602
|
-
firstDayOfYear: string | number;
|
603
588
|
hideWeekdays: boolean;
|
604
589
|
showWeek: boolean;
|
605
590
|
}>;
|
@@ -652,7 +637,6 @@ export declare const VDatePicker: {
|
|
652
637
|
controlHeight?: string | number | undefined;
|
653
638
|
headerColor?: string | undefined;
|
654
639
|
firstDayOfWeek?: string | number | undefined;
|
655
|
-
firstDayOfYear?: string | number | undefined;
|
656
640
|
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
657
641
|
weekdayFormat?: "long" | "short" | "narrow" | undefined;
|
658
642
|
allowedMonths?: number[] | ((date: number) => boolean) | undefined;
|
@@ -688,7 +672,6 @@ export declare const VDatePicker: {
|
|
688
672
|
weekdays: import("../../composables/calendar.js").CalendarWeekdays[];
|
689
673
|
weeksInMonth: "static" | "dynamic";
|
690
674
|
firstDayOfWeek: string | number;
|
691
|
-
firstDayOfYear: string | number;
|
692
675
|
hideWeekdays: boolean;
|
693
676
|
showWeek: boolean;
|
694
677
|
}, {}, string, import("vue").SlotsType<Partial<{
|
@@ -804,10 +787,6 @@ export declare const VDatePicker: {
|
|
804
787
|
type: (StringConstructor | NumberConstructor)[];
|
805
788
|
default: undefined;
|
806
789
|
};
|
807
|
-
firstDayOfYear: {
|
808
|
-
type: (StringConstructor | NumberConstructor)[];
|
809
|
-
default: undefined;
|
810
|
-
};
|
811
790
|
allowedDates: import("vue").PropType<unknown[] | ((date: unknown) => boolean)>;
|
812
791
|
weekdayFormat: import("vue").PropType<"long" | "short" | "narrow" | undefined>;
|
813
792
|
hideWeekdays: BooleanConstructor;
|
@@ -916,10 +895,6 @@ export declare const VDatePicker: {
|
|
916
895
|
type: (StringConstructor | NumberConstructor)[];
|
917
896
|
default: undefined;
|
918
897
|
};
|
919
|
-
firstDayOfYear: {
|
920
|
-
type: (StringConstructor | NumberConstructor)[];
|
921
|
-
default: undefined;
|
922
|
-
};
|
923
898
|
allowedDates: import("vue").PropType<unknown[] | ((date: unknown) => boolean)>;
|
924
899
|
weekdayFormat: import("vue").PropType<"long" | "short" | "narrow" | undefined>;
|
925
900
|
hideWeekdays: BooleanConstructor;
|
@@ -19,7 +19,6 @@ export declare const makeVDatePickerMonthProps: <Defaults extends {
|
|
19
19
|
weekdays?: unknown;
|
20
20
|
weeksInMonth?: unknown;
|
21
21
|
firstDayOfWeek?: unknown;
|
22
|
-
firstDayOfYear?: unknown;
|
23
22
|
allowedDates?: unknown;
|
24
23
|
weekdayFormat?: unknown;
|
25
24
|
color?: unknown;
|
@@ -93,16 +92,6 @@ export declare const makeVDatePickerMonthProps: <Defaults extends {
|
|
93
92
|
type: PropType<unknown extends Defaults["firstDayOfWeek"] ? string | number : string | number | Defaults["firstDayOfWeek"]>;
|
94
93
|
default: unknown extends Defaults["firstDayOfWeek"] ? string | number : NonNullable<string | number> | Defaults["firstDayOfWeek"];
|
95
94
|
};
|
96
|
-
firstDayOfYear: unknown extends Defaults["firstDayOfYear"] ? {
|
97
|
-
type: (StringConstructor | NumberConstructor)[];
|
98
|
-
default: undefined;
|
99
|
-
} : Omit<{
|
100
|
-
type: (StringConstructor | NumberConstructor)[];
|
101
|
-
default: undefined;
|
102
|
-
}, "type" | "default"> & {
|
103
|
-
type: PropType<unknown extends Defaults["firstDayOfYear"] ? string | number : string | number | Defaults["firstDayOfYear"]>;
|
104
|
-
default: unknown extends Defaults["firstDayOfYear"] ? string | number : NonNullable<string | number> | Defaults["firstDayOfYear"];
|
105
|
-
};
|
106
95
|
allowedDates: unknown extends Defaults["allowedDates"] ? PropType<unknown[] | ((date: unknown) => boolean)> : {
|
107
96
|
type: PropType<unknown extends Defaults["allowedDates"] ? unknown[] | ((date: unknown) => boolean) : unknown[] | ((date: unknown) => boolean) | Defaults["allowedDates"]>;
|
108
97
|
default: unknown extends Defaults["allowedDates"] ? unknown[] | ((date: unknown) => boolean) : NonNullable<unknown[] | ((date: unknown) => boolean)> | Defaults["allowedDates"];
|
@@ -167,7 +156,6 @@ export declare const VDatePickerMonth: {
|
|
167
156
|
year?: string | number | undefined;
|
168
157
|
modelValue?: unknown[] | undefined;
|
169
158
|
firstDayOfWeek?: string | number | undefined;
|
170
|
-
firstDayOfYear?: string | number | undefined;
|
171
159
|
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
172
160
|
weekdayFormat?: "long" | "short" | "narrow" | undefined;
|
173
161
|
} & {
|
@@ -215,7 +203,6 @@ export declare const VDatePickerMonth: {
|
|
215
203
|
weekdays: import("../../composables/calendar.js").CalendarWeekdays[];
|
216
204
|
weeksInMonth: "static" | "dynamic";
|
217
205
|
firstDayOfWeek: string | number;
|
218
|
-
firstDayOfYear: string | number;
|
219
206
|
hideWeekdays: boolean;
|
220
207
|
showWeek: boolean;
|
221
208
|
}, true, {}, import("vue").SlotsType<Partial<{
|
@@ -251,7 +238,6 @@ export declare const VDatePickerMonth: {
|
|
251
238
|
year?: string | number | undefined;
|
252
239
|
modelValue?: unknown[] | undefined;
|
253
240
|
firstDayOfWeek?: string | number | undefined;
|
254
|
-
firstDayOfYear?: string | number | undefined;
|
255
241
|
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
256
242
|
weekdayFormat?: "long" | "short" | "narrow" | undefined;
|
257
243
|
} & {
|
@@ -295,7 +281,6 @@ export declare const VDatePickerMonth: {
|
|
295
281
|
weekdays: import("../../composables/calendar.js").CalendarWeekdays[];
|
296
282
|
weeksInMonth: "static" | "dynamic";
|
297
283
|
firstDayOfWeek: string | number;
|
298
|
-
firstDayOfYear: string | number;
|
299
284
|
hideWeekdays: boolean;
|
300
285
|
showWeek: boolean;
|
301
286
|
}>;
|
@@ -320,7 +305,6 @@ export declare const VDatePickerMonth: {
|
|
320
305
|
year?: string | number | undefined;
|
321
306
|
modelValue?: unknown[] | undefined;
|
322
307
|
firstDayOfWeek?: string | number | undefined;
|
323
|
-
firstDayOfYear?: string | number | undefined;
|
324
308
|
allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
|
325
309
|
weekdayFormat?: "long" | "short" | "narrow" | undefined;
|
326
310
|
} & {
|
@@ -368,7 +352,6 @@ export declare const VDatePickerMonth: {
|
|
368
352
|
weekdays: import("../../composables/calendar.js").CalendarWeekdays[];
|
369
353
|
weeksInMonth: "static" | "dynamic";
|
370
354
|
firstDayOfWeek: string | number;
|
371
|
-
firstDayOfYear: string | number;
|
372
355
|
hideWeekdays: boolean;
|
373
356
|
showWeek: boolean;
|
374
357
|
}, {}, string, import("vue").SlotsType<Partial<{
|
@@ -402,10 +385,6 @@ export declare const VDatePickerMonth: {
|
|
402
385
|
type: (StringConstructor | NumberConstructor)[];
|
403
386
|
default: undefined;
|
404
387
|
};
|
405
|
-
firstDayOfYear: {
|
406
|
-
type: (StringConstructor | NumberConstructor)[];
|
407
|
-
default: undefined;
|
408
|
-
};
|
409
388
|
allowedDates: PropType<unknown[] | ((date: unknown) => boolean)>;
|
410
389
|
weekdayFormat: PropType<"long" | "short" | "narrow" | undefined>;
|
411
390
|
color: StringConstructor;
|
@@ -443,10 +422,6 @@ export declare const VDatePickerMonth: {
|
|
443
422
|
type: (StringConstructor | NumberConstructor)[];
|
444
423
|
default: undefined;
|
445
424
|
};
|
446
|
-
firstDayOfYear: {
|
447
|
-
type: (StringConstructor | NumberConstructor)[];
|
448
|
-
default: undefined;
|
449
|
-
};
|
450
425
|
allowedDates: PropType<unknown[] | ((date: unknown) => boolean)>;
|
451
426
|
weekdayFormat: PropType<"long" | "short" | "narrow" | undefined>;
|
452
427
|
color: StringConstructor;
|