vuetify 3.10.4 → 3.10.6

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 (108) hide show
  1. package/README.md +0 -6
  2. package/dist/json/attributes.json +1910 -1922
  3. package/dist/json/importMap-labs.json +20 -20
  4. package/dist/json/importMap.json +182 -182
  5. package/dist/json/tags.json +6 -9
  6. package/dist/json/web-types.json +3674 -3697
  7. package/dist/vuetify-labs.cjs +211 -107
  8. package/dist/vuetify-labs.css +5703 -5642
  9. package/dist/vuetify-labs.d.ts +168 -175
  10. package/dist/vuetify-labs.esm.js +211 -107
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +211 -107
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +192 -97
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +5916 -5877
  17. package/dist/vuetify.d.ts +168 -140
  18. package/dist/vuetify.esm.js +192 -97
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +192 -97
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +124 -114
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.d.ts +0 -61
  26. package/lib/components/VAutocomplete/VAutocomplete.js +13 -11
  27. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  28. package/lib/components/VBadge/VBadge.css +10 -0
  29. package/lib/components/VBadge/VBadge.sass +9 -0
  30. package/lib/components/VChipGroup/VChipGroup.d.ts +37 -0
  31. package/lib/components/VChipGroup/VChipGroup.js +3 -1
  32. package/lib/components/VChipGroup/VChipGroup.js.map +1 -1
  33. package/lib/components/VCombobox/VCombobox.d.ts +6 -67
  34. package/lib/components/VCombobox/VCombobox.js +26 -28
  35. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  36. package/lib/components/VCounter/VCounter.css +1 -0
  37. package/lib/components/VCounter/VCounter.sass +1 -0
  38. package/lib/components/VDataTable/VDataTableGroupHeaderRow.d.ts +29 -0
  39. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +4 -1
  40. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
  41. package/lib/components/VDataTable/VDataTableHeaders.d.ts +29 -0
  42. package/lib/components/VDataTable/VDataTableHeaders.js +3 -0
  43. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  44. package/lib/components/VDataTable/VDataTableRow.d.ts +29 -0
  45. package/lib/components/VDataTable/VDataTableRow.js +3 -0
  46. package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
  47. package/lib/components/VDataTable/VDataTableRows.d.ts +29 -0
  48. package/lib/components/VDataTable/VDataTableRows.js +4 -3
  49. package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
  50. package/lib/components/VDatePicker/VDatePicker.js +1 -1
  51. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  52. package/lib/components/VDivider/VDivider.css +1 -0
  53. package/lib/components/VDivider/VDivider.sass +1 -0
  54. package/lib/components/VKbd/_variables.scss +3 -1
  55. package/lib/components/VList/VListItem.css +14 -12
  56. package/lib/components/VList/VListItem.js +5 -3
  57. package/lib/components/VList/VListItem.js.map +1 -1
  58. package/lib/components/VList/VListItem.sass +20 -18
  59. package/lib/components/VMenu/VMenu.js +22 -4
  60. package/lib/components/VMenu/VMenu.js.map +1 -1
  61. package/lib/components/VNumberInput/VNumberInput.css +8 -0
  62. package/lib/components/VNumberInput/VNumberInput.js +5 -2
  63. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  64. package/lib/components/VNumberInput/VNumberInput.sass +10 -4
  65. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +17 -0
  66. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +3 -3
  67. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  68. package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +7 -0
  69. package/lib/components/VSlideGroup/VSlideGroup.d.ts +25 -0
  70. package/lib/components/VSlideGroup/VSlideGroup.js +5 -1
  71. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  72. package/lib/components/VTable/VTable.js +20 -32
  73. package/lib/components/VTable/VTable.js.map +1 -1
  74. package/lib/components/VTabs/VTabs.d.ts +25 -0
  75. package/lib/components/VTextField/VTextField.js +0 -3
  76. package/lib/components/VTextField/VTextField.js.map +1 -1
  77. package/lib/components/VTextarea/VTextarea.css +2 -2
  78. package/lib/components/VTextarea/VTextarea.js +20 -1
  79. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  80. package/lib/components/VTextarea/VTextarea.sass +4 -2
  81. package/lib/components/VWindow/VWindow.js +43 -3
  82. package/lib/components/VWindow/VWindow.js.map +1 -1
  83. package/lib/composables/date/date.js +1 -1
  84. package/lib/composables/date/date.js.map +1 -1
  85. package/lib/composables/group.js +1 -1
  86. package/lib/composables/group.js.map +1 -1
  87. package/lib/composables/nested/nested.js +12 -2
  88. package/lib/composables/nested/nested.js.map +1 -1
  89. package/lib/composables/virtual.js +2 -2
  90. package/lib/composables/virtual.js.map +1 -1
  91. package/lib/entry-bundler.js +1 -1
  92. package/lib/framework.d.ts +66 -66
  93. package/lib/framework.js +1 -1
  94. package/lib/labs/VColorInput/VColorInput.d.ts +0 -40
  95. package/lib/labs/VColorInput/VColorInput.js +2 -2
  96. package/lib/labs/VColorInput/VColorInput.js.map +1 -1
  97. package/lib/labs/VDateInput/VDateInput.d.ts +0 -30
  98. package/lib/labs/VDateInput/VDateInput.js +16 -7
  99. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  100. package/lib/labs/VIconBtn/VIconBtn.css +22 -0
  101. package/lib/labs/VIconBtn/VIconBtn.scss +32 -0
  102. package/lib/labs/VMaskInput/VMaskInput.js +1 -1
  103. package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
  104. package/lib/labs/rules/rules.js +4 -4
  105. package/lib/labs/rules/rules.js.map +1 -1
  106. package/lib/util/helpers.js +4 -2
  107. package/lib/util/helpers.js.map +1 -1
  108. package/package.json +1 -1
