@vuetify/nightly 3.10.5-dev.2025-10-07 → 3.10.5-dev.2025-10-09

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 (73) hide show
  1. package/CHANGELOG.md +16 -3
  2. package/dist/json/attributes.json +3521 -3521
  3. package/dist/json/importMap-labs.json +14 -14
  4. package/dist/json/importMap.json +180 -180
  5. package/dist/json/tags.json +5 -5
  6. package/dist/json/web-types.json +6459 -6444
  7. package/dist/vuetify-labs.cjs +230 -166
  8. package/dist/vuetify-labs.css +3872 -3872
  9. package/dist/vuetify-labs.d.ts +1520 -1446
  10. package/dist/vuetify-labs.esm.js +230 -166
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +230 -166
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +156 -92
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3682 -3682
  17. package/dist/vuetify.d.ts +2284 -2195
  18. package/dist/vuetify.esm.js +156 -92
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +156 -92
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +959 -955
  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/VCombobox/VCombobox.d.ts +6 -67
  29. package/lib/components/VCombobox/VCombobox.js +22 -23
  30. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  31. package/lib/components/VDataTable/VDataTable.d.ts +7 -7
  32. package/lib/components/VDataTable/VDataTableFooter.d.ts +16 -3
  33. package/lib/components/VDataTable/VDataTableFooter.js +4 -2
  34. package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
  35. package/lib/components/VDataTable/VDataTableHeaders.js +10 -7
  36. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  37. package/lib/components/VDataTable/VDataTableRow.d.ts +10 -0
  38. package/lib/components/VDataTable/VDataTableRow.js +3 -0
  39. package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
  40. package/lib/components/VDataTable/VDataTableRows.d.ts +10 -0
  41. package/lib/components/VDataTable/VDataTableRows.js +2 -0
  42. package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
  43. package/lib/components/VDataTable/VDataTableServer.d.ts +7 -7
  44. package/lib/components/VNumberInput/VNumberInput.js +23 -8
  45. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  46. package/lib/components/VSlideGroup/VSlideGroup.d.ts +1 -1
  47. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  48. package/lib/components/VTabs/VTabs.d.ts +16 -2
  49. package/lib/components/VTabs/VTabs.js +4 -2
  50. package/lib/components/VTabs/VTabs.js.map +1 -1
  51. package/lib/components/VTextarea/VTextarea.css +2 -2
  52. package/lib/components/VTextarea/VTextarea.js +20 -1
  53. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  54. package/lib/components/VTextarea/VTextarea.sass +4 -2
  55. package/lib/components/VTreeview/VTreeview.d.ts +192 -5
  56. package/lib/components/VTreeview/VTreeview.js +16 -3
  57. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  58. package/lib/composables/icons.d.ts +0 -2
  59. package/lib/composables/icons.js +3 -36
  60. package/lib/composables/icons.js.map +1 -1
  61. package/lib/composables/virtual.js +2 -2
  62. package/lib/composables/virtual.js.map +1 -1
  63. package/lib/entry-bundler.js +1 -1
  64. package/lib/framework.d.ts +60 -60
  65. package/lib/framework.js +3 -2
  66. package/lib/framework.js.map +1 -1
  67. package/lib/icons.d.ts +3 -0
  68. package/lib/icons.js +34 -0
  69. package/lib/icons.js.map +1 -0
  70. package/lib/labs/VDateInput/VDateInput.d.ts +0 -30
  71. package/lib/labs/VDateInput/VDateInput.js +2 -2
  72. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  73. package/package.json +1 -1
@@ -4,6 +4,7 @@ import { IconValue } from '../../composables/icons.js';
4
4
  // Types
5
5
  import type { PropType } from 'vue';
6
6
  export declare const makeVDataTableFooterProps: <Defaults extends {
7
+ color?: unknown;
7
8
  prevIcon?: unknown;
8
9
  nextIcon?: unknown;
9
10
  firstIcon?: unknown;
@@ -17,6 +18,10 @@ export declare const makeVDataTableFooterProps: <Defaults extends {
17
18
  itemsPerPageOptions?: unknown;
18
19
  showCurrentPage?: unknown;
19
20
  } = {}>(defaults?: Defaults | undefined) => {
21
+ color: unknown extends Defaults["color"] ? StringConstructor : {
22
+ type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
23
+ default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
24
+ };
20
25
  prevIcon: unknown extends Defaults["prevIcon"] ? {
21
26
  type: PropType<IconValue>;
22
27
  default: string;
@@ -173,7 +178,9 @@ export declare const VDataTableFooter: {
173
178
  value: number;
174
179
  })[];
175
180
  showCurrentPage: boolean;
176
- } & {} & {
181
+ } & {
182
+ color?: string | undefined;
183
+ } & {
177
184
  $children?: {
178
185
  prepend?: (() => import("vue").VNodeChild) | undefined;
179
186
  } | {
@@ -227,7 +234,9 @@ export declare const VDataTableFooter: {
227
234
  value: number;
228
235
  })[];
229
236
  showCurrentPage: boolean;
230
- } & {} & {
237
+ } & {
238
+ color?: string | undefined;
239
+ } & {
231
240
  $children?: {
232
241
  prepend?: (() => import("vue").VNodeChild) | undefined;
233
242
  } | {
@@ -274,7 +283,9 @@ export declare const VDataTableFooter: {
274
283
  value: number;
275
284
  })[];
276
285
  showCurrentPage: boolean;
277
- } & {} & {
286
+ } & {
287
+ color?: string | undefined;
288
+ } & {
278
289
  $children?: {
279
290
  prepend?: (() => import("vue").VNodeChild) | undefined;
280
291
  } | {
@@ -306,6 +317,7 @@ export declare const VDataTableFooter: {
306
317
  [key: string]: any;
307
318
  }>[];
308
319
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
320
+ color: StringConstructor;
309
321
  prevIcon: {
310
322
  type: PropType<IconValue>;
311
323
  default: string;
@@ -358,6 +370,7 @@ export declare const VDataTableFooter: {
358
370
  };
359
371
  showCurrentPage: BooleanConstructor;
360
372
  }, import("vue").ExtractPropTypes<{
373
+ color: StringConstructor;
361
374
  prevIcon: {
362
375
  type: PropType<IconValue>;
363
376
  default: string;
@@ -9,8 +9,9 @@ import { usePagination } from "./composables/paginate.js";
9
9
  import { IconValue } from "../../composables/icons.js";
10
10
  import { useLocale } from "../../composables/locale.js"; // Utilities
11
11
  import { computed } from 'vue';
12
- import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
12
+ import { genericComponent, omit, propsFactory, useRender } from "../../util/index.js"; // Types
13
13
  export const makeVDataTableFooterProps = propsFactory({
14
+ color: String,
14
15
  prevIcon: {
15
16
  type: IconValue,
16
17
  default: '$prev'
@@ -113,6 +114,7 @@ export const VDataTableFooter = genericComponent()({
113
114
  "aria-label": t(props.itemsPerPageText)
114
115
  }, [t(props.itemsPerPageText)]), _createVNode(VSelect, {
115
116
  "items": itemsPerPageOptions.value,
117
+ "itemColor": props.color,
116
118
  "modelValue": itemsPerPage.value,
117
119
  "onUpdate:modelValue": v => setItemsPerPage(Number(v)),
118
120
  "density": "compact",
@@ -135,7 +137,7 @@ export const VDataTableFooter = genericComponent()({
135
137
  "showFirstLastPage": true,
136
138
  "totalVisible": props.showCurrentPage ? 1 : 0,
137
139
  "variant": "plain"
138
- }, paginationProps), null)])]);
140
+ }, omit(paginationProps, ['color'])), null)])]);
139
141
  });
140
142
  return {};
