vuetify 3.10.3 → 3.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/dist/json/attributes.json +3285 -3269
  2. package/dist/json/importMap-labs.json +18 -18
  3. package/dist/json/importMap.json +176 -176
  4. package/dist/json/tags.json +4 -0
  5. package/dist/json/web-types.json +5963 -5923
  6. package/dist/vuetify-labs.cjs +125 -81
  7. package/dist/vuetify-labs.css +6900 -6889
  8. package/dist/vuetify-labs.d.ts +117 -59
  9. package/dist/vuetify-labs.esm.js +126 -82
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +125 -81
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +117 -77
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3658 -3647
  16. package/dist/vuetify.d.ts +117 -59
  17. package/dist/vuetify.esm.js +117 -77
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +117 -77
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +43 -39
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VBadge/VBadge.css +10 -0
  25. package/lib/components/VBadge/VBadge.sass +9 -0
  26. package/lib/components/VBtn/VBtn.js +1 -1
  27. package/lib/components/VBtn/VBtn.js.map +1 -1
  28. package/lib/components/VChip/VChip.js +13 -2
  29. package/lib/components/VChip/VChip.js.map +1 -1
  30. package/lib/components/VCombobox/VCombobox.d.ts +13 -0
  31. package/lib/components/VCombobox/VCombobox.js +3 -1
  32. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  33. package/lib/components/VDataTable/VDataTableGroupHeaderRow.d.ts +29 -0
  34. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +4 -1
  35. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
  36. package/lib/components/VDataTable/VDataTableHeaders.d.ts +29 -0
  37. package/lib/components/VDataTable/VDataTableHeaders.js +3 -0
  38. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  39. package/lib/components/VDataTable/VDataTableRow.d.ts +29 -0
  40. package/lib/components/VDataTable/VDataTableRow.js +3 -0
  41. package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
  42. package/lib/components/VDataTable/VDataTableRows.d.ts +29 -0
  43. package/lib/components/VDataTable/VDataTableRows.js +4 -3
  44. package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
  45. package/lib/components/VDialog/VDialog.js +29 -11
  46. package/lib/components/VDialog/VDialog.js.map +1 -1
  47. package/lib/components/VDialog/__test__/VDialog.spec.browser.js +41 -0
  48. package/lib/components/VDialog/__test__/VDialog.spec.browser.js.map +1 -1
  49. package/lib/components/VDivider/VDivider.css +1 -0
  50. package/lib/components/VDivider/VDivider.sass +1 -0
  51. package/lib/components/VFileInput/VFileInput.js +2 -1
  52. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  53. package/lib/components/VKbd/_variables.scss +3 -1
  54. package/lib/components/VList/VListItem.js +1 -1
  55. package/lib/components/VList/VListItem.js.map +1 -1
  56. package/lib/components/VTable/VTable.js +20 -32
  57. package/lib/components/VTable/VTable.js.map +1 -1
  58. package/lib/components/VTreeview/VTreeviewChildren.js +1 -1
  59. package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
  60. package/lib/composables/group.d.ts +2 -0
  61. package/lib/composables/group.js +15 -9
  62. package/lib/composables/group.js.map +1 -1
  63. package/lib/entry-bundler.js +1 -1
  64. package/lib/framework.d.ts +59 -59
  65. package/lib/framework.js +1 -1
  66. package/lib/labs/VCalendar/VCalendar.js +7 -3
  67. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  68. package/lib/labs/VCalendar/composables/calendarWithEvents.js +7 -4
  69. package/lib/labs/VCalendar/composables/calendarWithEvents.js.map +1 -1
  70. package/lib/labs/VFileUpload/VFileUpload.js +2 -1
  71. package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
  72. package/lib/labs/rules/rules.js +3 -3
  73. package/lib/labs/rules/rules.js.map +1 -1
  74. package/lib/util/animation.js +1 -1
  75. package/lib/util/animation.js.map +1 -1
  76. package/lib/util/box.d.ts +1 -1
  77. package/lib/util/box.js +19 -14
  78. package/lib/util/box.js.map +1 -1
  79. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableHeaders.js","names":["VDataTableColumn","VCheckboxBtn","VChip","VIcon","VSelect","useHeaders","useSelection","useSort","useBackgroundColor","makeDisplayProps","useDisplay","IconValue","LoaderSlot","makeLoaderProps","useLoader","useLocale","computed","mergeProps","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableHeadersProps","color","String","disableSort","Boolean","fixedHeader","multiSort","sortAscIcon","type","default","sortDescIcon","headerProps","Object","sticky","VDataTableHeaders","name","props","setup","_ref","slots","t","toggleSort","sortBy","isSorted","someSelected","allSelected","selectAll","showSelectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","undefined","fixedSide","position","left","fixedOffset","right","fixedEndOffset","top","handleEnterKeyPress","event","key","getSortIcon","item","value","find","order","backgroundColorClasses","backgroundColorStyles","displayClasses","mobile","slotProps","headerCellClasses","VDataTableHeaderCell","_ref2","x","noPadding","isEmpty","width","title","_createVNode","_mergeProps","align","sortable","minWidth","maxWidth","colspan","rowspan","nowrap","lastFixed","firstFixedEnd","columnSlotName","columnSlotProps","_createElementVNode","_normalizeClass","_normalizeStyle","findIndex","VDataTableMobileHeaderCell","displayItems","filter","appendIcon","showSelectColumn","length","onClick:clear","onClick:append","chip","raw","e","preventDefault","stopPropagation","_Fragment","map","row","loading","loader"],"sources":["../../../src/components/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VIcon } from '@/components/VIcon'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, mergeProps } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType, UnwrapRef } from 'vue'\nimport type { provideSelection } from './composables/select'\nimport type { provideSort } from './composables/sort'\nimport type { InternalDataTableHeader } from './types'\nimport type { ItemProps } from '@/composables/list-items'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type HeadersSlotProps = {\n headers: InternalDataTableHeader[][]\n columns: InternalDataTableHeader[]\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n someSelected: UnwrapRef<ReturnType<typeof provideSelection>['someSelected']>\n allSelected: UnwrapRef<ReturnType<typeof provideSelection>['allSelected']>\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n isSorted: ReturnType<typeof provideSort>['isSorted']\n}\n\nexport type VDataTableHeaderCellColumnSlotProps = {\n column: InternalDataTableHeader\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n isSorted: ReturnType<typeof provideSort>['isSorted']\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n someSelected: UnwrapRef<ReturnType<typeof provideSelection>['someSelected']>\n allSelected: UnwrapRef<ReturnType<typeof provideSelection>['allSelected']>\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n}\n\nexport type VDataTableHeadersSlots = {\n headers: HeadersSlotProps\n loader: LoaderSlotProps\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & { [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps }\n\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n disableSort: Boolean,\n fixedHeader: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n headerProps: {\n type: Object as PropType<Record<string, any>>,\n },\n\n /** @deprecated */\n sticky: Boolean,\n\n ...makeDisplayProps(),\n ...makeLoaderProps(),\n}, 'VDataTableHeaders')\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: makeVDataTableHeadersProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { toggleSort, sortBy, isSorted } = useSort()\n const { someSelected, allSelected, selectAll, showSelectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n function getFixedStyles (column: InternalDataTableHeader, y: number): CSSProperties | undefined {\n if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined\n\n const fixedSide = typeof column.fixed === 'string' ? column.fixed\n : column.fixed ? 'start'\n : 'none'\n\n return {\n position: 'sticky',\n left: fixedSide === 'start' ? convertToUnit(column.fixedOffset) : undefined,\n right: fixedSide === 'end' ? convertToUnit(column.fixedEndOffset) : undefined,\n top: (props.sticky || props.fixedHeader) ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n function handleEnterKeyPress (event: KeyboardEvent, column: InternalDataTableHeader) {\n if (event.key === 'Enter' && !props.disableSort) {\n toggleSort(column)\n }\n }\n function getSortIcon (column: InternalDataTableHeader) {\n const item = sortBy.value.find(item => item.key === column.key)\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 { displayClasses, mobile } = useDisplay(props)\n\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon,\n } satisfies HeadersSlotProps))\n\n const headerCellClasses = computed(() => ([\n 'v-data-table__th',\n {\n 'v-data-table__th--sticky': (props.sticky || props.fixedHeader),\n },\n displayClasses.value,\n loaderClasses.value,\n ]))\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {})\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n {\n 'v-data-table__th--sortable': column.sortable && !props.disableSort,\n 'v-data-table__th--sorted': isSorted(column),\n 'v-data-table__th--fixed': column.fixed,\n },\n ...headerCellClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.minWidth),\n maxWidth: convertToUnit(column.maxWidth),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n fixed={ column.fixed }\n nowrap={ column.nowrap }\n lastFixed={ column.lastFixed }\n firstFixedEnd={ column.firstFixedEnd }\n noPadding={ noPadding }\n empty={ isEmpty }\n tabindex={ column.sortable ? 0 : undefined }\n onClick={ column.sortable ? () => toggleSort(column) : undefined }\n onKeydown={ column.sortable ? (event: KeyboardEvent) => handleEnterKeyPress(event, column) : undefined }\n { ...headerProps }\n >\n {{\n default: () => {\n const columnSlotName = `header.${column.key}` as const\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon,\n }\n\n if (slots[columnSlotName]) return slots[columnSlotName]!(columnSlotProps)\n\n if (isEmpty) return ''\n\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && (\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 && !props.disableSort && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column) }\n />\n )}\n { props.multiSort && isSorted(column) && (\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 const VDataTableMobileHeaderCell = () => {\n const displayItems = computed<ItemProps['items']>(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort)\n })\n\n const appendIcon = computed(() => {\n const showSelectColumn = columns.value.find(column => column.key === 'data-table-select')\n\n if (showSelectColumn == null) return\n\n return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff'\n })\n\n return (\n <VDataTableColumn\n tag=\"th\"\n class={[\n ...headerCellClasses.value,\n ]}\n colspan={ headers.value.length + 1 }\n { ...props.headerProps }\n >\n <div class=\"v-data-table-header__content\">\n <VSelect\n chips\n class=\"v-data-table__td-sort-select\"\n clearable\n density=\"default\"\n items={ displayItems.value }\n label={ t('$vuetify.dataTable.sortBy') }\n multiple={ props.multiSort }\n variant=\"underlined\"\n onClick:clear={ () => sortBy.value = [] }\n appendIcon={ appendIcon.value }\n onClick:append={ () => selectAll(!allSelected.value) }\n >\n {{\n chip: props => (\n <VChip\n onClick={ props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n { props.item.title }\n <VIcon\n class={[\n 'v-data-table__td-sort-icon',\n isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active',\n ]}\n icon={ getSortIcon(props.item.raw) }\n size=\"small\"\n />\n </VChip>\n ),\n }}\n </VSelect>\n </div>\n </VDataTableColumn>\n )\n }\n\n useRender(() => {\n return mobile.value ? (\n <tr>\n <VDataTableMobileHeaderCell />\n </tr>\n ) : (\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 <LoaderSlot\n name=\"v-data-table-progress\"\n absolute\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\nexport type VDataTableHeaders = InstanceType<typeof VDataTableHeaders>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDataTableHeaders.js","names":["VDataTableColumn","VCheckboxBtn","VChip","VIcon","VSelect","useHeaders","useSelection","useSort","useBackgroundColor","makeDensityProps","makeDisplayProps","useDisplay","IconValue","LoaderSlot","makeLoaderProps","useLoader","useLocale","computed","mergeProps","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableHeadersProps","color","String","disableSort","Boolean","fixedHeader","multiSort","sortAscIcon","type","default","sortDescIcon","headerProps","Object","sticky","VDataTableHeaders","name","props","setup","_ref","slots","t","toggleSort","sortBy","isSorted","someSelected","allSelected","selectAll","showSelectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","undefined","fixedSide","position","left","fixedOffset","right","fixedEndOffset","top","handleEnterKeyPress","event","key","getSortIcon","item","value","find","order","backgroundColorClasses","backgroundColorStyles","displayClasses","mobile","slotProps","headerCellClasses","VDataTableHeaderCell","_ref2","x","noPadding","isEmpty","width","title","_createVNode","_mergeProps","align","sortable","minWidth","maxWidth","colspan","rowspan","nowrap","lastFixed","firstFixedEnd","columnSlotName","columnSlotProps","density","_createElementVNode","_normalizeClass","_normalizeStyle","findIndex","VDataTableMobileHeaderCell","displayItems","filter","appendIcon","showSelectColumn","length","onClick:clear","onClick:append","chip","raw","e","preventDefault","stopPropagation","_Fragment","map","row","loading","loader"],"sources":["../../../src/components/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VIcon } from '@/components/VIcon'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, mergeProps } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType, UnwrapRef } from 'vue'\nimport type { provideSelection } from './composables/select'\nimport type { provideSort } from './composables/sort'\nimport type { InternalDataTableHeader } from './types'\nimport type { ItemProps } from '@/composables/list-items'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type HeadersSlotProps = {\n headers: InternalDataTableHeader[][]\n columns: InternalDataTableHeader[]\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n someSelected: UnwrapRef<ReturnType<typeof provideSelection>['someSelected']>\n allSelected: UnwrapRef<ReturnType<typeof provideSelection>['allSelected']>\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n isSorted: ReturnType<typeof provideSort>['isSorted']\n}\n\nexport type VDataTableHeaderCellColumnSlotProps = {\n column: InternalDataTableHeader\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n isSorted: ReturnType<typeof provideSort>['isSorted']\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n someSelected: UnwrapRef<ReturnType<typeof provideSelection>['someSelected']>\n allSelected: UnwrapRef<ReturnType<typeof provideSelection>['allSelected']>\n getSortIcon: (column: InternalDataTableHeader) => IconValue\n}\n\nexport type VDataTableHeadersSlots = {\n headers: HeadersSlotProps\n loader: LoaderSlotProps\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & { [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps }\n\nexport const makeVDataTableHeadersProps = propsFactory({\n color: String,\n disableSort: Boolean,\n fixedHeader: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n headerProps: {\n type: Object as PropType<Record<string, any>>,\n },\n\n /** @deprecated */\n sticky: Boolean,\n\n ...makeDensityProps(),\n ...makeDisplayProps(),\n ...makeLoaderProps(),\n}, 'VDataTableHeaders')\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: makeVDataTableHeadersProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { toggleSort, sortBy, isSorted } = useSort()\n const { someSelected, allSelected, selectAll, showSelectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n function getFixedStyles (column: InternalDataTableHeader, y: number): CSSProperties | undefined {\n if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined\n\n const fixedSide = typeof column.fixed === 'string' ? column.fixed\n : column.fixed ? 'start'\n : 'none'\n\n return {\n position: 'sticky',\n left: fixedSide === 'start' ? convertToUnit(column.fixedOffset) : undefined,\n right: fixedSide === 'end' ? convertToUnit(column.fixedEndOffset) : undefined,\n top: (props.sticky || props.fixedHeader) ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n function handleEnterKeyPress (event: KeyboardEvent, column: InternalDataTableHeader) {\n if (event.key === 'Enter' && !props.disableSort) {\n toggleSort(column)\n }\n }\n function getSortIcon (column: InternalDataTableHeader) {\n const item = sortBy.value.find(item => item.key === column.key)\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 { displayClasses, mobile } = useDisplay(props)\n\n const slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n isSorted,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon,\n } satisfies HeadersSlotProps))\n\n const headerCellClasses = computed(() => ([\n 'v-data-table__th',\n {\n 'v-data-table__th--sticky': (props.sticky || props.fixedHeader),\n },\n displayClasses.value,\n loaderClasses.value,\n ]))\n\n const VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title\n const headerProps = mergeProps(props.headerProps ?? {}, column.headerProps ?? {})\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n {\n 'v-data-table__th--sortable': column.sortable && !props.disableSort,\n 'v-data-table__th--sorted': isSorted(column),\n 'v-data-table__th--fixed': column.fixed,\n },\n ...headerCellClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.minWidth),\n maxWidth: convertToUnit(column.maxWidth),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n fixed={ column.fixed }\n nowrap={ column.nowrap }\n lastFixed={ column.lastFixed }\n firstFixedEnd={ column.firstFixedEnd }\n noPadding={ noPadding }\n empty={ isEmpty }\n tabindex={ column.sortable ? 0 : undefined }\n onClick={ column.sortable ? () => toggleSort(column) : undefined }\n onKeydown={ column.sortable ? (event: KeyboardEvent) => handleEnterKeyPress(event, column) : undefined }\n { ...headerProps }\n >\n {{\n default: () => {\n const columnSlotName = `header.${column.key}` as const\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon,\n }\n\n if (slots[columnSlotName]) return slots[columnSlotName]!(columnSlotProps)\n\n if (isEmpty) return ''\n\n if (column.key === 'data-table-select') {\n return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && (\n <VCheckboxBtn\n density={ props.density }\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 && !props.disableSort && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column) }\n />\n )}\n { props.multiSort && isSorted(column) && (\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 const VDataTableMobileHeaderCell = () => {\n const displayItems = computed<ItemProps['items']>(() => {\n return columns.value.filter(column => column?.sortable && !props.disableSort)\n })\n\n const appendIcon = computed(() => {\n const showSelectColumn = columns.value.find(column => column.key === 'data-table-select')\n\n if (showSelectColumn == null) return\n\n return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff'\n })\n\n return (\n <VDataTableColumn\n tag=\"th\"\n class={[\n ...headerCellClasses.value,\n ]}\n colspan={ headers.value.length + 1 }\n { ...props.headerProps }\n >\n <div class=\"v-data-table-header__content\">\n <VSelect\n chips\n class=\"v-data-table__td-sort-select\"\n clearable\n density=\"default\"\n items={ displayItems.value }\n label={ t('$vuetify.dataTable.sortBy') }\n multiple={ props.multiSort }\n variant=\"underlined\"\n onClick:clear={ () => sortBy.value = [] }\n appendIcon={ appendIcon.value }\n onClick:append={ () => selectAll(!allSelected.value) }\n >\n {{\n chip: props => (\n <VChip\n onClick={ props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n { props.item.title }\n <VIcon\n class={[\n 'v-data-table__td-sort-icon',\n isSorted(props.item.raw) && 'v-data-table__td-sort-icon-active',\n ]}\n icon={ getSortIcon(props.item.raw) }\n size=\"small\"\n />\n </VChip>\n ),\n }}\n </VSelect>\n </div>\n </VDataTableColumn>\n )\n }\n\n useRender(() => {\n return mobile.value ? (\n <tr>\n <VDataTableMobileHeaderCell />\n </tr>\n ) : (\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 <LoaderSlot\n name=\"v-data-table-progress\"\n absolute\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\nexport type VDataTableHeaders = InstanceType<typeof VDataTableHeaders>\n"],"mappings":"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","ignoreList":[]}