@@ -3,4 +3,5 @@
3
3
  flex: 0 1 auto;
4
4
  font-size: 12px;
5
5
  transition-duration: 150ms;
6
+ white-space: nowrap;
6
7
  }
@@ -8,3 +8,4 @@
8
8
  flex: $counter-flex
9
9
  font-size: $counter-font-size
10
10
  transition-duration: $counter-transition-duration
11
+ white-space: nowrap
@@ -13,10 +13,23 @@ export type VDataTableGroupHeaderRowSlots = {
13
13
  };
14
14
  };
15
15
  export declare const makeVDataTableGroupHeaderRowProps: <Defaults extends {
16
+ density?: unknown;
16
17
  item?: unknown;
17
18
  groupCollapseIcon?: unknown;
18
19
  groupExpandIcon?: unknown;
19
20
  } = {}>(defaults?: Defaults | undefined) => {
21
+ density: unknown extends Defaults["density"] ? {
22
+ type: PropType<import("../../composables/density.js").Density>;
23
+ default: string;
24
+ validator: (v: any) => boolean;
25
+ } : Omit<{
26
+ type: PropType<import("../../composables/density.js").Density>;
27
+ default: string;
28
+ validator: (v: any) => boolean;
29
+ }, "default" | "type"> & {
30
+ type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
31
+ default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
32
+ };
20
33
  item: unknown extends Defaults["item"] ? {
21
34
  type: PropType<Group<any>>;
22
35
  required: true;
@@ -50,6 +63,7 @@ export declare const makeVDataTableGroupHeaderRowProps: <Defaults extends {
50
63
  };
51
64
  export declare const VDataTableGroupHeaderRow: {
52
65
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
66
+ density: import("../../composables/density.js").Density;
53
67
  item: Group<any>;
54
68
  groupCollapseIcon: IconValue;
55
69
  groupExpandIcon: IconValue;
@@ -86,6 +100,7 @@ export declare const VDataTableGroupHeaderRow: {
86
100
  props: Record<string, unknown>;
87
101
  }) => import("vue").VNodeChild) | undefined;
88
102
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
103
+ density: import("../../composables/density.js").Density;
89
104
  groupCollapseIcon: IconValue;
90
105
  groupExpandIcon: IconValue;
91
106
  }, true, {}, import("vue").SlotsType<Partial<{
@@ -109,6 +124,7 @@ export declare const VDataTableGroupHeaderRow: {
109
124
  M: {};
110
125
  Defaults: {};
111
126
  }, {
127
+ density: import("../../composables/density.js").Density;
112
128
  item: Group<any>;
113
129
  groupCollapseIcon: IconValue;
114
130
  groupExpandIcon: IconValue;
@@ -145,6 +161,7 @@ export declare const VDataTableGroupHeaderRow: {
145
161
  props: Record<string, unknown>;
146
162
  }) => import("vue").VNodeChild) | undefined;
147
163
  }, () => JSX.Element, {}, {}, {}, {
164
+ density: import("../../composables/density.js").Density;
148
165
  groupCollapseIcon: IconValue;
149
166
  groupExpandIcon: IconValue;
150
167
  }>;