141
143
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableFooter.js","names":["VPagination","VSelect","usePagination","IconValue","useLocale","computed","genericComponent","propsFactory","useRender","makeVDataTableFooterProps","prevIcon","type","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","String","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","VDataTableFooter","name","props","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","isNaN","Number","paginationProps","filterProps","_createElementVNode","prepend","_createVNode","v","_mergeProps","$event"],"sources":["../../../src/components/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VPagination } from '@/components/VPagination'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDataTableFooterProps = propsFactory({\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<readonly (number | { title: string, value: number })[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n}, 'VDataTableFooter')\n\nexport const VDataTableFooter = genericComponent<{ prepend: never }>()({\n name: 'VDataTableFooter',\n\n props: makeVDataTableFooterProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1\n ? t('$vuetify.dataFooter.itemsPerPageAll')\n : String(option),\n }\n }\n\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title),\n }\n })\n ))\n\n useRender(() => {\n const paginationProps = VPagination.filterProps(props)\n\n return (\n <div class=\"v-data-table-footer\">\n { slots.prepend?.() }\n\n <div class=\"v-data-table-footer__items-per-page\">\n <span aria-label={ t(props.itemsPerPageText) }>{ t(props.itemsPerPageText) }</span>\n\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hideDetails\n />\n </div>\n\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n\n <div class=\"v-data-table-footer__pagination\">\n <VPagination\n v-model={ page.value }\n density=\"comfortable\"\n firstAriaLabel={ props.firstPageLabel }\n lastAriaLabel={ props.lastPageLabel }\n length={ pageCount.value }\n nextAriaLabel={ props.nextPageLabel }\n previousAriaLabel={ props.prevPageLabel }\n rounded\n showFirstLastPage\n totalVisible={ props.showCurrentPage ? 1 : 0 }\n variant=\"plain\"\n { ...paginationProps }\n ></VPagination>\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableFooter = InstanceType<typeof VDataTableFooter>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDataTableFooter.js","names":["VPagination","VSelect","usePagination","IconValue","useLocale","computed","genericComponent","omit","propsFactory","useRender","makeVDataTableFooterProps","color","String","prevIcon","type","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","VDataTableFooter","name","props","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","isNaN","Number","paginationProps","filterProps","_createElementVNode","prepend","_createVNode","v","_mergeProps","$event"],"sources":["../../../src/components/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VPagination } from '@/components/VPagination'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { usePagination } from './composables/paginate'\nimport { IconValue } from '@/composables/icons'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVDataTableFooterProps = propsFactory({\n color: String,\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n itemsPerPageText: {\n type: String,\n default: '$vuetify.dataFooter.itemsPerPageText',\n },\n pageText: {\n type: String,\n default: '$vuetify.dataFooter.pageText',\n },\n firstPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.firstPage',\n },\n prevPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.prevPage',\n },\n nextPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.nextPage',\n },\n lastPageLabel: {\n type: String,\n default: '$vuetify.dataFooter.lastPage',\n },\n itemsPerPageOptions: {\n type: Array as PropType<readonly (number | { title: string, value: number })[]>,\n default: () => ([\n { value: 10, title: '10' },\n { value: 25, title: '25' },\n { value: 50, title: '50' },\n { value: 100, title: '100' },\n { value: -1, title: '$vuetify.dataFooter.itemsPerPageAll' },\n ]),\n },\n showCurrentPage: Boolean,\n}, 'VDataTableFooter')\n\nexport const VDataTableFooter = genericComponent<{ prepend: never }>()({\n name: 'VDataTableFooter',\n\n props: makeVDataTableFooterProps(),\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { page, pageCount, startIndex, stopIndex, itemsLength, itemsPerPage, setItemsPerPage } = usePagination()\n\n const itemsPerPageOptions = computed(() => (\n props.itemsPerPageOptions.map(option => {\n if (typeof option === 'number') {\n return {\n value: option,\n title: option === -1\n ? t('$vuetify.dataFooter.itemsPerPageAll')\n : String(option),\n }\n }\n\n return {\n ...option,\n title: !isNaN(Number(option.title)) ? option.title : t(option.title),\n }\n })\n ))\n\n useRender(() => {\n const paginationProps = VPagination.filterProps(props)\n\n return (\n <div class=\"v-data-table-footer\">\n { slots.prepend?.() }\n\n <div class=\"v-data-table-footer__items-per-page\">\n <span aria-label={ t(props.itemsPerPageText) }>{ t(props.itemsPerPageText) }</span>\n\n <VSelect\n items={ itemsPerPageOptions.value }\n itemColor={ props.color }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hideDetails\n />\n </div>\n\n <div class=\"v-data-table-footer__info\">\n <div>\n { t(props.pageText, !itemsLength.value ? 0 : startIndex.value + 1, stopIndex.value, itemsLength.value) }\n </div>\n </div>\n\n <div class=\"v-data-table-footer__pagination\">\n <VPagination\n v-model={ page.value }\n density=\"comfortable\"\n firstAriaLabel={ props.firstPageLabel }\n lastAriaLabel={ props.lastPageLabel }\n length={ pageCount.value }\n nextAriaLabel={ props.nextPageLabel }\n previousAriaLabel={ props.prevPageLabel }\n rounded\n showFirstLastPage\n totalVisible={ props.showCurrentPage ? 1 : 0 }\n variant=\"plain\"\n { ...omit(paginationProps, ['color']) }\n ></VPagination>\n </div>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableFooter = InstanceType<typeof VDataTableFooter>\n"],"mappings":"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","ignoreList":[]}
@@ -159,6 +159,7 @@ export const VDataTableHeaders = genericComponent()({
159
159
  if (isEmpty) return '';
160
160
  if (column.key === 'data-table-select') {
161
161
  return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && _createVNode(VCheckboxBtn, {
162
+ "color": props.color,
162
163
  "density": props.density,
163
164
  "modelValue": allSelected.value,
164
165
  "indeterminate": someSelected.value && !allSelected.value,
@@ -183,11 +184,6 @@ export const VDataTableHeaders = genericComponent()({
183
184
  const displayItems = computed(() => {
184
185
  return columns.value.filter(column => column?.sortable && !props.disableSort);
185
186
  });
186
- const appendIcon = computed(() => {
187
- const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
188
- if (showSelectColumn == null) return;
189
- return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff';
190
- });
191
187
  return _createVNode(VDataTableColumn, _mergeProps({
192
188
  "tag": "th",
193
189
  "class": [...headerCellClasses.value],
@@ -197,6 +193,7 @@ export const VDataTableHeaders = genericComponent()({
197
193
  "class": "v-data-table-header__content"
198
194
  }, [_createVNode(VSelect, {
199
195
  "chips": true,
196
+ "color": props.color,
200
197
  "class": "v-data-table__td-sort-select",
201
198
  "clearable": true,
202
199
  "density": "default",
@@ -205,9 +202,15 @@ export const VDataTableHeaders = genericComponent()({
205
202
  "multiple": props.multiSort,
206
203
  "variant": "underlined",
207
204
  "onClick:clear": () => sortBy.value = [],
208
- "appendIcon": appendIcon.value,
209
205
  "onClick:append": () => selectAll(!allSelected.value)
210
206
  }, {
207
+ append: () => _createVNode(VCheckboxBtn, {
208
+ "color": props.color,
209
+ "density": "compact",
210
+ "modelValue": allSelected.value,
211
+ "indeterminate": someSelected.value && !allSelected.value,
212
+ "onUpdate:modelValue": selectAll
213
+ }, null),
211
214
  chip: props => _createVNode(VChip, {
212
215
  "onClick": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,
213
216
  "onMousedown": e => {
@@ -237,7 +240,7 @@ export const VDataTableHeaders = genericComponent()({
237
240
  "name": "v-data-table-progress",
238
241
  "absolute": true,
239
242
  "active": true,
240
- "color": typeof props.loading === 'boolean' ? undefined : props.loading,
243
+ "color": typeof props.loading === 'boolean' || props.loading === 'true' ? props.color : props.loading,
241
244
  "indeterminate": true
242
245
  }, {
243
246
  default: slots.loader
@@ -1 +1 @@
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, event)\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 ? (event: PointerEvent) => toggleSort(column, event) : 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":[]}
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","length","onClick:clear","onClick:append","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, event)\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 ? (event: PointerEvent) => toggleSort(column, event) : 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 color={ props.color }\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 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 color={ props.color }\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 onClick:append={ () => selectAll(!allSelected.value) }\n >\n {{\n append: () => (\n <VCheckboxBtn\n color={ props.color }\n density=\"compact\"\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\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' || props.loading === 'true'\n ? props.color\n : 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":";AAAA;AAAA,SACSA,gBAAgB;AAAA,SAChBC,YAAY;AAAA,SACZC,KAAK;AAAA,SACLC,KAAK;AAAA,SACLC,OAAO,+BAEhB;AAAA,SACSC,UAAU;AAAA,SACVC,YAAY;AAAA,SACZC,OAAO;AAAA,SACPC,kBAAkB;AAAA,SAClBC,gBAAgB;AAAA,SAChBC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,SAAS;AAAA,SACTC,UAAU,EAAEC,eAAe,EAAEC,SAAS;AAAA,SACtCC,SAAS,uCAElB;AACA,SAASC,QAAQ,EAAEC,UAAU,QAAQ,KAAK;AAAA,SACjCC,aAAa,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,+BAEjE;AAsCA,OAAO,MAAMC,0BAA0B,GAAGF,YAAY,CAAC;EACrDG,KAAK,EAAEC,MAAM;EACbC,WAAW,EAAEC,OAAO;EACpBC,WAAW,EAAED,OAAO;EACpBE,SAAS,EAAEF,OAAO;EAClBG,WAAW,EAAE;IACXC,IAAI,EAAEnB,SAAS;IACfoB,OAAO,EAAE;EACX,CAAC;EACDC,YAAY,EAAE;IACZF,IAAI,EAAEnB,SAAS;IACfoB,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAE;IACXH,IAAI,EAAEI;EACR,CAAC;EAED;EACAC,MAAM,EAAET,OAAO;EAEf,GAAGlB,gBAAgB,CAAC,CAAC;EACrB,GAAGC,gBAAgB,CAAC,CAAC;EACrB,GAAGI,eAAe,CAAC;AACrB,CAAC,EAAE,mBAAmB,CAAC;AAEvB,OAAO,MAAMuB,iBAAiB,GAAGjB,gBAAgB,CAAyB,CAAC,CAAC;EAC1EkB,IAAI,EAAE,mBAAmB;EAEzBC,KAAK,EAAEhB,0BAA0B,CAAC,CAAC;EAEnCiB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAE,CAAC,GAAG3B,SAAS,CAAC,CAAC;IACzB,MAAM;MAAE4B,UAAU;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAAGvC,OAAO,CAAC,CAAC;IAClD,MAAM;MAAEwC,YAAY;MAAEC,WAAW;MAAEC,SAAS;MAAEC;IAAc,CAAC,GAAG5C,YAAY,CAAC,CAAC;IAC9E,MAAM;MAAE6C,OAAO;MAAEC;IAAQ,CAAC,GAAG/C,UAAU,CAAC,CAAC;IACzC,MAAM;MAAEgD;IAAc,CAAC,GAAGtC,SAAS,CAACwB,KAAK,CAAC;IAE1C,SAASe,cAAcA,CAAEC,MAA+B,EAAEC,CAAS,EAA6B;MAC9F,IAAI,EAAEjB,KAAK,CAACH,MAAM,IAAIG,KAAK,CAACX,WAAW,CAAC,IAAI,CAAC2B,MAAM,CAACE,KAAK,EAAE,OAAOC,SAAS;MAE3E,MAAMC,SAAS,GAAG,OAAOJ,MAAM,CAACE,KAAK,KAAK,QAAQ,GAAGF,MAAM,CAACE,KAAK,GAC7DF,MAAM,CAACE,KAAK,GAAG,OAAO,GACtB,MAAM;MAEV,OAAO;QACLG,QAAQ,EAAE,QAAQ;QAClBC,IAAI,EAAEF,SAAS,KAAK,OAAO,GAAGxC,aAAa,CAACoC,MAAM,CAACO,WAAW,CAAC,GAAGJ,SAAS;QAC3EK,KAAK,EAAEJ,SAAS,KAAK,KAAK,GAAGxC,aAAa,CAACoC,MAAM,CAACS,cAAc,CAAC,GAAGN,SAAS;QAC7EO,GAAG,EAAG1B,KAAK,CAACH,MAAM,IAAIG,KAAK,CAACX,WAAW,GAAI,uCAAuC4B,CAAC,GAAG,GAAGE;MAC3F,CAAC;IACH;IACA,SAASQ,mBAAmBA,CAAEC,KAAoB,EAAEZ,MAA+B,EAAE;MACnF,IAAIY,KAAK,CAACC,GAAG,KAAK,OAAO,IAAI,CAAC7B,KAAK,CAACb,WAAW,EAAE;QAC/CkB,UAAU,CAACW,MAAM,EAAEY,KAAK,CAAC;MAC3B;IACF;IACA,SAASE,WAAWA,CAAEd,MAA+B,EAAE;MACrD,MAAMe,IAAI,GAAGzB,MAAM,CAAC0B,KAAK,CAACC,IAAI,CAACF,IAAI,IAAIA,IAAI,CAACF,GAAG,KAAKb,MAAM,CAACa,GAAG,CAAC;MAE/D,IAAI,CAACE,IAAI,EAAE,OAAO/B,KAAK,CAACT,WAAW;MAEnC,OAAOwC,IAAI,CAACG,KAAK,KAAK,KAAK,GAAGlC,KAAK,CAACT,WAAW,GAAGS,KAAK,CAACN,YAAY;IACtE;IAEA,MAAM;MAAEyC,sBAAsB;MAAEC;IAAsB,CAAC,GAAGnE,kBAAkB,CAAC,MAAM+B,KAAK,CAACf,KAAK,CAAC;IAE/F,MAAM;MAAEoD,cAAc;MAAEC;IAAO,CAAC,GAAGlE,UAAU,CAAC4B,KAAK,CAAC;IAEpD,MAAMuC,SAAS,GAAG7D,QAAQ,CAAC,OAAO;MAChCmC,OAAO,EAAEA,OAAO,CAACmB,KAAK;MACtBpB,OAAO,EAAEA,OAAO,CAACoB,KAAK;MACtB3B,UAAU;MACVE,QAAQ;MACRD,MAAM,EAAEA,MAAM,CAAC0B,KAAK;MACpBxB,YAAY,EAAEA,YAAY,CAACwB,KAAK;MAChCvB,WAAW,EAAEA,WAAW,CAACuB,KAAK;MAC9BtB,SAAS;MACToB;IACF,CAAC,CAA4B,CAAC;IAE9B,MAAMU,iBAAiB,GAAG9D,QAAQ,CAAC,MAAO,CACxC,kBAAkB,EAClB;MACE,0BAA0B,EAAGsB,KAAK,CAACH,MAAM,IAAIG,KAAK,CAACX;IACrD,CAAC,EACDgD,cAAc,CAACL,KAAK,EACpBlB,aAAa,CAACkB,KAAK,CACnB,CAAC;IAEH,MAAMS,oBAAoB,GAAGC,KAAA,IAAiF;MAAA,IAAhF;QAAE1B,MAAM;QAAE2B,CAAC;QAAE1B;MAA6D,CAAC,GAAAyB,KAAA;MACvG,MAAME,SAAS,GAAG5B,MAAM,CAACa,GAAG,KAAK,mBAAmB,IAAIb,MAAM,CAACa,GAAG,KAAK,mBAAmB;MAC1F,MAAMgB,OAAO,GAAG7B,MAAM,CAACa,GAAG,KAAK,kBAAkB,IAAIb,MAAM,CAAC8B,KAAK,KAAK,CAAC,IAAI,CAAC9B,MAAM,CAAC+B,KAAK;MACxF,MAAMpD,WAAW,GAAGhB,UAAU,CAACqB,KAAK,CAACL,WAAW,IAAI,CAAC,CAAC,EAAEqB,MAAM,CAACrB,WAAW,IAAI,CAAC,CAAC,CAAC;MAEjF,OAAAqD,YAAA,CAAAvF,gBAAA,EAAAwF,WAAA;QAAA;QAAA,SAGYjC,MAAM,CAACkC,KAAK;QAAA,SACb,CACL;UACE,4BAA4B,EAAElC,MAAM,CAACmC,QAAQ,IAAI,CAACnD,KAAK,CAACb,WAAW;UACnE,0BAA0B,EAAEoB,QAAQ,CAACS,MAAM,CAAC;UAC5C,yBAAyB,EAAEA,MAAM,CAACE;QACpC,CAAC,EACD,GAAGsB,iBAAiB,CAACR,KAAK,CAC3B;QAAA,SACM;UACLc,KAAK,EAAElE,aAAa,CAACoC,MAAM,CAAC8B,KAAK,CAAC;UAClCM,QAAQ,EAAExE,aAAa,CAACoC,MAAM,CAACoC,QAAQ,CAAC;UACxCC,QAAQ,EAAEzE,aAAa,CAACoC,MAAM,CAACqC,QAAQ,CAAC;UACxC,GAAGtC,cAAc,CAACC,MAAM,EAAEC,CAAC;QAC7B,CAAC;QAAA,WACSD,MAAM,CAACsC,OAAO;QAAA,WACdtC,MAAM,CAACuC,OAAO;QAAA,SAChBvC,MAAM,CAACE,KAAK;QAAA,UACXF,MAAM,CAACwC,MAAM;QAAA,aACVxC,MAAM,CAACyC,SAAS;QAAA,iBACZzC,MAAM,CAAC0C,aAAa;QAAA,aACxBd,SAAS;QAAA,SACbC,OAAO;QAAA,YACJ7B,MAAM,CAACmC,QAAQ,GAAG,CAAC,GAAGhC,SAAS;QAAA,WAChCH,MAAM,CAACmC,QAAQ,GAAIvB,KAAmB,IAAKvB,UAAU,CAACW,MAAM,EAAEY,KAAK,CAAC,GAAGT,SAAS;QAAA,aAC9EH,MAAM,CAACmC,QAAQ,GAAIvB,KAAoB,IAAKD,mBAAmB,CAACC,KAAK,EAAEZ,MAAM,CAAC,GAAGG;MAAS,GACjGxB,WAAW;QAGdF,OAAO,EAAEA,CAAA,KAAM;UACb,MAAMkE,cAAc,GAAG,UAAU3C,MAAM,CAACa,GAAG,EAAW;UACtD,MAAM+B,eAAoD,GAAG;YAC3D5C,MAAM;YACNN,SAAS;YACTH,QAAQ;YACRF,UAAU;YACVC,MAAM,EAAEA,MAAM,CAAC0B,KAAK;YACpBxB,YAAY,EAAEA,YAAY,CAACwB,KAAK;YAChCvB,WAAW,EAAEA,WAAW,CAACuB,KAAK;YAC9BF;UACF,CAAC;UAED,IAAI3B,KAAK,CAACwD,cAAc,CAAC,EAAE,OAAOxD,KAAK,CAACwD,cAAc,CAAC,CAAEC,eAAe,CAAC;UAEzE,IAAIf,OAAO,EAAE,OAAO,EAAE;UAEtB,IAAI7B,MAAM,CAACa,GAAG,KAAK,mBAAmB,EAAE;YACtC,OAAO1B,KAAK,CAAC,0BAA0B,CAAC,GAAGyD,eAAe,CAAC,KAAKjD,aAAa,CAACqB,KAAK,IAAAgB,YAAA,CAAAtF,YAAA;cAAA,SAEvEsC,KAAK,CAACf,KAAK;cAAA,WACTe,KAAK,CAAC6D,OAAO;cAAA,cACVpD,WAAW,CAACuB,KAAK;cAAA,iBACdxB,YAAY,CAACwB,KAAK,IAAI,CAACvB,WAAW,CAACuB,KAAK;cAAA,uBAClCtB;YAAS,QAElC,CAAC;UACJ;UAEA,OAAAoD,mBAAA;YAAA;UAAA,IAAAA,mBAAA,gBAEY9C,MAAM,CAAC+B,KAAK,IAClB/B,MAAM,CAACmC,QAAQ,IAAI,CAACnD,KAAK,CAACb,WAAW,IAAA6D,YAAA,CAAApF,KAAA;YAAA;YAAA;YAAA,QAI5BkE,WAAW,CAACd,MAAM;UAAC,QAE7B,EACChB,KAAK,CAACV,SAAS,IAAIiB,QAAQ,CAACS,MAAM,CAAC,IAAA8C,mBAAA;YAAA;YAAA,SAAAC,eAAA,CAG1B,CACL,iCAAiC,EACjC,GAAG5B,sBAAsB,CAACH,KAAK,CAChC;YAAA,SAAAgC,eAAA,CACO5B,qBAAqB,CAACJ,KAAK;UAAA,IAEjC1B,MAAM,CAAC0B,KAAK,CAACiC,SAAS,CAACtB,CAAC,IAAIA,CAAC,CAACd,GAAG,KAAKb,MAAM,CAACa,GAAG,CAAC,GAAG,CAAC,EAE1D;QAGP;MAAC;IAIT,CAAC;IAED,MAAMqC,0BAA0B,GAAGA,CAAA,KAAM;MACvC,MAAMC,YAAY,GAAGzF,QAAQ,CAAqB,MAAM;QACtD,OAAOkC,OAAO,CAACoB,KAAK,CAACoC,MAAM,CAACpD,MAAM,IAAIA,MAAM,EAAEmC,QAAQ,IAAI,CAACnD,KAAK,CAACb,WAAW,CAAC;MAC/E,CAAC,CAAC;MAEF,OAAA6D,YAAA,CAAAvF,gBAAA,EAAAwF,WAAA;QAAA;QAAA,SAGW,CACL,GAAGT,iBAAiB,CAACR,KAAK,CAC3B;QAAA,WACSnB,OAAO,CAACmB,KAAK,CAACqC,MAAM,GAAG;MAAC,GAC7BrE,KAAK,CAACL,WAAW;QAAAF,OAAA,EAAAA,CAAA,MAAAqE,mBAAA;UAAA;QAAA,IAAAd,YAAA,CAAAnF,OAAA;UAAA;UAAA,SAKVmC,KAAK,CAACf,KAAK;UAAA;UAAA;UAAA;UAAA,SAIXkF,YAAY,CAACnC,KAAK;UAAA,SAClB5B,CAAC,CAAC,2BAA2B,CAAC;UAAA,YAC3BJ,KAAK,CAACV,SAAS;UAAA;UAAA,iBAEVgF,CAAA,KAAMhE,MAAM,CAAC0B,KAAK,GAAG,EAAE;UAAA,kBACtBuC,CAAA,KAAM7D,SAAS,CAAC,CAACD,WAAW,CAACuB,KAAK;QAAC;UAGlDwC,MAAM,EAAEA,CAAA,KAAAxB,YAAA,CAAAtF,YAAA;YAAA,SAEIsC,KAAK,CAACf,KAAK;YAAA;YAAA,cAENwB,WAAW,CAACuB,KAAK;YAAA,iBACdxB,YAAY,CAACwB,KAAK,IAAI,CAACvB,WAAW,CAACuB,KAAK;YAAA,uBAClCtB;UAAS,QAElC;UACD+D,IAAI,EAAEzE,KAAK,IAAAgD,YAAA,CAAArF,KAAA;YAAA,WAEGqC,KAAK,CAAC+B,IAAI,CAAC2C,GAAG,EAAEvB,QAAQ,GAAG,MAAM9C,UAAU,CAACL,KAAK,CAAC+B,IAAI,CAAC2C,GAAG,CAAC,GAAGvD,SAAS;YAAA,eAClEwD,CAAa,IAAK;cAC/BA,CAAC,CAACC,cAAc,CAAC,CAAC;cAClBD,CAAC,CAACE,eAAe,CAAC,CAAC;YACrB;UAAC;YAAApF,OAAA,EAAAA,CAAA,MAECO,KAAK,CAAC+B,IAAI,CAACgB,KAAK,EAAAC,YAAA,CAAApF,KAAA;cAAA,SAAAmG,eAAA,CAET,CACL,4BAA4B,EAC5BxD,QAAQ,CAACP,KAAK,CAAC+B,IAAI,CAAC2C,GAAG,CAAC,IAAI,mCAAmC,CAChE;cAAA,QACM5C,WAAW,CAAC9B,KAAK,CAAC+B,IAAI,CAAC2C,GAAG,CAAC;cAAA;YAAA;UAAA;QAIvC;MAAA;IAMb,CAAC;IAED3F,SAAS,CAAC,MAAM;MACd,OAAOuD,MAAM,CAACN,KAAK,GAAA8B,mBAAA,cAAAd,YAAA,CAAAkB,0BAAA,kBAAAJ,mBAAA,CAAAgB,SAAA,SAMb3E,KAAK,CAACU,OAAO,GACXV,KAAK,CAACU,OAAO,CAAC0B,SAAS,CAACP,KAAK,CAAC,GAC9BnB,OAAO,CAACmB,KAAK,CAAC+C,GAAG,CAAC,CAACC,GAAG,EAAE/D,CAAC,KAAA6C,mBAAA,cAErBkB,GAAG,CAACD,GAAG,CAAC,CAAC/D,MAAM,EAAE2B,CAAC,KAAAK,YAAA,CAAAP,oBAAA;QAAA,UACazB,MAAM;QAAA,KAAO2B,CAAC;QAAA,KAAO1B;MAAC,QACtD,CAAC,EAEL,CAAC,EAEFjB,KAAK,CAACiF,OAAO,IAAAnB,mBAAA;QAAA;MAAA,IAAAA,mBAAA;QAAA,WAEGlD,OAAO,CAACoB,KAAK,CAACqC;MAAM,IAAArB,YAAA,CAAA1E,UAAA;QAAA;QAAA;QAAA;QAAA,SAKtB,OAAO0B,KAAK,CAACiF,OAAO,KAAK,SAAS,IAAIjF,KAAK,CAACiF,OAAO,KAAK,MAAM,GAClEjF,KAAK,CAACf,KAAK,GACXe,KAAK,CAACiF,OAAO;QAAA;MAAA,GAER;QAAExF,OAAO,EAAEU,KAAK,CAAC+E;MAAO,CAAC,KAIzC,EAEJ;IACH,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -20,6 +20,7 @@ export declare const makeVDataTableRowProps: <Defaults extends {
20
20
  mobile?: unknown;
21
21
  mobileBreakpoint?: unknown;
22
22
  density?: unknown;
23
+ color?: unknown;
23
24
  index?: unknown;
24
25
  item?: unknown;
25
26
  cellProps?: unknown;
@@ -55,6 +56,10 @@ export declare const makeVDataTableRowProps: <Defaults extends {
55
56
  type: PropType<unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | import("../../composables/density.js").Density>;
56
57
  default: unknown extends Defaults["density"] ? import("../../composables/density.js").Density : Defaults["density"] | NonNullable<import("../../composables/density.js").Density>;
57
58
  };
59
+ color: unknown extends Defaults["color"] ? StringConstructor : {
60
+ type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
61
+ default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
62
+ };
58
63
  index: unknown extends Defaults["index"] ? NumberConstructor : {
59
64
  type: PropType<unknown extends Defaults["index"] ? number : number | Defaults["index"]>;
60
65
  default: unknown extends Defaults["index"] ? number : number | Defaults["index"];
@@ -108,6 +113,7 @@ export declare const VDataTableRow: {
108
113
  expandIcon: IconValue;
109
114
  } & {
110
115
  mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
116
+ color?: string | undefined;
111
117
  index?: number | undefined;
112
118
  onClick?: ((args_0: MouseEvent) => void) | undefined;
113
119
  onContextmenu?: ((args_0: MouseEvent) => void) | undefined;
@@ -150,6 +156,7 @@ export declare const VDataTableRow: {
150
156
  expandIcon: IconValue;
151
157
  } & {
152
158
  mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
159
+ color?: string | undefined;
153
160
  index?: number | undefined;
154
161
  onClick?: ((args_0: MouseEvent) => void) | undefined;
155
162
  onContextmenu?: ((args_0: MouseEvent) => void) | undefined;
@@ -170,6 +177,7 @@ export declare const VDataTableRow: {
170
177
  expandIcon: IconValue;
171
178
  } & {
172
179
  mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
180
+ color?: string | undefined;
173
181
  index?: number | undefined;
174
182
  onClick?: ((args_0: MouseEvent) => void) | undefined;
175
183
  onContextmenu?: ((args_0: MouseEvent) => void) | undefined;
@@ -215,6 +223,7 @@ export declare const VDataTableRow: {
215
223
  default: string;
216
224
  validator: (v: any) => boolean;
217
225
  };
226
+ color: StringConstructor;
218
227
  index: NumberConstructor;
219
228
  item: PropType<DataTableItem<any>>;
220
229
  cellProps: PropType<CellProps<any>>;
@@ -240,6 +249,7 @@ export declare const VDataTableRow: {
240
249
  default: string;
241
250
  validator: (v: any) => boolean;
242
251
  };
252
+ color: StringConstructor;
243
253
  index: NumberConstructor;
244
254
  item: PropType<DataTableItem<any>>;
245
255
  cellProps: PropType<CellProps<any>>;
@@ -13,6 +13,7 @@ import { IconValue } from "../../composables/icons.js"; // Utilities
13
13
  import { toDisplayString, withModifiers } from 'vue';
14
14
  import { EventProp, genericComponent, getObjectValueByPath, propsFactory, useRender } from "../../util/index.js"; // Types
15
15
  export const makeVDataTableRowProps = propsFactory({
16
+ color: String,
16
17
  index: Number,
17
18
  item: Object,
18
19
  cellProps: [Object, Function],
@@ -130,11 +131,13 @@ export const VDataTableRow = genericComponent()({
130
131
  return slots['item.data-table-select']?.({
131
132
  ...slotProps,
132
133
  props: {
134
+ color: props.color,
133
135
  disabled: !item.selectable,
134
136
  modelValue: isSelected([item]),
135
137
  onClick: withModifiers(() => toggleSelect(item), ['stop'])
136
138
  }
137
139
  }) ?? _createVNode(VCheckboxBtn, {
140
+ "color": props.color,
138
141
  "disabled": !item.selectable,
139
142
  "density": props.density,
140
143
  "modelValue": isSelected([item]),
@@ -1 +1 @@
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":";AAAA;AAAA,SACSA,gBAAgB;AAAA,SAChBC,IAAI;AAAA,SACJC,YAAY,iCAErB;AAAA,SACSC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,YAAY;AAAA,SACZC,OAAO;AAAA,SACPC,gBAAgB;AAAA,SAChBC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,SAAS,sCAElB;AACA,SAASC,eAAe,EAAEC,aAAa,QAAQ,KAAK;AAAA,SAC3CC,SAAS,EAAEC,gBAAgB,EAAEC,oBAAoB,EAAEC,YAAY,EAAEC,SAAS,+BAEnF;AAoBA,OAAO,MAAMC,sBAAsB,GAAGF,YAAY,CAAC;EACjDG,KAAK,EAAEC,MAAM;EACbC,IAAI,EAAEC,MAAiC;EACvCC,SAAS,EAAE,CAACD,MAAM,EAAEE,QAAQ,CAA6B;EACzDC,YAAY,EAAE;IACZC,IAAI,EAAEhB,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVF,IAAI,EAAEhB,SAAS;IACfiB,OAAO,EAAE;EACX,CAAC;EAEDE,OAAO,EAAEhB,SAAS,CAAe,CAAC;EAClCiB,aAAa,EAAEjB,SAAS,CAAe,CAAC;EACxCkB,UAAU,EAAElB,SAAS,CAAe,CAAC;EAErC,GAAGN,gBAAgB,CAAC,CAAC;EACrB,GAAGC,gBAAgB,CAAC;AACtB,CAAC,EAAE,eAAe,CAAC;AAEnB,OAAO,MAAMwB,aAAa,GAAGlB,gBAAgB,CAME,CAAC,CAAC;EAC/CmB,IAAI,EAAE,eAAe;EAErBC,KAAK,EAAEhB,sBAAsB,CAAC,CAAC;EAE/BiB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE,cAAc;MAAEC;IAAO,CAAC,GAAG9B,UAAU,CAACyB,KAAK,EAAE,kBAAkB,CAAC;IACxE,MAAM;MAAEM,UAAU;MAAEC,YAAY;MAAEC,YAAY;MAAEC,WAAW;MAAEC;IAAU,CAAC,GAAGvC,YAAY,CAAC,CAAC;IACzF,MAAM;MAAEwC,UAAU;MAAEC;IAAa,CAAC,GAAG3C,WAAW,CAAC,CAAC;IAClD,MAAM;MAAE4C,UAAU;MAAEC,MAAM;MAAEC;IAAS,CAAC,GAAG3C,OAAO,CAAC,CAAC;IAClD,MAAM;MAAE4C;IAAQ,CAAC,GAAG9C,UAAU,CAAC,CAAC;IAEhCa,SAAS,CAAC,MAAAkC,mBAAA;MAAA,SAAAC,eAAA,CAEC,CACL,kBAAkB,EAClB;QACE,6BAA6B,EAAE,CAAC,EAAElB,KAAK,CAACL,OAAO,IAAIK,KAAK,CAACJ,aAAa,IAAII,KAAK,CAACH,UAAU;MAC5F,CAAC,EACDO,cAAc,CAACe,KAAK,CACrB;MAAA,WACSnB,KAAK,CAACL,OAAO;MAAA,iBACPK,KAAK,CAACJ,aAAa;MAAA,cACtBI,KAAK,CAACH;IAAU,IAE3BG,KAAK,CAACb,IAAI,IAAI6B,OAAO,CAACG,KAAK,CAACC,GAAG,CAAC,CAACC,MAAM,EAAEC,CAAC,KAAK;MAC/C,MAAMnC,IAAI,GAAGa,KAAK,CAACb,IAAK;MACxB,MAAMoC,QAAQ,GAAG,QAAQF,MAAM,CAACG,GAAG,EAAW;MAC9C,MAAMC,cAAc,GAAG,UAAUJ,MAAM,CAACG,GAAG,EAAW;MACtD,MAAME,SAAS,GAAG;QAChBzC,KAAK,EAAEe,KAAK,CAACf,KAAM;QACnBE,IAAI,EAAEA,IAAI,CAACwC,GAAG;QACdC,YAAY,EAAEzC,IAAI;QAClBgC,KAAK,EAAEtC,oBAAoB,CAACM,IAAI,CAAC6B,OAAO,EAAEK,MAAM,CAACG,GAAG,CAAC;QACrDH,MAAM;QACNf,UAAU;QACVC,YAAY;QACZI,UAAU;QACVC;MACF,CAA4B;MAE5B,MAAMiB,eAAoD,GAAG;QAC3DR,MAAM;QACNX,SAAS;QACTK,QAAQ;QACRF,UAAU;QACVC,MAAM,EAAEA,MAAM,CAACK,KAAK;QACpBX,YAAY,EAAEA,YAAY,CAACW,KAAK;QAChCV,WAAW,EAAEA,WAAW,CAACU,KAAK;QAC9BW,WAAW,EAAEA,CAAA,KAAM;MACrB,CAAC;MAED,MAAMzC,SAAS,GAAG,OAAOW,KAAK,CAACX,SAAS,KAAK,UAAU,GACnDW,KAAK,CAACX,SAAS,CAAC;QAChBJ,KAAK,EAAEyC,SAAS,CAACzC,KAAK;QACtBE,IAAI,EAAEuC,SAAS,CAACvC,IAAI;QACpByC,YAAY,EAAEF,SAAS,CAACE,YAAY;QACpCT,KAAK,EAAEO,SAAS,CAACP,KAAK;QACtBE;MACF,CAAC,CAAC,GACArB,KAAK,CAACX,SAAS;MACnB,MAAM0C,eAAe,GAAG,OAAOV,MAAM,CAAChC,SAAS,KAAK,UAAU,GAC1DgC,MAAM,CAAChC,SAAS,CAAC;QACjBJ,KAAK,EAAEyC,SAAS,CAACzC,KAAK;QACtBE,IAAI,EAAEuC,SAAS,CAACvC,IAAI;QACpByC,YAAY,EAAEF,SAAS,CAACE,YAAY;QACpCT,KAAK,EAAEO,SAAS,CAACP;MACnB,CAAC,CAAC,GACAE,MAAM,CAAChC,SAAS;MAEpB,MAAM2C,SAAS,GAAGX,MAAM,CAACG,GAAG,KAAK,mBAAmB,IAAIH,MAAM,CAACG,GAAG,KAAK,mBAAmB;MAC1F,MAAMS,OAAO,GAAGZ,MAAM,CAACG,GAAG,KAAK,kBAAkB,IAAIH,MAAM,CAACa,KAAK,KAAK,CAAC,IAAI,CAACb,MAAM,CAACc,KAAK;MAExF,OAAAC,YAAA,CAAAtE,gBAAA,EAAAuE,WAAA;QAAA,SAEYhB,MAAM,CAACiB,KAAK;QAAA,UACXjB,MAAM,CAACkB,MAAM;QAAA,SACf;UACL,gCAAgC,EAAElB,MAAM,CAACG,GAAG,KAAK,mBAAmB;UACpE,8BAA8B,EAAEH,MAAM,CAACG,GAAG,KAAK;QACjD,CAAC;QAAA,SACOH,MAAM,CAACmB,KAAK;QAAA,eACNnB,MAAM,CAACoB,WAAW;QAAA,kBACfpB,MAAM,CAACqB,cAAc;QAAA,aAC1BrB,MAAM,CAACsB,SAAS;QAAA,iBACZtB,MAAM,CAACuB,aAAa;QAAA,YACzB,CAACvC,MAAM,CAACc,KAAK,GAAGE,MAAM,CAACwB,QAAQ,GAAGC,SAAS;QAAA,aAC1Cd,SAAS;QAAA,SACbC,OAAO;QAAA,UACNZ,MAAM,CAAC0B,MAAM;QAAA,SACd,CAAC1C,MAAM,CAACc,KAAK,GAAGE,MAAM,CAACa,KAAK,GAAGY;MAAS,GAC3CzD,SAAS,EACT0C,eAAe;QAGlBtC,OAAO,EAAEA,CAAA,KAAM;UACb,IAAI4B,MAAM,CAACG,GAAG,KAAK,mBAAmB,EAAE;YACtC,OAAOrB,KAAK,CAAC,wBAAwB,CAAC,GAAG;cACvC,GAAGuB,SAAS;cACZ1B,KAAK,EAAE;gBACLgD,QAAQ,EAAE,CAAC7D,IAAI,CAAC8D,UAAU;gBAC1BC,UAAU,EAAE5C,UAAU,CAAC,CAACnB,IAAI,CAAC,CAAC;gBAC9BQ,OAAO,EAAEjB,aAAa,CAAC,MAAM6B,YAAY,CAACpB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;cAC3D;YACF,CAAC,CAAC,IAAAiD,YAAA,CAAApE,YAAA;cAAA,YAEa,CAACmB,IAAI,CAAC8D,UAAU;cAAA,WACjBjD,KAAK,CAACmD,OAAO;cAAA,cACV7C,UAAU,CAAC,CAACnB,IAAI,CAAC,CAAC;cAAA,WACrBT,aAAa,CACpB0E,KAAY,IAAK7C,YAAY,CAACpB,IAAI,EAAEa,KAAK,CAACf,KAAK,EAAEmE,KAAqB,CAAC,EACxE,CAAC,MAAM,CACT;YAAC,QAEJ;UACH;UAEA,IAAI/B,MAAM,CAACG,GAAG,KAAK,mBAAmB,EAAE;YACtC,OAAOrB,KAAK,CAAC,wBAAwB,CAAC,GAAG;cACvC,GAAGuB,SAAS;cACZ1B,KAAK,EAAE;gBACLqD,IAAI,EAAE1C,UAAU,CAACxB,IAAI,CAAC,GAAGa,KAAK,CAACT,YAAY,GAAGS,KAAK,CAACN,UAAU;gBAC9D4D,IAAI,EAAE,OAAO;gBACbC,OAAO,EAAE,MAAM;gBACf5D,OAAO,EAAEjB,aAAa,CAAC,MAAMkC,YAAY,CAACzB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;cAC3D;YACF,CAAC,CAAC,IAAAiD,YAAA,CAAArE,IAAA;cAAA,QAES4C,UAAU,CAACxB,IAAI,CAAC,GAAGa,KAAK,CAACT,YAAY,GAAGS,KAAK,CAACN,UAAU;cAAA;cAAA;cAAA,WAGrDhB,aAAa,CAAC,MAAMkC,YAAY,CAACzB,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;YAAC,QAE9D;UACH;UAEA,IAAIgB,KAAK,CAACoB,QAAQ,CAAC,IAAI,CAAClB,MAAM,CAACc,KAAK,EAAE,OAAOhB,KAAK,CAACoB,QAAQ,CAAC,CAACG,SAAS,CAAC;UAEvE,MAAM8B,YAAY,GAAG/E,eAAe,CAACiD,SAAS,CAACP,KAAK,CAAC;UAErD,OAAO,CAACd,MAAM,CAACc,KAAK,GAAGqC,YAAY,GAAAvC,mBAAA,CAAAwC,SAAA,SAAAxC,mBAAA;YAAA;UAAA,IAG3Bd,KAAK,CAACsB,cAAc,CAAC,GAAGI,eAAe,CAAC,IAAIR,MAAM,CAACc,KAAK,IAAAlB,mBAAA;YAAA;UAAA,IAIxDd,KAAK,CAACoB,QAAQ,CAAC,GAAGG,SAAS,CAAC,IAAI8B,YAAY,IAGnD;QACH;MAAC;IAIT,CAAC,CAAC,EAEL,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VDataTableRow.js","names":["VDataTableColumn","VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","useSort","makeDensityProps","makeDisplayProps","useDisplay","IconValue","toDisplayString","withModifiers","EventProp","genericComponent","getObjectValueByPath","propsFactory","useRender","makeVDataTableRowProps","color","String","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 color: String,\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 color: props.color,\n disabled: !item.selectable,\n modelValue: isSelected([item]),\n onClick: withModifiers(() => toggleSelect(item), ['stop']),\n },\n }) ?? (\n <VCheckboxBtn\n color={ props.color }\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":[]}
@@ -23,6 +23,7 @@ export declare const makeVDataTableRowsProps: <Defaults extends {
23
23
  groupExpandIcon?: unknown;
24
24
  collapseIcon?: unknown;
25
25
  expandIcon?: unknown;
26
+ color?: unknown;
26
27
  loading?: unknown;
27
28
  loadingText?: unknown;
28
29
  hideNoData?: unknown;
@@ -97,6 +98,10 @@ export declare const makeVDataTableRowsProps: <Defaults extends {
97
98
  type: PropType<unknown extends Defaults["expandIcon"] ? import("../../composables/icons.js").IconValue : Defaults["expandIcon"] | import("../../composables/icons.js").IconValue>;
98
99
  default: unknown extends Defaults["expandIcon"] ? import("../../composables/icons.js").IconValue : Defaults["expandIcon"] | NonNullable<import("../../composables/icons.js").IconValue>;
99
100
  };
101
+ color: unknown extends Defaults["color"] ? StringConstructor : {
102
+ type: PropType<unknown extends Defaults["color"] ? string : string | Defaults["color"]>;
103
+ default: unknown extends Defaults["color"] ? string : string | Defaults["color"];
104
+ };
100
105
  loading: unknown extends Defaults["loading"] ? (BooleanConstructor | StringConstructor)[] : {
101
106
  type: PropType<unknown extends Defaults["loading"] ? string | boolean : string | boolean | Defaults["loading"]>;
102
107
  default: unknown extends Defaults["loading"] ? string | boolean : Defaults["loading"] | NonNullable<string | boolean>;
@@ -157,6 +162,7 @@ export declare const VDataTableRows: {
157
162
  noDataText: string;
158
163
  } & {
159
164
  mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
165
+ color?: string | undefined;
160
166
  loading?: string | boolean | undefined;
161
167
  rowProps?: RowProps<any> | undefined;
162
168
  cellProps?: CellProps<any> | undefined;
@@ -250,6 +256,7 @@ export declare const VDataTableRows: {
250
256
  noDataText: string;
251
257
  } & {
252
258
  mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
259
+ color?: string | undefined;
253
260
  loading?: string | boolean | undefined;
254
261
  rowProps?: RowProps<any> | undefined;
255
262
  cellProps?: CellProps<any> | undefined;
@@ -279,6 +286,7 @@ export declare const VDataTableRows: {
279
286
  noDataText: string;
280
287
  } & {
281
288
  mobileBreakpoint?: number | import("../../types.js").DisplayBreakpoint | undefined;
289
+ color?: string | undefined;
282
290
  loading?: string | boolean | undefined;
283
291
  rowProps?: RowProps<any> | undefined;
284
292
  cellProps?: CellProps<any> | undefined;
@@ -384,6 +392,7 @@ export declare const VDataTableRows: {
384
392
  type: PropType<import("../../composables/icons.js").IconValue>;
385
393
  default: string;
386
394
  };
395
+ color: StringConstructor;
387
396
  loading: (BooleanConstructor | StringConstructor)[];
388
397
  loadingText: {
389
398
  type: StringConstructor;
@@ -427,6 +436,7 @@ export declare const VDataTableRows: {
427
436
  type: PropType<import("../../composables/icons.js").IconValue>;
428
437
  default: string;
429
438
  };
439
+ color: StringConstructor;
430
440
  loading: (BooleanConstructor | StringConstructor)[];
431
441
  loadingText: {
432
442
  type: StringConstructor;
@@ -11,6 +11,7 @@ import { useLocale } from "../../composables/locale.js"; // Utilities
11
11
  import { Fragment, mergeProps } from 'vue';
12
12
  import { genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from "../../util/index.js"; // Types
13
13
  export const makeVDataTableRowsProps = propsFactory({
14
+ color: String,
14
15
  loading: [Boolean, String],
15
16
  loadingText: {
16
17
  type: String,
@@ -126,6 +127,7 @@ export const VDataTableRows = genericComponent()({
126
127
  } : undefined,
127
128
  index,
128
129
  item,
130
+ color: props.color,
129
131
  cellProps: props.cellProps,
130
132
  collapseIcon: props.collapseIcon,
131
133
  expandIcon: props.expandIcon,
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRows.js","names":["makeVDataTableGroupHeaderRowProps","VDataTableGroupHeaderRow","makeVDataTableRowProps","VDataTableRow","useExpanded","useGroupBy","useHeaders","useSelection","makeDisplayProps","useDisplay","useLocale","Fragment","mergeProps","genericComponent","getPrefixedEventHandlers","pick","propsFactory","useRender","makeVDataTableRowsProps","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowProps","Object","Function","cellProps","VDataTableRows","name","inheritAttrs","props","setup","_ref","attrs","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","mobile","groupHeaderRowProps","length","_createElementVNode","value","_Fragment","map","item","index","slotProps","_createVNode","_mergeProps","id","raw","internalItem","itemSlotProps","key","onClick","undefined","collapseIcon","expandIcon","density"],"sources":["../../../src/components/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { makeVDataTableGroupHeaderRowProps, VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { makeVDataTableRowProps, VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { Fragment, mergeProps } from 'vue'\nimport { genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group, GroupSummary } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, GroupSummarySlot, ItemSlot, RowProps } from './types'\nimport type { VDataTableGroupHeaderRowSlots } from './VDataTableGroupHeaderRow'\nimport type { VDataTableRowSlots } from './VDataTableRow'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowsSlots<T> = VDataTableGroupHeaderRowSlots & VDataTableRowSlots<T> & {\n item: ItemSlot<T> & { props: Record<string, any> }\n loading: never\n 'group-header': GroupHeaderSlot\n 'group-summary': GroupSummarySlot\n 'no-data': never\n 'expanded-row': ItemSlot<T>\n}\n\nexport const makeVDataTableRowsProps = propsFactory({\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<readonly (DataTableItem | Group | GroupSummary)[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowProps: [Object, Function] as PropType<RowProps<any>>,\n cellProps: [Object, Function] as PropType<CellProps<any>>,\n\n ...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon', 'density']),\n ...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon', 'density']),\n ...makeDisplayProps(),\n}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent<new <T>(\n props: {\n items?: readonly (DataTableItem<T> | Group<T> | GroupSummary<T>)[]\n },\n slots: VDataTableRowsSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableRows',\n\n inheritAttrs: false,\n\n props: makeVDataTableRowsProps(),\n\n setup (props, { attrs, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n const { mobile } = useDisplay(props)\n\n useRender(() => {\n const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon', 'density'])\n\n if (props.loading && (!props.items.length || slots.loading)) {\n return (\n <tr\n class=\"v-data-table-rows-loading\"\n key=\"loading\"\n >\n <td colspan={ columns.value.length }>\n { slots.loading?.() ?? t(props.loadingText) }\n </td>\n </tr>\n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n <td colspan={ columns.value.length }>\n { slots['no-data']?.() ?? t(props.noDataText) }\n </td>\n </tr>\n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } satisfies GroupHeaderSlot\n\n return slots['group-header'] ? slots['group-header'](slotProps) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n { ...getPrefixedEventHandlers(attrs, ':groupHeader', () => slotProps) }\n { ...groupHeaderRowProps }\n v-slots={ slots }\n />\n )\n }\n\n if (item.type === 'group-summary') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n toggleGroup,\n } satisfies GroupSummarySlot\n\n return slots['group-summary']?.(slotProps) ?? ''\n }\n\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } satisfies ItemSlot<any>\n\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps(\n {\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item)\n } : undefined,\n index,\n item,\n cellProps: props.cellProps,\n collapseIcon: props.collapseIcon,\n expandIcon: props.expandIcon,\n density: props.density,\n mobile: mobile.value,\n },\n getPrefixedEventHandlers(attrs, ':row', () => slotProps),\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem,\n })\n : props.rowProps,\n ),\n }\n\n return (\n <Fragment key={ itemSlotProps.props.key as string }>\n { slots.item ? slots.item(itemSlotProps) : (\n <VDataTableRow\n { ...itemSlotProps.props }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </Fragment>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDataTableRows.js","names":["makeVDataTableGroupHeaderRowProps","VDataTableGroupHeaderRow","makeVDataTableRowProps","VDataTableRow","useExpanded","useGroupBy","useHeaders","useSelection","makeDisplayProps","useDisplay","useLocale","Fragment","mergeProps","genericComponent","getPrefixedEventHandlers","pick","propsFactory","useRender","makeVDataTableRowsProps","color","String","loading","Boolean","loadingText","type","default","hideNoData","items","Array","noDataText","rowProps","Object","Function","cellProps","VDataTableRows","name","inheritAttrs","props","setup","_ref","attrs","slots","columns","expandOnClick","toggleExpand","isExpanded","isSelected","toggleSelect","toggleGroup","isGroupOpen","t","mobile","groupHeaderRowProps","length","_createElementVNode","value","_Fragment","map","item","index","slotProps","_createVNode","_mergeProps","id","raw","internalItem","itemSlotProps","key","onClick","undefined","collapseIcon","expandIcon","density"],"sources":["../../../src/components/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { makeVDataTableGroupHeaderRowProps, VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { makeVDataTableRowProps, VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useGroupBy } from './composables/group'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { Fragment, mergeProps } from 'vue'\nimport { genericComponent, getPrefixedEventHandlers, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { Group, GroupSummary } from './composables/group'\nimport type { CellProps, DataTableItem, GroupHeaderSlot, GroupSummarySlot, ItemSlot, RowProps } from './types'\nimport type { VDataTableGroupHeaderRowSlots } from './VDataTableGroupHeaderRow'\nimport type { VDataTableRowSlots } from './VDataTableRow'\nimport type { GenericProps } from '@/util'\n\nexport type VDataTableRowsSlots<T> = VDataTableGroupHeaderRowSlots & VDataTableRowSlots<T> & {\n item: ItemSlot<T> & { props: Record<string, any> }\n loading: never\n 'group-header': GroupHeaderSlot\n 'group-summary': GroupSummarySlot\n 'no-data': never\n 'expanded-row': ItemSlot<T>\n}\n\nexport const makeVDataTableRowsProps = propsFactory({\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<readonly (DataTableItem | Group | GroupSummary)[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowProps: [Object, Function] as PropType<RowProps<any>>,\n cellProps: [Object, Function] as PropType<CellProps<any>>,\n\n ...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon', 'density']),\n ...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon', 'density']),\n ...makeDisplayProps(),\n}, 'VDataTableRows')\n\nexport const VDataTableRows = genericComponent<new <T>(\n props: {\n items?: readonly (DataTableItem<T> | Group<T> | GroupSummary<T>)[]\n },\n slots: VDataTableRowsSlots<T>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableRows',\n\n inheritAttrs: false,\n\n props: makeVDataTableRowsProps(),\n\n setup (props, { attrs, slots }) {\n const { columns } = useHeaders()\n const { expandOnClick, toggleExpand, isExpanded } = useExpanded()\n const { isSelected, toggleSelect } = useSelection()\n const { toggleGroup, isGroupOpen } = useGroupBy()\n const { t } = useLocale()\n const { mobile } = useDisplay(props)\n\n useRender(() => {\n const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon', 'density'])\n\n if (props.loading && (!props.items.length || slots.loading)) {\n return (\n <tr\n class=\"v-data-table-rows-loading\"\n key=\"loading\"\n >\n <td colspan={ columns.value.length }>\n { slots.loading?.() ?? t(props.loadingText) }\n </td>\n </tr>\n )\n }\n\n if (!props.loading && !props.items.length && !props.hideNoData) {\n return (\n <tr\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n <td colspan={ columns.value.length }>\n { slots['no-data']?.() ?? t(props.noDataText) }\n </td>\n </tr>\n )\n }\n\n return (\n <>\n { props.items.map((item, index) => {\n if (item.type === 'group') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n toggleGroup,\n isGroupOpen,\n } satisfies GroupHeaderSlot\n\n return slots['group-header'] ? slots['group-header'](slotProps) : (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n { ...getPrefixedEventHandlers(attrs, ':groupHeader', () => slotProps) }\n { ...groupHeaderRowProps }\n v-slots={ slots }\n />\n )\n }\n\n if (item.type === 'group-summary') {\n const slotProps = {\n index,\n item,\n columns: columns.value,\n toggleGroup,\n } satisfies GroupSummarySlot\n\n return slots['group-summary']?.(slotProps) ?? ''\n }\n\n const slotProps = {\n index,\n item: item.raw,\n internalItem: item,\n columns: columns.value,\n isExpanded,\n toggleExpand,\n isSelected,\n toggleSelect,\n } satisfies ItemSlot<any>\n\n const itemSlotProps = {\n ...slotProps,\n props: mergeProps(\n {\n key: `item_${item.key ?? item.index}`,\n onClick: expandOnClick.value ? () => {\n toggleExpand(item)\n } : undefined,\n index,\n item,\n color: props.color,\n cellProps: props.cellProps,\n collapseIcon: props.collapseIcon,\n expandIcon: props.expandIcon,\n density: props.density,\n mobile: mobile.value,\n },\n getPrefixedEventHandlers(attrs, ':row', () => slotProps),\n typeof props.rowProps === 'function'\n ? props.rowProps({\n item: slotProps.item,\n index: slotProps.index,\n internalItem: slotProps.internalItem,\n })\n : props.rowProps,\n ),\n }\n\n return (\n <Fragment key={ itemSlotProps.props.key as string }>\n { slots.item ? slots.item(itemSlotProps) : (\n <VDataTableRow\n { ...itemSlotProps.props }\n v-slots={ slots }\n />\n )}\n\n { isExpanded(item) && slots['expanded-row']?.(slotProps) }\n </Fragment>\n )\n })}\n </>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":";AAAA;AAAA,SACSA,iCAAiC,EAAEC,wBAAwB;AAAA,SAC3DC,sBAAsB,EAAEC,aAAa,8BAE9C;AAAA,SACSC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,UAAU;AAAA,SACVC,YAAY;AAAA,SACZC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,SAAS,uCAElB;AACA,SAASC,QAAQ,EAAEC,UAAU,QAAQ,KAAK;AAAA,SACjCC,gBAAgB,EAAEC,wBAAwB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,+BAElF;AAiBA,OAAO,MAAMC,uBAAuB,GAAGF,YAAY,CAAC;EAClDG,KAAK,EAAEC,MAAM;EACbC,OAAO,EAAE,CAACC,OAAO,EAAEF,MAAM,CAAC;EAC1BG,WAAW,EAAE;IACXC,IAAI,EAAEJ,MAAM;IACZK,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAEJ,OAAO;EACnBK,KAAK,EAAE;IACLH,IAAI,EAAEI,KAAoE;IAC1EH,OAAO,EAAEA,CAAA,KAAO;EAClB,CAAC;EACDI,UAAU,EAAE;IACVL,IAAI,EAAEJ,MAAM;IACZK,OAAO,EAAE;EACX,CAAC;EACDK,QAAQ,EAAE,CAACC,MAAM,EAAEC,QAAQ,CAA4B;EACvDC,SAAS,EAAE,CAACF,MAAM,EAAEC,QAAQ,CAA6B;EAEzD,GAAGjB,IAAI,CAACb,sBAAsB,CAAC,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;EAC5E,GAAGa,IAAI,CAACf,iCAAiC,CAAC,CAAC,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;EACjG,GAAGQ,gBAAgB,CAAC;AACtB,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAM0B,cAAc,GAAGrB,gBAAgB,CAKC,CAAC,CAAC;EAC/CsB,IAAI,EAAE,gBAAgB;EAEtBC,YAAY,EAAE,KAAK;EAEnBC,KAAK,EAAEnB,uBAAuB,CAAC,CAAC;EAEhCoB,KAAKA,CAAED,KAAK,EAAAE,IAAA,EAAoB;IAAA,IAAlB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC5B,MAAM;MAAEG;IAAQ,CAAC,GAAGpC,UAAU,CAAC,CAAC;IAChC,MAAM;MAAEqC,aAAa;MAAEC,YAAY;MAAEC;IAAW,CAAC,GAAGzC,WAAW,CAAC,CAAC;IACjE,MAAM;MAAE0C,UAAU;MAAEC;IAAa,CAAC,GAAGxC,YAAY,CAAC,CAAC;IACnD,MAAM;MAAEyC,WAAW;MAAEC;IAAY,CAAC,GAAG5C,UAAU,CAAC,CAAC;IACjD,MAAM;MAAE6C;IAAE,CAAC,GAAGxC,SAAS,CAAC,CAAC;IACzB,MAAM;MAAEyC;IAAO,CAAC,GAAG1C,UAAU,CAAC4B,KAAK,CAAC;IAEpCpB,SAAS,CAAC,MAAM;MACd,MAAMmC,mBAAmB,GAAGrC,IAAI,CAACsB,KAAK,EAAE,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;MAE5F,IAAIA,KAAK,CAAChB,OAAO,KAAK,CAACgB,KAAK,CAACV,KAAK,CAAC0B,MAAM,IAAIZ,KAAK,CAACpB,OAAO,CAAC,EAAE;QAC3D,OAAAiC,mBAAA;UAAA;UAAA;QAAA,IAAAA,mBAAA;UAAA,WAKkBZ,OAAO,CAACa,KAAK,CAACF;QAAM,IAC9BZ,KAAK,CAACpB,OAAO,GAAG,CAAC,IAAI6B,CAAC,CAACb,KAAK,CAACd,WAAW,CAAC;MAInD;MAEA,IAAI,CAACc,KAAK,CAAChB,OAAO,IAAI,CAACgB,KAAK,CAACV,KAAK,CAAC0B,MAAM,IAAI,CAAChB,KAAK,CAACX,UAAU,EAAE;QAC9D,OAAA4B,mBAAA;UAAA;UAAA;QAAA,IAAAA,mBAAA;UAAA,WAKkBZ,OAAO,CAACa,KAAK,CAACF;QAAM,IAC9BZ,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAIS,CAAC,CAACb,KAAK,CAACR,UAAU,CAAC;MAIrD;MAEA,OAAAyB,mBAAA,CAAAE,SAAA,SAEMnB,KAAK,CAACV,KAAK,CAAC8B,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QACjC,IAAID,IAAI,CAAClC,IAAI,KAAK,OAAO,EAAE;UACzB,MAAMoC,SAAS,GAAG;YAChBD,KAAK;YACLD,IAAI;YACJhB,OAAO,EAAEA,OAAO,CAACa,KAAK;YACtBV,UAAU;YACVD,YAAY;YACZE,UAAU;YACVC,YAAY;YACZC,WAAW;YACXC;UACF,CAA2B;UAE3B,OAAOR,KAAK,CAAC,cAAc,CAAC,GAAGA,KAAK,CAAC,cAAc,CAAC,CAACmB,SAAS,CAAC,GAAAC,YAAA,CAAA5D,wBAAA,EAAA6D,WAAA;YAAA,OAErD,gBAAgBJ,IAAI,CAACK,EAAE,EAAE;YAAA,QACxBL;UAAI,GACN5C,wBAAwB,CAAC0B,KAAK,EAAE,cAAc,EAAE,MAAMoB,SAAS,CAAC,EAChER,mBAAmB,GACdX,KAAK,CAElB;QACH;QAEA,IAAIiB,IAAI,CAAClC,IAAI,KAAK,eAAe,EAAE;UACjC,MAAMoC,SAAS,GAAG;YAChBD,KAAK;YACLD,IAAI;YACJhB,OAAO,EAAEA,OAAO,CAACa,KAAK;YACtBP;UACF,CAA4B;UAE5B,OAAOP,KAAK,CAAC,eAAe,CAAC,GAAGmB,SAAS,CAAC,IAAI,EAAE;QAClD;QAEA,MAAMA,SAAS,GAAG;UAChBD,KAAK;UACLD,IAAI,EAAEA,IAAI,CAACM,GAAG;UACdC,YAAY,EAAEP,IAAI;UAClBhB,OAAO,EAAEA,OAAO,CAACa,KAAK;UACtBV,UAAU;UACVD,YAAY;UACZE,UAAU;UACVC;QACF,CAAyB;QAEzB,MAAMmB,aAAa,GAAG;UACpB,GAAGN,SAAS;UACZvB,KAAK,EAAEzB,UAAU,CACf;YACEuD,GAAG,EAAE,QAAQT,IAAI,CAACS,GAAG,IAAIT,IAAI,CAACC,KAAK,EAAE;YACrCS,OAAO,EAAEzB,aAAa,CAACY,KAAK,GAAG,MAAM;cACnCX,YAAY,CAACc,IAAI,CAAC;YACpB,CAAC,GAAGW,SAAS;YACbV,KAAK;YACLD,IAAI;YACJvC,KAAK,EAAEkB,KAAK,CAAClB,KAAK;YAClBc,SAAS,EAAEI,KAAK,CAACJ,SAAS;YAC1BqC,YAAY,EAAEjC,KAAK,CAACiC,YAAY;YAChCC,UAAU,EAAElC,KAAK,CAACkC,UAAU;YAC5BC,OAAO,EAAEnC,KAAK,CAACmC,OAAO;YACtBrB,MAAM,EAAEA,MAAM,CAACI;UACjB,CAAC,EACDzC,wBAAwB,CAAC0B,KAAK,EAAE,MAAM,EAAE,MAAMoB,SAAS,CAAC,EACxD,OAAOvB,KAAK,CAACP,QAAQ,KAAK,UAAU,GAChCO,KAAK,CAACP,QAAQ,CAAC;YACf4B,IAAI,EAAEE,SAAS,CAACF,IAAI;YACpBC,KAAK,EAAEC,SAAS,CAACD,KAAK;YACtBM,YAAY,EAAEL,SAAS,CAACK;UAC1B,CAAC,CAAC,GACA5B,KAAK,CAACP,QACZ;QACF,CAAC;QAED,OAAAwB,mBAAA,CAAAE,SAAA;UAAA,OACkBU,aAAa,CAAC7B,KAAK,CAAC8B;QAAG,IACnC1B,KAAK,CAACiB,IAAI,GAAGjB,KAAK,CAACiB,IAAI,CAACQ,aAAa,CAAC,GAAAL,YAAA,CAAA1D,aAAA,EAE/B+D,aAAa,CAAC7B,KAAK,EACdI,KAAK,CAElB,EAECI,UAAU,CAACa,IAAI,CAAC,IAAIjB,KAAK,CAAC,cAAc,CAAC,GAAGmB,SAAS,CAAC;MAG9D,CAAC,CAAC;IAGR,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}