vuetify 3.1.15 → 3.1.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/json/attributes.json +44 -44
  2. package/dist/json/importMap.json +72 -72
  3. package/dist/json/web-types.json +77 -77
  4. package/dist/vuetify-labs.css +370 -371
  5. package/dist/vuetify-labs.d.ts +3 -3
  6. package/dist/vuetify-labs.esm.js +101 -68
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +101 -68
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +7 -8
  11. package/dist/vuetify.d.ts +24 -24
  12. package/dist/vuetify.esm.js +63 -41
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +63 -41
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +717 -714
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +31 -16
  20. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  21. package/lib/components/VBreadcrumbs/index.d.ts +3 -3
  22. package/lib/components/VDialog/VDialog.mjs +2 -2
  23. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  24. package/lib/components/VField/VField.css +0 -1
  25. package/lib/components/VField/VField.sass +0 -1
  26. package/lib/components/VList/VList.mjs +3 -22
  27. package/lib/components/VList/VList.mjs.map +1 -1
  28. package/lib/components/VSlideGroup/VSlideGroup.mjs +2 -2
  29. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  30. package/lib/components/index.d.ts +3 -3
  31. package/lib/entry-bundler.mjs +1 -1
  32. package/lib/framework.mjs +1 -1
  33. package/lib/index.d.ts +21 -21
  34. package/lib/labs/VDataTable/VDataTable.mjs +1 -1
  35. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  36. package/lib/labs/VDataTable/VDataTableHeaders.mjs +34 -20
  37. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  38. package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
  39. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  40. package/lib/labs/VDataTable/VDataTableRows.mjs +2 -2
  41. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  42. package/lib/labs/VDataTable/VDataTableServer.mjs +1 -1
  43. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  44. package/lib/util/helpers.mjs +26 -0
  45. package/lib/util/helpers.mjs.map +1 -1
  46. package/package.json +3 -3
