@vuetify/nightly 3.9.0-beta.1-dev.2025-07-02 → 3.9.0-beta.1-dev.2025-07-05

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 (65) hide show
  1. package/CHANGELOG.md +15 -3
  2. package/dist/json/attributes.json +3282 -3290
  3. package/dist/json/importMap-labs.json +14 -14
  4. package/dist/json/importMap.json +148 -148
  5. package/dist/json/tags.json +2 -4
  6. package/dist/json/web-types.json +6453 -6474
  7. package/dist/vuetify-labs.cjs +121 -61
  8. package/dist/vuetify-labs.css +4564 -4553
  9. package/dist/vuetify-labs.d.ts +101 -111
  10. package/dist/vuetify-labs.esm.js +121 -61
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +121 -61
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +121 -61
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +4097 -4086
  17. package/dist/vuetify.d.ts +101 -111
  18. package/dist/vuetify.esm.js +121 -61
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +121 -61
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +73 -59
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VDataTable/VDataTable.css +12 -1
  26. package/lib/components/VDataTable/VDataTable.d.ts +20 -38
  27. package/lib/components/VDataTable/VDataTable.sass +12 -2
  28. package/lib/components/VDataTable/VDataTableColumn.d.ts +9 -3
  29. package/lib/components/VDataTable/VDataTableColumn.js +12 -3
  30. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  31. package/lib/components/VDataTable/VDataTableHeaders.d.ts +0 -13
  32. package/lib/components/VDataTable/VDataTableHeaders.js +5 -4
  33. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  34. package/lib/components/VDataTable/VDataTableRow.js +2 -0
  35. package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
  36. package/lib/components/VDataTable/VDataTableServer.d.ts +10 -23
  37. package/lib/components/VDataTable/VDataTableVirtual.d.ts +10 -23
  38. package/lib/components/VDataTable/composables/headers.d.ts +22 -14
  39. package/lib/components/VDataTable/composables/headers.js +51 -22
  40. package/lib/components/VDataTable/composables/headers.js.map +1 -1
  41. package/lib/components/VDataTable/types.d.ts +3 -1
  42. package/lib/components/VDataTable/types.js.map +1 -1
  43. package/lib/components/VList/VListGroup.d.ts +13 -0
  44. package/lib/components/VList/VListGroup.js +2 -1
  45. package/lib/components/VList/VListGroup.js.map +1 -1
  46. package/lib/components/VList/VListItem.d.ts +6 -3
  47. package/lib/components/VList/VListItem.js +1 -1
  48. package/lib/components/VList/VListItem.js.map +1 -1
  49. package/lib/components/VTreeview/VTreeview.d.ts +6 -21
  50. package/lib/components/VTreeview/VTreeview.js +6 -9
  51. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  52. package/lib/components/VTreeview/VTreeviewGroup.d.ts +13 -0
  53. package/lib/components/VTreeview/VTreeviewItem.d.ts +18 -9
  54. package/lib/components/VTreeview/VTreeviewItem.js +1 -1
  55. package/lib/components/VTreeview/VTreeviewItem.js.map +1 -1
  56. package/lib/composables/nested/nested.d.ts +7 -4
  57. package/lib/composables/nested/nested.js +16 -6
  58. package/lib/composables/nested/nested.js.map +1 -1
  59. package/lib/composables/nested/selectStrategies.d.ts +2 -1
  60. package/lib/composables/nested/selectStrategies.js +22 -11
  61. package/lib/composables/nested/selectStrategies.js.map +1 -1
  62. package/lib/entry-bundler.js +1 -1
  63. package/lib/framework.d.ts +56 -53
  64. package/lib/framework.js +1 -1
  65. package/package.json +1 -1
@@ -9,7 +9,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
9
9
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
10
10
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
11
11
  readonly title?: string | undefined;
12
- readonly fixed?: boolean | undefined;
12
+ readonly fixed?: boolean | "start" | "end" | undefined;
13
13
  readonly align?: "start" | "end" | "center" | undefined;
14
14
  readonly width?: number | string | undefined;
15
15
  readonly minWidth?: number | string | undefined;
@@ -29,7 +29,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
29
29
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
30
30
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
31
31
  readonly title?: string | undefined;
32
- readonly fixed?: boolean | undefined;
32
+ readonly fixed?: boolean | "start" | "end" | undefined;
33
33
  readonly align?: "start" | "end" | "center" | undefined;
34
34
  readonly width?: number | string | undefined;
35
35
  readonly minWidth?: number | string | undefined;
@@ -52,7 +52,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
52
52
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
53
53
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
54
54
  readonly title?: string | undefined;
55
- readonly fixed?: boolean | undefined;
55
+ readonly fixed?: boolean | "start" | "end" | undefined;
56
56
  readonly align?: "start" | "end" | "center" | undefined;
57
57
  readonly width?: number | string | undefined;
58
58
  readonly minWidth?: number | string | undefined;
@@ -72,7 +72,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
72
72
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
73
73
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
74
74
  readonly title?: string | undefined;
75
- readonly fixed?: boolean | undefined;
75
+ readonly fixed?: boolean | "start" | "end" | undefined;
76
76
  readonly align?: "start" | "end" | "center" | undefined;
77
77
  readonly width?: number | string | undefined;
78
78
  readonly minWidth?: number | string | undefined;
@@ -94,7 +94,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
94
94
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
95
95
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
96
96
  readonly title?: string | undefined;
97
- readonly fixed?: boolean | undefined;
97
+ readonly fixed?: boolean | "start" | "end" | undefined;
98
98
  readonly align?: "start" | "end" | "center" | undefined;
99
99
  readonly width?: number | string | undefined;
100
100
  readonly minWidth?: number | string | undefined;
@@ -114,7 +114,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
114
114
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
115
115
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
116
116
  readonly title?: string | undefined;
117
- readonly fixed?: boolean | undefined;
117
+ readonly fixed?: boolean | "start" | "end" | undefined;
118
118
  readonly align?: "start" | "end" | "center" | undefined;
119
119
  readonly width?: number | string | undefined;
120
120
  readonly minWidth?: number | string | undefined;
@@ -137,7 +137,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
137
137
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
138
138
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
139
139
  readonly title?: string | undefined;
140
- readonly fixed?: boolean | undefined;
140
+ readonly fixed?: boolean | "start" | "end" | undefined;
141
141
  readonly align?: "start" | "end" | "center" | undefined;
142
142
  readonly width?: number | string | undefined;
143
143
  readonly minWidth?: number | string | undefined;
@@ -157,7 +157,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
157
157
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
158
158
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
159
159
  readonly title?: string | undefined;
160
- readonly fixed?: boolean | undefined;
160
+ readonly fixed?: boolean | "start" | "end" | undefined;
161
161
  readonly align?: "start" | "end" | "center" | undefined;
162
162
  readonly width?: number | string | undefined;
163
163
  readonly minWidth?: number | string | undefined;
@@ -179,7 +179,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
179
179
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
180
180
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
181
181
  readonly title?: string | undefined;
182
- readonly fixed?: boolean | undefined;
182
+ readonly fixed?: boolean | "start" | "end" | undefined;
183
183
  readonly align?: "start" | "end" | "center" | undefined;
184
184
  readonly width?: number | string | undefined;
185
185
  readonly minWidth?: number | string | undefined;