@@ -152,6 +169,7 @@ export declare const VDataTableGroupHeaderRow: {
152
169
  __isTeleport?: undefined;
153
170
  __isSuspense?: undefined;
154
171
  } & import("vue").ComponentOptionsBase<{
172
+ density: import("../../composables/density.js").Density;
155
173
  item: Group<any>;
156
174
  groupCollapseIcon: IconValue;
157
175
  groupExpandIcon: IconValue;
@@ -188,6 +206,7 @@ export declare const VDataTableGroupHeaderRow: {
188
206
  props: Record<string, unknown>;
189
207
  }) => import("vue").VNodeChild) | undefined;
190
208
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
209
+ density: import("../../composables/density.js").Density;
191
210
  groupCollapseIcon: IconValue;
192
211
  groupExpandIcon: IconValue;
193
212
  }, {}, string, import("vue").SlotsType<Partial<{
@@ -204,6 +223,11 @@ export declare const VDataTableGroupHeaderRow: {
204
223
  [key: string]: any;
205
224
  }>[];
206
225
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
226
+ density: {
227
+ type: PropType<import("../../composables/density.js").Density>;
228
+ default: string;
229
+ validator: (v: any) => boolean;
230
+ };
207
231
  item: {
208
232
  type: PropType<Group<any>>;
209
233
  required: true;
@@ -217,6 +241,11 @@ export declare const VDataTableGroupHeaderRow: {
217
241
  default: string;
218
242
  };
219
243
  }, import("vue").ExtractPropTypes<{
244
+ density: {
245
+ type: PropType<import("../../composables/density.js").Density>;
246
+ default: string;
247
+ validator: (v: any) => boolean;
248
+ };
220
249
  item: {
221
250
  type: PropType<Group<any>>;
222
251
  required: true;
@@ -6,6 +6,7 @@ import { VCheckboxBtn } from "../VCheckbox/index.js"; // Composables
6
6
  import { useGroupBy } from "./composables/group.js";
7
7
  import { useHeaders } from "./composables/headers.js";
8
8
  import { useSelection } from "./composables/select.js";
9
+ import { makeDensityProps } from "../../composables/density.js";
9
10
  import { IconValue } from "../../composables/icons.js"; // Utilities
10
11
  import { computed, toRef } from 'vue';
11
12
  import { genericComponent, propsFactory } from "../../util/index.js"; // Types
@@ -21,7 +22,8 @@ export const makeVDataTableGroupHeaderRowProps = propsFactory({
21
22
  groupExpandIcon: {
22
23
  type: IconValue,
23
24
  default: '$tableGroupExpand'
24
- }
25
+ },
26
+ ...makeDensityProps()
25
27
  }, 'VDataTableGroupHeaderRow');
26
28
  export const VDataTableGroupHeaderRow = genericComponent()({
27
29
  name: 'VDataTableGroupHeaderRow',
@@ -89,6 +91,7 @@ export const VDataTableGroupHeaderRow = genericComponent()({
89
91
  "noPadding": true
90
92
  }, {
91
93
  default: () => [_createVNode(VCheckboxBtn, {
94
+ "density": props.density,
92
95
  "modelValue": modelValue,
93
96
  "indeterminate": indeterminate,
94
97
  "onUpdate:modelValue": selectGroup
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableGroupHeaderRow.js","names":["VDataTableColumn","VBtn","VCheckboxBtn","useGroupBy","useHeaders","useSelection","IconValue","computed","toRef","genericComponent","propsFactory","makeVDataTableGroupHeaderRowProps","item","type","Object","required","groupCollapseIcon","default","groupExpandIcon","VDataTableGroupHeaderRow","name","props","setup","_ref","slots","isGroupOpen","toggleGroup","extractRows","isSelected","isSomeSelected","select","columns","rows","colspan","value","length","some","c","key","_createElementVNode","depth","map","column","icon","onClick","count","_createVNode","_createTextVNode","modelValue","indeterminate","selectGroup","v"],"sources":["../../../src/components/VDataTable/VDataTableGroupHeaderRow.tsx"],"sourcesContent":["// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group } from './composables/group'\n\nexport type VDataTableGroupHeaderRowSlots = {\n 'data-table-group': { item: Group, count: number, props: Record<string, unknown> }\n 'data-table-select': { props: Record<string, unknown> }\n}\n\nexport const makeVDataTableGroupHeaderRowProps = propsFactory({\n item: {\n type: Object as PropType<Group>,\n required: true,\n },\n groupCollapseIcon: {\n type: IconValue,\n default: '$tableGroupCollapse',\n },\n groupExpandIcon: {\n type: IconValue,\n default: '$tableGroupExpand',\n },\n}, 'VDataTableGroupHeaderRow')\n\nexport const VDataTableGroupHeaderRow = genericComponent<VDataTableGroupHeaderRowSlots>()({\n name: 'VDataTableGroupHeaderRow',\n\n props: makeVDataTableGroupHeaderRowProps(),\n\n setup (props, { slots }) {\n const { isGroupOpen, toggleGroup, extractRows } = useGroupBy()\n const { isSelected, isSomeSelected, select } = useSelection()\n const { columns } = useHeaders()\n\n const rows = computed(() => {\n return extractRows([props.item])\n })\n\n const colspan = toRef(() => columns.value.length - (columns.value.some(c => c.key === 'data-table-select') ? 1 : 0))\n\n return () => (\n <tr\n class=\"v-data-table-group-header-row\"\n style={{\n '--v-data-table-group-header-row-depth': props.item.depth,\n }}\n >\n { columns.value.map(column => {\n if (column.key === 'data-table-group') {\n const icon = isGroupOpen(props.item) ? props.groupCollapseIcon : props.groupExpandIcon\n const onClick = () => toggleGroup(props.item)\n\n return slots['data-table-group']?.({ item: props.item, count: rows.value.length, props: { icon, onClick } }) ?? (\n <VDataTableColumn\n class=\"v-data-table-group-header-row__column\"\n colspan={ colspan.value }\n >\n <VBtn\n size=\"small\"\n variant=\"text\"\n icon={ icon }\n onClick={ onClick }\n />\n <span>{ props.item.value }</span>\n <span>({ rows.value.length })</span>\n </VDataTableColumn>\n )\n } else if (column.key === 'data-table-select') {\n const modelValue = isSelected(rows.value)\n const indeterminate = isSomeSelected(rows.value) && !modelValue\n const selectGroup = (v: boolean) => select(rows.value, v)\n return slots['data-table-select']?.({ props: { modelValue, indeterminate, 'onUpdate:modelValue': selectGroup } }) ?? (\n <VDataTableColumn class=\"v-data-table__td--select-row\" noPadding>\n <VCheckboxBtn\n modelValue={ modelValue }\n indeterminate={ indeterminate }\n onUpdate:modelValue={ selectGroup }\n />\n </VDataTableColumn>\n )\n }\n\n return ''\n })}\n </tr>\n )\n },\n})\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDataTableGroupHeaderRow.js","names":["VDataTableColumn","VBtn","VCheckboxBtn","useGroupBy","useHeaders","useSelection","makeDensityProps","IconValue","computed","toRef","genericComponent","propsFactory","makeVDataTableGroupHeaderRowProps","item","type","Object","required","groupCollapseIcon","default","groupExpandIcon","VDataTableGroupHeaderRow","name","props","setup","_ref","slots","isGroupOpen","toggleGroup","extractRows","isSelected","isSomeSelected","select","columns","rows","colspan","value","length","some","c","key","_createElementVNode","depth","map","column","icon","onClick","count","_createVNode","_createTextVNode","modelValue","indeterminate","selectGroup","v","density"],"sources":["../../../src/components/VDataTable/VDataTableGroupHeaderRow.tsx"],"sourcesContent":["// Components\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VBtn } from '@/components/VBtn'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\n\n// Composables\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { makeDensityProps } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group } from './composables/group'\n\nexport type VDataTableGroupHeaderRowSlots = {\n 'data-table-group': { item: Group, count: number, props: Record<string, unknown> }\n 'data-table-select': { props: Record<string, unknown> }\n}\n\nexport const makeVDataTableGroupHeaderRowProps = propsFactory({\n item: {\n type: Object as PropType<Group>,\n required: true,\n },\n groupCollapseIcon: {\n type: IconValue,\n default: '$tableGroupCollapse',\n },\n groupExpandIcon: {\n type: IconValue,\n default: '$tableGroupExpand',\n },\n ...makeDensityProps(),\n}, 'VDataTableGroupHeaderRow')\n\nexport const VDataTableGroupHeaderRow = genericComponent<VDataTableGroupHeaderRowSlots>()({\n name: 'VDataTableGroupHeaderRow',\n\n props: makeVDataTableGroupHeaderRowProps(),\n\n setup (props, { slots }) {\n const { isGroupOpen, toggleGroup, extractRows } = useGroupBy()\n const { isSelected, isSomeSelected, select } = useSelection()\n const { columns } = useHeaders()\n\n const rows = computed(() => {\n return extractRows([props.item])\n })\n\n const colspan = toRef(() => columns.value.length - (columns.value.some(c => c.key === 'data-table-select') ? 1 : 0))\n\n return () => (\n <tr\n class=\"v-data-table-group-header-row\"\n style={{\n '--v-data-table-group-header-row-depth': props.item.depth,\n }}\n >\n { columns.value.map(column => {\n if (column.key === 'data-table-group') {\n const icon = isGroupOpen(props.item) ? props.groupCollapseIcon : props.groupExpandIcon\n const onClick = () => toggleGroup(props.item)\n\n return slots['data-table-group']?.({ item: props.item, count: rows.value.length, props: { icon, onClick } }) ?? (\n <VDataTableColumn\n class=\"v-data-table-group-header-row__column\"\n colspan={ colspan.value }\n >\n <VBtn\n size=\"small\"\n variant=\"text\"\n icon={ icon }\n onClick={ onClick }\n />\n <span>{ props.item.value }</span>\n <span>({ rows.value.length })</span>\n </VDataTableColumn>\n )\n } else if (column.key === 'data-table-select') {\n const modelValue = isSelected(rows.value)\n const indeterminate = isSomeSelected(rows.value) && !modelValue\n const selectGroup = (v: boolean) => select(rows.value, v)\n return slots['data-table-select']?.({ props: { modelValue, indeterminate, 'onUpdate:modelValue': selectGroup } }) ?? (\n <VDataTableColumn class=\"v-data-table__td--select-row\" noPadding>\n <VCheckboxBtn\n density={ props.density }\n modelValue={ modelValue }\n indeterminate={ indeterminate }\n onUpdate:modelValue={ selectGroup }\n />\n </VDataTableColumn>\n )\n }\n\n return ''\n })}\n </tr>\n )\n },\n})\n"],"mappings":"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","ignoreList":[]}
@@ -37,6 +37,7 @@ export type VDataTableHeadersSlots = {
37
37
  export declare const makeVDataTableHeadersProps: <Defaults extends {
38
38
  mobile?: unknown;
39
39
  mobileBreakpoint?: unknown;
40
+ density?: unknown;
40
41
  loading?: unknown;
41
42
  color?: unknown;
42
43
  disableSort?: unknown;
@@ -61,6 +62,18 @@ export declare const makeVDataTableHeadersProps: <Defaults extends {
61
62
  type: PropType<unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : number | Defaults["mobileBreakpoint"] | import("../../types.js").DisplayBreakpoint>;
62
63
  default: unknown extends Defaults["mobileBreakpoint"] ? number | import("../../types.js").DisplayBreakpoint : Defaults["mobileBreakpoint"] | NonNullable<number | import("../../types.js").DisplayBreakpoint>;
63
64
  };
65
+ density: unknown extends Defaults["density"] ? {
66
+ type: PropType<import("../../composables/density.js").Density>;
67
+ default: string;
68
+ validator: (v: any) => boolean;
69
+ } : Omit<{
70
+ type: PropType<import("../../composables/density.js").Density>;
71
+ default: string;
72
+ validator: (v: any) => boolean;
73
+ }, "default" | "type"> & {
74
+ type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
75
+ default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
76
+ };
64
77
  loading: unknown extends Defaults["loading"] ? (BooleanConstructor | StringConstructor)[] : {
65
78
  type: PropType<unknown extends Defaults["loading"] ? string | boolean : string | boolean | Defaults["loading"]>;
66
79
  default: unknown extends Defaults["loading"] ? string | boolean : Defaults["loading"] | NonNullable<string | boolean>;
@@ -117,6 +130,7 @@ export declare const makeVDataTableHeadersProps: <Defaults extends {
117
130
  export declare const VDataTableHeaders: {
118
131
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
119
132
  mobile: boolean | null;
133
+ density: import("../../composables/density.js").Density;
120
134
  disableSort: boolean;
121
135
  fixedHeader: boolean;
122
136
  multiSort: boolean;
@@ -153,6 +167,7 @@ export declare const VDataTableHeaders: {
153
167
  "v-slot:loader"?: false | ((arg: LoaderSlotProps) => import("vue").VNodeChild) | undefined;
154
168
  }, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
155
169
  mobile: boolean | null;
170
+ density: import("../../composables/density.js").Density;
156
171
  disableSort: boolean;
157
172
  fixedHeader: boolean;
158
173
  multiSort: boolean;
@@ -184,6 +199,7 @@ export declare const VDataTableHeaders: {
184
199
  Defaults: {};
185
200
  }, {
186
201
  mobile: boolean | null;
202
+ density: import("../../composables/density.js").Density;
187
203
  disableSort: boolean;
188
204
  fixedHeader: boolean;
189
205
  multiSort: boolean;
@@ -220,6 +236,7 @@ export declare const VDataTableHeaders: {
220
236
  "v-slot:loader"?: false | ((arg: LoaderSlotProps) => import("vue").VNodeChild) | undefined;
221
237
  }, {}, {}, {}, {}, {
222
238
  mobile: boolean | null;
239
+ density: import("../../composables/density.js").Density;
223
240
  disableSort: boolean;
224
241
  fixedHeader: boolean;
225
242
  multiSort: boolean;
@@ -232,6 +249,7 @@ export declare const VDataTableHeaders: {
232
249
  __isSuspense?: undefined;
233
250
  } & import("vue").ComponentOptionsBase<{
234
251
  mobile: boolean | null;
252
+ density: import("../../composables/density.js").Density;
235
253
  disableSort: boolean;
236
254
  fixedHeader: boolean;
237
255
  multiSort: boolean;
@@ -268,6 +286,7 @@ export declare const VDataTableHeaders: {
268
286
  "v-slot:loader"?: false | ((arg: LoaderSlotProps) => import("vue").VNodeChild) | undefined;
269
287
  }, void, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
270
288
  mobile: boolean | null;
289
+ density: import("../../composables/density.js").Density;
271
290
  disableSort: boolean;
272
291
  fixedHeader: boolean;
273
292
  multiSort: boolean;
@@ -296,6 +315,11 @@ export declare const VDataTableHeaders: {
296
315
  default: boolean;
297
316
  };
298
317
  mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
318
+ density: {
319
+ type: PropType<import("../../composables/density.js").Density>;
320
+ default: string;
321
+ validator: (v: any) => boolean;
322
+ };
299
323
  loading: (BooleanConstructor | StringConstructor)[];
300
324
  color: StringConstructor;
301
325
  disableSort: BooleanConstructor;
@@ -319,6 +343,11 @@ export declare const VDataTableHeaders: {
319
343
  default: boolean;
320
344
  };
321
345
  mobileBreakpoint: PropType<number | import("../../types.js").DisplayBreakpoint>;
346
+ density: {
347
+ type: PropType<import("../../composables/density.js").Density>;
348
+ default: string;
349
+ validator: (v: any) => boolean;
350
+ };
322
351
  loading: (BooleanConstructor | StringConstructor)[];
323
352
  color: StringConstructor;
324
353
  disableSort: BooleanConstructor;
@@ -9,6 +9,7 @@ import { useHeaders } from "./composables/headers.js";
9
9
  import { useSelection } from "./composables/select.js";
10
10
  import { useSort } from "./composables/sort.js";
11
11
  import { useBackgroundColor } from "../../composables/color.js";
12
+ import { makeDensityProps } from "../../composables/density.js";
12
13
  import { makeDisplayProps, useDisplay } from "../../composables/display.js";
13
14
  import { IconValue } from "../../composables/icons.js";
14
15
  import { LoaderSlot, makeLoaderProps, useLoader } from "../../composables/loader.js";
@@ -33,6 +34,7 @@ export const makeVDataTableHeadersProps = propsFactory({
33
34
  },
34
35
  /** @deprecated */
35
36
  sticky: Boolean,
37
+ ...makeDensityProps(),
36
38
  ...makeDisplayProps(),
37
39
  ...makeLoaderProps()
38
40
  }, 'VDataTableHeaders');
@@ -157,6 +159,7 @@ export const VDataTableHeaders = genericComponent()({
157
159
  if (isEmpty) return '';
158
160
  if (column.key === 'data-table-select') {
159
161
  return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && _createVNode(VCheckboxBtn, {
162
+ "density": props.density,
160
163
  "modelValue": allSelected.value,
161
164
  "indeterminate": someSelected.value && !allSelected.value,
162
165
  "onUpdate:modelValue": selectAll
@@ -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":"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","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":[]}