package/lib/index.d.ts CHANGED
@@ -312,41 +312,41 @@ declare module '@vue/runtime-core' {
312
312
 
313
313
  export interface GlobalComponents {
314
314
  VApp: typeof import('vuetify/components')['VApp']
315
- VAlert: typeof import('vuetify/components')['VAlert']
316
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
317
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
318
315
  VAppBar: typeof import('vuetify/components')['VAppBar']
319
316
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
320
317
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
318
+ VAlert: typeof import('vuetify/components')['VAlert']
319
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
320
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
321
+ VAvatar: typeof import('vuetify/components')['VAvatar']
321
322
  VBadge: typeof import('vuetify/components')['VBadge']
322
323
  VBanner: typeof import('vuetify/components')['VBanner']
323
324
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
324
325
  VBannerText: typeof import('vuetify/components')['VBannerText']
325
- VAvatar: typeof import('vuetify/components')['VAvatar']
326
326
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
327
327
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
328
328
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
329
329
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
330
330
  VBtn: typeof import('vuetify/components')['VBtn']
331
- VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
332
331
  VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
333
- VCarousel: typeof import('vuetify/components')['VCarousel']
334
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
332
+ VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
335
333
  VCard: typeof import('vuetify/components')['VCard']
336
334
  VCardActions: typeof import('vuetify/components')['VCardActions']
337
335
  VCardItem: typeof import('vuetify/components')['VCardItem']
338
336
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
339
337
  VCardText: typeof import('vuetify/components')['VCardText']
340
338
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
339
+ VCarousel: typeof import('vuetify/components')['VCarousel']
340
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
341
341
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
342
342
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
343
343
  VChip: typeof import('vuetify/components')['VChip']
344
344
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
345
- VCode: typeof import('vuetify/components')['VCode']
346
345
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
346
+ VCode: typeof import('vuetify/components')['VCode']
347
347
  VCombobox: typeof import('vuetify/components')['VCombobox']
348
- VDialog: typeof import('vuetify/components')['VDialog']
349
348
  VCounter: typeof import('vuetify/components')['VCounter']
349
+ VDialog: typeof import('vuetify/components')['VDialog']
350
350
  VDivider: typeof import('vuetify/components')['VDivider']
351
351
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
352
352
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
@@ -356,13 +356,13 @@ declare module '@vue/runtime-core' {
356
356
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
357
357
  VFileInput: typeof import('vuetify/components')['VFileInput']
358
358
  VFooter: typeof import('vuetify/components')['VFooter']
359
- VImg: typeof import('vuetify/components')['VImg']
360
- VInput: typeof import('vuetify/components')['VInput']
361
359
  VIcon: typeof import('vuetify/components')['VIcon']
362
360
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
363
361
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
364
362
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
365
363
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
364
+ VImg: typeof import('vuetify/components')['VImg']
365
+ VInput: typeof import('vuetify/components')['VInput']
366
366
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
367
367
  VItem: typeof import('vuetify/components')['VItem']
368
368
  VKbd: typeof import('vuetify/components')['VKbd']
@@ -376,10 +376,10 @@ declare module '@vue/runtime-core' {
376
376
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
377
377
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
378
378
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
379
+ VMain: typeof import('vuetify/components')['VMain']
379
380
  VMenu: typeof import('vuetify/components')['VMenu']
380
381
  VMessages: typeof import('vuetify/components')['VMessages']
381
382
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
382
- VMain: typeof import('vuetify/components')['VMain']
383
383
  VOverlay: typeof import('vuetify/components')['VOverlay']
384
384
  VPagination: typeof import('vuetify/components')['VPagination']
385
385
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
@@ -393,11 +393,11 @@ declare module '@vue/runtime-core' {
393
393
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
394
394
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
395
395
  VSlider: typeof import('vuetify/components')['VSlider']
396
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
397
396
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
397
+ VSwitch: typeof import('vuetify/components')['VSwitch']
398
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
398
399
  VTabs: typeof import('vuetify/components')['VTabs']
399
400
  VTab: typeof import('vuetify/components')['VTab']
400
- VSwitch: typeof import('vuetify/components')['VSwitch']
401
401
  VTable: typeof import('vuetify/components')['VTable']
402
402
  VTextarea: typeof import('vuetify/components')['VTextarea']
403
403
  VTextField: typeof import('vuetify/components')['VTextField']
@@ -406,25 +406,26 @@ declare module '@vue/runtime-core' {
406
406
  VToolbar: typeof import('vuetify/components')['VToolbar']
407
407
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
408
408
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
409
+ VTooltip: typeof import('vuetify/components')['VTooltip']
409
410
  VWindow: typeof import('vuetify/components')['VWindow']
410
411
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
411
- VTooltip: typeof import('vuetify/components')['VTooltip']
412
- VHover: typeof import('vuetify/components')['VHover']
412
+ VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
413
+ VForm: typeof import('vuetify/components')['VForm']
413
414
  VContainer: typeof import('vuetify/components')['VContainer']
414
415
  VCol: typeof import('vuetify/components')['VCol']
415
416
  VRow: typeof import('vuetify/components')['VRow']
416
417
  VSpacer: typeof import('vuetify/components')['VSpacer']
417
- VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
418
- VForm: typeof import('vuetify/components')['VForm']
418
+ VHover: typeof import('vuetify/components')['VHover']
419
419
  VLayout: typeof import('vuetify/components')['VLayout']
420
420
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
421
421
  VLazy: typeof import('vuetify/components')['VLazy']
422
422
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
423
423
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
424
+ VParallax: typeof import('vuetify/components')['VParallax']
424
425
  VRadio: typeof import('vuetify/components')['VRadio']
425
- VResponsive: typeof import('vuetify/components')['VResponsive']
426
426
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
427
- VParallax: typeof import('vuetify/components')['VParallax']
427
+ VResponsive: typeof import('vuetify/components')['VResponsive']
428
+ VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
428
429
  VValidation: typeof import('vuetify/components')['VValidation']
429
430
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
430
431
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
@@ -442,6 +443,5 @@ declare module '@vue/runtime-core' {
442
443
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
443
444
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
444
445
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
445
- VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
446
446
  }
447
447
  }
@@ -154,7 +154,7 @@ export const VDataTable = genericComponent()({
154
154
  top: slots.top,
155
155
  default: slots.default ?? (() => _createVNode(_Fragment, null, [slots.colgroup?.({
156
156
  columns
157
- }), _createVNode("thead", null, [slots.headers ? slots.headers() : _createVNode(VDataTableHeaders, {
157
+ }), _createVNode("thead", null, [_createVNode(VDataTableHeaders, {
158
158
  "sticky": props.fixedHeader,
159
159
  "multiSort": props.multiSort
160
160
  }, slots)]), slots.thead?.(), _createVNode("tbody", null, [slots.body ? slots.body() : _createVNode(VDataTableRows, {
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","makeDataTableExpandProps","provideExpanded","useOptions","provideDefaults","computed","toRef","genericComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","hover","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","Function","search","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","_createVNode","top","_Fragment","colgroup","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\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 makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n hover: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n search: String,\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: {\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\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 <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\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":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","makeDataTableExpandProps","provideExpanded","useOptions","provideDefaults","computed","toRef","genericComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","hover","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","Function","search","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","_createVNode","top","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\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 makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n hover: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n search: String,\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: {\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\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 <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
@@ -9,6 +9,7 @@ import { useBackgroundColor } from "../../composables/color.mjs";
9
9
  import { useHeaders } from "./composables/headers.mjs";
10
10
  import { useSelection } from "./composables/select.mjs";
11
11
  import { useSort } from "./composables/sort.mjs"; // Utilities
12
+ import { computed } from 'vue';
12
13
  import { convertToUnit, genericComponent, useRender } from "../../util/index.mjs"; // Types
13
14
  export const VDataTableHeaders = genericComponent()({
14
15
  name: 'VDataTableHeaders',
@@ -67,6 +68,17 @@ export const VDataTableHeaders = genericComponent()({
67
68
  backgroundColorClasses,
68
69
  backgroundColorStyles
69
70
  } = useBackgroundColor(props, 'color');
71
+ const slotProps = computed(() => ({
72
+ headers: headers.value,
73
+ columns: columns.value,
74
+ toggleSort,
75
+ sortBy: sortBy.value,
76
+ someSelected: someSelected.value,
77
+ allSelected: allSelected.value,
78
+ selectAll,
79
+ getSortIcon,
80
+ getFixedStyles
81
+ }));
70
82
  const VDataTableHeaderCell = _ref2 => {
71
83
  let {
72
84
  column,
@@ -94,14 +106,14 @@ export const VDataTableHeaders = genericComponent()({
94
106
  "noPadding": noPadding
95
107
  }, {
96
108
  default: () => {
97
- const slotName = `column.${column.key}`;
98
- const slotProps = {
109
+ const columnSlotName = `column.${column.key}`;
110
+ const columnSlotProps = {
99
111
  column,
100
112
  selectAll
101
113
  };
102
- if (slots[slotName]) return slots[slotName](slotProps);
114
+ if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
103
115
  if (column.key === 'data-table-select') {
104
- return slots['column.data-table-select']?.(slotProps) ?? _createVNode(VCheckboxBtn, {
116
+ return slots['column.data-table-select']?.(columnSlotProps) ?? _createVNode(VCheckboxBtn, {
105
117
  "modelValue": allSelected.value,
106
118
  "indeterminate": someSelected.value && !allSelected.value,
107
119
  "onUpdate:modelValue": selectAll
@@ -121,22 +133,24 @@ export const VDataTableHeaders = genericComponent()({
121
133
  }
122
134
  });
123
135
  };
124
- useRender(() => _createVNode(_Fragment, null, [headers.value.map((row, y) => _createVNode("tr", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {
125
- "column": column,
126
- "x": x,
127
- "y": y
128
- }, null))])), props.loading && _createVNode("tr", {
129
- "class": "v-data-table__progress"
130
- }, [_createVNode("th", {
131
- "colspan": columns.value.length
132
- }, [_createVNode(LoaderSlot, {
133
- "name": "v-data-table-headers",
134
- "active": true,
135
- "color": typeof props.loading === 'boolean' ? undefined : props.loading,
136
- "indeterminate": true
137
- }, {
138
- default: slots.loader
139
- })])])]));
136
+ useRender(() => {
137
+ return _createVNode(_Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => _createVNode("tr", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {
138
+ "column": column,
139
+ "x": x,
140
+ "y": y
141
+ }, null))])), props.loading && _createVNode("tr", {
142
+ "class": "v-data-table__progress"
143
+ }, [_createVNode("th", {
144
+ "colspan": columns.value.length
145
+ }, [_createVNode(LoaderSlot, {
146
+ "name": "v-data-table-headers",
147
+ "active": true,
148
+ "color": typeof props.loading === 'boolean' ? undefined : props.loading,
149
+ "indeterminate": true
150
+ }, {
151
+ default: slots.loader
152
+ })])])]);
153
+ });
140
154
  }
141
155
  });
142
156
  //# sourceMappingURL=VDataTableHeaders.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableHeaders.mjs","names":["VCheckboxBtn","VDataTableColumn","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","useBackgroundColor","useHeaders","useSelection","useSort","convertToUnit","genericComponent","useRender","VDataTableHeaders","name","props","color","String","sticky","Boolean","multiSort","sortAscIcon","type","default","sortDescIcon","setup","_ref","slots","emit","toggleSort","sortBy","someSelected","allSelected","selectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","position","zIndex","undefined","left","fixedOffset","top","getSortIcon","id","item","value","find","key","order","backgroundColorClasses","backgroundColorStyles","VDataTableHeaderCell","_ref2","x","isSorted","noPadding","_createVNode","align","sortable","width","minWidth","colspan","rowspan","lastFixed","slotName","slotProps","title","findIndex","_Fragment","map","row","loading","length","loader"],"sources":["../../../src/labs/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\n\n// Utilities\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InternalDataTableHeader } from './types'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type VDataTableHeadersSlots = {\n default: []\n loader: [LoaderSlotProps]\n 'column.data-table-select': [InternalDataTableHeader, (value: boolean) => void]\n}\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: {\n color: String,\n sticky: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n\n ...makeLoaderProps(),\n },\n\n setup (props, { slots, emit }) {\n const { toggleSort, sortBy } = useSort()\n const { someSelected, allSelected, selectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n const getFixedStyles = (column: InternalDataTableHeader, y: number) => {\n if (!props.sticky && !column.fixed) return null\n\n return {\n position: 'sticky',\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined, // TODO: This needs to account for possible previous fixed columns.\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined, // TODO: This needs to account for possible row/colspan of previous columns\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (id: string) {\n const item = sortBy.value.find(item => item.key === id)\n\n if (!item) return props.sortAscIcon\n\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const isSorted = !!sortBy.value.find(x => x.key === column.key)\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n 'v-data-table__th',\n {\n 'v-data-table__th--sortable': column.sortable,\n 'v-data-table__th--sorted': isSorted,\n },\n loaderClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.width),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n onClick={ column.sortable ? () => toggleSort(column.key) : undefined }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n >\n {{\n default: () => {\n const slotName = `column.${column.key}`\n const slotProps = {\n column,\n selectAll,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['column.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n )\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column.key) }\n />\n )}\n { props.multiSort && isSorted && (\n <div\n key=\"badge\"\n class={[\n 'v-data-table-header__sort-badge',\n ...backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n </div>\n )}\n </div>\n )\n },\n }}\n </VDataTableColumn>\n )\n }\n\n useRender(() => (\n <>\n { headers.value.map((row, y) => (\n <tr>\n { row.map((column, x) => (\n <VDataTableHeaderCell column={ column } x={ x } y={ y } />\n ))}\n </tr>\n ))}\n\n { props.loading && (\n <tr class=\"v-data-table__progress\">\n <th colspan={ columns.value.length }>\n <LoaderSlot\n name=\"v-data-table-headers\"\n active\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n v-slots={{ default: slots.loader }}\n />\n </th>\n </tr>\n )}\n </>\n ))\n },\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableHeaders.mjs","names":["VCheckboxBtn","VDataTableColumn","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","useBackgroundColor","useHeaders","useSelection","useSort","computed","convertToUnit","genericComponent","useRender","VDataTableHeaders","name","props","color","String","sticky","Boolean","multiSort","sortAscIcon","type","default","sortDescIcon","setup","_ref","slots","emit","toggleSort","sortBy","someSelected","allSelected","selectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","position","zIndex","undefined","left","fixedOffset","top","getSortIcon","id","item","value","find","key","order","backgroundColorClasses","backgroundColorStyles","slotProps","VDataTableHeaderCell","_ref2","x","isSorted","noPadding","_createVNode","align","sortable","width","minWidth","colspan","rowspan","lastFixed","columnSlotName","columnSlotProps","title","findIndex","_Fragment","map","row","loading","length","loader"],"sources":["../../../src/labs/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\n\n// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InternalDataTableHeader } from './types'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { SortItem } from './composables/sort'\n\ntype HeadersSlotProps = {\n headers: InternalDataTableHeader[][]\n columns: InternalDataTableHeader[]\n sortBy: SortItem[]\n someSelected: boolean\n allSelected: boolean\n toggleSort: (key: string) => void\n selectAll: (value: boolean) => void\n getSortIcon: (key: string) => IconValue\n getFixedStyles: (column: InternalDataTableHeader) => Record<string, string>\n}\n\nexport type VDataTableHeadersSlots = {\n default: []\n headers: [HeadersSlotProps]\n loader: [LoaderSlotProps]\n 'column.data-table-select': [InternalDataTableHeader, (value: boolean) => void]\n}\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: {\n color: String,\n sticky: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n\n ...makeLoaderProps(),\n },\n\n setup (props, { slots, emit }) {\n const { toggleSort, sortBy } = useSort()\n const { someSelected, allSelected, selectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n const getFixedStyles = (column: InternalDataTableHeader, y: number) => {\n if (!props.sticky && !column.fixed) return null\n\n return {\n position: 'sticky',\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined, // TODO: This needs to account for possible previous fixed columns.\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined, // TODO: This needs to account for possible row/colspan of previous columns\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (id: string) {\n const item = sortBy.value.find(item => item.key === id)\n\n if (!item) return props.sortAscIcon\n\n return item.order === 'asc' ? props.sortAscIcon : props.sortDescIcon\n }\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon,\n getFixedStyles,\n }))\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const isSorted = !!sortBy.value.find(x => x.key === column.key)\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n 'v-data-table__th',\n {\n 'v-data-table__th--sortable': column.sortable,\n 'v-data-table__th--sorted': isSorted,\n },\n loaderClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.width),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n onClick={ column.sortable ? () => toggleSort(column.key) : undefined }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n >\n {{\n default: () => {\n const columnSlotName = `column.${column.key}`\n const columnSlotProps = {\n column,\n selectAll,\n }\n\n if (slots[columnSlotName]) return slots[columnSlotName]!(columnSlotProps)\n\n if (column.key === 'data-table-select') {\n return slots['column.data-table-select']?.(columnSlotProps) ?? (\n <VCheckboxBtn\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n )\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column.key) }\n />\n )}\n { props.multiSort && isSorted && (\n <div\n key=\"badge\"\n class={[\n 'v-data-table-header__sort-badge',\n ...backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { sortBy.value.findIndex(x => x.key === column.key) + 1 }\n </div>\n )}\n </div>\n )\n },\n }}\n </VDataTableColumn>\n )\n }\n\n useRender(() => {\n return (\n <>\n { slots.headers\n ? slots.headers(slotProps.value)\n : headers.value.map((row, y) => (\n <tr>\n { row.map((column, x) => (\n <VDataTableHeaderCell column={ column } x={ x } y={ y } />\n ))}\n </tr>\n ))}\n\n { props.loading && (\n <tr class=\"v-data-table__progress\">\n <th colspan={ columns.value.length }>\n\n <LoaderSlot\n name=\"v-data-table-headers\"\n active\n color={ typeof props.loading === 'boolean' ? undefined : props.loading }\n indeterminate\n v-slots={{ default: slots.loader }}\n />\n </th>\n </tr>\n )}\n </>\n )\n })\n },\n})\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
1
+ import { createVNode as _createVNode } from "vue";
2
2
  // Components
3
3
  import { VBtn } from "../../components/VBtn/index.mjs";
4
4
  import { VCheckboxBtn } from "../../components/VCheckbox/index.mjs"; // Composables
@@ -35,9 +35,7 @@ export const VDataTableRow = defineComponent({
35
35
  'v-data-table__tr--clickable': !!props.onClick
36
36
  }],
37
37
  "onClick": props.onClick
38
- }, [!columns.value.length && _createVNode(VDataTableColumn, {
39
- "key": "no-data"
40
- }, slots), props.item && columns.value.map((column, i) => _createVNode(VDataTableColumn, {
38
+ }, [props.item && columns.value.map((column, i) => _createVNode(VDataTableColumn, {
41
39
  "align": column.align,
42
40
  "fixed": column.fixed,
43
41
  "fixedOffset": column.fixedOffset,
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRow.mjs","names":["VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","VDataTableColumn","withModifiers","defineComponent","getPropertyFromItem","useRender","VDataTableRow","name","props","index","Number","item","Object","onClick","Function","setup","_ref","slots","isSelected","toggleSelect","isExpanded","toggleExpand","columns","_createVNode","value","length","map","column","i","align","fixed","fixedOffset","lastFixed","key","width","default","slotName","slotProps"],"sources":["../../../src/labs/VDataTable/VDataTableRow.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { VDataTableColumn } from './VDataTableColumn'\n\n// Utilities\nimport { withModifiers } from 'vue'\nimport { defineComponent, getPropertyFromItem, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem } from './types'\n\nexport const VDataTableRow = defineComponent({\n name: 'VDataTableRow',\n\n props: {\n index: Number as PropType<Number>,\n item: Object as PropType<DataTableItem>,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n },\n\n setup (props, { slots }) {\n const { isSelected, toggleSelect } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\n const { columns } = useHeaders()\n\n useRender(() => (\n <tr\n class={[\n 'v-data-table__tr',\n {\n 'v-data-table__tr--clickable': !!props.onClick,\n },\n ]}\n onClick={ props.onClick }\n >\n { !columns.value.length && (\n <VDataTableColumn\n key=\"no-data\"\n v-slots={ slots }\n />\n )}\n\n { props.item && columns.value.map((column, i) => (\n <VDataTableColumn\n align={ column.align }\n fixed={ column.fixed }\n fixedOffset={ column.fixedOffset }\n lastFixed={ column.lastFixed }\n noPadding={ column.key === 'data-table-select' || column.key === 'data-table-expand' }\n width={ column.width }\n >\n {{\n default: () => {\n const item = props.item!\n const slotName = `item.${column.key}`\n const slotProps = {\n index: props.index,\n item: props.item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ isSelected([item]) }\n onClick={ withModifiers(() => toggleSelect(item), ['stop']) }\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? (\n <VBtn\n icon={ isExpanded(item) ? '$collapse' : '$expand' }\n size=\"small\"\n variant=\"text\"\n onClick={ withModifiers(() => toggleExpand(item), ['stop']) }\n />\n )\n }\n\n return getPropertyFromItem(item.columns, column.key)\n },\n }}\n </VDataTableColumn>\n ))}\n </tr>\n ))\n },\n})\n\nexport type VDataTableRow = InstanceType<typeof VDataTableRow>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableRow.mjs","names":["VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","VDataTableColumn","withModifiers","defineComponent","getPropertyFromItem","useRender","VDataTableRow","name","props","index","Number","item","Object","onClick","Function","setup","_ref","slots","isSelected","toggleSelect","isExpanded","toggleExpand","columns","_createVNode","value","map","column","i","align","fixed","fixedOffset","lastFixed","key","width","default","slotName","slotProps"],"sources":["../../../src/labs/VDataTable/VDataTableRow.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { VDataTableColumn } from './VDataTableColumn'\n\n// Utilities\nimport { withModifiers } from 'vue'\nimport { defineComponent, getPropertyFromItem, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem } from './types'\n\nexport const VDataTableRow = defineComponent({\n name: 'VDataTableRow',\n\n props: {\n index: Number as PropType<Number>,\n item: Object as PropType<DataTableItem>,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n },\n\n setup (props, { slots }) {\n const { isSelected, toggleSelect } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\n const { columns } = useHeaders()\n\n useRender(() => (\n <tr\n class={[\n 'v-data-table__tr',\n {\n 'v-data-table__tr--clickable': !!props.onClick,\n },\n ]}\n onClick={ props.onClick }\n >\n { props.item && columns.value.map((column, i) => (\n <VDataTableColumn\n align={ column.align }\n fixed={ column.fixed }\n fixedOffset={ column.fixedOffset }\n lastFixed={ column.lastFixed }\n noPadding={ column.key === 'data-table-select' || column.key === 'data-table-expand' }\n width={ column.width }\n >\n {{\n default: () => {\n const item = props.item!\n const slotName = `item.${column.key}`\n const slotProps = {\n index: props.index,\n item: props.item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ isSelected([item]) }\n onClick={ withModifiers(() => toggleSelect(item), ['stop']) }\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? (\n <VBtn\n icon={ isExpanded(item) ? '$collapse' : '$expand' }\n size=\"small\"\n variant=\"text\"\n onClick={ withModifiers(() => toggleExpand(item), ['stop']) }\n />\n )\n }\n\n return getPropertyFromItem(item.columns, column.key)\n },\n }}\n </VDataTableColumn>\n ))}\n </tr>\n ))\n },\n})\n\nexport type VDataTableRow = InstanceType<typeof VDataTableRow>\n"],"mappings":"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"}
@@ -55,13 +55,13 @@ export const VDataTableRows = genericComponent()({
55
55
  useRender(() => {
56
56
  if (props.loading && slots.loading) {
57
57
  return _createVNode("tr", {
58
- "class": "v-data-table-rows-no-data",
58
+ "class": "v-data-table-rows-loading",
59
59
  "key": "loading"
60
60
  }, [_createVNode("td", {
61
61
  "colspan": columns.value.length
62
62
  }, [slots.loading()])]);
63
63
  }
64
- if (!props.loading && !props.items.length && !props.hideNoData && slots['no-data']) {
64
+ if (!props.loading && !props.items.length && !props.hideNoData) {
65
65
  return _createVNode("tr", {
66
66
  "class": "v-data-table-rows-no-data",
67
67
  "key": "no-data"
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useLocale","useExpanded","useHeaders","useSelection","useGroupBy","genericComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","Function","setup","_ref","emit","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","_createVNode","value","length","_Fragment","map","item","index","id","slotProps","event","undefined"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useGroupBy } from './composables/group'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem, GroupHeaderItem, InternalDataTableHeader, InternalDataTableItem } from './types'\nimport type { PropType } from 'vue'\n\ntype GroupHeaderSlot = {\n index: number\n item: GroupHeaderItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n toggleGroup: (group: GroupHeaderItem) => void\n isGroupOpen: (group: GroupHeaderItem) => boolean\n}\n\ntype ItemSlot = {\n index: number\n item: DataTableItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n}\n\nexport type VDataTableRowsSlots = {\n default: []\n item: [ItemSlot]\n loading: []\n 'group-header': [GroupHeaderSlot]\n 'no-data': []\n 'expanded-row': [ItemSlot]\n 'item.data-table-select': [ItemSlot]\n 'item.data-table-expand': [ItemSlot]\n} & { [key: `item.${string}`]: [ItemSlot] }\n\nexport const VDataTableRows = genericComponent<VDataTableRowsSlots>()({\n name: 'VDataTableRows',\n\n props: {\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<InternalDataTableItem[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowHeight: Number,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n },\n\n setup (props, { emit, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n\n useRender(() => {\n if (props.loading && slots.loading) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"loading\"\n >\n <td colspan={ columns.value.length }>\n { slots.loading() }\n </td>\n </tr>\n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData && slots['no-data']) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n <td colspan={ columns.value.length }>\n { slots['no-data']?.() ?? t(props.noDataText) }\n </td>\n </tr>\n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group-header') {\n return slots['group-header'] ? slots['group-header']({\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } as GroupHeaderSlot) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n v-slots={ slots }\n />\n )\n }\n\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } as ItemSlot\n\n return (\n <>\n { slots.item ? slots.item(slotProps) : (\n <VDataTableRow\n key={ `item_${item.value}` }\n onClick={ expandOnClick.value || props['onClick:row'] ? (event: Event) => {\n if (expandOnClick.value) {\n toggleExpand(item)\n }\n props['onClick:row']?.(event, { item })\n } : undefined }\n index={ index }\n item={ item }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useLocale","useExpanded","useHeaders","useSelection","useGroupBy","genericComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","Function","setup","_ref","emit","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","_createVNode","value","length","_Fragment","map","item","index","id","slotProps","event","undefined"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useGroupBy } from './composables/group'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { DataTableItem, GroupHeaderItem, InternalDataTableHeader, InternalDataTableItem } from './types'\nimport type { PropType } from 'vue'\n\ntype GroupHeaderSlot = {\n index: number\n item: GroupHeaderItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n toggleGroup: (group: GroupHeaderItem) => void\n isGroupOpen: (group: GroupHeaderItem) => boolean\n}\n\ntype ItemSlot = {\n index: number\n item: DataTableItem\n columns: InternalDataTableHeader[]\n isExpanded: (item: DataTableItem) => boolean\n toggleExpand: (item: DataTableItem) => void\n isSelected: (items: DataTableItem[]) => boolean\n toggleSelect: (item: DataTableItem) => void\n}\n\nexport type VDataTableRowsSlots = {\n default: []\n item: [ItemSlot]\n loading: []\n 'group-header': [GroupHeaderSlot]\n 'no-data': []\n 'expanded-row': [ItemSlot]\n 'item.data-table-select': [ItemSlot]\n 'item.data-table-expand': [ItemSlot]\n} & { [key: `item.${string}`]: [ItemSlot] }\n\nexport const VDataTableRows = genericComponent<VDataTableRowsSlots>()({\n name: 'VDataTableRows',\n\n props: {\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<InternalDataTableItem[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowHeight: Number,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n },\n\n setup (props, { emit, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n\n useRender(() => {\n if (props.loading && slots.loading) {\n return (\n <tr\n class=\"v-data-table-rows-loading\"\n key=\"loading\"\n >\n <td colspan={ columns.value.length }>\n { slots.loading() }\n </td>\n </tr>\n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n <td colspan={ columns.value.length }>\n { slots['no-data']?.() ?? t(props.noDataText) }\n </td>\n </tr>\n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group-header') {\n return slots['group-header'] ? slots['group-header']({\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } as GroupHeaderSlot) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n v-slots={ slots }\n />\n )\n }\n\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } as ItemSlot\n\n return (\n <>\n { slots.item ? slots.item(slotProps) : (\n <VDataTableRow\n key={ `item_${item.value}` }\n onClick={ expandOnClick.value || props['onClick:row'] ? (event: Event) => {\n if (expandOnClick.value) {\n toggleExpand(item)\n }\n props['onClick:row']?.(event, { item })\n } : undefined }\n index={ index }\n item={ item }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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"}
@@ -134,7 +134,7 @@ export const VDataTableServer = genericComponent()({
134
134
  }), _createVNode("thead", {
135
135
  "class": "v-data-table__thead",
136
136
  "role": "rowgroup"
137
- }, [slots.headers ? slots.headers() : _createVNode(VDataTableHeaders, {
137
+ }, [_createVNode(VDataTableHeaders, {
138
138
  "sticky": props.fixedHeader,
139
139
  "loading": props.loading,
140
140
  "color": props.color
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","provideDefaults","makeDataTableExpandProps","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","computed","provide","toRef","genericComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","required","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","_createVNode","fixedHeader","fixedFooter","height","hover","top","_Fragment","colgroup","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort } from './composables/sort'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlots } from './VDataTable'\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: {\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeDataTableGroupProps(),\n },\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 <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\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 { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n loading={ props.loading }\n color={ props.color }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ flatItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":";AAAA;AAAA,SACSA,MAAM;AAAA,SACNC,gBAAgB;AAAA,SAChBC,iBAAiB;AAAA,SACjBC,cAAc,gCAEvB;AAAA,SACSC,eAAe;AAAA,SACfC,wBAAwB,EAAEC,eAAe;AAAA,SACzCC,aAAa,EAAEC,uBAAuB,EAAEC,cAAc,EAAEC,eAAe;AAAA,SACvEC,aAAa,EAAEC,wBAAwB;AAAA,SACvCC,sBAAsB,EAAEC,iBAAiB;AAAA,SACzCC,UAAU;AAAA,SACVC,gBAAgB,EAAEC,0BAA0B,EAAEC,iBAAiB;AAAA,SAC/DC,wBAAwB,EAAEC,gBAAgB;AAAA,SAC1CC,UAAU,EAAEC,sBAAsB,EAAEC,WAAW,kCAExD;AACA,SAASC,QAAQ,EAAEC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACrCC,gBAAgB,EAAEC,SAAS;AAAA,SAC3BC,mBAAmB,4BAE5B;AAIA,OAAO,MAAMC,gBAAgB,GAAGH,gBAAgB,EAAmB,CAAC;EAClEI,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAE;IACLC,KAAK,EAAEC,MAAM;IACbC,OAAO,EAAE,CAACC,OAAO,EAAEF,MAAM,CAAC;IAC1BG,WAAW,EAAE;MACXC,IAAI,EAAEJ,MAAM;MACZK,OAAO,EAAE;IACX,CAAC;IACDC,WAAW,EAAE;MACXF,IAAI,EAAE,CAACG,MAAM,EAAEP,MAAM,CAAC;MACtBQ,QAAQ,EAAE;IACZ,CAAC;IAED,GAAGb,mBAAmB,EAAE;IACxB,GAAGxB,wBAAwB,EAAE;IAC7B,GAAGO,wBAAwB,EAAE;IAC7B,GAAGC,sBAAsB,EAAE;IAC3B,GAAGM,wBAAwB,EAAE;IAC7B,GAAGG,sBAAsB,EAAE;IAC3B,GAAGL,0BAA0B,EAAE;IAC/B,GAAGT,uBAAuB;EAC5B,CAAC;EAEDmC,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,CAAElB,KAAK,EAAAmB,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAQ,CAAC,GAAG/C,aAAa,CAACyB,KAAK,CAAC;IACxC,MAAM;MAAEc,MAAM;MAAES,SAAS;MAAEC;IAAS,CAAC,GAAGnC,UAAU,CAACW,KAAK,CAAC;IACzD,MAAM;MAAEa,IAAI;MAAEY;IAAa,CAAC,GAAGzC,gBAAgB,CAACgB,KAAK,CAAC;IACtD,MAAMQ,WAAW,GAAGhB,QAAQ,CAAC,MAAMkC,QAAQ,CAAC1B,KAAK,CAACQ,WAAW,EAAE,EAAE,CAAC,CAAC;IAEnElC,eAAe,CAAC0B,KAAK,CAAC;IAEtB,MAAM;MAAE2B;IAAQ,CAAC,GAAGhD,aAAa,CAACqB,KAAK,EAAE;MACvCsB,OAAO;MACPM,UAAU,EAAElC,KAAK,CAACM,KAAK,EAAE,YAAY,CAAC;MACtC6B,UAAU,EAAEnC,KAAK,CAACM,KAAK,EAAE,YAAY;IACvC,CAAC,CAAC;IAEF,MAAM;MAAE8B;IAAM,CAAC,GAAGhD,iBAAiB,CAACkB,KAAK,EAAE2B,OAAO,CAAC;IAEnD,MAAM;MAAEI;IAAW,CAAC,GAAGxC,WAAW,CAAC;MAAEuB,MAAM;MAAES,SAAS;MAAEC,QAAQ;MAAEX;IAAK,CAAC,CAAC;IAEzE,MAAM;MAAEmB;IAAO,CAAC,GAAGvD,cAAc,CAAC;MAAE6C,OAAO;MAAER;IAAO,CAAC,CAAC;IAEtD5B,iBAAiB,CAAC;MAAE2B,IAAI;MAAEY,YAAY;MAAEjB;IAAY,CAAC,CAAC;IAEtD,MAAM;MAAEyB;IAAU,CAAC,GAAGvD,eAAe,CAACoD,KAAK,EAAER,OAAO,EAAEU,MAAM,CAAC;IAE7D5C,gBAAgB,CAACY,KAAK,EAAE8B,KAAK,CAAC;IAE9B/C,UAAU,CAAC;MACT8B,IAAI;MACJY,YAAY;MACZX,MAAM;MACNQ,OAAO;MACPY,MAAM,EAAExC,KAAK,CAACM,KAAK,EAAE,QAAQ;IAC/B,CAAC,CAAC;IAEFP,OAAO,CAAC,cAAc,EAAE;MACtBsC,UAAU;MACVjB;IACF,CAAC,CAAC;IAEF1C,eAAe,CAAC;MACdD,cAAc,EAAE;QACdgE,UAAU,EAAEzC,KAAK,CAACM,KAAK,EAAE,YAAY,CAAC;QACtCoC,UAAU,EAAE1C,KAAK,CAACM,KAAK,EAAE,YAAY,CAAC;QACtCG,OAAO,EAAET,KAAK,CAACM,KAAK,EAAE,SAAS,CAAC;QAChCK,WAAW,EAAEX,KAAK,CAACM,KAAK,EAAE,aAAa;MACzC;IACF,CAAC,CAAC;IAEFJ,SAAS,CAAC,MAAAyC,YAAA,CAAArE,MAAA;MAAA,SAEC,CACL,cAAc,EACd;QACE,uBAAuB,EAAEgC,KAAK,CAACG;MACjC,CAAC,CACF;MAAA,eACaH,KAAK,CAACsC,WAAW;MAAA,eACjBtC,KAAK,CAACuC,WAAW;MAAA,UACtBvC,KAAK,CAACwC,MAAM;MAAA,SACbxC,KAAK,CAACyC;IAAK;MAGjBC,GAAG,EAAErB,KAAK,CAACqB,GAAG;MACdnC,OAAO,EAAEc,KAAK,CAACd,OAAO,KAAK,MAAA8B,YAAA,CAAAM,SAAA,SAErBtB,KAAK,CAACuB,QAAQ,GAAG;QAAEjB;MAAQ,CAAC,CAAC,EAAAU,YAAA;QAAA,SAClB,qBAAqB;QAAA,QAAM;MAAU,IAC9ChB,KAAK,CAACwB,OAAO,GAAGxB,KAAK,CAACwB,OAAO,EAAE,GAAAR,YAAA,CAAAnE,iBAAA;QAAA,UAEpB8B,KAAK,CAACsC,WAAW;QAAA,WAChBtC,KAAK,CAACG,OAAO;QAAA,SACfH,KAAK,CAACC;MAAK,GACToB,KAAK,CAElB,IAEDA,KAAK,CAACyB,KAAK,IAAI,EAAAT,YAAA;QAAA,SACJ,qBAAqB;QAAA,QAAM;MAAU,IAC9ChB,KAAK,CAAC0B,IAAI,GAAG1B,KAAK,CAAC0B,IAAI,EAAE,GAAAV,YAAA,CAAAlE,cAAA;QAAA,SAEf8D,SAAS,CAACrB,KAAK;QAAA,eACTZ,KAAK,CAAC,aAAa;MAAC,GACxBqB,KAAK,CAElB,IAEDA,KAAK,CAAC2B,KAAK,IAAI,EACf3B,KAAK,CAAC4B,KAAK,IAAI,EAEpB,CAAC;MACFC,MAAM,EAAE7B,KAAK,CAAC6B,MAAM,KAAK,MAAAb,YAAA,CAAApE,gBAAA,QAEZ;QACPkF,OAAO,EAAE9B,KAAK,CAAC,gBAAgB;MACjC,CAAC,CAEJ;IAAC,EAGP,CAAC;EACJ;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","provideDefaults","makeDataTableExpandProps","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","computed","provide","toRef","genericComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","required","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","_createVNode","fixedHeader","fixedFooter","height","hover","top","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort } from './composables/sort'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\nimport type { VDataTableSlots } from './VDataTable'\n\nexport const VDataTableServer = genericComponent<VDataTableSlots>()({\n name: 'VDataTableServer',\n\n props: {\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeDataTableGroupProps(),\n },\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 <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\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 sticky={ props.fixedHeader }\n loading={ props.loading }\n color={ props.color }\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 items={ flatItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
@@ -425,4 +425,30 @@ export function callEvent(handler) {
425
425
  handler(...args);
426
426
  }
427
427
  }
428
+ export function focusableChildren(el) {
429
+ const targets = ['button', '[href]', 'input:not([type="hidden"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}:not([tabindex="-1"]):not([disabled])`).join(', ');
430
+ return [...el.querySelectorAll(targets)];
431
+ }
432
+ export function focusChild(el, location) {
433
+ const focusable = focusableChildren(el);
434
+ const idx = focusable.indexOf(document.activeElement);
435
+ if (!location) {
436
+ if (!el.contains(document.activeElement)) {
437
+ focusable[0]?.focus();
438
+ }
439
+ } else if (location === 'first') {
440
+ focusable[0]?.focus();
441
+ } else if (location === 'last') {
442
+ focusable.at(-1)?.focus();
443
+ } else {
444
+ let _el;
445
+ let idxx = idx;
446
+ const inc = location === 'next' ? 1 : -1;
447
+ do {
448
+ idxx += inc;
449
+ _el = focusable[idxx];
450
+ } while ((!_el || _el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
451
+ if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
452
+ }
453
+ }
428
454
  //# sourceMappingURL=helpers.mjs.map