@@ -199,7 +199,7 @@ export declare const makeDataTableHeaderProps: <Defaults extends {
199
199
  readonly key?: "data-table-group" | "data-table-select" | "data-table-expand" | (string & {}) | undefined;
200
200
  readonly value?: import("../../../util/index.js").SelectItemKey<Record<string, any>>;
201
201
  readonly title?: string | undefined;
202
- readonly fixed?: boolean | undefined;
202
+ readonly fixed?: boolean | "start" | "end" | undefined;
203
203
  readonly align?: "start" | "end" | "center" | undefined;
204
204
  readonly width?: number | string | undefined;
205
205
  readonly minWidth?: number | string | undefined;
@@ -234,7 +234,7 @@ export declare function createHeaders(props: HeaderProps, options?: {
234
234
  showExpand?: Ref<boolean>;
235
235
  }): {
236
236
  headers: Ref<{
237
- fixed?: boolean | undefined;
237
+ fixed?: boolean | "start" | "end" | undefined;
238
238
  filter?: import("../../../composables/filter.js").FilterFunction | undefined;
239
239
  sort?: DataTableCompareFunction | undefined;
240
240
  width?: number | string | undefined;
@@ -250,12 +250,14 @@ export declare function createHeaders(props: HeaderProps, options?: {
250
250
  key: string | null;
251
251
  value: import("../../../util/index.js").SelectItemKey | null;
252
252
  fixedOffset?: number | undefined;
253
+ fixedEndOffset?: number | undefined;
253
254
  lastFixed?: boolean | undefined;
255
+ firstFixedEnd?: boolean | undefined;
254
256
  colspan?: number | undefined;
255
257
  rowspan?: number | undefined;
256
258
  children?: /*elided*/ any[] | undefined;
257
259
  }[][], InternalDataTableHeader[][] | {
258
- fixed?: boolean | undefined;
260
+ fixed?: boolean | "start" | "end" | undefined;
259
261
  filter?: import("../../../composables/filter.js").FilterFunction | undefined;
260
262
  sort?: DataTableCompareFunction | undefined;
261
263
  width?: number | string | undefined;
@@ -271,13 +273,15 @@ export declare function createHeaders(props: HeaderProps, options?: {
271
273
  key: string | null;
272
274
  value: import("../../../util/index.js").SelectItemKey | null;
273
275
  fixedOffset?: number | undefined;
276
+ fixedEndOffset?: number | undefined;
274
277
  lastFixed?: boolean | undefined;
278
+ firstFixedEnd?: boolean | undefined;
275
279
  colspan?: number | undefined;
276
280
  rowspan?: number | undefined;
277
281
  children?: /*elided*/ any[] | undefined;
278
282
  }[][]>;
279
283
  columns: Ref<{
280
- fixed?: boolean | undefined;
284
+ fixed?: boolean | "start" | "end" | undefined;
281
285
  filter?: import("../../../composables/filter.js").FilterFunction | undefined;
282
286
  sort?: DataTableCompareFunction | undefined;
283
287
  width?: number | string | undefined;
@@ -293,12 +297,14 @@ export declare function createHeaders(props: HeaderProps, options?: {
293
297
  key: string | null;
294
298
  value: import("../../../util/index.js").SelectItemKey | null;
295
299
  fixedOffset?: number | undefined;
300
+ fixedEndOffset?: number | undefined;
296
301
  lastFixed?: boolean | undefined;
302
+ firstFixedEnd?: boolean | undefined;
297
303
  colspan?: number | undefined;
298
304
  rowspan?: number | undefined;
299
305
  children?: /*elided*/ any[] | undefined;
300
306
  }[], InternalDataTableHeader[] | {
301
- fixed?: boolean | undefined;
307
+ fixed?: boolean | "start" | "end" | undefined;
302
308
  filter?: import("../../../composables/filter.js").FilterFunction | undefined;
303
309
  sort?: DataTableCompareFunction | undefined;
304
310
  width?: number | string | undefined;
@@ -314,7 +320,9 @@ export declare function createHeaders(props: HeaderProps, options?: {
314
320
  key: string | null;
315
321
  value: import("../../../util/index.js").SelectItemKey | null;
316
322
  fixedOffset?: number | undefined;
323
+ fixedEndOffset?: number | undefined;
317
324
  lastFixed?: boolean | undefined;
325
+ firstFixedEnd?: boolean | undefined;
318
326
  colspan?: number | undefined;
319
327
  rowspan?: number | undefined;
320
328
  children?: /*elided*/ any[] | undefined;
@@ -87,20 +87,28 @@ function getDepth(item) {
87
87
  }
88
88
  function parseFixedColumns(items) {
89
89
  let seenFixed = false;
90
- function setFixed(item) {
91
- let parentFixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
90
+ function setFixed(item, side) {
91
+ let parentFixedSide = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'none';
92
92
  if (!item) return;
93
- if (parentFixed) {
94
- item.fixed = true;
93
+ if (parentFixedSide !== 'none') {
94
+ item.fixed = parentFixedSide;
95
95
  }
96
- if (item.fixed) {
97
- if (item.children) {
98
- for (let i = item.children.length - 1; i >= 0; i--) {
99
- setFixed(item.children[i], true);
96
+
97
+ // normalize to simplify logic below
98
+ if (item.fixed === true) {
99
+ item.fixed = 'start';
100
+ }
101
+ const orderedChildren = side === 'start' ? item.children?.toReversed() : item.children;
102
+ if (item.fixed === side) {
103
+ if (orderedChildren) {
104
+ for (const child of orderedChildren) {
105
+ setFixed(child, side, side);
100
106
  }
101
107
  } else {
102
- if (!seenFixed) {
108
+ if (!seenFixed && side === 'start') {
103
109
  item.lastFixed = true;
110
+ } else if (!seenFixed && side === 'end') {
111
+ item.firstFixedEnd = true;
104
112
  } else if (isNaN(Number(item.width))) {
105
113
  consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`);
106
114
  } else {
@@ -109,36 +117,57 @@ function parseFixedColumns(items) {
109
117
  seenFixed = true;
110
118
  }
111
119
  } else {
112
- if (item.children) {
113
- for (let i = item.children.length - 1; i >= 0; i--) {
114
- setFixed(item.children[i]);
120
+ if (orderedChildren) {
121
+ for (const child of orderedChildren) {
122
+ setFixed(child, side);
115
123
  }
116
124
  } else {
117
125
  seenFixed = false;
118
126
  }
119
127
  }
120
128
  }
121
- for (let i = items.length - 1; i >= 0; i--) {
122
- setFixed(items[i]);
129
+ for (const item of items.toReversed()) {
130
+ setFixed(item, 'start');
131
+ }
132
+ for (const item of items) {
133
+ setFixed(item, 'end');
123
134
  }
124
135
  function setFixedOffset(item) {
125
- let fixedOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
126
- if (!item) return fixedOffset;
136
+ let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
137
+ if (!item) return offset;
127
138
  if (item.children) {
128
- item.fixedOffset = fixedOffset;
139
+ item.fixedOffset = offset;
129
140
  for (const child of item.children) {
130
- fixedOffset = setFixedOffset(child, fixedOffset);
141
+ offset = setFixedOffset(child, offset);
131
142
  }
132
- } else if (item.fixed) {
133
- item.fixedOffset = fixedOffset;
134
- fixedOffset += parseFloat(item.width || '0') || 0;
143
+ } else if (item.fixed && item.fixed !== 'end') {
144
+ item.fixedOffset = offset;
145
+ offset += parseFloat(item.width || '0') || 0;
135
146
  }
136
- return fixedOffset;
147
+ return offset;
137
148
  }
138
149
  let fixedOffset = 0;
139
150
  for (const item of items) {
140
151
  fixedOffset = setFixedOffset(item, fixedOffset);
141
152
  }
153
+ function setFixedEndOffset(item) {
154
+ let offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
155
+ if (!item) return offset;
156
+ if (item.children) {
157
+ item.fixedEndOffset = offset;
158
+ for (const child of item.children) {
159
+ offset = setFixedEndOffset(child, offset);
160
+ }
161
+ } else if (item.fixed === 'end') {
162
+ item.fixedEndOffset = offset;
163
+ offset += parseFloat(item.width || '0') || 0;
164
+ }
165
+ return offset;
166
+ }
167
+ let fixedEndOffset = 0;
168
+ for (const item of items.toReversed()) {
169
+ fixedEndOffset = setFixedEndOffset(item, fixedEndOffset);
170
+ }
142
171
  }
143
172
  function parse(items, maxDepth) {
144
173
  const headers = [];
@@ -1 +1 @@
1
- {"version":3,"file":"headers.js","names":["capitalize","inject","provide","ref","watchEffect","consoleError","propsFactory","makeDataTableHeaderProps","headers","Array","VDataTableHeadersSymbol","Symbol","for","defaultHeader","title","sortable","defaultActionHeader","width","priorityQueue","arr","arguments","length","undefined","queue","map","element","priority","enqueue","added","i","item","splice","push","size","count","whole","Math","floor","dequeue","shift","extractLeaves","columns","children","child","extractKeys","keys","Set","key","add","getDefaultItem","includes","getDepth","depth","max","parseFixedColumns","items","seenFixed","setFixed","parentFixed","fixed","lastFixed","isNaN","Number","minWidth","setFixedOffset","fixedOffset","parseFloat","parse","maxDepth","currentDepth","rowSize","row","fraction","diff","rowspan","colspan","sort","pow","flat","convertToInternalHeaders","internalHeaders","defaultItem","value","internalItem","createHeaders","props","options","sortFunctions","sortRawFunctions","filterFunctions","_headers","Object","slice","groupBy","has","unshift","showSelect","showExpand","parsed","flatHeaders","header","sortRaw","filter","data","useHeaders","Error"],"sources":["../../../../src/components/VDataTable/composables/headers.ts"],"sourcesContent":["// Utilities\nimport { capitalize, inject, provide, ref, watchEffect } from 'vue'\nimport { consoleError, propsFactory } from '@/util'\n\n// Types\nimport type { DeepReadonly, InjectionKey, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableCompareFunction, DataTableHeader, InternalDataTableHeader } from '../types'\nimport type { FilterKeyFunctions } from '@/composables/filter'\n\nexport const makeDataTableHeaderProps = propsFactory({\n headers: Array as PropType<DeepReadonly<DataTableHeader[]>>,\n}, 'DataTable-header')\n\nexport const VDataTableHeadersSymbol: InjectionKey<{\n headers: Ref<InternalDataTableHeader[][]>\n columns: Ref<InternalDataTableHeader[]>\n}> = Symbol.for('vuetify:data-table-headers')\n\ntype HeaderProps = {\n headers: DeepReadonly<DataTableHeader[]> | undefined\n items: any[]\n}\n\nconst defaultHeader = { title: '', sortable: false }\nconst defaultActionHeader = { ...defaultHeader, width: 48 }\n\nfunction priorityQueue <T> (arr: T[] = []) {\n const queue: { element: T, priority: number }[] = arr.map(element => ({ element, priority: 0 }))\n\n return {\n enqueue: (element: T, priority: number) => {\n let added = false\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i]\n if (item.priority > priority) {\n queue.splice(i, 0, { element, priority })\n added = true\n break\n }\n }\n\n if (!added) queue.push({ element, priority })\n },\n size: () => queue.length,\n count: () => {\n let count = 0\n\n if (!queue.length) return 0\n\n const whole = Math.floor(queue[0].priority)\n for (let i = 0; i < queue.length; i++) {\n if (Math.floor(queue[i].priority) === whole) count += 1\n }\n\n return count\n },\n dequeue: () => {\n return queue.shift()\n },\n }\n}\n\nfunction extractLeaves (item: InternalDataTableHeader, columns: InternalDataTableHeader[] = []) {\n if (!item.children) {\n columns.push(item)\n } else {\n for (const child of item.children) {\n extractLeaves(child, columns)\n }\n }\n\n return columns\n}\n\nfunction extractKeys (headers: DeepReadonly<DataTableHeader[]>, keys = new Set<string>()) {\n for (const item of headers) {\n if (item.key) keys.add(item.key)\n\n if (item.children) {\n extractKeys(item.children, keys)\n }\n }\n\n return keys\n}\n\nfunction getDefaultItem (item: DeepReadonly<DataTableHeader>) {\n if (!item.key) return undefined\n if (item.key === 'data-table-group') return defaultHeader\n if (['data-table-expand', 'data-table-select'].includes(item.key)) return defaultActionHeader\n return undefined\n}\n\nfunction getDepth (item: InternalDataTableHeader, depth = 0): number {\n if (!item.children) return depth\n\n return Math.max(depth, ...item.children.map(child => getDepth(child, depth + 1)))\n}\n\nfunction parseFixedColumns (items: InternalDataTableHeader[]) {\n let seenFixed = false\n function setFixed (item: InternalDataTableHeader, parentFixed = false) {\n if (!item) return\n\n if (parentFixed) {\n item.fixed = true\n }\n\n if (item.fixed) {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i], true)\n }\n } else {\n if (!seenFixed) {\n item.lastFixed = true\n } else if (isNaN(Number(item.width))) {\n consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`)\n } else {\n item.minWidth = Math.max(Number(item.width) || 0, Number(item.minWidth) || 0)\n }\n seenFixed = true\n }\n } else {\n if (item.children) {\n for (let i = item.children.length - 1; i >= 0; i--) {\n setFixed(item.children[i])\n }\n } else {\n seenFixed = false\n }\n }\n }\n\n for (let i = items.length - 1; i >= 0; i--) {\n setFixed(items[i])\n }\n\n function setFixedOffset (item: InternalDataTableHeader, fixedOffset = 0) {\n if (!item) return fixedOffset\n\n if (item.children) {\n item.fixedOffset = fixedOffset\n for (const child of item.children) {\n fixedOffset = setFixedOffset(child, fixedOffset)\n }\n } else if (item.fixed) {\n item.fixedOffset = fixedOffset\n fixedOffset += parseFloat(item.width || '0') || 0\n }\n\n return fixedOffset\n }\n\n let fixedOffset = 0\n for (const item of items) {\n fixedOffset = setFixedOffset(item, fixedOffset)\n }\n}\n\nfunction parse (items: InternalDataTableHeader[], maxDepth: number) {\n const headers: InternalDataTableHeader[][] = []\n let currentDepth = 0\n const queue = priorityQueue(items)\n\n while (queue.size() > 0) {\n let rowSize = queue.count()\n const row: InternalDataTableHeader[] = []\n let fraction = 1\n while (rowSize > 0) {\n const { element: item, priority } = queue.dequeue()!\n const diff = maxDepth - currentDepth - getDepth(item)\n\n row.push({\n ...item,\n rowspan: diff ?? 1,\n colspan: item.children ? extractLeaves(item).length : 1,\n })\n\n if (item.children) {\n for (const child of item.children) {\n // This internally sorts items that are on the same priority \"row\"\n const sort = priority % 1 + (fraction / Math.pow(10, currentDepth + 2))\n queue.enqueue(child, currentDepth + diff + sort)\n }\n }\n\n fraction += 1\n rowSize -= 1\n }\n currentDepth += 1\n headers.push(row)\n }\n\n const columns = items.map(item => extractLeaves(item)).flat()\n\n return { columns, headers }\n}\n\nfunction convertToInternalHeaders (items: DeepReadonly<DataTableHeader[]>) {\n const internalHeaders: InternalDataTableHeader[] = []\n for (const item of items) {\n const defaultItem = { ...getDefaultItem(item), ...item }\n const key = defaultItem.key ?? (typeof defaultItem.value === 'string' ? defaultItem.value : null)\n const value = defaultItem.value ?? key ?? null\n const internalItem: InternalDataTableHeader = {\n ...defaultItem,\n key,\n value,\n sortable: defaultItem.sortable ?? (defaultItem.key != null || !!defaultItem.sort),\n children: defaultItem.children ? convertToInternalHeaders(defaultItem.children) : undefined,\n }\n\n internalHeaders.push(internalItem)\n }\n\n return internalHeaders\n}\n\nexport function createHeaders (\n props: HeaderProps,\n options?: {\n groupBy?: Ref<readonly SortItem[]>\n showSelect?: Ref<boolean>\n showExpand?: Ref<boolean>\n }\n) {\n const headers = ref<InternalDataTableHeader[][]>([])\n const columns = ref<InternalDataTableHeader[]>([])\n const sortFunctions = ref<Record<string, DataTableCompareFunction>>({})\n const sortRawFunctions = ref<Record<string, DataTableCompareFunction>>({})\n const filterFunctions = ref<FilterKeyFunctions>({})\n\n watchEffect(() => {\n const _headers = props.headers ||\n Object.keys(props.items[0] ?? {}).map(key => ({ key, title: capitalize(key) })) as never\n\n const items = _headers.slice()\n const keys = extractKeys(items)\n\n if (options?.groupBy?.value.length && !keys.has('data-table-group')) {\n items.unshift({ key: 'data-table-group', title: 'Group' })\n }\n\n if (options?.showSelect?.value && !keys.has('data-table-select')) {\n items.unshift({ key: 'data-table-select' })\n }\n\n if (options?.showExpand?.value && !keys.has('data-table-expand')) {\n items.push({ key: 'data-table-expand' })\n }\n\n const internalHeaders = convertToInternalHeaders(items)\n\n parseFixedColumns(internalHeaders)\n\n const maxDepth = Math.max(...internalHeaders.map(item => getDepth(item))) + 1\n const parsed = parse(internalHeaders, maxDepth)\n\n headers.value = parsed.headers\n columns.value = parsed.columns\n\n const flatHeaders = parsed.headers.flat(1)\n\n for (const header of flatHeaders) {\n if (!header.key) continue\n\n if (header.sortable) {\n if (header.sort) {\n sortFunctions.value[header.key] = header.sort\n }\n\n if (header.sortRaw) {\n sortRawFunctions.value[header.key] = header.sortRaw\n }\n }\n\n if (header.filter) {\n filterFunctions.value[header.key] = header.filter\n }\n }\n })\n\n const data = { headers, columns, sortFunctions, sortRawFunctions, filterFunctions }\n\n provide(VDataTableHeadersSymbol, data)\n\n return data\n}\n\nexport function useHeaders () {\n const data = inject(VDataTableHeadersSymbol)\n\n if (!data) throw new Error('Missing headers!')\n\n return data\n}\n"],"mappings":"AAAA;AACA,SAASA,UAAU,EAAEC,MAAM,EAAEC,OAAO,EAAEC,GAAG,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAC1DC,YAAY,EAAEC,YAAY,kCAEnC;AAMA,OAAO,MAAMC,wBAAwB,GAAGD,YAAY,CAAC;EACnDE,OAAO,EAAEC;AACX,CAAC,EAAE,kBAAkB,CAAC;AAEtB,OAAO,MAAMC,uBAGX,GAAGC,MAAM,CAACC,GAAG,CAAC,4BAA4B,CAAC;AAO7C,MAAMC,aAAa,GAAG;EAAEC,KAAK,EAAE,EAAE;EAAEC,QAAQ,EAAE;AAAM,CAAC;AACpD,MAAMC,mBAAmB,GAAG;EAAE,GAAGH,aAAa;EAAEI,KAAK,EAAE;AAAG,CAAC;AAE3D,SAASC,aAAaA,CAAA,EAAqB;EAAA,IAAfC,GAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EACvC,MAAMG,KAAyC,GAAGJ,GAAG,CAACK,GAAG,CAACC,OAAO,KAAK;IAAEA,OAAO;IAAEC,QAAQ,EAAE;EAAE,CAAC,CAAC,CAAC;EAEhG,OAAO;IACLC,OAAO,EAAEA,CAACF,OAAU,EAAEC,QAAgB,KAAK;MACzC,IAAIE,KAAK,GAAG,KAAK;MACjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,KAAK,CAACF,MAAM,EAAEQ,CAAC,EAAE,EAAE;QACrC,MAAMC,IAAI,GAAGP,KAAK,CAACM,CAAC,CAAC;QACrB,IAAIC,IAAI,CAACJ,QAAQ,GAAGA,QAAQ,EAAE;UAC5BH,KAAK,CAACQ,MAAM,CAACF,CAAC,EAAE,CAAC,EAAE;YAAEJ,OAAO;YAAEC;UAAS,CAAC,CAAC;UACzCE,KAAK,GAAG,IAAI;UACZ;QACF;MACF;MAEA,IAAI,CAACA,KAAK,EAAEL,KAAK,CAACS,IAAI,CAAC;QAAEP,OAAO;QAAEC;MAAS,CAAC,CAAC;IAC/C,CAAC;IACDO,IAAI,EAAEA,CAAA,KAAMV,KAAK,CAACF,MAAM;IACxBa,KAAK,EAAEA,CAAA,KAAM;MACX,IAAIA,KAAK,GAAG,CAAC;MAEb,IAAI,CAACX,KAAK,CAACF,MAAM,EAAE,OAAO,CAAC;MAE3B,MAAMc,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACd,KAAK,CAAC,CAAC,CAAC,CAACG,QAAQ,CAAC;MAC3C,KAAK,IAAIG,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,KAAK,CAACF,MAAM,EAAEQ,CAAC,EAAE,EAAE;QACrC,IAAIO,IAAI,CAACC,KAAK,CAACd,KAAK,CAACM,CAAC,CAAC,CAACH,QAAQ,CAAC,KAAKS,KAAK,EAAED,KAAK,IAAI,CAAC;MACzD;MAEA,OAAOA,KAAK;IACd,CAAC;IACDI,OAAO,EAAEA,CAAA,KAAM;MACb,OAAOf,KAAK,CAACgB,KAAK,CAAC,CAAC;IACtB;EACF,CAAC;AACH;AAEA,SAASC,aAAaA,CAAEV,IAA6B,EAA2C;EAAA,IAAzCW,OAAkC,GAAArB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,EAAE;EAC5F,IAAI,CAACU,IAAI,CAACY,QAAQ,EAAE;IAClBD,OAAO,CAACT,IAAI,CAACF,IAAI,CAAC;EACpB,CAAC,MAAM;IACL,KAAK,MAAMa,KAAK,IAAIb,IAAI,CAACY,QAAQ,EAAE;MACjCF,aAAa,CAACG,KAAK,EAAEF,OAAO,CAAC;IAC/B;EACF;EAEA,OAAOA,OAAO;AAChB;AAEA,SAASG,WAAWA,CAAEpC,OAAwC,EAA4B;EAAA,IAA1BqC,IAAI,GAAAzB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI0B,GAAG,CAAS,CAAC;EACtF,KAAK,MAAMhB,IAAI,IAAItB,OAAO,EAAE;IAC1B,IAAIsB,IAAI,CAACiB,GAAG,EAAEF,IAAI,CAACG,GAAG,CAAClB,IAAI,CAACiB,GAAG,CAAC;IAEhC,IAAIjB,IAAI,CAACY,QAAQ,EAAE;MACjBE,WAAW,CAACd,IAAI,CAACY,QAAQ,EAAEG,IAAI,CAAC;IAClC;EACF;EAEA,OAAOA,IAAI;AACb;AAEA,SAASI,cAAcA,CAAEnB,IAAmC,EAAE;EAC5D,IAAI,CAACA,IAAI,CAACiB,GAAG,EAAE,OAAOzB,SAAS;EAC/B,IAAIQ,IAAI,CAACiB,GAAG,KAAK,kBAAkB,EAAE,OAAOlC,aAAa;EACzD,IAAI,CAAC,mBAAmB,EAAE,mBAAmB,CAAC,CAACqC,QAAQ,CAACpB,IAAI,CAACiB,GAAG,CAAC,EAAE,OAAO/B,mBAAmB;EAC7F,OAAOM,SAAS;AAClB;AAEA,SAAS6B,QAAQA,CAAErB,IAA6B,EAAqB;EAAA,IAAnBsB,KAAK,GAAAhC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;EACzD,IAAI,CAACU,IAAI,CAACY,QAAQ,EAAE,OAAOU,KAAK;EAEhC,OAAOhB,IAAI,CAACiB,GAAG,CAACD,KAAK,EAAE,GAAGtB,IAAI,CAACY,QAAQ,CAAClB,GAAG,CAACmB,KAAK,IAAIQ,QAAQ,CAACR,KAAK,EAAES,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AACnF;AAEA,SAASE,iBAAiBA,CAAEC,KAAgC,EAAE;EAC5D,IAAIC,SAAS,GAAG,KAAK;EACrB,SAASC,QAAQA,CAAE3B,IAA6B,EAAuB;IAAA,IAArB4B,WAAW,GAAAtC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,KAAK;IACnE,IAAI,CAACU,IAAI,EAAE;IAEX,IAAI4B,WAAW,EAAE;MACf5B,IAAI,CAAC6B,KAAK,GAAG,IAAI;IACnB;IAEA,IAAI7B,IAAI,CAAC6B,KAAK,EAAE;MACd,IAAI7B,IAAI,CAACY,QAAQ,EAAE;QACjB,KAAK,IAAIb,CAAC,GAAGC,IAAI,CAACY,QAAQ,CAACrB,MAAM,GAAG,CAAC,EAAEQ,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;UAClD4B,QAAQ,CAAC3B,IAAI,CAACY,QAAQ,CAACb,CAAC,CAAC,EAAE,IAAI,CAAC;QAClC;MACF,CAAC,MAAM;QACL,IAAI,CAAC2B,SAAS,EAAE;UACd1B,IAAI,CAAC8B,SAAS,GAAG,IAAI;QACvB,CAAC,MAAM,IAAIC,KAAK,CAACC,MAAM,CAAChC,IAAI,CAACb,KAAK,CAAC,CAAC,EAAE;UACpCZ,YAAY,CAAC,2DAA2DyB,IAAI,CAACiB,GAAG,GAAG,CAAC;QACtF,CAAC,MAAM;UACLjB,IAAI,CAACiC,QAAQ,GAAG3B,IAAI,CAACiB,GAAG,CAACS,MAAM,CAAChC,IAAI,CAACb,KAAK,CAAC,IAAI,CAAC,EAAE6C,MAAM,CAAChC,IAAI,CAACiC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC/E;QACAP,SAAS,GAAG,IAAI;MAClB;IACF,CAAC,MAAM;MACL,IAAI1B,IAAI,CAACY,QAAQ,EAAE;QACjB,KAAK,IAAIb,CAAC,GAAGC,IAAI,CAACY,QAAQ,CAACrB,MAAM,GAAG,CAAC,EAAEQ,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;UAClD4B,QAAQ,CAAC3B,IAAI,CAACY,QAAQ,CAACb,CAAC,CAAC,CAAC;QAC5B;MACF,CAAC,MAAM;QACL2B,SAAS,GAAG,KAAK;MACnB;IACF;EACF;EAEA,KAAK,IAAI3B,CAAC,GAAG0B,KAAK,CAAClC,MAAM,GAAG,CAAC,EAAEQ,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IAC1C4B,QAAQ,CAACF,KAAK,CAAC1B,CAAC,CAAC,CAAC;EACpB;EAEA,SAASmC,cAAcA,CAAElC,IAA6B,EAAmB;IAAA,IAAjBmC,WAAW,GAAA7C,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC;IACrE,IAAI,CAACU,IAAI,EAAE,OAAOmC,WAAW;IAE7B,IAAInC,IAAI,CAACY,QAAQ,EAAE;MACjBZ,IAAI,CAACmC,WAAW,GAAGA,WAAW;MAC9B,KAAK,MAAMtB,KAAK,IAAIb,IAAI,CAACY,QAAQ,EAAE;QACjCuB,WAAW,GAAGD,cAAc,CAACrB,KAAK,EAAEsB,WAAW,CAAC;MAClD;IACF,CAAC,MAAM,IAAInC,IAAI,CAAC6B,KAAK,EAAE;MACrB7B,IAAI,CAACmC,WAAW,GAAGA,WAAW;MAC9BA,WAAW,IAAIC,UAAU,CAACpC,IAAI,CAACb,KAAK,IAAI,GAAG,CAAC,IAAI,CAAC;IACnD;IAEA,OAAOgD,WAAW;EACpB;EAEA,IAAIA,WAAW,GAAG,CAAC;EACnB,KAAK,MAAMnC,IAAI,IAAIyB,KAAK,EAAE;IACxBU,WAAW,GAAGD,cAAc,CAAClC,IAAI,EAAEmC,WAAW,CAAC;EACjD;AACF;AAEA,SAASE,KAAKA,CAAEZ,KAAgC,EAAEa,QAAgB,EAAE;EAClE,MAAM5D,OAAoC,GAAG,EAAE;EAC/C,IAAI6D,YAAY,GAAG,CAAC;EACpB,MAAM9C,KAAK,GAAGL,aAAa,CAACqC,KAAK,CAAC;EAElC,OAAOhC,KAAK,CAACU,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;IACvB,IAAIqC,OAAO,GAAG/C,KAAK,CAACW,KAAK,CAAC,CAAC;IAC3B,MAAMqC,GAA8B,GAAG,EAAE;IACzC,IAAIC,QAAQ,GAAG,CAAC;IAChB,OAAOF,OAAO,GAAG,CAAC,EAAE;MAClB,MAAM;QAAE7C,OAAO,EAAEK,IAAI;QAAEJ;MAAS,CAAC,GAAGH,KAAK,CAACe,OAAO,CAAC,CAAE;MACpD,MAAMmC,IAAI,GAAGL,QAAQ,GAAGC,YAAY,GAAGlB,QAAQ,CAACrB,IAAI,CAAC;MAErDyC,GAAG,CAACvC,IAAI,CAAC;QACP,GAAGF,IAAI;QACP4C,OAAO,EAAED,IAAI,IAAI,CAAC;QAClBE,OAAO,EAAE7C,IAAI,CAACY,QAAQ,GAAGF,aAAa,CAACV,IAAI,CAAC,CAACT,MAAM,GAAG;MACxD,CAAC,CAAC;MAEF,IAAIS,IAAI,CAACY,QAAQ,EAAE;QACjB,KAAK,MAAMC,KAAK,IAAIb,IAAI,CAACY,QAAQ,EAAE;UACjC;UACA,MAAMkC,IAAI,GAAGlD,QAAQ,GAAG,CAAC,GAAI8C,QAAQ,GAAGpC,IAAI,CAACyC,GAAG,CAAC,EAAE,EAAER,YAAY,GAAG,CAAC,CAAE;UACvE9C,KAAK,CAACI,OAAO,CAACgB,KAAK,EAAE0B,YAAY,GAAGI,IAAI,GAAGG,IAAI,CAAC;QAClD;MACF;MAEAJ,QAAQ,IAAI,CAAC;MACbF,OAAO,IAAI,CAAC;IACd;IACAD,YAAY,IAAI,CAAC;IACjB7D,OAAO,CAACwB,IAAI,CAACuC,GAAG,CAAC;EACnB;EAEA,MAAM9B,OAAO,GAAGc,KAAK,CAAC/B,GAAG,CAACM,IAAI,IAAIU,aAAa,CAACV,IAAI,CAAC,CAAC,CAACgD,IAAI,CAAC,CAAC;EAE7D,OAAO;IAAErC,OAAO;IAAEjC;EAAQ,CAAC;AAC7B;AAEA,SAASuE,wBAAwBA,CAAExB,KAAsC,EAAE;EACzE,MAAMyB,eAA0C,GAAG,EAAE;EACrD,KAAK,MAAMlD,IAAI,IAAIyB,KAAK,EAAE;IACxB,MAAM0B,WAAW,GAAG;MAAE,GAAGhC,cAAc,CAACnB,IAAI,CAAC;MAAE,GAAGA;IAAK,CAAC;IACxD,MAAMiB,GAAG,GAAGkC,WAAW,CAAClC,GAAG,KAAK,OAAOkC,WAAW,CAACC,KAAK,KAAK,QAAQ,GAAGD,WAAW,CAACC,KAAK,GAAG,IAAI,CAAC;IACjG,MAAMA,KAAK,GAAGD,WAAW,CAACC,KAAK,IAAInC,GAAG,IAAI,IAAI;IAC9C,MAAMoC,YAAqC,GAAG;MAC5C,GAAGF,WAAW;MACdlC,GAAG;MACHmC,KAAK;MACLnE,QAAQ,EAAEkE,WAAW,CAAClE,QAAQ,KAAKkE,WAAW,CAAClC,GAAG,IAAI,IAAI,IAAI,CAAC,CAACkC,WAAW,CAACL,IAAI,CAAC;MACjFlC,QAAQ,EAAEuC,WAAW,CAACvC,QAAQ,GAAGqC,wBAAwB,CAACE,WAAW,CAACvC,QAAQ,CAAC,GAAGpB;IACpF,CAAC;IAED0D,eAAe,CAAChD,IAAI,CAACmD,YAAY,CAAC;EACpC;EAEA,OAAOH,eAAe;AACxB;AAEA,OAAO,SAASI,aAAaA,CAC3BC,KAAkB,EAClBC,OAIC,EACD;EACA,MAAM9E,OAAO,GAAGL,GAAG,CAA8B,EAAE,CAAC;EACpD,MAAMsC,OAAO,GAAGtC,GAAG,CAA4B,EAAE,CAAC;EAClD,MAAMoF,aAAa,GAAGpF,GAAG,CAA2C,CAAC,CAAC,CAAC;EACvE,MAAMqF,gBAAgB,GAAGrF,GAAG,CAA2C,CAAC,CAAC,CAAC;EAC1E,MAAMsF,eAAe,GAAGtF,GAAG,CAAqB,CAAC,CAAC,CAAC;EAEnDC,WAAW,CAAC,MAAM;IAChB,MAAMsF,QAAQ,GAAGL,KAAK,CAAC7E,OAAO,IAC5BmF,MAAM,CAAC9C,IAAI,CAACwC,KAAK,CAAC9B,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC/B,GAAG,CAACuB,GAAG,KAAK;MAAEA,GAAG;MAAEjC,KAAK,EAAEd,UAAU,CAAC+C,GAAG;IAAE,CAAC,CAAC,CAAU;IAE1F,MAAMQ,KAAK,GAAGmC,QAAQ,CAACE,KAAK,CAAC,CAAC;IAC9B,MAAM/C,IAAI,GAAGD,WAAW,CAACW,KAAK,CAAC;IAE/B,IAAI+B,OAAO,EAAEO,OAAO,EAAEX,KAAK,CAAC7D,MAAM,IAAI,CAACwB,IAAI,CAACiD,GAAG,CAAC,kBAAkB,CAAC,EAAE;MACnEvC,KAAK,CAACwC,OAAO,CAAC;QAAEhD,GAAG,EAAE,kBAAkB;QAAEjC,KAAK,EAAE;MAAQ,CAAC,CAAC;IAC5D;IAEA,IAAIwE,OAAO,EAAEU,UAAU,EAAEd,KAAK,IAAI,CAACrC,IAAI,CAACiD,GAAG,CAAC,mBAAmB,CAAC,EAAE;MAChEvC,KAAK,CAACwC,OAAO,CAAC;QAAEhD,GAAG,EAAE;MAAoB,CAAC,CAAC;IAC7C;IAEA,IAAIuC,OAAO,EAAEW,UAAU,EAAEf,KAAK,IAAI,CAACrC,IAAI,CAACiD,GAAG,CAAC,mBAAmB,CAAC,EAAE;MAChEvC,KAAK,CAACvB,IAAI,CAAC;QAAEe,GAAG,EAAE;MAAoB,CAAC,CAAC;IAC1C;IAEA,MAAMiC,eAAe,GAAGD,wBAAwB,CAACxB,KAAK,CAAC;IAEvDD,iBAAiB,CAAC0B,eAAe,CAAC;IAElC,MAAMZ,QAAQ,GAAGhC,IAAI,CAACiB,GAAG,CAAC,GAAG2B,eAAe,CAACxD,GAAG,CAACM,IAAI,IAAIqB,QAAQ,CAACrB,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7E,MAAMoE,MAAM,GAAG/B,KAAK,CAACa,eAAe,EAAEZ,QAAQ,CAAC;IAE/C5D,OAAO,CAAC0E,KAAK,GAAGgB,MAAM,CAAC1F,OAAO;IAC9BiC,OAAO,CAACyC,KAAK,GAAGgB,MAAM,CAACzD,OAAO;IAE9B,MAAM0D,WAAW,GAAGD,MAAM,CAAC1F,OAAO,CAACsE,IAAI,CAAC,CAAC,CAAC;IAE1C,KAAK,MAAMsB,MAAM,IAAID,WAAW,EAAE;MAChC,IAAI,CAACC,MAAM,CAACrD,GAAG,EAAE;MAEjB,IAAIqD,MAAM,CAACrF,QAAQ,EAAE;QACnB,IAAIqF,MAAM,CAACxB,IAAI,EAAE;UACfW,aAAa,CAACL,KAAK,CAACkB,MAAM,CAACrD,GAAG,CAAC,GAAGqD,MAAM,CAACxB,IAAI;QAC/C;QAEA,IAAIwB,MAAM,CAACC,OAAO,EAAE;UAClBb,gBAAgB,CAACN,KAAK,CAACkB,MAAM,CAACrD,GAAG,CAAC,GAAGqD,MAAM,CAACC,OAAO;QACrD;MACF;MAEA,IAAID,MAAM,CAACE,MAAM,EAAE;QACjBb,eAAe,CAACP,KAAK,CAACkB,MAAM,CAACrD,GAAG,CAAC,GAAGqD,MAAM,CAACE,MAAM;MACnD;IACF;EACF,CAAC,CAAC;EAEF,MAAMC,IAAI,GAAG;IAAE/F,OAAO;IAAEiC,OAAO;IAAE8C,aAAa;IAAEC,gBAAgB;IAAEC;EAAgB,CAAC;EAEnFvF,OAAO,CAACQ,uBAAuB,EAAE6F,IAAI,CAAC;EAEtC,OAAOA,IAAI;AACb;AAEA,OAAO,SAASC,UAAUA,CAAA,EAAI;EAC5B,MAAMD,IAAI,GAAGtG,MAAM,CAACS,uBAAuB,CAAC;EAE5C,IAAI,CAAC6F,IAAI,EAAE,MAAM,IAAIE,KAAK,CAAC,kBAAkB,CAAC;EAE9C,OAAOF,IAAI;AACb","ignoreList":[]}
1
+ {"version":3,"file":"headers.js","names":["capitalize","inject","provide","ref","watchEffect","consoleError","propsFactory","makeDataTableHeaderProps","headers","Array","VDataTableHeadersSymbol","Symbol","for","defaultHeader","title","sortable","defaultActionHeader","width","priorityQueue","arr","arguments","length","undefined","queue","map","element","priority","enqueue","added","i","item","splice","push","size","count","whole","Math","floor","dequeue","shift","extractLeaves","columns","children","child","extractKeys","keys","Set","key","add","getDefaultItem","includes","getDepth","depth","max","parseFixedColumns","items","seenFixed","setFixed","side","parentFixedSide","fixed","orderedChildren","toReversed","lastFixed","firstFixedEnd","isNaN","Number","minWidth","setFixedOffset","offset","fixedOffset","parseFloat","setFixedEndOffset","fixedEndOffset","parse","maxDepth","currentDepth","rowSize","row","fraction","diff","rowspan","colspan","sort","pow","flat","convertToInternalHeaders","internalHeaders","defaultItem","value","internalItem","createHeaders","props","options","sortFunctions","sortRawFunctions","filterFunctions","_headers","Object","slice","groupBy","has","unshift","showSelect","showExpand","parsed","flatHeaders","header","sortRaw","filter","data","useHeaders","Error"],"sources":["../../../../src/components/VDataTable/composables/headers.ts"],"sourcesContent":["// Utilities\nimport { capitalize, inject, provide, ref, watchEffect } from 'vue'\nimport { consoleError, propsFactory } from '@/util'\n\n// Types\nimport type { DeepReadonly, InjectionKey, PropType, Ref } from 'vue'\nimport type { SortItem } from './sort'\nimport type { DataTableCompareFunction, DataTableHeader, InternalDataTableHeader } from '../types'\nimport type { FilterKeyFunctions } from '@/composables/filter'\n\nexport const makeDataTableHeaderProps = propsFactory({\n headers: Array as PropType<DeepReadonly<DataTableHeader[]>>,\n}, 'DataTable-header')\n\nexport const VDataTableHeadersSymbol: InjectionKey<{\n headers: Ref<InternalDataTableHeader[][]>\n columns: Ref<InternalDataTableHeader[]>\n}> = Symbol.for('vuetify:data-table-headers')\n\ntype HeaderProps = {\n headers: DeepReadonly<DataTableHeader[]> | undefined\n items: any[]\n}\n\nconst defaultHeader = { title: '', sortable: false }\nconst defaultActionHeader = { ...defaultHeader, width: 48 }\n\nfunction priorityQueue <T> (arr: T[] = []) {\n const queue: { element: T, priority: number }[] = arr.map(element => ({ element, priority: 0 }))\n\n return {\n enqueue: (element: T, priority: number) => {\n let added = false\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i]\n if (item.priority > priority) {\n queue.splice(i, 0, { element, priority })\n added = true\n break\n }\n }\n\n if (!added) queue.push({ element, priority })\n },\n size: () => queue.length,\n count: () => {\n let count = 0\n\n if (!queue.length) return 0\n\n const whole = Math.floor(queue[0].priority)\n for (let i = 0; i < queue.length; i++) {\n if (Math.floor(queue[i].priority) === whole) count += 1\n }\n\n return count\n },\n dequeue: () => {\n return queue.shift()\n },\n }\n}\n\nfunction extractLeaves (item: InternalDataTableHeader, columns: InternalDataTableHeader[] = []) {\n if (!item.children) {\n columns.push(item)\n } else {\n for (const child of item.children) {\n extractLeaves(child, columns)\n }\n }\n\n return columns\n}\n\nfunction extractKeys (headers: DeepReadonly<DataTableHeader[]>, keys = new Set<string>()) {\n for (const item of headers) {\n if (item.key) keys.add(item.key)\n\n if (item.children) {\n extractKeys(item.children, keys)\n }\n }\n\n return keys\n}\n\nfunction getDefaultItem (item: DeepReadonly<DataTableHeader>) {\n if (!item.key) return undefined\n if (item.key === 'data-table-group') return defaultHeader\n if (['data-table-expand', 'data-table-select'].includes(item.key)) return defaultActionHeader\n return undefined\n}\n\nfunction getDepth (item: InternalDataTableHeader, depth = 0): number {\n if (!item.children) return depth\n\n return Math.max(depth, ...item.children.map(child => getDepth(child, depth + 1)))\n}\n\nfunction parseFixedColumns (items: InternalDataTableHeader[]) {\n let seenFixed = false\n\n function setFixed (\n item: InternalDataTableHeader,\n side: 'start' | 'end',\n parentFixedSide: 'start' | 'end' | 'none' = 'none'\n ) {\n if (!item) return\n\n if (parentFixedSide !== 'none') {\n item.fixed = parentFixedSide\n }\n\n // normalize to simplify logic below\n if (item.fixed === true) {\n item.fixed = 'start'\n }\n\n const orderedChildren = side === 'start'\n ? item.children?.toReversed()\n : item.children\n\n if (item.fixed === side) {\n if (orderedChildren) {\n for (const child of orderedChildren) {\n setFixed(child, side, side)\n }\n } else {\n if (!seenFixed && side === 'start') {\n item.lastFixed = true\n } else if (!seenFixed && side === 'end') {\n item.firstFixedEnd = true\n } else if (isNaN(Number(item.width))) {\n consoleError(`Multiple fixed columns should have a static width (key: ${item.key})`)\n } else {\n item.minWidth = Math.max(Number(item.width) || 0, Number(item.minWidth) || 0)\n }\n seenFixed = true\n }\n } else {\n if (orderedChildren) {\n for (const child of orderedChildren) {\n setFixed(child, side)\n }\n } else {\n seenFixed = false\n }\n }\n }\n\n for (const item of items.toReversed()) {\n setFixed(item, 'start')\n }\n\n for (const item of items) {\n setFixed(item, 'end')\n }\n\n function setFixedOffset (item: InternalDataTableHeader, offset = 0) {\n if (!item) return offset\n\n if (item.children) {\n item.fixedOffset = offset\n for (const child of item.children) {\n offset = setFixedOffset(child, offset)\n }\n } else if (item.fixed && item.fixed !== 'end') {\n item.fixedOffset = offset\n offset += parseFloat(item.width || '0') || 0\n }\n\n return offset\n }\n\n let fixedOffset = 0\n for (const item of items) {\n fixedOffset = setFixedOffset(item, fixedOffset)\n }\n\n function setFixedEndOffset (item: InternalDataTableHeader, offset = 0) {\n if (!item) return offset\n\n if (item.children) {\n item.fixedEndOffset = offset\n for (const child of item.children) {\n offset = setFixedEndOffset(child, offset)\n }\n } else if (item.fixed === 'end') {\n item.fixedEndOffset = offset\n offset += parseFloat(item.width || '0') || 0\n }\n\n return offset\n }\n\n let fixedEndOffset = 0\n for (const item of items.toReversed()) {\n fixedEndOffset = setFixedEndOffset(item, fixedEndOffset)\n }\n}\n\nfunction parse (items: InternalDataTableHeader[], maxDepth: number) {\n const headers: InternalDataTableHeader[][] = []\n let currentDepth = 0\n const queue = priorityQueue(items)\n\n while (queue.size() > 0) {\n let rowSize = queue.count()\n const row: InternalDataTableHeader[] = []\n let fraction = 1\n while (rowSize > 0) {\n const { element: item, priority } = queue.dequeue()!\n const diff = maxDepth - currentDepth - getDepth(item)\n\n row.push({\n ...item,\n rowspan: diff ?? 1,\n colspan: item.children ? extractLeaves(item).length : 1,\n })\n\n if (item.children) {\n for (const child of item.children) {\n // This internally sorts items that are on the same priority \"row\"\n const sort = priority % 1 + (fraction / Math.pow(10, currentDepth + 2))\n queue.enqueue(child, currentDepth + diff + sort)\n }\n }\n\n fraction += 1\n rowSize -= 1\n }\n currentDepth += 1\n headers.push(row)\n }\n\n const columns = items.map(item => extractLeaves(item)).flat()\n\n return { columns, headers }\n}\n\nfunction convertToInternalHeaders (items: DeepReadonly<DataTableHeader[]>) {\n const internalHeaders: InternalDataTableHeader[] = []\n for (const item of items) {\n const defaultItem = { ...getDefaultItem(item), ...item }\n const key = defaultItem.key ?? (typeof defaultItem.value === 'string' ? defaultItem.value : null)\n const value = defaultItem.value ?? key ?? null\n const internalItem: InternalDataTableHeader = {\n ...defaultItem,\n key,\n value,\n sortable: defaultItem.sortable ?? (defaultItem.key != null || !!defaultItem.sort),\n children: defaultItem.children ? convertToInternalHeaders(defaultItem.children) : undefined,\n }\n\n internalHeaders.push(internalItem)\n }\n\n return internalHeaders\n}\n\nexport function createHeaders (\n props: HeaderProps,\n options?: {\n groupBy?: Ref<readonly SortItem[]>\n showSelect?: Ref<boolean>\n showExpand?: Ref<boolean>\n }\n) {\n const headers = ref<InternalDataTableHeader[][]>([])\n const columns = ref<InternalDataTableHeader[]>([])\n const sortFunctions = ref<Record<string, DataTableCompareFunction>>({})\n const sortRawFunctions = ref<Record<string, DataTableCompareFunction>>({})\n const filterFunctions = ref<FilterKeyFunctions>({})\n\n watchEffect(() => {\n const _headers = props.headers ||\n Object.keys(props.items[0] ?? {}).map(key => ({ key, title: capitalize(key) })) as never\n\n const items = _headers.slice()\n const keys = extractKeys(items)\n\n if (options?.groupBy?.value.length && !keys.has('data-table-group')) {\n items.unshift({ key: 'data-table-group', title: 'Group' })\n }\n\n if (options?.showSelect?.value && !keys.has('data-table-select')) {\n items.unshift({ key: 'data-table-select' })\n }\n\n if (options?.showExpand?.value && !keys.has('data-table-expand')) {\n items.push({ key: 'data-table-expand' })\n }\n\n const internalHeaders = convertToInternalHeaders(items)\n\n parseFixedColumns(internalHeaders)\n\n const maxDepth = Math.max(...internalHeaders.map(item => getDepth(item))) + 1\n const parsed = parse(internalHeaders, maxDepth)\n\n headers.value = parsed.headers\n columns.value = parsed.columns\n\n const flatHeaders = parsed.headers.flat(1)\n\n for (const header of flatHeaders) {\n if (!header.key) continue\n\n if (header.sortable) {\n if (header.sort) {\n sortFunctions.value[header.key] = header.sort\n }\n\n if (header.sortRaw) {\n sortRawFunctions.value[header.key] = header.sortRaw\n }\n }\n\n if (header.filter) {\n filterFunctions.value[header.key] = header.filter\n }\n }\n })\n\n const data = { headers, columns, sortFunctions, sortRawFunctions, filterFunctions }\n\n provide(VDataTableHeadersSymbol, data)\n\n return data\n}\n\nexport function useHeaders () {\n const data = inject(VDataTableHeadersSymbol)\n\n if (!data) throw new Error('Missing headers!')\n\n return data\n}\n"],"mappings":"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","ignoreList":[]}
@@ -8,7 +8,7 @@ export type DataTableHeader<T = Record<string, any>> = {
8
8
  key?: 'data-table-group' | 'data-table-select' | 'data-table-expand' | (string & {});
9
9
  value?: SelectItemKey<T>;
10
10
  title?: string;
11
- fixed?: boolean;
11
+ fixed?: boolean | 'start' | 'end';
12
12
  align?: 'start' | 'end' | 'center';
13
13
  width?: number | string;
14
14
  minWidth?: number | string;
@@ -27,7 +27,9 @@ export type InternalDataTableHeader = Omit<DataTableHeader, 'key' | 'value' | 'c
27
27
  value: SelectItemKey | null;
28
28
  sortable: boolean;
29
29
  fixedOffset?: number;
30
+ fixedEndOffset?: number;
30
31
  lastFixed?: boolean;
32
+ firstFixedEnd?: boolean;
31
33
  nowrap?: boolean;
32
34
  colspan?: number;
33
35
  rowspan?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/components/VDataTable/types.ts"],"sourcesContent":["// Types\nimport type { provideExpanded } from './composables/expand'\nimport type { Group, GroupableItem, provideGroupBy } from './composables/group'\nimport type { provideSelection, SelectableItem } from './composables/select'\nimport type { FilterFunction, InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport type DataTableCompareFunction<T = any> = (a: T, b: T) => number | null\n\nexport type DataTableHeader<T = Record<string, any>> = {\n key?: 'data-table-group' | 'data-table-select' | 'data-table-expand' | (string & {})\n value?: SelectItemKey<T>\n title?: string\n\n fixed?: boolean\n align?: 'start' | 'end' | 'center'\n\n width?: number | string\n minWidth?: number | string\n maxWidth?: number | string\n nowrap?: boolean\n\n headerProps?: Record<string, any>\n cellProps?: HeaderCellProps\n\n sortable?: boolean\n sort?: DataTableCompareFunction\n sortRaw?: DataTableCompareFunction\n filter?: FilterFunction\n\n children?: DataTableHeader<T>[]\n}\n\nexport type InternalDataTableHeader = Omit<DataTableHeader, 'key' | 'value' | 'children'> & {\n key: string | null\n value: SelectItemKey | null\n sortable: boolean\n fixedOffset?: number\n lastFixed?: boolean\n nowrap?: boolean\n colspan?: number\n rowspan?: number\n children?: InternalDataTableHeader[]\n}\n\nexport interface DataTableItem<T = any> extends InternalItem<T>, GroupableItem<T>, SelectableItem {\n key: any\n index: number\n columns: {\n [key: string]: any\n }\n}\n\nexport type GroupHeaderSlot = {\n index: number\n item: Group\n columns: InternalDataTableHeader[]\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n}\n\ntype ItemSlotBase<T> = {\n index: number\n item: T\n internalItem: DataTableItem<T>\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n}\n\nexport type ItemSlot<T> = ItemSlotBase<T> & {\n columns: InternalDataTableHeader[]\n}\n\nexport type ItemKeySlot<T> = ItemSlotBase<T> & {\n value: any\n column: InternalDataTableHeader\n}\n\nexport type RowProps<T> = Record<string, any> | RowPropsFunction<T>\nexport type RowPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem'>\n) => Record<string, any>\n\nexport type CellProps<T> = Record<string, any> | CellPropsFunction<T>\nexport type CellPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem' | 'value' | 'column'>\n) => Record<string, any>\n\nexport type HeaderCellProps = Record<string, any> | HeaderCellPropsFunction\nexport type HeaderCellPropsFunction = (\n data: Pick<ItemKeySlot<any>, 'index' | 'item' | 'internalItem' | 'value'>\n) => Record<string, any>\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/components/VDataTable/types.ts"],"sourcesContent":["// Types\nimport type { provideExpanded } from './composables/expand'\nimport type { Group, GroupableItem, provideGroupBy } from './composables/group'\nimport type { provideSelection, SelectableItem } from './composables/select'\nimport type { FilterFunction, InternalItem } from '@/composables/filter'\nimport type { SelectItemKey } from '@/util'\n\nexport type DataTableCompareFunction<T = any> = (a: T, b: T) => number | null\n\nexport type DataTableHeader<T = Record<string, any>> = {\n key?: 'data-table-group' | 'data-table-select' | 'data-table-expand' | (string & {})\n value?: SelectItemKey<T>\n title?: string\n\n fixed?: boolean | 'start' | 'end'\n align?: 'start' | 'end' | 'center'\n\n width?: number | string\n minWidth?: number | string\n maxWidth?: number | string\n nowrap?: boolean\n\n headerProps?: Record<string, any>\n cellProps?: HeaderCellProps\n\n sortable?: boolean\n sort?: DataTableCompareFunction\n sortRaw?: DataTableCompareFunction\n filter?: FilterFunction\n\n children?: DataTableHeader<T>[]\n}\n\nexport type InternalDataTableHeader = Omit<DataTableHeader, 'key' | 'value' | 'children'> & {\n key: string | null\n value: SelectItemKey | null\n sortable: boolean\n fixedOffset?: number\n fixedEndOffset?: number\n lastFixed?: boolean\n firstFixedEnd?: boolean\n nowrap?: boolean\n colspan?: number\n rowspan?: number\n children?: InternalDataTableHeader[]\n}\n\nexport interface DataTableItem<T = any> extends InternalItem<T>, GroupableItem<T>, SelectableItem {\n key: any\n index: number\n columns: {\n [key: string]: any\n }\n}\n\nexport type GroupHeaderSlot = {\n index: number\n item: Group\n columns: InternalDataTableHeader[]\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n}\n\ntype ItemSlotBase<T> = {\n index: number\n item: T\n internalItem: DataTableItem<T>\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n}\n\nexport type ItemSlot<T> = ItemSlotBase<T> & {\n columns: InternalDataTableHeader[]\n}\n\nexport type ItemKeySlot<T> = ItemSlotBase<T> & {\n value: any\n column: InternalDataTableHeader\n}\n\nexport type RowProps<T> = Record<string, any> | RowPropsFunction<T>\nexport type RowPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem'>\n) => Record<string, any>\n\nexport type CellProps<T> = Record<string, any> | CellPropsFunction<T>\nexport type CellPropsFunction<T> = (\n data: Pick<ItemKeySlot<T>, 'index' | 'item' | 'internalItem' | 'value' | 'column'>\n) => Record<string, any>\n\nexport type HeaderCellProps = Record<string, any> | HeaderCellPropsFunction\nexport type HeaderCellPropsFunction = (\n data: Pick<ItemKeySlot<any>, 'index' | 'item' | 'internalItem' | 'value'>\n) => Record<string, any>\n"],"mappings":"","ignoreList":[]}
@@ -14,6 +14,7 @@ export declare const makeVListGroupProps: <Defaults extends {
14
14
  baseColor?: unknown;
15
15
  color?: unknown;
16
16
  collapseIcon?: unknown;
17
+ disabled?: unknown;
17
18
  expandIcon?: unknown;
18
19
  rawId?: unknown;
19
20
  prependIcon?: unknown;
@@ -69,6 +70,10 @@ export declare const makeVListGroupProps: <Defaults extends {
69
70
  type: import("vue").PropType<unknown extends Defaults["collapseIcon"] ? IconValue : IconValue | Defaults["collapseIcon"]>;
70
71
  default: unknown extends Defaults["collapseIcon"] ? IconValue : NonNullable<IconValue> | Defaults["collapseIcon"];
71
72
  };
73
+ disabled: unknown extends Defaults["disabled"] ? BooleanConstructor : {
74
+ type: import("vue").PropType<unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"]>;
75
+ default: unknown extends Defaults["disabled"] ? boolean : boolean | Defaults["disabled"];
76
+ };
72
77
  expandIcon: unknown extends Defaults["expandIcon"] ? {
73
78
  type: import("vue").PropType<IconValue>;
74
79
  default: string;
@@ -111,6 +116,7 @@ export declare const makeVListGroupProps: <Defaults extends {
111
116
  export declare const VListGroup: {
112
117
  new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<{
113
118
  style: import("vue").StyleValue;
119
+ disabled: boolean;
114
120
  tag: string | import("../../util/index.js").JSXComponent;
115
121
  subgroup: boolean;
116
122
  collapseIcon: IconValue;
@@ -151,6 +157,7 @@ export declare const VListGroup: {
151
157
  isOpen: import("vue").ComputedRef<boolean>;
152
158
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
153
159
  style: import("vue").StyleValue;
160
+ disabled: boolean;
154
161
  tag: string | import("../../util/index.js").JSXComponent;
155
162
  subgroup: boolean;
156
163
  collapseIcon: IconValue;
@@ -171,6 +178,7 @@ export declare const VListGroup: {
171
178
  Defaults: {};
172
179
  }, {
173
180
  style: import("vue").StyleValue;
181
+ disabled: boolean;
174
182
  tag: string | import("../../util/index.js").JSXComponent;
175
183
  subgroup: boolean;
176
184
  collapseIcon: IconValue;
@@ -211,6 +219,7 @@ export declare const VListGroup: {
211
219
  isOpen: import("vue").ComputedRef<boolean>;
212
220
  }, {}, {}, {}, {
213
221
  style: import("vue").StyleValue;
222
+ disabled: boolean;
214
223
  tag: string | import("../../util/index.js").JSXComponent;
215
224
  subgroup: boolean;
216
225
  collapseIcon: IconValue;
@@ -222,6 +231,7 @@ export declare const VListGroup: {
222
231
  __isSuspense?: never;
223
232
  } & import("vue").ComponentOptionsBase<{
224
233
  style: import("vue").StyleValue;
234
+ disabled: boolean;
225
235
  tag: string | import("../../util/index.js").JSXComponent;
226
236
  subgroup: boolean;
227
237
  collapseIcon: IconValue;
@@ -262,6 +272,7 @@ export declare const VListGroup: {
262
272
  isOpen: import("vue").ComputedRef<boolean>;
263
273
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
264
274
  style: import("vue").StyleValue;
275
+ disabled: boolean;
265
276
  tag: string | import("../../util/index.js").JSXComponent;
266
277
  subgroup: boolean;
267
278
  collapseIcon: IconValue;
@@ -290,6 +301,7 @@ export declare const VListGroup: {
290
301
  type: import("vue").PropType<IconValue>;
291
302
  default: string;
292
303
  };
304
+ disabled: BooleanConstructor;
293
305
  expandIcon: {
294
306
  type: import("vue").PropType<IconValue>;
295
307
  default: string;
@@ -318,6 +330,7 @@ export declare const VListGroup: {
318
330
  type: import("vue").PropType<IconValue>;
319
331
  default: string;
320
332
  };
333
+ disabled: BooleanConstructor;
321
334
  expandIcon: {
322
335
  type: import("vue").PropType<IconValue>;
323
336
  default: string;
@@ -30,6 +30,7 @@ export const makeVListGroupProps = propsFactory({
30
30
  type: IconValue,
31
31
  default: '$collapse'
32
32
  },
33
+ disabled: Boolean,
33
34
  expandIcon: {
34
35
  type: IconValue,
35
36
  default: '$expand'
@@ -55,7 +56,7 @@ export const VListGroup = genericComponent()({
55
56
  isOpen,
56
57
  open,
57
58
  id: _id
58
- } = useNestedItem(() => props.value, true);
59
+ } = useNestedItem(() => props.value, () => props.disabled, true);
59
60
  const id = computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`);
60
61
  const list = useList();
61
62
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"VListGroup.js","names":["VExpandTransition","VDefaultsProvider","useList","makeComponentProps","IconValue","useNestedGroupActivator","useNestedItem","useSsrBoot","makeTagProps","MaybeTransition","computed","defineComponent","genericComponent","propsFactory","useRender","VListGroupActivator","name","setup","_","_ref","slots","default","makeVListGroupProps","activeColor","String","baseColor","color","collapseIcon","type","expandIcon","rawId","Number","prependIcon","appendIcon","fluid","Boolean","subgroup","title","value","VListGroup","props","_ref2","isOpen","open","id","_id","list","isBooted","onClick","e","includes","target","tagName","activatorProps","class","toggleIcon","activatorDefaults","VListItem","active","_createVNode","tag","_normalizeClass","hasPrepend","_normalizeStyle","style","activator","component","_withDirectives","_createElementVNode","_vShow"],"sources":["../../../src/components/VList/VListGroup.tsx"],"sourcesContent":["// Components\nimport { VExpandTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useList } from './list'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VListGroupSlots = {\n default: never\n activator: { isOpen: boolean, props: Record<string, unknown> }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const makeVListGroupProps = propsFactory({\n /* @deprecated */\n activeColor: String,\n baseColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n rawId: [String, Number],\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n title: String,\n value: null,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListGroup')\n\nexport const VListGroup = genericComponent<VListGroupSlots>()({\n name: 'VListGroup',\n\n props: makeVListGroupProps(),\n\n setup (props, { slots }) {\n const { isOpen, open, id: _id } = useNestedItem(() => props.value, true)\n const id = computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`)\n const list = useList()\n const { isBooted } = useSsrBoot()\n\n function onClick (e: Event) {\n if (['INPUT', 'TEXTAREA'].includes((e.target as Element)?.tagName)) return\n open(!isOpen.value, e)\n }\n\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value,\n }))\n\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon)\n const activatorDefaults = computed(() => ({\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n baseColor: props.baseColor,\n color: props.color,\n prependIcon: props.prependIcon || (props.subgroup && toggleIcon.value),\n appendIcon: props.appendIcon || (!props.subgroup && toggleIcon.value),\n title: props.title,\n value: props.value,\n },\n }))\n\n useRender(() => (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n 'v-list-group--open': isOpen.value,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { slots.activator && (\n <VDefaultsProvider defaults={ activatorDefaults.value }>\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value, isOpen: isOpen.value }) }\n </VListGroupActivator>\n </VDefaultsProvider>\n )}\n\n <MaybeTransition transition={{ component: VExpandTransition }} disabled={ !isBooted.value }>\n <div class=\"v-list-group__items\" role=\"group\" aria-labelledby={ id.value } v-show={ isOpen.value }>\n { slots.default?.() }\n </div>\n </MaybeTransition>\n </props.tag>\n ))\n\n return {\n isOpen,\n }\n },\n})\n\nexport type VListGroup = InstanceType<typeof VListGroup>\n"],"mappings":";AAAA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,iBAAiB,yCAE1B;AAAA,SACSC,OAAO;AAAA,SACPC,kBAAkB;AAAA,SAClBC,SAAS;AAAA,SACTC,uBAAuB,EAAEC,aAAa;AAAA,SACtCC,UAAU;AAAA,SACVC,YAAY;AAAA,SACZC,eAAe,2CAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,eAAe,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAOnE,MAAMC,mBAAmB,GAAGJ,eAAe,CAAC;EAC1CK,IAAI,EAAE,qBAAqB;EAE3BC,KAAKA,CAAEC,CAAC,EAAAC,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACjBd,uBAAuB,CAAC,CAAC;IAEzB,OAAO,MAAMe,KAAK,CAACC,OAAO,GAAG,CAAC;EAChC;AACF,CAAC,CAAC;AAEF,OAAO,MAAMC,mBAAmB,GAAGT,YAAY,CAAC;EAC9C;EACAU,WAAW,EAAEC,MAAM;EACnBC,SAAS,EAAED,MAAM;EACjBE,KAAK,EAAEF,MAAM;EACbG,YAAY,EAAE;IACZC,IAAI,EAAExB,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EACDQ,UAAU,EAAE;IACVD,IAAI,EAAExB,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EACDS,KAAK,EAAE,CAACN,MAAM,EAAEO,MAAM,CAAC;EACvBC,WAAW,EAAE5B,SAAS;EACtB6B,UAAU,EAAE7B,SAAS;EACrB8B,KAAK,EAAEC,OAAO;EACdC,QAAQ,EAAED,OAAO;EACjBE,KAAK,EAAEb,MAAM;EACbc,KAAK,EAAE,IAAI;EAEX,GAAGnC,kBAAkB,CAAC,CAAC;EACvB,GAAGK,YAAY,CAAC;AAClB,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAM+B,UAAU,GAAG3B,gBAAgB,CAAkB,CAAC,CAAC;EAC5DI,IAAI,EAAE,YAAY;EAElBwB,KAAK,EAAElB,mBAAmB,CAAC,CAAC;EAE5BL,KAAKA,CAAEuB,KAAK,EAAAC,KAAA,EAAa;IAAA,IAAX;MAAErB;IAAM,CAAC,GAAAqB,KAAA;IACrB,MAAM;MAAEC,MAAM;MAAEC,IAAI;MAAEC,EAAE,EAAEC;IAAI,CAAC,GAAGvC,aAAa,CAAC,MAAMkC,KAAK,CAACF,KAAK,EAAE,IAAI,CAAC;IACxE,MAAMM,EAAE,GAAGlC,QAAQ,CAAC,MAAM,oBAAoBc,MAAM,CAACgB,KAAK,CAACV,KAAK,IAAIe,GAAG,CAACP,KAAK,CAAC,EAAE,CAAC;IACjF,MAAMQ,IAAI,GAAG5C,OAAO,CAAC,CAAC;IACtB,MAAM;MAAE6C;IAAS,CAAC,GAAGxC,UAAU,CAAC,CAAC;IAEjC,SAASyC,OAAOA,CAAEC,CAAQ,EAAE;MAC1B,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAACC,QAAQ,CAAED,CAAC,CAACE,MAAM,EAAcC,OAAO,CAAC,EAAE;MACpET,IAAI,CAAC,CAACD,MAAM,CAACJ,KAAK,EAAEW,CAAC,CAAC;IACxB;IAEA,MAAMI,cAAc,GAAG3C,QAAQ,CAAC,OAAO;MACrCsC,OAAO;MACPM,KAAK,EAAE,sBAAsB;MAC7BV,EAAE,EAAEA,EAAE,CAACN;IACT,CAAC,CAAC,CAAC;IAEH,MAAMiB,UAAU,GAAG7C,QAAQ,CAAC,MAAMgC,MAAM,CAACJ,KAAK,GAAGE,KAAK,CAACb,YAAY,GAAGa,KAAK,CAACX,UAAU,CAAC;IACvF,MAAM2B,iBAAiB,GAAG9C,QAAQ,CAAC,OAAO;MACxC+C,SAAS,EAAE;QACTC,MAAM,EAAEhB,MAAM,CAACJ,KAAK;QACpBf,WAAW,EAAEiB,KAAK,CAACjB,WAAW;QAC9BE,SAAS,EAAEe,KAAK,CAACf,SAAS;QAC1BC,KAAK,EAAEc,KAAK,CAACd,KAAK;QAClBM,WAAW,EAAEQ,KAAK,CAACR,WAAW,IAAKQ,KAAK,CAACJ,QAAQ,IAAImB,UAAU,CAACjB,KAAM;QACtEL,UAAU,EAAEO,KAAK,CAACP,UAAU,IAAK,CAACO,KAAK,CAACJ,QAAQ,IAAImB,UAAU,CAACjB,KAAM;QACrED,KAAK,EAAEG,KAAK,CAACH,KAAK;QAClBC,KAAK,EAAEE,KAAK,CAACF;MACf;IACF,CAAC,CAAC,CAAC;IAEHxB,SAAS,CAAC,MAAA6C,YAAA,CAAAnB,KAAA,CAAAoB,GAAA;MAAA,SAAAC,eAAA,CAEC,CACL,cAAc,EACd;QACE,uBAAuB,EAAEf,IAAI,EAAEgB,UAAU,CAACxB,KAAK;QAC/C,qBAAqB,EAAEE,KAAK,CAACN,KAAK;QAClC,wBAAwB,EAAEM,KAAK,CAACJ,QAAQ;QACxC,oBAAoB,EAAEM,MAAM,CAACJ;MAC/B,CAAC,EACDE,KAAK,CAACc,KAAK,CACZ;MAAA,SAAAS,eAAA,CACOvB,KAAK,CAACwB,KAAK;IAAA;MAAA3C,OAAA,EAAAA,CAAA,MAEjBD,KAAK,CAAC6C,SAAS,IAAAN,YAAA,CAAA1D,iBAAA;QAAA,YACeuD,iBAAiB,CAAClB;MAAK;QAAAjB,OAAA,EAAAA,CAAA,MAAAsC,YAAA,CAAA5C,mBAAA;UAAAM,OAAA,EAAAA,CAAA,MAE/CD,KAAK,CAAC6C,SAAS,CAAC;YAAEzB,KAAK,EAAEa,cAAc,CAACf,KAAK;YAAEI,MAAM,EAAEA,MAAM,CAACJ;UAAM,CAAC,CAAC;QAAA;MAAA,EAG7E,EAAAqB,YAAA,CAAAlD,eAAA;QAAA,cAE4B;UAAEyD,SAAS,EAAElE;QAAkB,CAAC;QAAA,YAAa,CAAC+C,QAAQ,CAACT;MAAK;QAAAjB,OAAA,EAAAA,CAAA,MAAA8C,eAAA,CAAAC,mBAAA;UAAA;UAAA;UAAA,mBACvBxB,EAAE,CAACN;QAAK,IACpElB,KAAK,CAACC,OAAO,GAAG,CAAC,MAAAgD,MAAA,EAD+D3B,MAAM,CAACJ,KAAK;MAAA;IAAA,EAKrG,CAAC;IAEF,OAAO;MACLI;IACF,CAAC;EACH;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VListGroup.js","names":["VExpandTransition","VDefaultsProvider","useList","makeComponentProps","IconValue","useNestedGroupActivator","useNestedItem","useSsrBoot","makeTagProps","MaybeTransition","computed","defineComponent","genericComponent","propsFactory","useRender","VListGroupActivator","name","setup","_","_ref","slots","default","makeVListGroupProps","activeColor","String","baseColor","color","collapseIcon","type","disabled","Boolean","expandIcon","rawId","Number","prependIcon","appendIcon","fluid","subgroup","title","value","VListGroup","props","_ref2","isOpen","open","id","_id","list","isBooted","onClick","e","includes","target","tagName","activatorProps","class","toggleIcon","activatorDefaults","VListItem","active","_createVNode","tag","_normalizeClass","hasPrepend","_normalizeStyle","style","activator","component","_withDirectives","_createElementVNode","_vShow"],"sources":["../../../src/components/VList/VListGroup.tsx"],"sourcesContent":["// Components\nimport { VExpandTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useList } from './list'\nimport { makeComponentProps } from '@/composables/component'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, genericComponent, propsFactory, useRender } from '@/util'\n\nexport type VListGroupSlots = {\n default: never\n activator: { isOpen: boolean, props: Record<string, unknown> }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const makeVListGroupProps = propsFactory({\n /* @deprecated */\n activeColor: String,\n baseColor: String,\n color: String,\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n disabled: Boolean,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n rawId: [String, Number],\n prependIcon: IconValue,\n appendIcon: IconValue,\n fluid: Boolean,\n subgroup: Boolean,\n title: String,\n value: null,\n\n ...makeComponentProps(),\n ...makeTagProps(),\n}, 'VListGroup')\n\nexport const VListGroup = genericComponent<VListGroupSlots>()({\n name: 'VListGroup',\n\n props: makeVListGroupProps(),\n\n setup (props, { slots }) {\n const { isOpen, open, id: _id } = useNestedItem(() => props.value, () => props.disabled, true)\n const id = computed(() => `v-list-group--id-${String(props.rawId ?? _id.value)}`)\n const list = useList()\n const { isBooted } = useSsrBoot()\n\n function onClick (e: Event) {\n if (['INPUT', 'TEXTAREA'].includes((e.target as Element)?.tagName)) return\n open(!isOpen.value, e)\n }\n\n const activatorProps = computed(() => ({\n onClick,\n class: 'v-list-group__header',\n id: id.value,\n }))\n\n const toggleIcon = computed(() => isOpen.value ? props.collapseIcon : props.expandIcon)\n const activatorDefaults = computed(() => ({\n VListItem: {\n active: isOpen.value,\n activeColor: props.activeColor,\n baseColor: props.baseColor,\n color: props.color,\n prependIcon: props.prependIcon || (props.subgroup && toggleIcon.value),\n appendIcon: props.appendIcon || (!props.subgroup && toggleIcon.value),\n title: props.title,\n value: props.value,\n },\n }))\n\n useRender(() => (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n 'v-list-group--fluid': props.fluid,\n 'v-list-group--subgroup': props.subgroup,\n 'v-list-group--open': isOpen.value,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { slots.activator && (\n <VDefaultsProvider defaults={ activatorDefaults.value }>\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value, isOpen: isOpen.value }) }\n </VListGroupActivator>\n </VDefaultsProvider>\n )}\n\n <MaybeTransition transition={{ component: VExpandTransition }} disabled={ !isBooted.value }>\n <div class=\"v-list-group__items\" role=\"group\" aria-labelledby={ id.value } v-show={ isOpen.value }>\n { slots.default?.() }\n </div>\n </MaybeTransition>\n </props.tag>\n ))\n\n return {\n isOpen,\n }\n },\n})\n\nexport type VListGroup = InstanceType<typeof VListGroup>\n"],"mappings":"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","ignoreList":[]}
@@ -400,13 +400,14 @@ export declare const VListItem: {
400
400
  root: {
401
401
  children: import("vue").Ref<Map<unknown, unknown[]>>;
402
402
  parents: import("vue").Ref<Map<unknown, unknown>>;
403
+ disabled: import("vue").Ref<Set<unknown>>;
403
404
  activatable: import("vue").Ref<boolean>;
404
405
  selectable: import("vue").Ref<boolean>;
405
406
  opened: import("vue").Ref<Set<unknown>>;
406
407
  activated: import("vue").Ref<Set<unknown>>;
407
408
  selected: import("vue").Ref<Map<unknown, "on" | "off" | "indeterminate">>;
408
409
  selectedValues: import("vue").Ref<unknown[]>;
409
- register: (id: unknown, parentId: unknown, isGroup?: boolean) => void;
410
+ register: (id: unknown, parentId: unknown, isDisabled: boolean, isGroup?: boolean) => void;
410
411
  unregister: (id: unknown) => void;
411
412
  open: (id: unknown, value: boolean, event?: Event) => void;
412
413
  activate: (id: unknown, value: boolean, event?: Event) => void;
@@ -533,13 +534,14 @@ export declare const VListItem: {
533
534
  root: {
534
535
  children: import("vue").Ref<Map<unknown, unknown[]>>;
535
536
  parents: import("vue").Ref<Map<unknown, unknown>>;
537
+ disabled: import("vue").Ref<Set<unknown>>;
536
538
  activatable: import("vue").Ref<boolean>;
537
539
  selectable: import("vue").Ref<boolean>;
538
540
  opened: import("vue").Ref<Set<unknown>>;
539
541
  activated: import("vue").Ref<Set<unknown>>;
540
542
  selected: import("vue").Ref<Map<unknown, "on" | "off" | "indeterminate">>;
541
543
  selectedValues: import("vue").Ref<unknown[]>;
542
- register: (id: unknown, parentId: unknown, isGroup?: boolean) => void;
544
+ register: (id: unknown, parentId: unknown, isDisabled: boolean, isGroup?: boolean) => void;
543
545
  unregister: (id: unknown) => void;
544
546
  open: (id: unknown, value: boolean, event?: Event) => void;
545
547
  activate: (id: unknown, value: boolean, event?: Event) => void;
@@ -655,13 +657,14 @@ export declare const VListItem: {
655
657
  root: {
656
658
  children: import("vue").Ref<Map<unknown, unknown[]>>;
657
659
  parents: import("vue").Ref<Map<unknown, unknown>>;
660
+ disabled: import("vue").Ref<Set<unknown>>;
658
661
  activatable: import("vue").Ref<boolean>;
659
662
  selectable: import("vue").Ref<boolean>;
660
663
  opened: import("vue").Ref<Set<unknown>>;
661
664
  activated: import("vue").Ref<Set<unknown>>;
662
665
  selected: import("vue").Ref<Map<unknown, "on" | "off" | "indeterminate">>;
663
666
  selectedValues: import("vue").Ref<unknown[]>;
664
- register: (id: unknown, parentId: unknown, isGroup?: boolean) => void;
667
+ register: (id: unknown, parentId: unknown, isDisabled: boolean, isGroup?: boolean) => void;
665
668
  unregister: (id: unknown) => void;
666
669
  open: (id: unknown, value: boolean, event?: Event) => void;
667
670
  activate: (id: unknown, value: boolean, event?: Event) => void;
@@ -102,7 +102,7 @@ export const VListItem = genericComponent()({
102
102
  parent,
103
103
  openOnSelect,
104
104
  id: uid
105
- } = useNestedItem(id, false);
105
+ } = useNestedItem(id, () => props.disabled, false);
106
106
  const list = useList();
107
107
  const isActive = computed(() => props.active !== false && (props.active || link.isActive?.value || (root.activatable.value ? isActivated.value : isSelected.value)));
108
108
  const isLink = toRef(() => props.link !== false && link.isLink.value);