@vuetify/nightly 3.9.3-dev.2025-07-31 → 3.9.3-dev.2025-08-02
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -3
- package/dist/json/attributes.json +2098 -2022
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +168 -168
- package/dist/json/tags.json +19 -0
- package/dist/json/web-types.json +4252 -4050
- package/dist/vuetify-labs.cjs +77 -24
- package/dist/vuetify-labs.css +5349 -5343
- package/dist/vuetify-labs.d.ts +329 -61
- package/dist/vuetify-labs.esm.js +77 -24
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +77 -24
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +77 -24
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2939 -2933
- package/dist/vuetify.d.ts +329 -61
- package/dist/vuetify.esm.js +77 -24
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +77 -24
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +252 -249
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.d.ts +1 -0
- package/lib/components/VDataIterator/VDataIterator.js +1 -0
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.css +7 -1
- package/lib/components/VDataTable/VDataTable.d.ts +164 -0
- package/lib/components/VDataTable/VDataTable.sass +4 -1
- package/lib/components/VDataTable/VDataTableColumn.d.ts +4 -1
- package/lib/components/VDataTable/VDataTableColumn.js +6 -2
- package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.d.ts +57 -3
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +27 -12
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +3 -0
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.d.ts +51 -0
- package/lib/components/VDataTable/VDataTableRow.js +17 -4
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +100 -0
- package/lib/components/VDataTable/VDataTableRows.js +9 -4
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +110 -0
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +110 -0
- package/lib/components/VDataTable/composables/headers.d.ts +14 -0
- package/lib/components/VDataTable/types.d.ts +1 -0
- package/lib/components/VDataTable/types.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.d.ts +25 -0
- package/lib/components/VFileInput/VFileInput.js +11 -1
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js +6 -4
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +2 -2
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +62 -61
- package/lib/framework.js +1 -1
- package/lib/iconsets/fa.js +2 -0
- package/lib/iconsets/fa.js.map +1 -1
- package/lib/iconsets/fa4.js +2 -0
- package/lib/iconsets/fa4.js.map +1 -1
- package/lib/iconsets/md.js +2 -0
- package/lib/iconsets/md.js.map +1 -1
- package/lib/iconsets/mdi-svg.js +2 -0
- package/lib/iconsets/mdi-svg.js.map +1 -1
- package/lib/iconsets/mdi.js +2 -0
- package/lib/iconsets/mdi.js.map +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDataTableRow.js","names":["VDataTableColumn","VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","useSort","makeDisplayProps","useDisplay","toDisplayString","withModifiers","EventProp","genericComponent","getObjectValueByPath","propsFactory","useRender","makeVDataTableRowProps","index","Number","item","Object","cellProps","Function","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","_createVNode","_mergeProps","align","fixed","fixedOffset","fixedEndOffset","lastFixed","firstFixedEnd","maxWidth","undefined","nowrap","width","default","disabled","selectable","modelValue","event","icon","size","variant","displayValue","_Fragment","title"],"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'\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 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 return (\n <VDataTableColumn\n align={ column.align }\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={ column.key === 'data-table-select' || column.key === 'data-table-expand' }\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) ? '$collapse' : '$expand',\n size: 'small',\n variant: 'text',\n onClick: withModifiers(() => toggleExpand(item), ['stop']),\n },\n }) ?? (\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 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":[]}
|
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":"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","ignoreList":[]}
|
@@ -16,6 +16,10 @@ export type VDataTableRowsSlots<T> = VDataTableGroupHeaderRowSlots & VDataTableR
|
|
16
16
|
export declare const makeVDataTableRowsProps: <Defaults extends {
|
17
17
|
mobile?: unknown;
|
18
18
|
mobileBreakpoint?: unknown;
|
19
|
+
groupCollapseIcon?: unknown;
|
20
|
+
groupExpandIcon?: unknown;
|
21
|
+
collapseIcon?: unknown;
|
22
|
+
expandIcon?: unknown;
|
19
23
|
loading?: unknown;
|
20
24
|
loadingText?: unknown;
|
21
25
|
hideNoData?: unknown;
|
@@ -38,6 +42,46 @@ export declare const makeVDataTableRowsProps: <Defaults extends {
|
|
38
42
|
type: PropType<unknown extends Defaults["mobileBreakpoint"] ? number | import("../../composables/display.js").DisplayBreakpoint : number | import("../../composables/display.js").DisplayBreakpoint | Defaults["mobileBreakpoint"]>;
|
39
43
|
default: unknown extends Defaults["mobileBreakpoint"] ? number | import("../../composables/display.js").DisplayBreakpoint : NonNullable<number | import("../../composables/display.js").DisplayBreakpoint> | Defaults["mobileBreakpoint"];
|
40
44
|
};
|
45
|
+
groupCollapseIcon: unknown extends Defaults["groupCollapseIcon"] ? {
|
46
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
47
|
+
default: string;
|
48
|
+
} : Omit<{
|
49
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
50
|
+
default: string;
|
51
|
+
}, "type" | "default"> & {
|
52
|
+
type: PropType<unknown extends Defaults["groupCollapseIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["groupCollapseIcon"]>;
|
53
|
+
default: unknown extends Defaults["groupCollapseIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["groupCollapseIcon"];
|
54
|
+
};
|
55
|
+
groupExpandIcon: unknown extends Defaults["groupExpandIcon"] ? {
|
56
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
57
|
+
default: string;
|
58
|
+
} : Omit<{
|
59
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
60
|
+
default: string;
|
61
|
+
}, "type" | "default"> & {
|
62
|
+
type: PropType<unknown extends Defaults["groupExpandIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["groupExpandIcon"]>;
|
63
|
+
default: unknown extends Defaults["groupExpandIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["groupExpandIcon"];
|
64
|
+
};
|
65
|
+
collapseIcon: unknown extends Defaults["collapseIcon"] ? {
|
66
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
67
|
+
default: string;
|
68
|
+
} : Omit<{
|
69
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
70
|
+
default: string;
|
71
|
+
}, "type" | "default"> & {
|
72
|
+
type: PropType<unknown extends Defaults["collapseIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["collapseIcon"]>;
|
73
|
+
default: unknown extends Defaults["collapseIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["collapseIcon"];
|
74
|
+
};
|
75
|
+
expandIcon: unknown extends Defaults["expandIcon"] ? {
|
76
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
77
|
+
default: string;
|
78
|
+
} : Omit<{
|
79
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
80
|
+
default: string;
|
81
|
+
}, "type" | "default"> & {
|
82
|
+
type: PropType<unknown extends Defaults["expandIcon"] ? import("../../composables/icons.js").IconValue : import("../../composables/icons.js").IconValue | Defaults["expandIcon"]>;
|
83
|
+
default: unknown extends Defaults["expandIcon"] ? import("../../composables/icons.js").IconValue : NonNullable<import("../../composables/icons.js").IconValue> | Defaults["expandIcon"];
|
84
|
+
};
|
41
85
|
loading: unknown extends Defaults["loading"] ? (StringConstructor | BooleanConstructor)[] : {
|
42
86
|
type: PropType<unknown extends Defaults["loading"] ? string | boolean : string | boolean | Defaults["loading"]>;
|
43
87
|
default: unknown extends Defaults["loading"] ? string | boolean : NonNullable<string | boolean> | Defaults["loading"];
|
@@ -90,7 +134,11 @@ export declare const VDataTableRows: {
|
|
90
134
|
mobile: boolean | null;
|
91
135
|
noDataText: string;
|
92
136
|
loadingText: string;
|
137
|
+
collapseIcon: import("../../composables/icons.js").IconValue;
|
138
|
+
expandIcon: import("../../composables/icons.js").IconValue;
|
93
139
|
hideNoData: boolean;
|
140
|
+
groupCollapseIcon: import("../../composables/icons.js").IconValue;
|
141
|
+
groupExpandIcon: import("../../composables/icons.js").IconValue;
|
94
142
|
} & {
|
95
143
|
loading?: string | boolean | undefined;
|
96
144
|
mobileBreakpoint?: number | import("../../composables/display.js").DisplayBreakpoint | undefined;
|
@@ -100,7 +148,11 @@ export declare const VDataTableRows: {
|
|
100
148
|
mobile: boolean | null;
|
101
149
|
noDataText: string;
|
102
150
|
loadingText: string;
|
151
|
+
collapseIcon: import("../../composables/icons.js").IconValue;
|
152
|
+
expandIcon: import("../../composables/icons.js").IconValue;
|
103
153
|
hideNoData: boolean;
|
154
|
+
groupCollapseIcon: import("../../composables/icons.js").IconValue;
|
155
|
+
groupExpandIcon: import("../../composables/icons.js").IconValue;
|
104
156
|
}, true, {}, import("vue").SlotsType<Partial<{
|
105
157
|
[x: `item.${string}`]: (arg: import("./types.js").ItemKeySlot<unknown>) => import("vue").VNode[];
|
106
158
|
[x: `header.${string}`]: (arg: import("./VDataTableHeaders.js").VDataTableHeaderCellColumnSlotProps) => import("vue").VNode[];
|
@@ -144,7 +196,11 @@ export declare const VDataTableRows: {
|
|
144
196
|
mobile: boolean | null;
|
145
197
|
noDataText: string;
|
146
198
|
loadingText: string;
|
199
|
+
collapseIcon: import("../../composables/icons.js").IconValue;
|
200
|
+
expandIcon: import("../../composables/icons.js").IconValue;
|
147
201
|
hideNoData: boolean;
|
202
|
+
groupCollapseIcon: import("../../composables/icons.js").IconValue;
|
203
|
+
groupExpandIcon: import("../../composables/icons.js").IconValue;
|
148
204
|
} & {
|
149
205
|
loading?: string | boolean | undefined;
|
150
206
|
mobileBreakpoint?: number | import("../../composables/display.js").DisplayBreakpoint | undefined;
|
@@ -154,7 +210,11 @@ export declare const VDataTableRows: {
|
|
154
210
|
mobile: boolean | null;
|
155
211
|
noDataText: string;
|
156
212
|
loadingText: string;
|
213
|
+
collapseIcon: import("../../composables/icons.js").IconValue;
|
214
|
+
expandIcon: import("../../composables/icons.js").IconValue;
|
157
215
|
hideNoData: boolean;
|
216
|
+
groupCollapseIcon: import("../../composables/icons.js").IconValue;
|
217
|
+
groupExpandIcon: import("../../composables/icons.js").IconValue;
|
158
218
|
}>;
|
159
219
|
__isFragment?: never;
|
160
220
|
__isTeleport?: never;
|
@@ -163,7 +223,11 @@ export declare const VDataTableRows: {
|
|
163
223
|
mobile: boolean | null;
|
164
224
|
noDataText: string;
|
165
225
|
loadingText: string;
|
226
|
+
collapseIcon: import("../../composables/icons.js").IconValue;
|
227
|
+
expandIcon: import("../../composables/icons.js").IconValue;
|
166
228
|
hideNoData: boolean;
|
229
|
+
groupCollapseIcon: import("../../composables/icons.js").IconValue;
|
230
|
+
groupExpandIcon: import("../../composables/icons.js").IconValue;
|
167
231
|
} & {
|
168
232
|
loading?: string | boolean | undefined;
|
169
233
|
mobileBreakpoint?: number | import("../../composables/display.js").DisplayBreakpoint | undefined;
|
@@ -173,7 +237,11 @@ export declare const VDataTableRows: {
|
|
173
237
|
mobile: boolean | null;
|
174
238
|
noDataText: string;
|
175
239
|
loadingText: string;
|
240
|
+
collapseIcon: import("../../composables/icons.js").IconValue;
|
241
|
+
expandIcon: import("../../composables/icons.js").IconValue;
|
176
242
|
hideNoData: boolean;
|
243
|
+
groupCollapseIcon: import("../../composables/icons.js").IconValue;
|
244
|
+
groupExpandIcon: import("../../composables/icons.js").IconValue;
|
177
245
|
}, {}, string, import("vue").SlotsType<Partial<{
|
178
246
|
[x: `item.${string}`]: (arg: import("./types.js").ItemKeySlot<unknown>) => import("vue").VNode[];
|
179
247
|
[x: `header.${string}`]: (arg: import("./VDataTableHeaders.js").VDataTableHeaderCellColumnSlotProps) => import("vue").VNode[];
|
@@ -214,6 +282,22 @@ export declare const VDataTableRows: {
|
|
214
282
|
default: boolean;
|
215
283
|
};
|
216
284
|
mobileBreakpoint: PropType<number | import("../../composables/display.js").DisplayBreakpoint>;
|
285
|
+
groupCollapseIcon: {
|
286
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
287
|
+
default: string;
|
288
|
+
};
|
289
|
+
groupExpandIcon: {
|
290
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
291
|
+
default: string;
|
292
|
+
};
|
293
|
+
collapseIcon: {
|
294
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
295
|
+
default: string;
|
296
|
+
};
|
297
|
+
expandIcon: {
|
298
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
299
|
+
default: string;
|
300
|
+
};
|
217
301
|
loading: (StringConstructor | BooleanConstructor)[];
|
218
302
|
loadingText: {
|
219
303
|
type: StringConstructor;
|
@@ -236,6 +320,22 @@ export declare const VDataTableRows: {
|
|
236
320
|
default: boolean;
|
237
321
|
};
|
238
322
|
mobileBreakpoint: PropType<number | import("../../composables/display.js").DisplayBreakpoint>;
|
323
|
+
groupCollapseIcon: {
|
324
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
325
|
+
default: string;
|
326
|
+
};
|
327
|
+
groupExpandIcon: {
|
328
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
329
|
+
default: string;
|
330
|
+
};
|
331
|
+
collapseIcon: {
|
332
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
333
|
+
default: string;
|
334
|
+
};
|
335
|
+
expandIcon: {
|
336
|
+
type: PropType<import("../../composables/icons.js").IconValue>;
|
337
|
+
default: string;
|
338
|
+
};
|
239
339
|
loading: (StringConstructor | BooleanConstructor)[];
|
240
340
|
loadingText: {
|
241
341
|
type: StringConstructor;
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { createElementVNode as _createElementVNode, Fragment as _Fragment, mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
2
2
|
// Components
|
3
|
-
import { VDataTableGroupHeaderRow } from "./VDataTableGroupHeaderRow.js";
|
4
|
-
import { VDataTableRow } from "./VDataTableRow.js"; // Composables
|
3
|
+
import { makeVDataTableGroupHeaderRowProps, VDataTableGroupHeaderRow } from "./VDataTableGroupHeaderRow.js";
|
4
|
+
import { makeVDataTableRowProps, VDataTableRow } from "./VDataTableRow.js"; // Composables
|
5
5
|
import { useExpanded } from "./composables/expand.js";
|
6
6
|
import { useGroupBy } from "./composables/group.js";
|
7
7
|
import { useHeaders } from "./composables/headers.js";
|
@@ -9,7 +9,7 @@ import { useSelection } from "./composables/select.js";
|
|
9
9
|
import { makeDisplayProps, useDisplay } from "../../composables/display.js";
|
10
10
|
import { useLocale } from "../../composables/locale.js"; // Utilities
|
11
11
|
import { Fragment, mergeProps } from 'vue';
|
12
|
-
import { genericComponent, getPrefixedEventHandlers, propsFactory, useRender } from "../../util/index.js"; // Types
|
12
|
+
import { genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from "../../util/index.js"; // Types
|
13
13
|
export const makeVDataTableRowsProps = propsFactory({
|
14
14
|
loading: [Boolean, String],
|
15
15
|
loadingText: {
|
@@ -27,6 +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
32
|
...makeDisplayProps()
|
31
33
|
}, 'VDataTableRows');
|
32
34
|
export const VDataTableRows = genericComponent()({
|
@@ -61,6 +63,7 @@ export const VDataTableRows = genericComponent()({
|
|
61
63
|
mobile
|
62
64
|
} = useDisplay(props);
|
63
65
|
useRender(() => {
|
66
|
+
const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon']);
|
64
67
|
if (props.loading && (!props.items.length || slots.loading)) {
|
65
68
|
return _createElementVNode("tr", {
|
66
69
|
"class": "v-data-table-rows-loading",
|
@@ -93,7 +96,7 @@ export const VDataTableRows = genericComponent()({
|
|
93
96
|
return slots['group-header'] ? slots['group-header'](slotProps) : _createVNode(VDataTableGroupHeaderRow, _mergeProps({
|
94
97
|
"key": `group-header_${item.id}`,
|
95
98
|
"item": item
|
96
|
-
}, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps)), slots);
|
99
|
+
}, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps), groupHeaderRowProps), slots);
|
97
100
|
}
|
98
101
|
const slotProps = {
|
99
102
|
index,
|
@@ -115,6 +118,8 @@ export const VDataTableRows = genericComponent()({
|
|
115
118
|
index,
|
116
119
|
item,
|
117
120
|
cellProps: props.cellProps,
|
121
|
+
collapseIcon: props.collapseIcon,
|
122
|
+
expandIcon: props.expandIcon,
|
118
123
|
mobile: mobile.value
|
119
124
|
}, getPrefixedEventHandlers(attrs, ':row', () => slotProps), typeof props.rowProps === 'function' ? props.rowProps({
|
120
125
|
item: slotProps.item,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VDataTableRows.js","names":["VDataTableGroupHeaderRow","VDataTableRow","useExpanded","useGroupBy","useHeaders","useSelection","makeDisplayProps","useDisplay","useLocale","Fragment","mergeProps","genericComponent","getPrefixedEventHandlers","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","length","_createElementVNode","value","_Fragment","map","item","index","slotProps","_createVNode","_mergeProps","id","raw","internalItem","itemSlotProps","key","onClick","undefined"],"sources":["../../../src/components/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { 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, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, 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 '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)[]>,\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 ...makeDisplayProps(),\n}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent<new <T>(\n props: {\n items?: readonly (DataTableItem<T> | Group<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 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, ':group-header', () => slotProps) }\n v-slots={ slots }\n />\n )\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 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"],"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 } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, 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 '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)[]>,\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>)[]\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, ':group-header', () => slotProps) }\n { ...groupHeaderRowProps }\n v-slots={ slots }\n />\n )\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":[]}
|