@@ -19,6 +19,7 @@ export type VDataTableRowSlots<T> = {
19
19
  export declare const makeVDataTableRowProps: <Defaults extends {
20
20
  mobile?: unknown;
21
21
  mobileBreakpoint?: unknown;
22
+ density?: unknown;
22
23
  index?: unknown;
23
24
  item?: unknown;
24
25
  cellProps?: unknown;
@@ -42,6 +43,18 @@ export declare const makeVDataTableRowProps: <Defaults extends {
42
43
  type: PropType<unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : number | Defaults["mobileBreakpoint"] | import("../../types.js").DisplayBreakpoint>;
43
44
  default: unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : Defaults["mobileBreakpoint"] | NonNullable<number | import("../../types.js").DisplayBreakpoint>;
44
45
  };
46
+ density: unknown extends Defaults["density"] ? {
47
+ type: PropType<import("../../composables/density.js").Density>;
48
+ default: string;
49
+ validator: (v: any) => boolean;
50
+ } : Omit<{
51
+ type: PropType<import("../../composables/density.js").Density>;
52
+ default: string;
53
+ validator: (v: any) => boolean;
54
+ }, "default" | "type"> & {
55
+ type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
56
+ default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
57
+ };
45
58
  index: unknown extends Defaults["index"] ? NumberConstructor : {
46
59
  type: PropType<unknown extends Defaults["index"] ? number : number | Defaults["index"]>;
47
60
  default: unknown extends Defaults["index"] ? number : number | Defaults["index"];
@@ -90,6 +103,7 @@ export declare const makeVDataTableRowProps: <Defaults extends {
90
103
  export declare const VDataTableRow: {
91
104
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
92
105
  mobile: boolean | null;
106
+ density: import("../../composables/density.js").Density;
93
107
  collapseIcon: IconValue;
94
108
  expandIcon: IconValue;
95
109
  } & {
@@ -100,6 +114,7 @@ export declare const VDataTableRow: {
100
114
  onDblclick?: ((args_0: MouseEvent) => void) | undefined;
101
115
  }, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "cellProps" | "item" | "v-slots" | `v-slot:header.${string}` | `v-slot:item.${string}`>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
102
116
  mobile: boolean | null;
117
+ density: import("../../composables/density.js").Density;
103
118
  collapseIcon: IconValue;
104
119
  expandIcon: IconValue;
105
120
  }, true, {}, import("vue").SlotsType<Partial<{
@@ -130,6 +145,7 @@ export declare const VDataTableRow: {
130
145
  Defaults: {};
131
146
  }, {
132
147
  mobile: boolean | null;
148
+ density: import("../../composables/density.js").Density;
133
149
  collapseIcon: IconValue;
134
150
  expandIcon: IconValue;
135
151
  } & {
@@ -140,6 +156,7 @@ export declare const VDataTableRow: {
140
156
  onDblclick?: ((args_0: MouseEvent) => void) | undefined;
141
157
  }, {}, {}, {}, {}, {
142
158
  mobile: boolean | null;
159
+ density: import("../../composables/density.js").Density;
143
160
  collapseIcon: IconValue;
144
161
  expandIcon: IconValue;
145
162
  }>;
@@ -148,6 +165,7 @@ export declare const VDataTableRow: {
148
165
  __isSuspense?: undefined;
149
166
  } & import("vue").ComponentOptionsBase<{
150
167
  mobile: boolean | null;
168
+ density: import("../../composables/density.js").Density;
151
169
  collapseIcon: IconValue;
152
170
  expandIcon: IconValue;
153
171
  } & {
@@ -158,6 +176,7 @@ export declare const VDataTableRow: {
158
176
  onDblclick?: ((args_0: MouseEvent) => void) | undefined;
159
177
  }, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "cellProps" | "item" | "v-slots" | `v-slot:header.${string}` | `v-slot:item.${string}`>, string, {
160
178
  mobile: boolean | null;
179
+ density: import("../../composables/density.js").Density;
161
180
  collapseIcon: IconValue;
162
181
  expandIcon: IconValue;
163
182
  }, {}, string, import("vue").SlotsType<Partial<{
@@ -191,6 +210,11 @@ export declare const VDataTableRow: {
191
210
  default: boolean;
192
211
  };
193
212
  mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
213
+ density: {
214
+ type: PropType<import("../../composables/density.js").Density>;
215
+ default: string;
216
+ validator: (v: any) => boolean;
217
+ };
194
218
  index: NumberConstructor;
195
219
  item: PropType<DataTableItem<any>>;
196
220
  cellProps: PropType<CellProps<any>>;
@@ -211,6 +235,11 @@ export declare const VDataTableRow: {
211
235
  default: boolean;
212
236
  };
213
237
  mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
238
+ density: {
239
+ type: PropType<import("../../composables/density.js").Density>;
240
+ default: string;
241
+ validator: (v: any) => boolean;
242
+ };
214
243
  index: NumberConstructor;
215
244
  item: PropType<DataTableItem<any>>;
216
245
  cellProps: PropType<CellProps<any>>;
@@ -7,6 +7,7 @@ import { useExpanded } from "./composables/expand.js";
7
7
  import { useHeaders } from "./composables/headers.js";
8
8
  import { useSelection } from "./composables/select.js";
9
9
  import { useSort } from "./composables/sort.js";
10
+ import { makeDensityProps } from "../../composables/density.js";
10
11
  import { makeDisplayProps, useDisplay } from "../../composables/display.js";
11
12
  import { IconValue } from "../../composables/icons.js"; // Utilities
12
13
  import { toDisplayString, withModifiers } from 'vue';
@@ -26,6 +27,7 @@ export const makeVDataTableRowProps = propsFactory({
26
27
  onClick: EventProp(),
27
28
  onContextmenu: EventProp(),
28
29
  onDblclick: EventProp(),
30
+ ...makeDensityProps(),
29
31
  ...makeDisplayProps()
30
32
  }, 'VDataTableRow');
31
33
  export const VDataTableRow = genericComponent()({
@@ -134,6 +136,7 @@ export const VDataTableRow = genericComponent()({
134
136
  }
135
137
  }) ?? _createVNode(VCheckboxBtn, {
136
138
  "disabled": !item.selectable,
139
+ "density": props.density,
137
140
  "modelValue": isSelected([item]),
138
141
  "onClick": withModifiers(event => toggleSelect(item, props.index, event), ['stop'])
139
142
  }, null);
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRow.js","names":["VDataTableColumn","VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","useSort","makeDisplayProps","useDisplay","IconValue","toDisplayString","withModifiers","EventProp","genericComponent","getObjectValueByPath","propsFactory","useRender","makeVDataTableRowProps","index","Number","item","Object","cellProps","Function","collapseIcon","type","default","expandIcon","onClick","onContextmenu","onDblclick","VDataTableRow","name","props","setup","_ref","slots","displayClasses","mobile","isSelected","toggleSelect","someSelected","allSelected","selectAll","isExpanded","toggleExpand","toggleSort","sortBy","isSorted","columns","_createElementVNode","_normalizeClass","value","map","column","i","slotName","key","headerSlotName","slotProps","raw","internalItem","columnSlotProps","getSortIcon","columnCellProps","noPadding","isEmpty","width","title","_createVNode","_mergeProps","align","intent","fixed","fixedOffset","fixedEndOffset","lastFixed","firstFixedEnd","maxWidth","undefined","nowrap","disabled","selectable","modelValue","event","icon","size","variant","displayValue","_Fragment"],"sources":["../../../src/components/VDataTable/VDataTableRow.tsx"],"sourcesContent":["// Components\nimport { VDataTableColumn } from './VDataTableColumn'\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 { useSort } from './composables/sort'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { toDisplayString, withModifiers } from 'vue'\nimport { EventProp, genericComponent, getObjectValueByPath, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { CellProps, DataTableItem, ItemKeySlot } from './types'\nimport type { VDataTableHeaderCellColumnSlotProps } from './VDataTableHeaders'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableItemCellColumnSlotProps<T> = Omit<ItemKeySlot<T>, 'value'> & {\n props: Record<string, unknown>\n}\n\nexport type VDataTableRowSlots<T> = {\n 'item.data-table-select': VDataTableItemCellColumnSlotProps<T>\n 'item.data-table-expand': VDataTableItemCellColumnSlotProps<T>\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & {\n [key: `item.${string}`]: ItemKeySlot<T>\n [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps\n}\n\nexport const makeVDataTableRowProps = propsFactory({\n index: Number,\n item: Object as PropType<DataTableItem>,\n cellProps: [Object, Function] as PropType<CellProps<any>>,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n\n onClick: EventProp<[MouseEvent]>(),\n onContextmenu: EventProp<[MouseEvent]>(),\n onDblclick: EventProp<[MouseEvent]>(),\n\n ...makeDisplayProps(),\n}, 'VDataTableRow')\n\nexport const VDataTableRow = genericComponent<new <T>(\n props: {\n item?: DataTableItem<T>\n cellProps?: CellProps<T>\n },\n slots: VDataTableRowSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableRow',\n\n props: makeVDataTableRowProps(),\n\n setup (props, { slots }) {\n const { displayClasses, mobile } = useDisplay(props, 'v-data-table__tr')\n const { isSelected, toggleSelect, someSelected, allSelected, selectAll } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\n const { toggleSort, sortBy, isSorted } = useSort()\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 || props.onContextmenu || props.onDblclick),\n },\n displayClasses.value,\n ]}\n onClick={ props.onClick as any }\n onContextmenu={ props.onContextmenu as any }\n onDblclick={ props.onDblclick as any }\n >\n { props.item && columns.value.map((column, i) => {\n const item = props.item!\n const slotName = `item.${column.key}` as const\n const headerSlotName = `header.${column.key}` as const\n const slotProps = {\n index: props.index!,\n item: item.raw,\n internalItem: item,\n value: getObjectValueByPath(item.columns, column.key),\n column,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n } satisfies ItemKeySlot<any>\n\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon: () => '',\n }\n\n const cellProps = typeof props.cellProps === 'function'\n ? props.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n column,\n })\n : props.cellProps\n const columnCellProps = typeof column.cellProps === 'function'\n ? column.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n })\n : column.cellProps\n\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title\n\n return (\n <VDataTableColumn\n align={ column.align }\n indent={ column.intent }\n class={{\n 'v-data-table__td--expanded-row': column.key === 'data-table-expand',\n 'v-data-table__td--select-row': column.key === 'data-table-select',\n }}\n fixed={ column.fixed }\n fixedOffset={ column.fixedOffset }\n fixedEndOffset={ column.fixedEndOffset }\n lastFixed={ column.lastFixed }\n firstFixedEnd={ column.firstFixedEnd }\n maxWidth={ !mobile.value ? column.maxWidth : undefined }\n noPadding={ noPadding }\n empty={ isEmpty }\n nowrap={ column.nowrap }\n width={ !mobile.value ? column.width : undefined }\n { ...cellProps }\n { ...columnCellProps }\n >\n {{\n default: () => {\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.({\n ...slotProps,\n props: {\n disabled: !item.selectable,\n modelValue: isSelected([item]),\n onClick: withModifiers(() => toggleSelect(item), ['stop']),\n },\n }) ?? (\n <VCheckboxBtn\n disabled={ !item.selectable }\n modelValue={ isSelected([item]) }\n onClick={ withModifiers(\n (event: Event) => toggleSelect(item, props.index, event as PointerEvent),\n ['stop']\n )}\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.({\n ...slotProps,\n props: {\n icon: isExpanded(item) ? props.collapseIcon : props.expandIcon,\n size: 'small',\n variant: 'text',\n onClick: withModifiers(() => toggleExpand(item), ['stop']),\n },\n }) ?? (\n <VBtn\n icon={ isExpanded(item) ? props.collapseIcon : props.expandIcon }\n size=\"small\"\n variant=\"text\"\n onClick={ withModifiers(() => toggleExpand(item), ['stop']) }\n />\n )\n }\n\n if (slots[slotName] && !mobile.value) return slots[slotName](slotProps)\n\n const displayValue = toDisplayString(slotProps.value)\n\n return !mobile.value ? displayValue : (\n <>\n <div class=\"v-data-table__td-title\">\n { slots[headerSlotName]?.(columnSlotProps) ?? column.title }\n </div>\n\n <div class=\"v-data-table__td-value\">\n { slots[slotName]?.(slotProps) ?? displayValue }\n </div>\n </>\n )\n },\n }}\n </VDataTableColumn>\n )\n })}\n </tr>\n ))\n },\n})\n\nexport type VDataTableRow = InstanceType<typeof VDataTableRow>\n"],"mappings":";AAAA;AAAA,SACSA,gBAAgB;AAAA,SAChBC,IAAI;AAAA,SACJC,YAAY,iCAErB;AAAA,SACSC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,YAAY;AAAA,SACZC,OAAO;AAAA,SACPC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,SAAS,sCAElB;AACA,SAASC,eAAe,EAAEC,aAAa,QAAQ,KAAK;AAAA,SAC3CC,SAAS,EAAEC,gBAAgB,EAAEC,oBAAoB,EAAEC,YAAY,EAAEC,SAAS,+BAEnF;AAoBA,OAAO,MAAMC,sBAAsB,GAAGF,YAAY,CAAC;EACjDG,KAAK,EAAEC,MAAM;EACbC,IAAI,EAAEC,MAAiC;EACvCC,SAAS,EAAE,CAACD,MAAM,EAAEE,QAAQ,CAA6B;EACzDC,YAAY,EAAE;IACZC,IAAI,EAAEhB,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVF,IAAI,EAAEhB,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EAEDE,OAAO,EAAEhB,SAAS,CAAe,CAAC;EAClCiB,aAAa,EAAEjB,SAAS,CAAe,CAAC;EACxCkB,UAAU,EAAElB,SAAS,CAAe,CAAC;EAErC,GAAGL,gBAAgB,CAAC;AACtB,CAAC,EAAE,eAAe,CAAC;AAEnB,OAAO,MAAMwB,aAAa,GAAGlB,gBAAgB,CAME,CAAC,CAAC;EAC/CmB,IAAI,EAAE,eAAe;EAErBC,KAAK,EAAEhB,sBAAsB,CAAC,CAAC;EAE/BiB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE,cAAc;MAAEC;IAAO,CAAC,GAAG9B,UAAU,CAACyB,KAAK,EAAE,kBAAkB,CAAC;IACxE,MAAM;MAAEM,UAAU;MAAEC,YAAY;MAAEC,YAAY;MAAEC,WAAW;MAAEC;IAAU,CAAC,GAAGtC,YAAY,CAAC,CAAC;IACzF,MAAM;MAAEuC,UAAU;MAAEC;IAAa,CAAC,GAAG1C,WAAW,CAAC,CAAC;IAClD,MAAM;MAAE2C,UAAU;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAAG1C,OAAO,CAAC,CAAC;IAClD,MAAM;MAAE2C;IAAQ,CAAC,GAAG7C,UAAU,CAAC,CAAC;IAEhCY,SAAS,CAAC,MAAAkC,mBAAA;MAAA,SAAAC,eAAA,CAEC,CACL,kBAAkB,EAClB;QACE,6BAA6B,EAAE,CAAC,EAAElB,KAAK,CAACL,OAAO,IAAIK,KAAK,CAACJ,aAAa,IAAII,KAAK,CAACH,UAAU;MAC5F,CAAC,EACDO,cAAc,CAACe,KAAK,CACrB;MAAA,WACSnB,KAAK,CAACL,OAAO;MAAA,iBACPK,KAAK,CAACJ,aAAa;MAAA,cACtBI,KAAK,CAACH;IAAU,IAE3BG,KAAK,CAACb,IAAI,IAAI6B,OAAO,CAACG,KAAK,CAACC,GAAG,CAAC,CAACC,MAAM,EAAEC,CAAC,KAAK;MAC/C,MAAMnC,IAAI,GAAGa,KAAK,CAACb,IAAK;MACxB,MAAMoC,QAAQ,GAAG,QAAQF,MAAM,CAACG,GAAG,EAAW;MAC9C,MAAMC,cAAc,GAAG,UAAUJ,MAAM,CAACG,GAAG,EAAW;MACtD,MAAME,SAAS,GAAG;QAChBzC,KAAK,EAAEe,KAAK,CAACf,KAAM;QACnBE,IAAI,EAAEA,IAAI,CAACwC,GAAG;QACdC,YAAY,EAAEzC,IAAI;QAClBgC,KAAK,EAAEtC,oBAAoB,CAACM,IAAI,CAAC6B,OAAO,EAAEK,MAAM,CAACG,GAAG,CAAC;QACrDH,MAAM;QACNf,UAAU;QACVC,YAAY;QACZI,UAAU;QACVC;MACF,CAA4B;MAE5B,MAAMiB,eAAoD,GAAG;QAC3DR,MAAM;QACNX,SAAS;QACTK,QAAQ;QACRF,UAAU;QACVC,MAAM,EAAEA,MAAM,CAACK,KAAK;QACpBX,YAAY,EAAEA,YAAY,CAACW,KAAK;QAChCV,WAAW,EAAEA,WAAW,CAACU,KAAK;QAC9BW,WAAW,EAAEA,CAAA,KAAM;MACrB,CAAC;MAED,MAAMzC,SAAS,GAAG,OAAOW,KAAK,CAACX,SAAS,KAAK,UAAU,GACnDW,KAAK,CAACX,SAAS,CAAC;QAChBJ,KAAK,EAAEyC,SAAS,CAACzC,KAAK;QACtBE,IAAI,EAAEuC,SAAS,CAACvC,IAAI;QACpByC,YAAY,EAAEF,SAAS,CAACE,YAAY;QACpCT,KAAK,EAAEO,SAAS,CAACP,KAAK;QACtBE;MACF,CAAC,CAAC,GACArB,KAAK,CAACX,SAAS;MACnB,MAAM0C,eAAe,GAAG,OAAOV,MAAM,CAAChC,SAAS,KAAK,UAAU,GAC1DgC,MAAM,CAAChC,SAAS,CAAC;QACjBJ,KAAK,EAAEyC,SAAS,CAACzC,KAAK;QACtBE,IAAI,EAAEuC,SAAS,CAACvC,IAAI;QACpByC,YAAY,EAAEF,SAAS,CAACE,YAAY;QACpCT,KAAK,EAAEO,SAAS,CAACP;MACnB,CAAC,CAAC,GACAE,MAAM,CAAChC,SAAS;MAEpB,MAAM2C,SAAS,GAAGX,MAAM,CAACG,GAAG,KAAK,mBAAmB,IAAIH,MAAM,CAACG,GAAG,KAAK,mBAAmB;MAC1F,MAAMS,OAAO,GAAGZ,MAAM,CAACG,GAAG,KAAK,kBAAkB,IAAIH,MAAM,CAACa,KAAK,KAAK,CAAC,IAAI,CAACb,MAAM,CAACc,KAAK;MAExF,OAAAC,YAAA,CAAArE,gBAAA,EAAAsE,WAAA;QAAA,SAEYhB,MAAM,CAACiB,KAAK;QAAA,UACXjB,MAAM,CAACkB,MAAM;QAAA,SACf;UACL,gCAAgC,EAAElB,MAAM,CAACG,GAAG,KAAK,mBAAmB;UACpE,8BAA8B,EAAEH,MAAM,CAACG,GAAG,KAAK;QACjD,CAAC;QAAA,SACOH,MAAM,CAACmB,KAAK;QAAA,eACNnB,MAAM,CAACoB,WAAW;QAAA,kBACfpB,MAAM,CAACqB,cAAc;QAAA,aAC1BrB,MAAM,CAACsB,SAAS;QAAA,iBACZtB,MAAM,CAACuB,aAAa;QAAA,YACzB,CAACvC,MAAM,CAACc,KAAK,GAAGE,MAAM,CAACwB,QAAQ,GAAGC,SAAS;QAAA,aAC1Cd,SAAS;QAAA,SACbC,OAAO;QAAA,UACNZ,MAAM,CAAC0B,MAAM;QAAA,SACd,CAAC1C,MAAM,CAACc,KAAK,GAAGE,MAAM,CAACa,KAAK,GAAGY;MAAS,GAC3CzD,SAAS,EACT0C,eAAe;QAGlBtC,OAAO,EAAEA,CAAA,KAAM;UACb,IAAI4B,MAAM,CAACG,GAAG,KAAK,mBAAmB,EAAE;YACtC,OAAOrB,KAAK,CAAC,wBAAwB,CAAC,GAAG;cACvC,GAAGuB,SAAS;cACZ1B,KAAK,EAAE;gBACLgD,QAAQ,EAAE,CAAC7D,IAAI,CAAC8D,UAAU;gBAC1BC,UAAU,EAAE5C,UAAU,CAAC,CAACnB,IAAI,CAAC,CAAC;gBAC9BQ,OAAO,EAAEjB,aAAa,CAAC,MAAM6B,YAAY,CAACpB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;cAC3D;YACF,CAAC,CAAC,IAAAiD,YAAA,CAAAnE,YAAA;cAAA,YAEa,CAACkB,IAAI,CAAC8D,UAAU;cAAA,cACd3C,UAAU,CAAC,CAACnB,IAAI,CAAC,CAAC;cAAA,WACrBT,aAAa,CACpByE,KAAY,IAAK5C,YAAY,CAACpB,IAAI,EAAEa,KAAK,CAACf,KAAK,EAAEkE,KAAqB,CAAC,EACxE,CAAC,MAAM,CACT;YAAC,QAEJ;UACH;UAEA,IAAI9B,MAAM,CAACG,GAAG,KAAK,mBAAmB,EAAE;YACtC,OAAOrB,KAAK,CAAC,wBAAwB,CAAC,GAAG;cACvC,GAAGuB,SAAS;cACZ1B,KAAK,EAAE;gBACLoD,IAAI,EAAEzC,UAAU,CAACxB,IAAI,CAAC,GAAGa,KAAK,CAACT,YAAY,GAAGS,KAAK,CAACN,UAAU;gBAC9D2D,IAAI,EAAE,OAAO;gBACbC,OAAO,EAAE,MAAM;gBACf3D,OAAO,EAAEjB,aAAa,CAAC,MAAMkC,YAAY,CAACzB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;cAC3D;YACF,CAAC,CAAC,IAAAiD,YAAA,CAAApE,IAAA;cAAA,QAES2C,UAAU,CAACxB,IAAI,CAAC,GAAGa,KAAK,CAACT,YAAY,GAAGS,KAAK,CAACN,UAAU;cAAA;cAAA;cAAA,WAGrDhB,aAAa,CAAC,MAAMkC,YAAY,CAACzB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;YAAC,QAE9D;UACH;UAEA,IAAIgB,KAAK,CAACoB,QAAQ,CAAC,IAAI,CAAClB,MAAM,CAACc,KAAK,EAAE,OAAOhB,KAAK,CAACoB,QAAQ,CAAC,CAACG,SAAS,CAAC;UAEvE,MAAM6B,YAAY,GAAG9E,eAAe,CAACiD,SAAS,CAACP,KAAK,CAAC;UAErD,OAAO,CAACd,MAAM,CAACc,KAAK,GAAGoC,YAAY,GAAAtC,mBAAA,CAAAuC,SAAA,SAAAvC,mBAAA;YAAA;UAAA,IAG3Bd,KAAK,CAACsB,cAAc,CAAC,GAAGI,eAAe,CAAC,IAAIR,MAAM,CAACc,KAAK,IAAAlB,mBAAA;YAAA;UAAA,IAIxDd,KAAK,CAACoB,QAAQ,CAAC,GAAGG,SAAS,CAAC,IAAI6B,YAAY,IAGnD;QACH;MAAC;IAIT,CAAC,CAAC,EAEL,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VDataTableRow.js","names":["VDataTableColumn","VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","useSort","makeDensityProps","makeDisplayProps","useDisplay","IconValue","toDisplayString","withModifiers","EventProp","genericComponent","getObjectValueByPath","propsFactory","useRender","makeVDataTableRowProps","index","Number","item","Object","cellProps","Function","collapseIcon","type","default","expandIcon","onClick","onContextmenu","onDblclick","VDataTableRow","name","props","setup","_ref","slots","displayClasses","mobile","isSelected","toggleSelect","someSelected","allSelected","selectAll","isExpanded","toggleExpand","toggleSort","sortBy","isSorted","columns","_createElementVNode","_normalizeClass","value","map","column","i","slotName","key","headerSlotName","slotProps","raw","internalItem","columnSlotProps","getSortIcon","columnCellProps","noPadding","isEmpty","width","title","_createVNode","_mergeProps","align","intent","fixed","fixedOffset","fixedEndOffset","lastFixed","firstFixedEnd","maxWidth","undefined","nowrap","disabled","selectable","modelValue","density","event","icon","size","variant","displayValue","_Fragment"],"sources":["../../../src/components/VDataTable/VDataTableRow.tsx"],"sourcesContent":["// Components\nimport { VDataTableColumn } from './VDataTableColumn'\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 { useSort } from './composables/sort'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { toDisplayString, withModifiers } from 'vue'\nimport { EventProp, genericComponent, getObjectValueByPath, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { CellProps, DataTableItem, ItemKeySlot } from './types'\nimport type { VDataTableHeaderCellColumnSlotProps } from './VDataTableHeaders'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableItemCellColumnSlotProps<T> = Omit<ItemKeySlot<T>, 'value'> & {\n props: Record<string, unknown>\n}\n\nexport type VDataTableRowSlots<T> = {\n 'item.data-table-select': VDataTableItemCellColumnSlotProps<T>\n 'item.data-table-expand': VDataTableItemCellColumnSlotProps<T>\n 'header.data-table-select': VDataTableHeaderCellColumnSlotProps\n 'header.data-table-expand': VDataTableHeaderCellColumnSlotProps\n} & {\n [key: `item.${string}`]: ItemKeySlot<T>\n [key: `header.${string}`]: VDataTableHeaderCellColumnSlotProps\n}\n\nexport const makeVDataTableRowProps = propsFactory({\n index: Number,\n item: Object as PropType<DataTableItem>,\n cellProps: [Object, Function] as PropType<CellProps<any>>,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n\n onClick: EventProp<[MouseEvent]>(),\n onContextmenu: EventProp<[MouseEvent]>(),\n onDblclick: EventProp<[MouseEvent]>(),\n\n ...makeDensityProps(),\n ...makeDisplayProps(),\n}, 'VDataTableRow')\n\nexport const VDataTableRow = genericComponent<new <T>(\n props: {\n item?: DataTableItem<T>\n cellProps?: CellProps<T>\n },\n slots: VDataTableRowSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableRow',\n\n props: makeVDataTableRowProps(),\n\n setup (props, { slots }) {\n const { displayClasses, mobile } = useDisplay(props, 'v-data-table__tr')\n const { isSelected, toggleSelect, someSelected, allSelected, selectAll } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\n const { toggleSort, sortBy, isSorted } = useSort()\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 || props.onContextmenu || props.onDblclick),\n },\n displayClasses.value,\n ]}\n onClick={ props.onClick as any }\n onContextmenu={ props.onContextmenu as any }\n onDblclick={ props.onDblclick as any }\n >\n { props.item && columns.value.map((column, i) => {\n const item = props.item!\n const slotName = `item.${column.key}` as const\n const headerSlotName = `header.${column.key}` as const\n const slotProps = {\n index: props.index!,\n item: item.raw,\n internalItem: item,\n value: getObjectValueByPath(item.columns, column.key),\n column,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n } satisfies ItemKeySlot<any>\n\n const columnSlotProps: VDataTableHeaderCellColumnSlotProps = {\n column,\n selectAll,\n isSorted,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n getSortIcon: () => '',\n }\n\n const cellProps = typeof props.cellProps === 'function'\n ? props.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n column,\n })\n : props.cellProps\n const columnCellProps = typeof column.cellProps === 'function'\n ? column.cellProps({\n index: slotProps.index,\n item: slotProps.item,\n internalItem: slotProps.internalItem,\n value: slotProps.value,\n })\n : column.cellProps\n\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title\n\n return (\n <VDataTableColumn\n align={ column.align }\n indent={ column.intent }\n class={{\n 'v-data-table__td--expanded-row': column.key === 'data-table-expand',\n 'v-data-table__td--select-row': column.key === 'data-table-select',\n }}\n fixed={ column.fixed }\n fixedOffset={ column.fixedOffset }\n fixedEndOffset={ column.fixedEndOffset }\n lastFixed={ column.lastFixed }\n firstFixedEnd={ column.firstFixedEnd }\n maxWidth={ !mobile.value ? column.maxWidth : undefined }\n noPadding={ noPadding }\n empty={ isEmpty }\n nowrap={ column.nowrap }\n width={ !mobile.value ? column.width : undefined }\n { ...cellProps }\n { ...columnCellProps }\n >\n {{\n default: () => {\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.({\n ...slotProps,\n props: {\n disabled: !item.selectable,\n modelValue: isSelected([item]),\n onClick: withModifiers(() => toggleSelect(item), ['stop']),\n },\n }) ?? (\n <VCheckboxBtn\n disabled={ !item.selectable }\n density={ props.density }\n modelValue={ isSelected([item]) }\n onClick={ withModifiers(\n (event: Event) => toggleSelect(item, props.index, event as PointerEvent),\n ['stop']\n )}\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.({\n ...slotProps,\n props: {\n icon: isExpanded(item) ? props.collapseIcon : props.expandIcon,\n size: 'small',\n variant: 'text',\n onClick: withModifiers(() => toggleExpand(item), ['stop']),\n },\n }) ?? (\n <VBtn\n icon={ isExpanded(item) ? props.collapseIcon : props.expandIcon }\n size=\"small\"\n variant=\"text\"\n onClick={ withModifiers(() => toggleExpand(item), ['stop']) }\n />\n )\n }\n\n if (slots[slotName] && !mobile.value) return slots[slotName](slotProps)\n\n const displayValue = toDisplayString(slotProps.value)\n\n return !mobile.value ? displayValue : (\n <>\n <div class=\"v-data-table__td-title\">\n { slots[headerSlotName]?.(columnSlotProps) ?? column.title }\n </div>\n\n <div class=\"v-data-table__td-value\">\n { slots[slotName]?.(slotProps) ?? displayValue }\n </div>\n </>\n )\n },\n }}\n </VDataTableColumn>\n )\n })}\n </tr>\n ))\n },\n})\n\nexport type VDataTableRow = InstanceType<typeof VDataTableRow>\n"],"mappings":"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","ignoreList":[]}
@@ -18,6 +18,7 @@ export type VDataTableRowsSlots<T> = VDataTableGroupHeaderRowSlots & VDataTableR
18
18
  export declare const makeVDataTableRowsProps: <Defaults extends {
19
19
  mobile?: unknown;
20
20
  mobileBreakpoint?: unknown;
21
+ density?: unknown;
21
22
  groupCollapseIcon?: unknown;
22
23
  groupExpandIcon?: unknown;
23
24
  collapseIcon?: unknown;
@@ -44,6 +45,18 @@ export declare const makeVDataTableRowsProps: <Defaults extends {
44
45
  type: PropType<unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : number | Defaults["mobileBreakpoint"] | import("../../types.js").DisplayBreakpoint>;
45
46
  default: unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : Defaults["mobileBreakpoint"] | NonNullable<number | import("../../types.js").DisplayBreakpoint>;
46
47
  };
48
+ density: unknown extends Defaults["density"] ? {
49
+ type: PropType<import("../../composables/density.js").Density>;
50
+ default: string;
51
+ validator: (v: any) => boolean;
52
+ } : Omit<{
53
+ type: PropType<import("../../composables/density.js").Density>;
54
+ default: string;
55
+ validator: (v: any) => boolean;
56
+ }, "default" | "type"> & {
57
+ type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
58
+ default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
59
+ };
47
60
  groupCollapseIcon: unknown extends Defaults["groupCollapseIcon"] ? {
48
61
  type: PropType<import("../../composables/icons.js").IconValue>;
49
62
  default: string;
@@ -134,6 +147,7 @@ export declare const makeVDataTableRowsProps: <Defaults extends {
134
147
  export declare const VDataTableRows: {
135
148
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
136
149
  mobile: boolean | null;
150
+ density: import("../../composables/density.js").Density;
137
151
  groupCollapseIcon: import("../../composables/icons.js").IconValue;
138
152
  groupExpandIcon: import("../../composables/icons.js").IconValue;
139
153
  collapseIcon: import("../../composables/icons.js").IconValue;
@@ -148,6 +162,7 @@ export declare const VDataTableRows: {
148
162
  cellProps?: CellProps<any> | undefined;
149
163
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "items" | "v-slot:data-table-group" | "v-slot:data-table-select" | "v-slot:expanded-row" | "v-slot:group-header" | "v-slot:group-summary" | "v-slot:item" | "v-slot:loading" | "v-slot:no-data" | "v-slots" | `v-slot:header.${string}` | `v-slot:item.${string}`>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
150
164
  mobile: boolean | null;
165
+ density: import("../../composables/density.js").Density;
151
166
  groupCollapseIcon: import("../../composables/icons.js").IconValue;
152
167
  groupExpandIcon: import("../../composables/icons.js").IconValue;
153
168
  collapseIcon: import("../../composables/icons.js").IconValue;
@@ -225,6 +240,7 @@ export declare const VDataTableRows: {
225
240
  Defaults: {};
226
241
  }, {
227
242
  mobile: boolean | null;
243
+ density: import("../../composables/density.js").Density;
228
244
  groupCollapseIcon: import("../../composables/icons.js").IconValue;
229
245
  groupExpandIcon: import("../../composables/icons.js").IconValue;
230
246
  collapseIcon: import("../../composables/icons.js").IconValue;
@@ -239,6 +255,7 @@ export declare const VDataTableRows: {
239
255
  cellProps?: CellProps<any> | undefined;
240
256
  }, {}, {}, {}, {}, {
241
257
  mobile: boolean | null;
258
+ density: import("../../composables/density.js").Density;
242
259
  groupCollapseIcon: import("../../composables/icons.js").IconValue;
243
260
  groupExpandIcon: import("../../composables/icons.js").IconValue;
244
261
  collapseIcon: import("../../composables/icons.js").IconValue;
@@ -252,6 +269,7 @@ export declare const VDataTableRows: {
252
269
  __isSuspense?: undefined;
253
270
  } & import("vue").ComponentOptionsBase<{
254
271
  mobile: boolean | null;
272
+ density: import("../../composables/density.js").Density;
255
273
  groupCollapseIcon: import("../../composables/icons.js").IconValue;
256
274
  groupExpandIcon: import("../../composables/icons.js").IconValue;
257
275
  collapseIcon: import("../../composables/icons.js").IconValue;
@@ -266,6 +284,7 @@ export declare const VDataTableRows: {
266
284
  cellProps?: CellProps<any> | undefined;
267
285
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Omit<Record<string, any>, "$children" | "items" | "v-slot:data-table-group" | "v-slot:data-table-select" | "v-slot:expanded-row" | "v-slot:group-header" | "v-slot:group-summary" | "v-slot:item" | "v-slot:loading" | "v-slot:no-data" | "v-slots" | `v-slot:header.${string}` | `v-slot:item.${string}`>, string, {
268
286
  mobile: boolean | null;
287
+ density: import("../../composables/density.js").Density;
269
288
  groupCollapseIcon: import("../../composables/icons.js").IconValue;
270
289
  groupExpandIcon: import("../../composables/icons.js").IconValue;
271
290
  collapseIcon: import("../../composables/icons.js").IconValue;
@@ -344,6 +363,11 @@ export declare const VDataTableRows: {
344
363
  default: boolean;
345
364
  };
346
365
  mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
366
+ density: {
367
+ type: PropType<import("../../composables/density.js").Density>;
368
+ default: string;
369
+ validator: (v: any) => boolean;
370
+ };
347
371
  groupCollapseIcon: {
348
372
  type: PropType<import("../../composables/icons.js").IconValue>;
349
373
  default: string;
@@ -382,6 +406,11 @@ export declare const VDataTableRows: {
382
406
  default: boolean;
383
407
  };
384
408
  mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
409
+ density: {
410
+ type: PropType<import("../../composables/density.js").Density>;
411
+ default: string;
412
+ validator: (v: any) => boolean;
413
+ };
385
414
  groupCollapseIcon: {
386
415
  type: PropType<import("../../composables/icons.js").IconValue>;
387
416
  default: string;
@@ -27,8 +27,8 @@ export const makeVDataTableRowsProps = propsFactory({
27
27
  },
28
28
  rowProps: [Object, Function],
29
29
  cellProps: [Object, Function],
30
- ...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon']),
31
- ...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon']),
30
+ ...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon', 'density']),
31
+ ...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon', 'density']),
32
32
  ...makeDisplayProps()
33
33
  }, 'VDataTableRows');
34
34
  export const VDataTableRows = genericComponent()({
@@ -63,7 +63,7 @@ export const VDataTableRows = genericComponent()({
63
63
  mobile
64
64
  } = useDisplay(props);
65
65
  useRender(() => {
66
- const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon']);
66
+ const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon', 'density']);
67
67
  if (props.loading && (!props.items.length || slots.loading)) {
68
68
  return _createElementVNode("tr", {
69
69
  "class": "v-data-table-rows-loading",
@@ -129,6 +129,7 @@ export const VDataTableRows = genericComponent()({
129
129
  cellProps: props.cellProps,
130
130
  collapseIcon: props.collapseIcon,
131
131
  expandIcon: props.expandIcon,
132
+ density: props.density,
132
133
  mobile: mobile.value
133
134
  }, getPrefixedEventHandlers(attrs, ':row', () => slotProps), typeof props.rowProps === 'function' ? props.rowProps({
134
135
  item: slotProps.item,
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRows.js","names":["makeVDataTableGroupHeaderRowProps","VDataTableGroupHeaderRow","makeVDataTableRowProps","VDataTableRow","useExpanded","useGroupBy","useHeaders","useSelection","makeDisplayProps","useDisplay","useLocale","Fragment","mergeProps","genericComponent","getPrefixedEventHandlers","pick","propsFactory","useRender","makeVDataTableRowsProps","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowProps","Object","Function","cellProps","VDataTableRows","name","inheritAttrs","props","setup","_ref","attrs","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","mobile","groupHeaderRowProps","length","_createElementVNode","value","_Fragment","map","item","index","slotProps","_createVNode","_mergeProps","id","raw","internalItem","itemSlotProps","key","onClick","undefined","collapseIcon","expandIcon"],"sources":["../../../src/components/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { makeVDataTableGroupHeaderRowProps, VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { makeVDataTableRowProps, VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { Fragment, mergeProps } from 'vue'\nimport { genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group, GroupSummary } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, GroupSummarySlot, ItemSlot, RowProps } from './types'\nimport type { VDataTableGroupHeaderRowSlots } from './VDataTableGroupHeaderRow'\nimport type { VDataTableRowSlots } from './VDataTableRow'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowsSlots<T> = VDataTableGroupHeaderRowSlots & VDataTableRowSlots<T> & {\n item: ItemSlot<T> & { props: Record<string, any> }\n loading: never\n 'group-header': GroupHeaderSlot\n 'group-summary': GroupSummarySlot\n 'no-data': never\n 'expanded-row': ItemSlot<T>\n}\n\nexport const makeVDataTableRowsProps = propsFactory({\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<readonly (DataTableItem | Group | GroupSummary)[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowProps: [Object, Function] as PropType<RowProps<any>>,\n cellProps: [Object, Function] as PropType<CellProps<any>>,\n\n ...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon']),\n ...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon']),\n ...makeDisplayProps(),\n}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent<new <T>(\n props: {\n items?: readonly (DataTableItem<T> | Group<T> | GroupSummary<T>)[]\n },\n slots: VDataTableRowsSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableRows',\n\n inheritAttrs: false,\n\n props: makeVDataTableRowsProps(),\n\n setup (props, { attrs, 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 const { mobile } = useDisplay(props)\n\n useRender(() => {\n const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon'])\n\n if (props.loading && (!props.items.length || 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?.() ?? t(props.loadingText) }\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') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } satisfies GroupHeaderSlot\n\n return slots['group-header'] ? slots['group-header'](slotProps) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n { ...getPrefixedEventHandlers(attrs, ':groupHeader', () => slotProps) }\n { ...groupHeaderRowProps }\n v-slots={ slots }\n />\n )\n }\n\n if (item.type === 'group-summary') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n toggleGroup,\n } satisfies GroupSummarySlot\n\n return slots['group-summary']?.(slotProps) ?? ''\n }\n\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } satisfies ItemSlot<any>\n\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps(\n {\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item)\n } : undefined,\n index,\n item,\n cellProps: props.cellProps,\n collapseIcon: props.collapseIcon,\n expandIcon: props.expandIcon,\n mobile: mobile.value,\n },\n getPrefixedEventHandlers(attrs, ':row', () => slotProps),\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem,\n })\n : props.rowProps,\n ),\n }\n\n return (\n <Fragment key={ itemSlotProps.props.key as string }>\n { slots.item ? slots.item(itemSlotProps) : (\n <VDataTableRow\n { ...itemSlotProps.props }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </Fragment>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDataTableRows.js","names":["makeVDataTableGroupHeaderRowProps","VDataTableGroupHeaderRow","makeVDataTableRowProps","VDataTableRow","useExpanded","useGroupBy","useHeaders","useSelection","makeDisplayProps","useDisplay","useLocale","Fragment","mergeProps","genericComponent","getPrefixedEventHandlers","pick","propsFactory","useRender","makeVDataTableRowsProps","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowProps","Object","Function","cellProps","VDataTableRows","name","inheritAttrs","props","setup","_ref","attrs","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","mobile","groupHeaderRowProps","length","_createElementVNode","value","_Fragment","map","item","index","slotProps","_createVNode","_mergeProps","id","raw","internalItem","itemSlotProps","key","onClick","undefined","collapseIcon","expandIcon","density"],"sources":["../../../src/components/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { makeVDataTableGroupHeaderRowProps, VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { makeVDataTableRowProps, VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { Fragment, mergeProps } from 'vue'\nimport { genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group, GroupSummary } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, GroupSummarySlot, ItemSlot, RowProps } from './types'\nimport type { VDataTableGroupHeaderRowSlots } from './VDataTableGroupHeaderRow'\nimport type { VDataTableRowSlots } from './VDataTableRow'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowsSlots<T> = VDataTableGroupHeaderRowSlots & VDataTableRowSlots<T> & {\n item: ItemSlot<T> & { props: Record<string, any> }\n loading: never\n 'group-header': GroupHeaderSlot\n 'group-summary': GroupSummarySlot\n 'no-data': never\n 'expanded-row': ItemSlot<T>\n}\n\nexport const makeVDataTableRowsProps = propsFactory({\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<readonly (DataTableItem | Group | GroupSummary)[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowProps: [Object, Function] as PropType<RowProps<any>>,\n cellProps: [Object, Function] as PropType<CellProps<any>>,\n\n ...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon', 'density']),\n ...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon', 'density']),\n ...makeDisplayProps(),\n}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent<new <T>(\n props: {\n items?: readonly (DataTableItem<T> | Group<T> | GroupSummary<T>)[]\n },\n slots: VDataTableRowsSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableRows',\n\n inheritAttrs: false,\n\n props: makeVDataTableRowsProps(),\n\n setup (props, { attrs, 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 const { mobile } = useDisplay(props)\n\n useRender(() => {\n const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon', 'density'])\n\n if (props.loading && (!props.items.length || 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?.() ?? t(props.loadingText) }\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') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } satisfies GroupHeaderSlot\n\n return slots['group-header'] ? slots['group-header'](slotProps) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n { ...getPrefixedEventHandlers(attrs, ':groupHeader', () => slotProps) }\n { ...groupHeaderRowProps }\n v-slots={ slots }\n />\n )\n }\n\n if (item.type === 'group-summary') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n toggleGroup,\n } satisfies GroupSummarySlot\n\n return slots['group-summary']?.(slotProps) ?? ''\n }\n\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } satisfies ItemSlot<any>\n\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps(\n {\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item)\n } : undefined,\n index,\n item,\n cellProps: props.cellProps,\n collapseIcon: props.collapseIcon,\n expandIcon: props.expandIcon,\n density: props.density,\n mobile: mobile.value,\n },\n getPrefixedEventHandlers(attrs, ':row', () => slotProps),\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem,\n })\n : props.rowProps,\n ),\n }\n\n return (\n <Fragment key={ itemSlotProps.props.key as string }>\n { slots.item ? slots.item(itemSlotProps) : (\n <VDataTableRow\n { ...itemSlotProps.props }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </Fragment>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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","ignoreList":[]}
@@ -46,10 +46,11 @@ export const VDialog = genericComponent()({
46
46
  scopeId
47
47
  } = useScopeId();
48
48
  const overlay = ref();
49
- function onFocusin(e) {
49
+ async function onFocusin(e) {
50
50
  const before = e.relatedTarget;
51
51
  const after = e.target;
52
- if (before !== after && overlay.value?.contentEl &&
52
+ await nextTick();
53
+ if (isActive.value && before !== after && overlay.value?.contentEl &&
53
54
  // We're the topmost dialog
54
55
  overlay.value?.globalTop &&
55
56
  // It isn't the document or the dialog body
@@ -57,22 +58,39 @@ export const VDialog = genericComponent()({
57
58
  // It isn't inside the dialog body
58
59
  !overlay.value.contentEl.contains(after)) {
59
60
  const focusable = focusableChildren(overlay.value.contentEl);
60
- if (!focusable.length) return;
61
- const firstElement = focusable[0];
62
- const lastElement = focusable[focusable.length - 1];
63
- if (before === firstElement) {
64
- lastElement.focus();
65
- } else {
66
- firstElement.focus();
67
- }
61
+ focusable[0]?.focus();
62
+ }
63
+ }
64
+ function onKeydown(e) {
65
+ if (e.key !== 'Tab' || !overlay.value?.contentEl) return;
66
+ const focusable = focusableChildren(overlay.value.contentEl);
67
+ if (!focusable.length) return;
68
+ const firstElement = focusable[0];
69
+ const lastElement = focusable[focusable.length - 1];
70
+ const active = document.activeElement;
71
+ if (e.shiftKey && active === firstElement) {
72
+ e.preventDefault();
73
+ lastElement.focus();
74
+ } else if (!e.shiftKey && active === lastElement) {
75
+ e.preventDefault();
76
+ firstElement.focus();
68
77
  }
69
78
  }
70
79
  onBeforeUnmount(() => {
71
80
  document.removeEventListener('focusin', onFocusin);
81
+ document.removeEventListener('keydown', onKeydown);
72
82
  });
73
83
  if (IN_BROWSER) {
74
84
  watch(() => isActive.value && props.retainFocus, val => {
75
- val ? document.addEventListener('focusin', onFocusin) : document.removeEventListener('focusin', onFocusin);
85
+ if (val) {
86
+ document.addEventListener('focusin', onFocusin, {
87
+ once: true
88
+ });
89
+ document.addEventListener('keydown', onKeydown);
90
+ } else {
91
+ document.removeEventListener('focusin', onFocusin);
92
+ document.removeEventListener('keydown', onKeydown);
93
+ }
76
94
  }, {
77
95
  immediate: true
78
96
  });