vuetify 3.2.3 → 3.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/json/attributes.json +9 -9
- package/dist/json/importMap.json +12 -12
- package/dist/json/web-types.json +11 -11
- package/dist/vuetify-labs.css +34 -35
- package/dist/vuetify-labs.d.ts +72 -72
- package/dist/vuetify-labs.esm.js +142 -124
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +142 -124
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1 -2
- package/dist/vuetify.d.ts +75 -68
- package/dist/vuetify.esm.js +131 -115
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +131 -115
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +469 -469
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.mjs +1 -2
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +2 -2
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -2
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -5
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +9 -9
- package/lib/components/VChip/VChip.css +0 -1
- package/lib/components/VChip/VChip.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -5
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +5 -5
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +9 -9
- package/lib/components/VFooter/VFooter.mjs +2 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +3 -3
- package/lib/components/VImg/VImg.mjs +6 -6
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +12 -12
- package/lib/components/VList/VList.mjs +2 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +9 -9
- package/lib/components/VList/list.mjs +4 -4
- package/lib/components/VList/list.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +3 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +3 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +2 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/index.d.ts +3 -3
- package/lib/components/VNavigationDrawer/sticky.mjs +5 -4
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs +4 -4
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +2 -2
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VRating/VRating.mjs +6 -3
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +2 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +9 -9
- package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +3 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +3 -3
- package/lib/components/VSlider/slider.mjs +3 -3
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.mjs +2 -2
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VTabs/VTab.mjs +4 -5
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.mjs +6 -3
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +2 -2
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.mjs +2 -2
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +3 -3
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.mjs +3 -3
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +3 -3
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/index.d.ts +63 -63
- package/lib/composables/display.mjs +3 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/form.mjs +4 -4
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/hydration.mjs +6 -6
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs +2 -2
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/layout.mjs +3 -3
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/lazy.mjs +2 -2
- package/lib/composables/lazy.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +5 -4
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/scroll.mjs +6 -6
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs +2 -2
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/stack.mjs +5 -4
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/transition.mjs +5 -2
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +3 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +12 -5
- package/lib/labs/VDataTable/VDataTable.mjs +2 -1
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -6
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
- package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
- package/lib/labs/components.d.ts +9 -9
- package/lib/locale/adapters/vuetify.mjs +8 -5
- package/lib/locale/adapters/vuetify.mjs.map +1 -1
- package/package.json +2 -2
package/lib/index.d.ts
CHANGED
|
@@ -309,8 +309,7 @@ export { Blueprint, DateInstance, DateOptions, DefaultsInstance, DisplayBreakpoi
|
|
|
309
309
|
|
|
310
310
|
import type { ComponentPublicInstance, FunctionalComponent, UnwrapNestedRefs, VNodeChild } from 'vue'
|
|
311
311
|
|
|
312
|
-
|
|
313
|
-
import type { DateOptions } from './labs'
|
|
312
|
+
|
|
314
313
|
|
|
315
314
|
declare global {
|
|
316
315
|
namespace JSX {
|
|
@@ -380,8 +379,8 @@ declare module '@vue/runtime-core' {
|
|
|
380
379
|
VChip: typeof import('vuetify/components')['VChip']
|
|
381
380
|
VChipGroup: typeof import('vuetify/components')['VChipGroup']
|
|
382
381
|
VCode: typeof import('vuetify/components')['VCode']
|
|
383
|
-
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
384
382
|
VCombobox: typeof import('vuetify/components')['VCombobox']
|
|
383
|
+
VColorPicker: typeof import('vuetify/components')['VColorPicker']
|
|
385
384
|
VCounter: typeof import('vuetify/components')['VCounter']
|
|
386
385
|
VDialog: typeof import('vuetify/components')['VDialog']
|
|
387
386
|
VDivider: typeof import('vuetify/components')['VDivider']
|
|
@@ -436,8 +435,8 @@ declare module '@vue/runtime-core' {
|
|
|
436
435
|
VTabs: typeof import('vuetify/components')['VTabs']
|
|
437
436
|
VTab: typeof import('vuetify/components')['VTab']
|
|
438
437
|
VTable: typeof import('vuetify/components')['VTable']
|
|
439
|
-
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
440
438
|
VTextField: typeof import('vuetify/components')['VTextField']
|
|
439
|
+
VTextarea: typeof import('vuetify/components')['VTextarea']
|
|
441
440
|
VTimeline: typeof import('vuetify/components')['VTimeline']
|
|
442
441
|
VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
|
|
443
442
|
VToolbar: typeof import('vuetify/components')['VToolbar']
|
|
@@ -447,11 +446,11 @@ declare module '@vue/runtime-core' {
|
|
|
447
446
|
VWindow: typeof import('vuetify/components')['VWindow']
|
|
448
447
|
VWindowItem: typeof import('vuetify/components')['VWindowItem']
|
|
449
448
|
VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
|
|
450
|
-
VForm: typeof import('vuetify/components')['VForm']
|
|
451
449
|
VContainer: typeof import('vuetify/components')['VContainer']
|
|
452
450
|
VCol: typeof import('vuetify/components')['VCol']
|
|
453
451
|
VRow: typeof import('vuetify/components')['VRow']
|
|
454
452
|
VSpacer: typeof import('vuetify/components')['VSpacer']
|
|
453
|
+
VForm: typeof import('vuetify/components')['VForm']
|
|
455
454
|
VHover: typeof import('vuetify/components')['VHover']
|
|
456
455
|
VLayout: typeof import('vuetify/components')['VLayout']
|
|
457
456
|
VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
|
|
@@ -481,5 +480,13 @@ declare module '@vue/runtime-core' {
|
|
|
481
480
|
VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
|
|
482
481
|
VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
|
|
483
482
|
VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
|
|
483
|
+
VDataTable: typeof import('vuetify/labs/components')['VDataTable']
|
|
484
|
+
VDataTableRows: typeof import('vuetify/labs/components')['VDataTableRows']
|
|
485
|
+
VDataTableRow: typeof import('vuetify/labs/components')['VDataTableRow']
|
|
486
|
+
VDataTableVirtual: typeof import('vuetify/labs/components')['VDataTableVirtual']
|
|
487
|
+
VDataTableServer: typeof import('vuetify/labs/components')['VDataTableServer']
|
|
488
|
+
VDataTableFooter: typeof import('vuetify/labs/components')['VDataTableFooter']
|
|
489
|
+
VInfiniteScroll: typeof import('vuetify/labs/components')['VInfiniteScroll']
|
|
490
|
+
VSkeletonLoader: typeof import('vuetify/labs/components')['VSkeletonLoader']
|
|
484
491
|
}
|
|
485
492
|
}
|
|
@@ -146,7 +146,8 @@ export const VDataTable = genericComponent()({
|
|
|
146
146
|
return _createVNode(VTable, _mergeProps({
|
|
147
147
|
"class": ['v-data-table', {
|
|
148
148
|
'v-data-table--show-select': props.showSelect
|
|
149
|
-
}]
|
|
149
|
+
}, props.class],
|
|
150
|
+
"style": props.style
|
|
150
151
|
}, tableProps), {
|
|
151
152
|
top: slots.top,
|
|
152
153
|
default: slots.default ?? (() => _createVNode(_Fragment, null, [slots.colgroup?.({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTable.mjs","names":["makeVDataTableFooterProps","VDataTableFooter","makeVDataTableHeadersProps","VDataTableHeaders","makeVDataTableRowsProps","VDataTableRows","VTable","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","createSort","makeDataTableSortProps","provideSort","useSortedItems","makeDataTableExpandProps","provideExpanded","makeDataTableItemProps","useDataTableItems","makeDataTableSelectProps","provideSelection","makeFilterProps","useFilter","makeVTableProps","provideDefaults","useOptions","computed","toRef","genericComponent","propsFactory","useRender","makeDataTableProps","width","String","Number","search","makeVDataTableProps","VDataTable","name","props","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","hideNoData","noDataText","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","top","default","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from './VDataTableHeaders'\nimport { makeVDataTableRowsProps, VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVTableProps } from '@/components/VTable/VTable'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useOptions } from './composables/options'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem, InternalDataTableHeader } from './types'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [InternalDataTableHeader]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n\n width: [String, Number],\n search: String,\n\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps(),\n}, 'data-table')\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps(),\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: makeVDataTableProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => 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, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => {\n const [dataTableFooterProps] = VDataTableFooter.filterProps(props)\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--show-select': props.showSelect,\n },\n ]}\n { ...tableProps }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ paginatedItems.value }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VDataTable.mjs","names":["makeVDataTableFooterProps","VDataTableFooter","makeVDataTableHeadersProps","VDataTableHeaders","makeVDataTableRowsProps","VDataTableRows","VTable","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","createSort","makeDataTableSortProps","provideSort","useSortedItems","makeDataTableExpandProps","provideExpanded","makeDataTableItemProps","useDataTableItems","makeDataTableSelectProps","provideSelection","makeFilterProps","useFilter","makeVTableProps","provideDefaults","useOptions","computed","toRef","genericComponent","propsFactory","useRender","makeDataTableProps","width","String","Number","search","makeVDataTableProps","VDataTable","name","props","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","hideNoData","noDataText","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from './VDataTableHeaders'\nimport { makeVDataTableRowsProps, VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVTableProps } from '@/components/VTable/VTable'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useOptions } from './composables/options'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem, InternalDataTableHeader } from './types'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [InternalDataTableHeader]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n\n width: [String, Number],\n search: String,\n\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps(),\n}, 'data-table')\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps(),\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: makeVDataTableProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => 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, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => {\n const [dataTableFooterProps] = VDataTableFooter.filterProps(props)\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--show-select': props.showSelect,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ paginatedItems.value }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
|
|
@@ -117,7 +117,8 @@ export const VDataTableServer = genericComponent()({
|
|
|
117
117
|
return _createVNode(VTable, _mergeProps({
|
|
118
118
|
"class": ['v-data-table', {
|
|
119
119
|
'v-data-table--loading': props.loading
|
|
120
|
-
}]
|
|
120
|
+
}, props.class],
|
|
121
|
+
"style": props.style
|
|
121
122
|
}, tableProps), {
|
|
122
123
|
top: slots.top,
|
|
123
124
|
default: slots.default ?? (() => _createVNode(_Fragment, null, [slots.colgroup?.({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableServer.mjs","names":["makeVDataTableFooterProps","VDataTableFooter","VDataTableHeaders","VDataTableRows","VTable","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","createPagination","makeDataTablePaginateProps","providePagination","createSort","provideSort","makeDataTableProps","provideDefaults","provideExpanded","provideSelection","useDataTableItems","useOptions","computed","provide","toRef","genericComponent","propsFactory","useRender","makeVDataTableServerProps","itemsLength","type","Number","String","required","VDataTableServer","name","props","emits","value","page","sortBy","options","click:row","e","setup","_ref","emit","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","showSelect","showExpand","items","toggleSort","opened","flatItems","search","hideNoData","noDataText","loading","loadingText","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","top","default","_Fragment","colgroup","fixedHeader","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { createSort, provideSort } from './composables/sort'\nimport { makeDataTableProps } from './VDataTable'\nimport { provideDefaults } from '@/composables/defaults'\nimport { provideExpanded } from './composables/expand'\nimport { provideSelection } from './composables/select'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlots } from './VDataTable'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'v-data-table-server')\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n 'click:row': (e: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n provideExpanded(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened } = provideGroupBy({ groupBy, sortBy })\n\n providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n provideSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search'),\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\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 useRender(() => {\n const [dataTableFooterProps] = VDataTableFooter.filterProps(props)\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 ]}\n { ...tableProps }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ flatItems.value }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VDataTableServer.mjs","names":["makeVDataTableFooterProps","VDataTableFooter","VDataTableHeaders","VDataTableRows","VTable","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","createPagination","makeDataTablePaginateProps","providePagination","createSort","provideSort","makeDataTableProps","provideDefaults","provideExpanded","provideSelection","useDataTableItems","useOptions","computed","provide","toRef","genericComponent","propsFactory","useRender","makeVDataTableServerProps","itemsLength","type","Number","String","required","VDataTableServer","name","props","emits","value","page","sortBy","options","click:row","e","setup","_ref","emit","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","showSelect","showExpand","items","toggleSort","opened","flatItems","search","hideNoData","noDataText","loading","loadingText","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","fixedHeader","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { createSort, provideSort } from './composables/sort'\nimport { makeDataTableProps } from './VDataTable'\nimport { provideDefaults } from '@/composables/defaults'\nimport { provideExpanded } from './composables/expand'\nimport { provideSelection } from './composables/select'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlots } from './VDataTable'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'v-data-table-server')\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n 'click:row': (e: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n provideExpanded(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened } = provideGroupBy({ groupBy, sortBy })\n\n providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n provideSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search'),\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\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 useRender(() => {\n const [dataTableFooterProps] = VDataTableFooter.filterProps(props)\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 >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ flatItems.value }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":";AAAA;AAAA,SACSA,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,iBAAiB;AAAA,SACjBC,cAAc;AAAA,SACdC,MAAM,6CAEf;AAAA,SACSC,aAAa,EAAEC,cAAc,EAAEC,eAAe;AAAA,SAC9CC,aAAa;AAAA,SACbC,gBAAgB,EAAEC,0BAA0B,EAAEC,iBAAiB;AAAA,SAC/DC,UAAU,EAAEC,WAAW;AAAA,SACvBC,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,eAAe;AAAA,SACfC,gBAAgB;AAAA,SAChBC,iBAAiB;AAAA,SACjBC,UAAU,qCAEnB;AACA,SAASC,QAAQ,EAAEC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACrCC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAIA,OAAO,MAAMC,yBAAyB,GAAGF,YAAY,CAAC;EACpDG,WAAW,EAAE;IACXC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,QAAQ,EAAE;EACZ,CAAC;EAED,GAAGrB,0BAA0B,EAAE;EAC/B,GAAGI,kBAAkB,EAAE;EACvB,GAAGd,yBAAyB;AAC9B,CAAC,EAAE,qBAAqB,CAAC;AAEzB,OAAO,MAAMgC,gBAAgB,GAAGT,gBAAgB,EAAmB,CAAC;EAClEU,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAER,yBAAyB,EAAE;EAElCS,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAY,IAAK,IAAI;IAC3C,aAAa,EAAGC,IAAY,IAAK,IAAI;IACrC,qBAAqB,EAAGA,IAAY,IAAK,IAAI;IAC7C,eAAe,EAAGC,MAAW,IAAK,IAAI;IACtC,gBAAgB,EAAGC,OAAY,IAAK,IAAI;IACxC,iBAAiB,EAAGA,OAAY,IAAK,IAAI;IACzC,gBAAgB,EAAGH,KAAU,IAAK,IAAI;IACtC,WAAW,EAAEI,CAACC,CAAQ,EAAEL,KAA8B,KAAK;EAC7D,CAAC;EAEDM,KAAKA,CAAER,KAAK,EAAAS,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAQ,CAAC,GAAGzC,aAAa,CAAC6B,KAAK,CAAC;IACxC,MAAM;MAAEI,MAAM;MAAES,SAAS;MAAEC;IAAS,CAAC,GAAGpC,UAAU,CAACsB,KAAK,CAAC;IACzD,MAAM;MAAEG,IAAI;MAAEY;IAAa,CAAC,GAAGxC,gBAAgB,CAACyB,KAAK,CAAC;IACtD,MAAMP,WAAW,GAAGP,QAAQ,CAAC,MAAM8B,QAAQ,CAAChB,KAAK,CAACP,WAAW,EAAE,EAAE,CAAC,CAAC;IAEnEX,eAAe,CAACkB,KAAK,CAAC;IAEtB,MAAM;MAAEiB;IAAQ,CAAC,GAAG3C,aAAa,CAAC0B,KAAK,EAAE;MACvCY,OAAO;MACPM,UAAU,EAAE9B,KAAK,CAACY,KAAK,EAAE,YAAY,CAAC;MACtCmB,UAAU,EAAE/B,KAAK,CAACY,KAAK,EAAE,YAAY;IACvC,CAAC,CAAC;IAEF,MAAM;MAAEoB;IAAM,CAAC,GAAGpC,iBAAiB,CAACgB,KAAK,EAAEiB,OAAO,CAAC;IAEnD,MAAM;MAAEI;IAAW,CAAC,GAAG1C,WAAW,CAAC;MAAEyB,MAAM;MAAES,SAAS;MAAEC,QAAQ;MAAEX;IAAK,CAAC,CAAC;IAEzE,MAAM;MAAEmB;IAAO,CAAC,GAAGlD,cAAc,CAAC;MAAEwC,OAAO;MAAER;IAAO,CAAC,CAAC;IAEtD3B,iBAAiB,CAAC;MAAE0B,IAAI;MAAEY,YAAY;MAAEtB;IAAY,CAAC,CAAC;IAEtD,MAAM;MAAE8B;IAAU,CAAC,GAAGlD,eAAe,CAAC+C,KAAK,EAAER,OAAO,EAAEU,MAAM,CAAC;IAE7DvC,gBAAgB,CAACiB,KAAK,EAAEoB,KAAK,CAAC;IAE9BnC,UAAU,CAAC;MACTkB,IAAI;MACJY,YAAY;MACZX,MAAM;MACNQ,OAAO;MACPY,MAAM,EAAEpC,KAAK,CAACY,KAAK,EAAE,QAAQ;IAC/B,CAAC,CAAC;IAEFb,OAAO,CAAC,cAAc,EAAE;MACtBkC,UAAU;MACVjB;IACF,CAAC,CAAC;IAEFvB,eAAe,CAAC;MACdZ,cAAc,EAAE;QACdwD,UAAU,EAAErC,KAAK,CAACY,KAAK,EAAE,YAAY,CAAC;QACtC0B,UAAU,EAAEtC,KAAK,CAACY,KAAK,EAAE,YAAY,CAAC;QACtC2B,OAAO,EAAEvC,KAAK,CAACY,KAAK,EAAE,SAAS,CAAC;QAChC4B,WAAW,EAAExC,KAAK,CAACY,KAAK,EAAE,aAAa;MACzC;IACF,CAAC,CAAC;IAEFT,SAAS,CAAC,MAAM;MACd,MAAM,CAACsC,oBAAoB,CAAC,GAAG9D,gBAAgB,CAAC+D,WAAW,CAAC9B,KAAK,CAAC;MAClE,MAAM,CAAC+B,qBAAqB,CAAC,GAAG/D,iBAAiB,CAAC8D,WAAW,CAAC9B,KAAK,CAAC;MACpE,MAAM,CAACgC,kBAAkB,CAAC,GAAG/D,cAAc,CAAC6D,WAAW,CAAC9B,KAAK,CAAC;MAC9D,MAAM,CAACiC,UAAU,CAAC,GAAG/D,MAAM,CAAC4D,WAAW,CAAC9B,KAAK,CAAC;MAE9C,OAAAkC,YAAA,CAAAhE,MAAA,EAAAiE,WAAA;QAAA,SAEW,CACL,cAAc,EACd;UACE,uBAAuB,EAAEnC,KAAK,CAAC2B;QACjC,CAAC,EACD3B,KAAK,CAACoC,KAAK,CACZ;QAAA,SACOpC,KAAK,CAACqC;MAAK,GACdJ,UAAU;QAGbK,GAAG,EAAE3B,KAAK,CAAC2B,GAAG;QACdC,OAAO,EAAE5B,KAAK,CAAC4B,OAAO,KAAK,MAAAL,YAAA,CAAAM,SAAA,SAErB7B,KAAK,CAAC8B,QAAQ,GAAG;UAAExB;QAAQ,CAAC,CAAC,EAAAiB,YAAA;UAAA,SAClB,qBAAqB;UAAA,QAAM;QAAU,IAAAA,YAAA,CAAAlE,iBAAA,EAAAmE,WAAA,CAEzCJ,qBAAqB;UAAA,UACjB/B,KAAK,CAAC0C;QAAW,IAChB/B,KAAK,KAGjBA,KAAK,CAACgC,KAAK,IAAI,EAAAT,YAAA;UAAA,SACJ,qBAAqB;UAAA,QAAM;QAAU,IAC9CvB,KAAK,CAACiC,IAAI,GAAGjC,KAAK,CAACiC,IAAI,EAAE,GAAAV,YAAA,CAAAjE,cAAA,EAAAkE,WAAA,CAElBH,kBAAkB;UAAA,SACfT,SAAS,CAACrB;QAAK,IACbS,KAAK,CAElB,IAEDA,KAAK,CAACkC,KAAK,IAAI,EACflC,KAAK,CAACmC,KAAK,IAAI,EAEpB,CAAC;QACFC,MAAM,EAAEpC,KAAK,CAACoC,MAAM,KAAK,MAAAb,YAAA,CAAAnE,gBAAA,EAEhB8D,oBAAoB,EAChB;UACPmB,OAAO,EAAErC,KAAK,CAAC,gBAAgB;QACjC,CAAC,CAEJ;MAAC;IAIV,CAAC,CAAC;EACJ;AACF,CAAC,CAAC"}
|
|
@@ -14,7 +14,7 @@ import { provideExpanded } from "./composables/expand.mjs";
|
|
|
14
14
|
import { provideSelection } from "./composables/select.mjs";
|
|
15
15
|
import { useDataTableItems } from "./composables/items.mjs";
|
|
16
16
|
import { useOptions } from "./composables/options.mjs"; // Utlities
|
|
17
|
-
import { computed,
|
|
17
|
+
import { computed, shallowRef, toRef } from 'vue';
|
|
18
18
|
import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
19
19
|
export const makeVDataTableVirtualProps = propsFactory({
|
|
20
20
|
...makeDataTableProps(),
|
|
@@ -98,8 +98,8 @@ export const VDataTableVirtual = genericComponent()({
|
|
|
98
98
|
});
|
|
99
99
|
useOptions({
|
|
100
100
|
sortBy,
|
|
101
|
-
page:
|
|
102
|
-
itemsPerPage:
|
|
101
|
+
page: shallowRef(1),
|
|
102
|
+
itemsPerPage: shallowRef(-1),
|
|
103
103
|
groupBy,
|
|
104
104
|
search
|
|
105
105
|
});
|
|
@@ -114,10 +114,10 @@ export const VDataTableVirtual = genericComponent()({
|
|
|
114
114
|
const [dataTableRowsProps] = VDataTableRows.filterProps(props);
|
|
115
115
|
const [tableProps] = VTable.filterProps(props);
|
|
116
116
|
return _createVNode(VTable, _mergeProps({
|
|
117
|
-
"class":
|
|
118
|
-
"style": {
|
|
117
|
+
"class": ['v-data-table', props.class],
|
|
118
|
+
"style": [{
|
|
119
119
|
'--v-table-row-height': convertToUnit(itemHeight.value)
|
|
120
|
-
}
|
|
120
|
+
}, props.style]
|
|
121
121
|
}, tableProps), {
|
|
122
122
|
top: slots.top,
|
|
123
123
|
wrapper: () => _createVNode("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VDataTableVirtual.mjs","names":["VDataTableHeaders","VDataTableRows","VTable","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","createSort","provideSort","useSortedItems","makeDataTableProps","makeDataTableVirtualProps","useVirtual","makeFilterProps","useFilter","provideDefaults","provideExpanded","provideSelection","useDataTableItems","useOptions","computed","ref","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","click:row","e","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","columns","showSelect","showExpand","items","filterKeys","map","c","key","search","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","itemsPerPage","hideNoData","noDataText","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","top","wrapper","height","fixedHeader","border","length","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { makeDataTableProps } from './VDataTable'\nimport { makeDataTableVirtualProps, useVirtual } from './composables/virtual'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\nimport { provideExpanded } from './composables/expand'\nimport { provideSelection } from './composables/select'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\n\n// Utlities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & {\n top: []\n headers: []\n bottom: []\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n}, 'v-data-table-virtual')\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\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 'click:row': (e: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allRows = computed(() => extractRows(flatItems.value))\n\n provideSelection(props, allRows)\n provideExpanded(props)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n startIndex,\n stopIndex,\n itemHeight,\n handleScroll,\n } = useVirtual(props, flatItems)\n\n const visibleItems = computed(() => {\n return flatItems.value.slice(startIndex.value, stopIndex.value)\n })\n\n useOptions({\n sortBy,\n page: ref(1),\n itemsPerPage: ref(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\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=\"v-data-table\"\n style={{\n '--v-table-row-height': convertToUnit(itemHeight.value),\n }}\n { ...tableProps }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ visibleItems.value }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VDataTableVirtual.mjs","names":["VDataTableHeaders","VDataTableRows","VTable","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","createSort","provideSort","useSortedItems","makeDataTableProps","makeDataTableVirtualProps","useVirtual","makeFilterProps","useFilter","provideDefaults","provideExpanded","provideSelection","useDataTableItems","useOptions","computed","shallowRef","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","click:row","e","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","columns","showSelect","showExpand","items","filterKeys","map","c","key","search","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","itemsPerPage","hideNoData","noDataText","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","wrapper","height","fixedHeader","border","length","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { makeDataTableProps } from './VDataTable'\nimport { makeDataTableVirtualProps, useVirtual } from './composables/virtual'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\nimport { provideExpanded } from './composables/expand'\nimport { provideSelection } from './composables/select'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\n\n// Utlities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\n\nexport type VDataTableVirtualSlots = VDataTableRowsSlots & {\n top: []\n headers: []\n bottom: []\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n}, 'v-data-table-virtual')\n\nexport const VDataTableVirtual = genericComponent<VDataTableVirtualSlots>()({\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 'click:row': (e: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allRows = computed(() => extractRows(flatItems.value))\n\n provideSelection(props, allRows)\n provideExpanded(props)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n startIndex,\n stopIndex,\n itemHeight,\n handleScroll,\n } = useVirtual(props, flatItems)\n\n const visibleItems = computed(() => {\n return flatItems.value.slice(startIndex.value, stopIndex.value)\n })\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 },\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 props.class,\n ]}\n style={[\n { '--v-table-row-height': convertToUnit(itemHeight.value) },\n props.style,\n ]}\n { ...tableProps }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n { ...dataTableRowsProps }\n items={ visibleItems.value }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Utilities
|
|
2
|
-
import { computed, ref } from 'vue';
|
|
2
|
+
import { computed, ref, shallowRef } from 'vue';
|
|
3
3
|
import { propsFactory } from "../../../util/index.mjs"; // Types
|
|
4
4
|
export const makeDataTableVirtualProps = propsFactory({
|
|
5
5
|
visibleItems: {
|
|
@@ -16,11 +16,11 @@ const DOWN = 1;
|
|
|
16
16
|
|
|
17
17
|
// TODO: Replace this with composable from v-virtual-scroll
|
|
18
18
|
export function useVirtual(props, items) {
|
|
19
|
-
const startIndex =
|
|
19
|
+
const startIndex = shallowRef(0);
|
|
20
20
|
const itemHeight = computed(() => parseInt(props.itemHeight, 10));
|
|
21
21
|
const visibleItems = computed(() => parseInt(props.visibleItems, 10));
|
|
22
22
|
const containerRef = ref();
|
|
23
|
-
const isScrolling =
|
|
23
|
+
const isScrolling = shallowRef(false);
|
|
24
24
|
function calculateOffset(index) {
|
|
25
25
|
return index * itemHeight.value;
|
|
26
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual.mjs","names":["computed","ref","propsFactory","makeDataTableVirtualProps","visibleItems","type","String","Number","default","itemHeight","UP","DOWN","useVirtual","props","items","startIndex","parseInt","containerRef","isScrolling","calculateOffset","index","value","calculateMidPointIndex","scrollTop","start","end","length","middle","Math","floor","middleOffset","lastScrollTop","scrollTimeout","handleScroll","clearTimeout","setTimeout","direction","midPointIndex","buffer","round","max","min","stopIndex","paddingTop","paddingBottom"],"sources":["../../../../src/labs/VDataTable/composables/virtual.ts"],"sourcesContent":["// Utilities\nimport { computed, ref } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport const makeDataTableVirtualProps = propsFactory({\n visibleItems: {\n type: [String, Number],\n default: 20,\n },\n itemHeight: {\n type: [String, Number],\n default: 52,\n },\n}, 'virtual')\n\ntype VirtualProps = {\n itemHeight: string | number\n visibleItems: string | number\n}\n\nconst UP = -1\nconst DOWN = 1\n\n// TODO: Replace this with composable from v-virtual-scroll\nexport function useVirtual (props: VirtualProps, items: Ref<any[]>) {\n const startIndex =
|
|
1
|
+
{"version":3,"file":"virtual.mjs","names":["computed","ref","shallowRef","propsFactory","makeDataTableVirtualProps","visibleItems","type","String","Number","default","itemHeight","UP","DOWN","useVirtual","props","items","startIndex","parseInt","containerRef","isScrolling","calculateOffset","index","value","calculateMidPointIndex","scrollTop","start","end","length","middle","Math","floor","middleOffset","lastScrollTop","scrollTimeout","handleScroll","clearTimeout","setTimeout","direction","midPointIndex","buffer","round","max","min","stopIndex","paddingTop","paddingBottom"],"sources":["../../../../src/labs/VDataTable/composables/virtual.ts"],"sourcesContent":["// Utilities\nimport { computed, ref, shallowRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport const makeDataTableVirtualProps = propsFactory({\n visibleItems: {\n type: [String, Number],\n default: 20,\n },\n itemHeight: {\n type: [String, Number],\n default: 52,\n },\n}, 'virtual')\n\ntype VirtualProps = {\n itemHeight: string | number\n visibleItems: string | number\n}\n\nconst UP = -1\nconst DOWN = 1\n\n// TODO: Replace this with composable from v-virtual-scroll\nexport function useVirtual (props: VirtualProps, items: Ref<any[]>) {\n const startIndex = shallowRef(0)\n const itemHeight = computed(() => parseInt(props.itemHeight, 10))\n const visibleItems = computed(() => parseInt(props.visibleItems, 10))\n const containerRef = ref<HTMLDivElement>()\n const isScrolling = shallowRef(false)\n\n function calculateOffset (index: number) {\n return index * itemHeight.value\n }\n\n function calculateMidPointIndex (scrollTop: number) {\n let start = 0\n let end = items.value.length\n\n while (start <= end) {\n const middle = start + Math.floor((end - start) / 2)\n const middleOffset = calculateOffset(middle)\n\n if (middleOffset === scrollTop) {\n return middle\n } else if (middleOffset < scrollTop) {\n start = middle + 1\n } else if (middleOffset > scrollTop) {\n end = middle - 1\n }\n }\n\n return start\n }\n\n let lastScrollTop = 0\n let scrollTimeout: any\n function handleScroll () {\n if (!containerRef.value) return\n\n isScrolling.value = true\n clearTimeout(scrollTimeout)\n scrollTimeout = setTimeout(() => {\n isScrolling.value = false\n }, 100)\n\n const scrollTop = containerRef.value.scrollTop\n const direction = scrollTop < lastScrollTop ? UP : DOWN\n\n const midPointIndex = calculateMidPointIndex(scrollTop)\n\n const buffer = Math.round(visibleItems.value / 3)\n if (direction === UP && midPointIndex <= startIndex.value) {\n startIndex.value = Math.max(midPointIndex - buffer, 0)\n } else if (direction === DOWN && midPointIndex >= startIndex.value + (buffer * 2)) {\n startIndex.value = Math.min(Math.max(0, midPointIndex - buffer), items.value.length - visibleItems.value)\n }\n\n lastScrollTop = containerRef.value.scrollTop\n }\n\n const stopIndex = computed(() => Math.min(items.value.length, startIndex.value + visibleItems.value))\n const paddingTop = computed(() => calculateOffset(startIndex.value))\n const paddingBottom = computed(() => calculateOffset(items.value.length) - calculateOffset(stopIndex.value))\n\n return {\n startIndex,\n stopIndex,\n paddingTop,\n paddingBottom,\n handleScroll,\n containerRef,\n itemHeight,\n isScrolling,\n }\n}\n"],"mappings":"AAAA;AACA,SAASA,QAAQ,EAAEC,GAAG,EAAEC,UAAU,QAAQ,KAAK;AAAA,SACtCC,YAAY,mCAErB;AAGA,OAAO,MAAMC,yBAAyB,GAAGD,YAAY,CAAC;EACpDE,YAAY,EAAE;IACZC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVJ,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,OAAO,EAAE;EACX;AACF,CAAC,EAAE,SAAS,CAAC;AAOb,MAAME,EAAE,GAAG,CAAC,CAAC;AACb,MAAMC,IAAI,GAAG,CAAC;;AAEd;AACA,OAAO,SAASC,UAAUA,CAAEC,KAAmB,EAAEC,KAAiB,EAAE;EAClE,MAAMC,UAAU,GAAGd,UAAU,CAAC,CAAC,CAAC;EAChC,MAAMQ,UAAU,GAAGV,QAAQ,CAAC,MAAMiB,QAAQ,CAACH,KAAK,CAACJ,UAAU,EAAE,EAAE,CAAC,CAAC;EACjE,MAAML,YAAY,GAAGL,QAAQ,CAAC,MAAMiB,QAAQ,CAACH,KAAK,CAACT,YAAY,EAAE,EAAE,CAAC,CAAC;EACrE,MAAMa,YAAY,GAAGjB,GAAG,EAAkB;EAC1C,MAAMkB,WAAW,GAAGjB,UAAU,CAAC,KAAK,CAAC;EAErC,SAASkB,eAAeA,CAAEC,KAAa,EAAE;IACvC,OAAOA,KAAK,GAAGX,UAAU,CAACY,KAAK;EACjC;EAEA,SAASC,sBAAsBA,CAAEC,SAAiB,EAAE;IAClD,IAAIC,KAAK,GAAG,CAAC;IACb,IAAIC,GAAG,GAAGX,KAAK,CAACO,KAAK,CAACK,MAAM;IAE5B,OAAOF,KAAK,IAAIC,GAAG,EAAE;MACnB,MAAME,MAAM,GAAGH,KAAK,GAAGI,IAAI,CAACC,KAAK,CAAC,CAACJ,GAAG,GAAGD,KAAK,IAAI,CAAC,CAAC;MACpD,MAAMM,YAAY,GAAGX,eAAe,CAACQ,MAAM,CAAC;MAE5C,IAAIG,YAAY,KAAKP,SAAS,EAAE;QAC9B,OAAOI,MAAM;MACf,CAAC,MAAM,IAAIG,YAAY,GAAGP,SAAS,EAAE;QACnCC,KAAK,GAAGG,MAAM,GAAG,CAAC;MACpB,CAAC,MAAM,IAAIG,YAAY,GAAGP,SAAS,EAAE;QACnCE,GAAG,GAAGE,MAAM,GAAG,CAAC;MAClB;IACF;IAEA,OAAOH,KAAK;EACd;EAEA,IAAIO,aAAa,GAAG,CAAC;EACrB,IAAIC,aAAkB;EACtB,SAASC,YAAYA,CAAA,EAAI;IACvB,IAAI,CAAChB,YAAY,CAACI,KAAK,EAAE;IAEzBH,WAAW,CAACG,KAAK,GAAG,IAAI;IACxBa,YAAY,CAACF,aAAa,CAAC;IAC3BA,aAAa,GAAGG,UAAU,CAAC,MAAM;MAC/BjB,WAAW,CAACG,KAAK,GAAG,KAAK;IAC3B,CAAC,EAAE,GAAG,CAAC;IAEP,MAAME,SAAS,GAAGN,YAAY,CAACI,KAAK,CAACE,SAAS;IAC9C,MAAMa,SAAS,GAAGb,SAAS,GAAGQ,aAAa,GAAGrB,EAAE,GAAGC,IAAI;IAEvD,MAAM0B,aAAa,GAAGf,sBAAsB,CAACC,SAAS,CAAC;IAEvD,MAAMe,MAAM,GAAGV,IAAI,CAACW,KAAK,CAACnC,YAAY,CAACiB,KAAK,GAAG,CAAC,CAAC;IACjD,IAAIe,SAAS,KAAK1B,EAAE,IAAI2B,aAAa,IAAItB,UAAU,CAACM,KAAK,EAAE;MACzDN,UAAU,CAACM,KAAK,GAAGO,IAAI,CAACY,GAAG,CAACH,aAAa,GAAGC,MAAM,EAAE,CAAC,CAAC;IACxD,CAAC,MAAM,IAAIF,SAAS,KAAKzB,IAAI,IAAI0B,aAAa,IAAItB,UAAU,CAACM,KAAK,GAAIiB,MAAM,GAAG,CAAE,EAAE;MACjFvB,UAAU,CAACM,KAAK,GAAGO,IAAI,CAACa,GAAG,CAACb,IAAI,CAACY,GAAG,CAAC,CAAC,EAAEH,aAAa,GAAGC,MAAM,CAAC,EAAExB,KAAK,CAACO,KAAK,CAACK,MAAM,GAAGtB,YAAY,CAACiB,KAAK,CAAC;IAC3G;IAEAU,aAAa,GAAGd,YAAY,CAACI,KAAK,CAACE,SAAS;EAC9C;EAEA,MAAMmB,SAAS,GAAG3C,QAAQ,CAAC,MAAM6B,IAAI,CAACa,GAAG,CAAC3B,KAAK,CAACO,KAAK,CAACK,MAAM,EAAEX,UAAU,CAACM,KAAK,GAAGjB,YAAY,CAACiB,KAAK,CAAC,CAAC;EACrG,MAAMsB,UAAU,GAAG5C,QAAQ,CAAC,MAAMoB,eAAe,CAACJ,UAAU,CAACM,KAAK,CAAC,CAAC;EACpE,MAAMuB,aAAa,GAAG7C,QAAQ,CAAC,MAAMoB,eAAe,CAACL,KAAK,CAACO,KAAK,CAACK,MAAM,CAAC,GAAGP,eAAe,CAACuB,SAAS,CAACrB,KAAK,CAAC,CAAC;EAE5G,OAAO;IACLN,UAAU;IACV2B,SAAS;IACTC,UAAU;IACVC,aAAa;IACbX,YAAY;IACZhB,YAAY;IACZR,UAAU;IACVS;EACF,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSkeletonLoader.mjs","names":["makeDimensionProps","useDimension","makeElevationProps","useElevation","makeThemeProps","provideTheme","useBackgroundColor","useLocale","computed","toRef","genericComponent","propsFactory","useRender","wrapInArray","rootTypes","actions","article","avatar","button","card","chip","divider","heading","image","paragraph","sentences","subtitle","table","text","genBone","type","children","arguments","length","undefined","_createVNode","genBones","bone","split","Array","from","map","genStructure","includes","mapBones","push","bones","replace","makeVSkeletonLoaderProps","boilerplate","Boolean","color","String","loading","loadingText","default","VSkeletonLoader","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","dimensionStyles","elevationClasses","themeClasses","t","items","join","isLoading","value"],"sources":["../../../src/labs/VSkeletonLoader/VSkeletonLoader.tsx"],"sourcesContent":["// Styles\nimport './VSkeletonLoader.sass'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\ntype VSkeletonBone<T> = T | VSkeletonBone<T>[]\n\nexport type VSkeletonBones = VSkeletonBone<VNode>\nexport type VSkeletonLoaderType = keyof typeof rootTypes\nexport type VSkeletonLoaderSlots = {\n default: []\n}\n\nexport const rootTypes = {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, heading',\n 'card-avatar': 'image, list-item-avatar',\n chip: 'chip',\n 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n divider: 'divider',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n subtitle: 'text',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'chip, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'text@6',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n} as const\n\nfunction genBone (type: string, children: VSkeletonBones = []) {\n return (\n <div\n class={[\n 'v-skeleton-loader__bone',\n `v-skeleton-loader__${type}`,\n ]}\n >\n { children }\n </div>\n )\n}\n\nfunction genBones (bone: string) {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [VSkeletonLoaderType, number]\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(() => genStructure(type))\n}\n\nfunction genStructure (type?: string): VSkeletonBones {\n let children: VSkeletonBones = []\n\n if (!type) return children\n\n // TODO: figure out a better way to type this\n const bone = (rootTypes as Record<string, string>)[type]\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.includes(',')) return mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.includes('@')) return genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.includes(',')) children = mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.includes('@')) children = genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(genStructure(bone))\n\n return [genBone(type, children)]\n}\n\nfunction mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(genStructure)\n}\n\nexport const makeVSkeletonLoaderProps = propsFactory({\n boilerplate: Boolean,\n color: String,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading',\n },\n type: {\n type: [String, Array] as PropType<VSkeletonLoaderType | VSkeletonLoaderType[]>,\n default: 'image',\n },\n\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeThemeProps(),\n}, 'v-skeleton-loader')\n\nexport const VSkeletonLoader = genericComponent<VSkeletonLoaderSlots>()({\n name: 'VSkeletonLoader',\n\n props: makeVSkeletonLoaderProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { themeClasses } = provideTheme(props)\n const { t } = useLocale()\n\n const items = computed(() => genStructure(wrapInArray(props.type).join(',')))\n\n useRender(() => {\n const isLoading = !slots.default || props.loading\n\n return (\n <div\n class={[\n 'v-skeleton-loader',\n {\n 'v-skeleton-loader--boilerplate': props.boilerplate,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n elevationClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n isLoading ? dimensionStyles.value : {},\n ]}\n aria-busy={ !props.boilerplate ? isLoading : undefined }\n aria-live={ !props.boilerplate ? 'polite' : undefined }\n aria-label={ !props.boilerplate ? t(props.loadingText) : undefined }\n role={ !props.boilerplate ? 'alert' : undefined }\n >\n { isLoading ? items.value : slots.default?.() }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSkeletonLoader = InstanceType<typeof VSkeletonLoader>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VSkeletonLoader.mjs","names":["makeDimensionProps","useDimension","makeElevationProps","useElevation","makeThemeProps","provideTheme","useBackgroundColor","useLocale","computed","toRef","genericComponent","propsFactory","useRender","wrapInArray","rootTypes","actions","article","avatar","button","card","chip","divider","heading","image","paragraph","sentences","subtitle","table","text","genBone","type","children","arguments","length","undefined","_createVNode","genBones","bone","split","Array","from","map","genStructure","includes","mapBones","push","bones","replace","makeVSkeletonLoaderProps","boilerplate","Boolean","color","String","loading","loadingText","default","VSkeletonLoader","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","dimensionStyles","elevationClasses","themeClasses","t","items","join","isLoading","value"],"sources":["../../../src/labs/VSkeletonLoader/VSkeletonLoader.tsx"],"sourcesContent":["// Styles\nimport './VSkeletonLoader.sass'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType, VNode } from 'vue'\n\ntype VSkeletonBone<T> = T | VSkeletonBone<T>[]\n\nexport type VSkeletonBones = VSkeletonBone<VNode>\nexport type VSkeletonLoaderType = keyof typeof rootTypes\nexport type VSkeletonLoaderSlots = {\n default: []\n}\n\nexport const rootTypes = {\n actions: 'button@2',\n article: 'heading, paragraph',\n avatar: 'avatar',\n button: 'button',\n card: 'image, heading',\n 'card-avatar': 'image, list-item-avatar',\n chip: 'chip',\n 'date-picker': 'list-item, heading, divider, date-picker-options, date-picker-days, actions',\n 'date-picker-options': 'text, avatar@2',\n 'date-picker-days': 'avatar@28',\n divider: 'divider',\n heading: 'heading',\n image: 'image',\n 'list-item': 'text',\n 'list-item-avatar': 'avatar, text',\n 'list-item-two-line': 'sentences',\n 'list-item-avatar-two-line': 'avatar, sentences',\n 'list-item-three-line': 'paragraph',\n 'list-item-avatar-three-line': 'avatar, paragraph',\n paragraph: 'text@3',\n sentences: 'text@2',\n subtitle: 'text',\n table: 'table-heading, table-thead, table-tbody, table-tfoot',\n 'table-heading': 'chip, text',\n 'table-thead': 'heading@6',\n 'table-tbody': 'table-row-divider@6',\n 'table-row-divider': 'table-row, divider',\n 'table-row': 'text@6',\n 'table-tfoot': 'text@2, avatar@2',\n text: 'text',\n} as const\n\nfunction genBone (type: string, children: VSkeletonBones = []) {\n return (\n <div\n class={[\n 'v-skeleton-loader__bone',\n `v-skeleton-loader__${type}`,\n ]}\n >\n { children }\n </div>\n )\n}\n\nfunction genBones (bone: string) {\n // e.g. 'text@3'\n const [type, length] = bone.split('@') as [VSkeletonLoaderType, number]\n\n // Generate a length array based upon\n // value after @ in the bone string\n return Array.from({ length }).map(() => genStructure(type))\n}\n\nfunction genStructure (type?: string): VSkeletonBones {\n let children: VSkeletonBones = []\n\n if (!type) return children\n\n // TODO: figure out a better way to type this\n const bone = (rootTypes as Record<string, string>)[type]\n\n // End of recursion, do nothing\n /* eslint-disable-next-line no-empty, brace-style */\n if (type === bone) {}\n // Array of values - e.g. 'heading, paragraph, text@2'\n else if (type.includes(',')) return mapBones(type)\n // Array of values - e.g. 'paragraph@4'\n else if (type.includes('@')) return genBones(type)\n // Array of values - e.g. 'card@2'\n else if (bone.includes(',')) children = mapBones(bone)\n // Array of values - e.g. 'list-item@2'\n else if (bone.includes('@')) children = genBones(bone)\n // Single value - e.g. 'card-heading'\n else if (bone) children.push(genStructure(bone))\n\n return [genBone(type, children)]\n}\n\nfunction mapBones (bones: string) {\n // Remove spaces and return array of structures\n return bones.replace(/\\s/g, '').split(',').map(genStructure)\n}\n\nexport const makeVSkeletonLoaderProps = propsFactory({\n boilerplate: Boolean,\n color: String,\n loading: Boolean,\n loadingText: {\n type: String,\n default: '$vuetify.loading',\n },\n type: {\n type: [String, Array] as PropType<string | string[]>,\n default: 'image',\n },\n\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeThemeProps(),\n}, 'v-skeleton-loader')\n\nexport const VSkeletonLoader = genericComponent<VSkeletonLoaderSlots>()({\n name: 'VSkeletonLoader',\n\n props: makeVSkeletonLoaderProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { themeClasses } = provideTheme(props)\n const { t } = useLocale()\n\n const items = computed(() => genStructure(wrapInArray(props.type).join(',')))\n\n useRender(() => {\n const isLoading = !slots.default || props.loading\n\n return (\n <div\n class={[\n 'v-skeleton-loader',\n {\n 'v-skeleton-loader--boilerplate': props.boilerplate,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n elevationClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n isLoading ? dimensionStyles.value : {},\n ]}\n aria-busy={ !props.boilerplate ? isLoading : undefined }\n aria-live={ !props.boilerplate ? 'polite' : undefined }\n aria-label={ !props.boilerplate ? t(props.loadingText) : undefined }\n role={ !props.boilerplate ? 'alert' : undefined }\n >\n { isLoading ? items.value : slots.default?.() }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSkeletonLoader = InstanceType<typeof VSkeletonLoader>\n"],"mappings":"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"}
|
|
@@ -10,12 +10,12 @@ declare const VSkeletonLoader: {
|
|
|
10
10
|
$: vue.ComponentInternalInstance;
|
|
11
11
|
$data: {};
|
|
12
12
|
$props: Partial<{
|
|
13
|
-
type:
|
|
13
|
+
type: string | string[];
|
|
14
14
|
loading: boolean;
|
|
15
15
|
loadingText: string;
|
|
16
16
|
boilerplate: boolean;
|
|
17
17
|
}> & Omit<{
|
|
18
|
-
type:
|
|
18
|
+
type: string | string[];
|
|
19
19
|
loading: boolean;
|
|
20
20
|
loadingText: string;
|
|
21
21
|
boilerplate: boolean;
|
|
@@ -53,7 +53,7 @@ declare const VSkeletonLoader: {
|
|
|
53
53
|
$emit: (event: string, ...args: any[]) => void;
|
|
54
54
|
$el: any;
|
|
55
55
|
$options: vue.ComponentOptionsBase<{
|
|
56
|
-
type:
|
|
56
|
+
type: string | string[];
|
|
57
57
|
loading: boolean;
|
|
58
58
|
loadingText: string;
|
|
59
59
|
boilerplate: boolean;
|
|
@@ -77,7 +77,7 @@ declare const VSkeletonLoader: {
|
|
|
77
77
|
} & {
|
|
78
78
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
79
79
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
80
|
-
type:
|
|
80
|
+
type: string | string[];
|
|
81
81
|
loading: boolean;
|
|
82
82
|
loadingText: string;
|
|
83
83
|
boilerplate: boolean;
|
|
@@ -102,7 +102,7 @@ declare const VSkeletonLoader: {
|
|
|
102
102
|
$nextTick: typeof vue.nextTick;
|
|
103
103
|
$watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (args_0: R, args_1: R) => any : (...args: any) => any, options?: vue.WatchOptions<boolean> | undefined): vue.WatchStopHandle;
|
|
104
104
|
} & {
|
|
105
|
-
type:
|
|
105
|
+
type: string | string[];
|
|
106
106
|
loading: boolean;
|
|
107
107
|
loadingText: string;
|
|
108
108
|
boilerplate: boolean;
|
|
@@ -130,7 +130,7 @@ declare const VSkeletonLoader: {
|
|
|
130
130
|
__isTeleport?: undefined;
|
|
131
131
|
__isSuspense?: undefined;
|
|
132
132
|
} & vue.ComponentOptionsBase<{
|
|
133
|
-
type:
|
|
133
|
+
type: string | string[];
|
|
134
134
|
loading: boolean;
|
|
135
135
|
loadingText: string;
|
|
136
136
|
boilerplate: boolean;
|
|
@@ -154,7 +154,7 @@ declare const VSkeletonLoader: {
|
|
|
154
154
|
} & {
|
|
155
155
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
156
156
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
157
|
-
type:
|
|
157
|
+
type: string | string[];
|
|
158
158
|
loading: boolean;
|
|
159
159
|
loadingText: string;
|
|
160
160
|
boilerplate: boolean;
|
|
@@ -178,7 +178,7 @@ declare const VSkeletonLoader: {
|
|
|
178
178
|
default: string;
|
|
179
179
|
};
|
|
180
180
|
type: {
|
|
181
|
-
type: PropType<
|
|
181
|
+
type: PropType<string | string[]>;
|
|
182
182
|
default: string;
|
|
183
183
|
};
|
|
184
184
|
}, vue.ExtractPropTypes<{
|
|
@@ -201,7 +201,7 @@ declare const VSkeletonLoader: {
|
|
|
201
201
|
default: string;
|
|
202
202
|
};
|
|
203
203
|
type: {
|
|
204
|
-
type: PropType<
|
|
204
|
+
type: PropType<string | string[]>;
|
|
205
205
|
default: string;
|
|
206
206
|
};
|
|
207
207
|
}>>;
|