vuetify 3.1.14 → 3.1.15

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 (97) hide show
  1. package/dist/json/attributes.json +149 -97
  2. package/dist/json/importMap.json +70 -70
  3. package/dist/json/tags.json +13 -0
  4. package/dist/json/web-types.json +440 -209
  5. package/dist/vuetify-labs.css +161 -152
  6. package/dist/vuetify-labs.d.ts +518 -160
  7. package/dist/vuetify-labs.esm.js +176 -116
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +176 -116
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +11 -2
  12. package/dist/vuetify.d.ts +486 -161
  13. package/dist/vuetify.esm.js +118 -68
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +118 -68
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +728 -717
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.css +9 -0
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs +50 -6
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
  24. package/lib/components/VAutocomplete/index.d.ts +29 -17
  25. package/lib/components/VCard/VCard.mjs.map +1 -1
  26. package/lib/components/VCard/index.d.ts +21 -16
  27. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  28. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  29. package/lib/components/VCheckbox/index.d.ts +22 -1
  30. package/lib/components/VCombobox/VCombobox.css +1 -1
  31. package/lib/components/VCombobox/VCombobox.mjs +6 -4
  32. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  33. package/lib/components/VCombobox/VCombobox.sass +1 -1
  34. package/lib/components/VCombobox/index.d.ts +29 -17
  35. package/lib/components/VField/index.d.ts +6 -0
  36. package/lib/components/VFileInput/VFileInput.mjs +13 -17
  37. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  38. package/lib/components/VFileInput/index.d.ts +68 -23
  39. package/lib/components/VInput/VInput.mjs +14 -7
  40. package/lib/components/VInput/VInput.mjs.map +1 -1
  41. package/lib/components/VInput/index.d.ts +22 -1
  42. package/lib/components/VOverlay/locationStrategies.mjs +9 -4
  43. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  44. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  45. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  46. package/lib/components/VRadioGroup/index.d.ts +22 -1
  47. package/lib/components/VRangeSlider/VRangeSlider.mjs +2 -2
  48. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  49. package/lib/components/VRangeSlider/index.d.ts +22 -1
  50. package/lib/components/VSelect/VSelect.mjs +6 -0
  51. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  52. package/lib/components/VSelect/index.d.ts +32 -17
  53. package/lib/components/VSlider/VSlider.mjs +2 -2
  54. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  55. package/lib/components/VSlider/index.d.ts +22 -1
  56. package/lib/components/VSwitch/VSwitch.mjs +5 -3
  57. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  58. package/lib/components/VSwitch/index.d.ts +43 -1
  59. package/lib/components/VTextField/VTextField.mjs +4 -12
  60. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  61. package/lib/components/VTextField/index.d.ts +70 -22
  62. package/lib/components/VTextarea/VTextarea.mjs +4 -12
  63. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  64. package/lib/components/VTextarea/index.d.ts +61 -22
  65. package/lib/components/VTreeview/_mixins.sass +0 -0
  66. package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -0
  67. package/lib/components/VValidation/index.d.ts +10 -1
  68. package/lib/components/index.d.ts +465 -140
  69. package/lib/composables/focus.mjs +3 -2
  70. package/lib/composables/focus.mjs.map +1 -1
  71. package/lib/composables/items.mjs +7 -2
  72. package/lib/composables/items.mjs.map +1 -1
  73. package/lib/entry-bundler.mjs +1 -1
  74. package/lib/framework.mjs +1 -1
  75. package/lib/iconsets/mdi-svg.mjs +2 -2
  76. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  77. package/lib/index.d.ts +21 -21
  78. package/lib/labs/VDataTable/VDataTable.mjs +2 -2
  79. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  80. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  81. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  82. package/lib/labs/VDataTable/VDataTableRows.mjs +52 -44
  83. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  84. package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
  85. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  86. package/lib/labs/VDataTable/VDataTableVirtual.mjs +0 -1
  87. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  88. package/lib/labs/VDataTable/composables/options.mjs +2 -1
  89. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  90. package/lib/labs/VDataTable/index.d.ts +44 -11
  91. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +1 -0
  92. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  93. package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
  94. package/lib/labs/components.d.ts +53 -20
  95. package/lib/locale/el.mjs +0 -0
  96. package/lib/locale/index.mjs +0 -0
  97. package/package.json +2 -2
@@ -1,10 +1,11 @@
1
1
  // Components
2
2
  import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
3
3
  import { computed } from 'vue';
4
- import { getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
4
+ import { EventProp, getCurrentInstanceName, propsFactory } from "../util/index.mjs"; // Types
5
5
  // Composables
6
6
  export const makeFocusProps = propsFactory({
7
- focused: Boolean
7
+ focused: Boolean,
8
+ 'onUpdate:focused': EventProp()
8
9
  }, 'focus');
9
10
  export function useFocus(props) {
10
11
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
@@ -1 +1 @@
1
- {"version":3,"file":"focus.mjs","names":["useProxiedModel","computed","getCurrentInstanceName","propsFactory","makeFocusProps","focused","Boolean","useFocus","props","name","arguments","length","undefined","isFocused","focusClasses","value","focus","blur"],"sources":["../../src/composables/focus.ts"],"sourcesContent":["// Components\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((val: boolean) => void) | undefined\n}\n\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n}, 'focus')\n\nexport function useFocus (\n props: FocusProps,\n name = getCurrentInstanceName()\n) {\n const isFocused = useProxiedModel(props, 'focused')\n const focusClasses = computed(() => {\n return ({\n [`${name}--focused`]: isFocused.value,\n })\n })\n\n function focus () {\n isFocused.value = true\n }\n\n function blur () {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,8BAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,sBAAsB,EAAEC,YAAY,6BAE7C;AAMA;AACA,OAAO,MAAMC,cAAc,GAAGD,YAAY,CAAC;EACzCE,OAAO,EAAEC;AACX,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,SAASC,QAAQA,CACtBC,KAAiB,EAEjB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGR,sBAAsB,EAAE;EAE/B,MAAMW,SAAS,GAAGb,eAAe,CAACQ,KAAK,EAAE,SAAS,CAAC;EACnD,MAAMM,YAAY,GAAGb,QAAQ,CAAC,MAAM;IAClC,OAAQ;MACN,CAAE,GAAEQ,IAAK,WAAU,GAAGI,SAAS,CAACE;IAClC,CAAC;EACH,CAAC,CAAC;EAEF,SAASC,KAAKA,CAAA,EAAI;IAChBH,SAAS,CAACE,KAAK,GAAG,IAAI;EACxB;EAEA,SAASE,IAAIA,CAAA,EAAI;IACfJ,SAAS,CAACE,KAAK,GAAG,KAAK;EACzB;EAEA,OAAO;IAAED,YAAY;IAAED,SAAS;IAAEG,KAAK;IAAEC;EAAK,CAAC;AACjD"}
1
+ {"version":3,"file":"focus.mjs","names":["useProxiedModel","computed","EventProp","getCurrentInstanceName","propsFactory","makeFocusProps","focused","Boolean","useFocus","props","name","arguments","length","undefined","isFocused","focusClasses","value","focus","blur"],"sources":["../../src/composables/focus.ts"],"sourcesContent":["// Components\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((focused: boolean) => any) | undefined\n}\n\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n 'onUpdate:focused': EventProp<[FocusEvent]>(),\n}, 'focus')\n\nexport function useFocus (\n props: FocusProps,\n name = getCurrentInstanceName()\n) {\n const isFocused = useProxiedModel(props, 'focused')\n const focusClasses = computed(() => {\n return ({\n [`${name}--focused`]: isFocused.value,\n })\n })\n\n function focus () {\n isFocused.value = true\n }\n\n function blur () {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n"],"mappings":"AAAA;AAAA,SACSA,eAAe,8BAExB;AACA,SAASC,QAAQ,QAAQ,KAAK;AAAA,SACrBC,SAAS,EAAEC,sBAAsB,EAAEC,YAAY,6BAExD;AAMA;AACA,OAAO,MAAMC,cAAc,GAAGD,YAAY,CAAC;EACzCE,OAAO,EAAEC,OAAO;EAChB,kBAAkB,EAAEL,SAAS;AAC/B,CAAC,EAAE,OAAO,CAAC;AAEX,OAAO,SAASM,QAAQA,CACtBC,KAAiB,EAEjB;EAAA,IADAC,IAAI,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGR,sBAAsB,EAAE;EAE/B,MAAMW,SAAS,GAAGd,eAAe,CAACS,KAAK,EAAE,SAAS,CAAC;EACnD,MAAMM,YAAY,GAAGd,QAAQ,CAAC,MAAM;IAClC,OAAQ;MACN,CAAE,GAAES,IAAK,WAAU,GAAGI,SAAS,CAACE;IAClC,CAAC;EACH,CAAC,CAAC;EAEF,SAASC,KAAKA,CAAA,EAAI;IAChBH,SAAS,CAACE,KAAK,GAAG,IAAI;EACxB;EAEA,SAASE,IAAIA,CAAA,EAAI;IACfJ,SAAS,CAACE,KAAK,GAAG,KAAK;EACzB;EAEA,OAAO;IAAED,YAAY;IAAED,SAAS;IAAEG,KAAK;IAAEC;EAAK,CAAC;AACjD"}
@@ -1,6 +1,6 @@
1
1
  // Utilities
2
2
  import { computed } from 'vue';
3
- import { getPropertyFromItem, pick, propsFactory } from "../util/index.mjs"; // Types
3
+ import { deepEqual, getPropertyFromItem, pick, propsFactory } from "../util/index.mjs"; // Types
4
4
  // Composables
5
5
  export const makeItemsProps = propsFactory({
6
6
  items: {
@@ -53,7 +53,12 @@ export function transformItems(props, items) {
53
53
  export function useItems(props) {
54
54
  const items = computed(() => transformItems(props, props.items));
55
55
  function transformIn(value) {
56
- return value.map(item => transformItem(props, item));
56
+ return value.map(v => {
57
+ const existingItem = items.value.find(item => deepEqual(v, item.value));
58
+ // Nullish existingItem means value is a custom input value from combobox
59
+ // In this case, use transformItem to create an InternalItem based on value
60
+ return existingItem ?? transformItem(props, v);
61
+ });
57
62
  }
58
63
  function transformOut(value) {
59
64
  return value.map(_ref => {
@@ -1 +1 @@
1
- {"version":3,"file":"items.mjs","names":["computed","getPropertyFromItem","pick","propsFactory","makeItemsProps","items","type","Array","default","itemTitle","String","Function","itemValue","itemChildren","Boolean","itemProps","returnObject","transformItem","props","item","title","value","children","isArray","undefined","_props","transformItems","raw","array","push","useItems","transformIn","map","transformOut","_ref"],"sources":["../../src/composables/items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nexport interface InternalItem<T = any> {\n title: string\n value: any\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: InternalItem<T>[]\n raw: T\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType<ItemProps['items']>,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'props',\n },\n returnObject: Boolean,\n}, 'item')\n\nexport function transformItem (props: Omit<ItemProps, 'items'>, item: any) {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? pick(item, ['children'])[1]\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit<ItemProps, 'items'>, items: ItemProps['items']) {\n const array: InternalItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n function transformIn (value: any[]): InternalItem[] {\n return value.map(item => transformItem(props, item))\n }\n\n function transformOut (value: InternalItem[]) {\n return value.map(({ props }) => props.value)\n }\n\n return { items, transformIn, transformOut }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"items.mjs","names":["computed","deepEqual","getPropertyFromItem","pick","propsFactory","makeItemsProps","items","type","Array","default","itemTitle","String","Function","itemValue","itemChildren","Boolean","itemProps","returnObject","transformItem","props","item","title","value","children","isArray","undefined","_props","transformItems","raw","array","push","useItems","transformIn","map","v","existingItem","find","transformOut","_ref"],"sources":["../../src/composables/items.ts"],"sourcesContent":["// Utilities\nimport { computed } from 'vue'\nimport { deepEqual, getPropertyFromItem, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nexport interface InternalItem<T = any> {\n title: string\n value: any\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: InternalItem<T>[]\n raw: T\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType<ItemProps['items']>,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n itemChildren: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'props',\n },\n returnObject: Boolean,\n}, 'item')\n\nexport function transformItem (props: Omit<ItemProps, 'items'>, item: any) {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = props.returnObject ? item : getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? typeof item === 'object' && item != null && !Array.isArray(item)\n ? 'children' in item\n ? pick(item, ['children'])[1]\n : item\n : undefined\n : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: String(_props.title ?? ''),\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nexport function transformItems (props: Omit<ItemProps, 'items'>, items: ItemProps['items']) {\n const array: InternalItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n function transformIn (value: any[]): InternalItem[] {\n return value.map(v => {\n const existingItem = items.value.find(item => deepEqual(v, item.value))\n // Nullish existingItem means value is a custom input value from combobox\n // In this case, use transformItem to create an InternalItem based on value\n return existingItem ?? transformItem(props, v)\n })\n }\n\n function transformOut (value: InternalItem[]) {\n return value.map(({ props }) => props.value)\n }\n\n return { items, transformIn, transformOut }\n}\n"],"mappings":"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"}
@@ -10,7 +10,7 @@ export const createVuetify = function () {
10
10
  ...options
11
11
  });
12
12
  };
13
- export const version = "3.1.14";
13
+ export const version = "3.1.15";
14
14
  createVuetify.version = version;
15
15
  export { components, directives };
16
16
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -89,7 +89,7 @@ export function createVuetify() {
89
89
  locale
90
90
  };
91
91
  }
92
- export const version = "3.1.14";
92
+ export const version = "3.1.15";
93
93
  createVuetify.version = version;
94
94
 
95
95
  // Vue's inject() can only be used in setup
@@ -11,8 +11,8 @@ const aliases = {
11
11
  clear: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',
12
12
  success: 'M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z',
13
13
  info: 'M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',
14
- warning: 'M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z',
15
- error: 'M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z',
14
+ warning: 'M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z',
15
+ error: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',
16
16
  prev: 'M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z',
17
17
  next: 'M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z',
18
18
  checkboxOn: 'M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',
@@ -1 +1 @@
1
- {"version":3,"file":"mdi-svg.mjs","names":["VSvgIcon","aliases","collapse","complete","cancel","close","delete","clear","success","info","warning","error","prev","next","checkboxOn","checkboxOff","checkboxIndeterminate","delimiter","sortAsc","sortDesc","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","first","last","unfold","file","plus","minus","mdi","component"],"sources":["../../src/iconsets/mdi-svg.ts"],"sourcesContent":["/* eslint-disable max-len */\n\n// Components\nimport { VSvgIcon } from '@/composables/icons'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z',\n complete: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z',\n cancel: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n close: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z',\n delete: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z', // delete (e.g. v-chip close)\n clear: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n success: 'M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z',\n info: 'M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n warning: 'M11,4.5H13V15.5H11V4.5M13,17.5V19.5H11V17.5H13Z',\n error: 'M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z',\n prev: 'M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z',\n next: 'M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z',\n checkboxOn: 'M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n checkboxOff: 'M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z',\n checkboxIndeterminate: 'M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n delimiter: 'M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z', // for carousel\n sortAsc: 'M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z',\n sortDesc: 'M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z',\n expand: 'M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z',\n menu: 'M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z',\n subgroup: 'M7,10L12,15L17,10H7Z',\n dropdown: 'M7,10L12,15L17,10H7Z',\n radioOn: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z',\n radioOff: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n edit: 'M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z',\n ratingEmpty: 'M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n ratingFull: 'M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z',\n ratingHalf: 'M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n loading: 'M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12',\n first: 'M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z',\n last: 'M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z',\n unfold: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z',\n file: 'M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z',\n plus: 'M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z',\n minus: 'M19,13H5V11H19V13Z',\n}\n\nconst mdi: IconSet = {\n component: VSvgIcon,\n}\n\nexport { aliases, mdi }\n"],"mappings":"AAAA;AAEA;AAAA,SACSA,QAAQ,oCAEjB;AAGA,MAAMC,OAAoB,GAAG;EAC3BC,QAAQ,EAAE,8DAA8D;EACxEC,QAAQ,EAAE,yDAAyD;EACnEC,MAAM,EAAE,0MAA0M;EAClNC,KAAK,EAAE,+GAA+G;EACtHC,MAAM,EAAE,0MAA0M;EAAE;EACpNC,KAAK,EAAE,0MAA0M;EACjNC,OAAO,EAAE,2JAA2J;EACpKC,IAAI,EAAE,0HAA0H;EAChIC,OAAO,EAAE,iDAAiD;EAC1DC,KAAK,EAAE,mDAAmD;EAC1DC,IAAI,EAAE,+DAA+D;EACrEC,IAAI,EAAE,6DAA6D;EACnEC,UAAU,EAAE,gJAAgJ;EAC5JC,WAAW,EAAE,gHAAgH;EAC7HC,qBAAqB,EAAE,+GAA+G;EACtIC,SAAS,EAAE,8FAA8F;EAAE;EAC3GC,OAAO,EAAE,wEAAwE;EACjFC,QAAQ,EAAE,yEAAyE;EACnFC,MAAM,EAAE,4DAA4D;EACpEC,IAAI,EAAE,gDAAgD;EACtDC,QAAQ,EAAE,sBAAsB;EAChCC,QAAQ,EAAE,sBAAsB;EAChCC,OAAO,EAAE,qRAAqR;EAC9RC,QAAQ,EAAE,0LAA0L;EACpMC,IAAI,EAAE,qJAAqJ;EAC3JC,WAAW,EAAE,iNAAiN;EAC9NC,UAAU,EAAE,sGAAsG;EAClHC,UAAU,EAAE,gKAAgK;EAC5KC,OAAO,EAAE,sPAAsP;EAC/PC,KAAK,EAAE,6EAA6E;EACpFC,IAAI,EAAE,0EAA0E;EAChFC,MAAM,EAAE,mHAAmH;EAC3HC,IAAI,EAAE,6WAA6W;EACnXC,IAAI,EAAE,2CAA2C;EACjDC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,GAAY,GAAG;EACnBC,SAAS,EAAEtC;AACb,CAAC;AAED,SAASC,OAAO,EAAEoC,GAAG"}
1
+ {"version":3,"file":"mdi-svg.mjs","names":["VSvgIcon","aliases","collapse","complete","cancel","close","delete","clear","success","info","warning","error","prev","next","checkboxOn","checkboxOff","checkboxIndeterminate","delimiter","sortAsc","sortDesc","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","first","last","unfold","file","plus","minus","mdi","component"],"sources":["../../src/iconsets/mdi-svg.ts"],"sourcesContent":["/* eslint-disable max-len */\n\n// Components\nimport { VSvgIcon } from '@/composables/icons'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z',\n complete: 'M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z',\n cancel: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n close: 'M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z',\n delete: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z', // delete (e.g. v-chip close)\n clear: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n success: 'M12,2C17.52,2 22,6.48 22,12C22,17.52 17.52,22 12,22C6.48,22 2,17.52 2,12C2,6.48 6.48,2 12,2M11,16.5L18,9.5L16.59,8.09L11,13.67L7.91,10.59L6.5,12L11,16.5Z',\n info: 'M13,9H11V7H13M13,17H11V11H13M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n warning: 'M13,13H11V7H13M13,17H11V15H13M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z',\n error: 'M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z',\n prev: 'M15.41,16.58L10.83,12L15.41,7.41L14,6L8,12L14,18L15.41,16.58Z',\n next: 'M8.59,16.58L13.17,12L8.59,7.41L10,6L16,12L10,18L8.59,16.58Z',\n checkboxOn: 'M10,17L5,12L6.41,10.58L10,14.17L17.59,6.58L19,8M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n checkboxOff: 'M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3M19,5V19H5V5H19Z',\n checkboxIndeterminate: 'M17,13H7V11H17M19,3H5C3.89,3 3,3.89 3,5V19C3,20.1 3.9,21 5,21H19C20.1,21 21,20.1 21,19V5C21,3.89 20.1,3 19,3Z',\n delimiter: 'M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z', // for carousel\n sortAsc: 'M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z',\n sortDesc: 'M11,4H13V16L18.5,10.5L19.92,11.92L12,19.84L4.08,11.92L5.5,10.5L11,16V4Z',\n expand: 'M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z',\n menu: 'M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z',\n subgroup: 'M7,10L12,15L17,10H7Z',\n dropdown: 'M7,10L12,15L17,10H7Z',\n radioOn: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2M12,7C9.24,7 7,9.24 7,12C7,14.76 9.24,17 12,17C14.76,17 17,14.76 17,12C17,9.24 14.76,7 12,7Z',\n radioOff: 'M12,20C7.58,20 4,16.42 4,12C4,7.58 7.58,4 12,4C16.42,4 20,7.58 20,12C20,16.42 16.42,20 12,20M12,2C6.48,2 2,6.48 2,12C2,17.52 6.48,22 12,22C17.52,22 22,17.52 22,12C22,6.48 17.52,2 12,2Z',\n edit: 'M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z',\n ratingEmpty: 'M12,15.39L8.24,17.66L9.23,13.38L5.91,10.5L10.29,10.13L12,6.09L13.71,10.13L18.09,10.5L14.77,13.38L15.76,17.66M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n ratingFull: 'M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z',\n ratingHalf: 'M12,15.4V6.1L13.71,10.13L18.09,10.5L14.77,13.39L15.76,17.67M22,9.24L14.81,8.63L12,2L9.19,8.63L2,9.24L7.45,13.97L5.82,21L12,17.27L18.18,21L16.54,13.97L22,9.24Z',\n loading: 'M19,8L15,12H18C18,15.31 15.31,18 12,18C11,18 10.03,17.75 9.2,17.3L7.74,18.76C8.97,19.54 10.43,20 12,20C16.42,20 20,16.42 20,12H23M6,12C6,8.69 8.69,6 12,6C13,6 13.97,6.25 14.8,6.7L16.26,5.24C15.03,4.46 13.57,4 12,4C7.58,4 4,7.58 4,12H1L5,16L9,12',\n first: 'M18.41,16.59L13.82,12L18.41,7.41L17,6L11,12L17,18L18.41,16.59M6,6H8V18H6V6Z',\n last: 'M5.59,7.41L10.18,12L5.59,16.59L7,18L13,12L7,6L5.59,7.41M16,6H18V18H16V6Z',\n unfold: 'M12,18.17L8.83,15L7.42,16.41L12,21L16.59,16.41L15.17,15M12,5.83L15.17,9L16.58,7.59L12,3L7.41,7.59L8.83,9L12,5.83Z',\n file: 'M16.5,6V17.5C16.5,19.71 14.71,21.5 12.5,21.5C10.29,21.5 8.5,19.71 8.5,17.5V5C8.5,3.62 9.62,2.5 11,2.5C12.38,2.5 13.5,3.62 13.5,5V15.5C13.5,16.05 13.05,16.5 12.5,16.5C11.95,16.5 11.5,16.05 11.5,15.5V6H10V15.5C10,16.88 11.12,18 12.5,18C13.88,18 15,16.88 15,15.5V5C15,2.79 13.21,1 11,1C8.79,1 7,2.79 7,5V17.5C7,20.54 9.46,23 12.5,23C15.54,23 18,20.54 18,17.5V6H16.5Z',\n plus: 'M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z',\n minus: 'M19,13H5V11H19V13Z',\n}\n\nconst mdi: IconSet = {\n component: VSvgIcon,\n}\n\nexport { aliases, mdi }\n"],"mappings":"AAAA;AAEA;AAAA,SACSA,QAAQ,oCAEjB;AAGA,MAAMC,OAAoB,GAAG;EAC3BC,QAAQ,EAAE,8DAA8D;EACxEC,QAAQ,EAAE,yDAAyD;EACnEC,MAAM,EAAE,0MAA0M;EAClNC,KAAK,EAAE,+GAA+G;EACtHC,MAAM,EAAE,0MAA0M;EAAE;EACpNC,KAAK,EAAE,0MAA0M;EACjNC,OAAO,EAAE,2JAA2J;EACpKC,IAAI,EAAE,0HAA0H;EAChIC,OAAO,EAAE,2GAA2G;EACpHC,KAAK,EAAE,0MAA0M;EACjNC,IAAI,EAAE,+DAA+D;EACrEC,IAAI,EAAE,6DAA6D;EACnEC,UAAU,EAAE,gJAAgJ;EAC5JC,WAAW,EAAE,gHAAgH;EAC7HC,qBAAqB,EAAE,+GAA+G;EACtIC,SAAS,EAAE,8FAA8F;EAAE;EAC3GC,OAAO,EAAE,wEAAwE;EACjFC,QAAQ,EAAE,yEAAyE;EACnFC,MAAM,EAAE,4DAA4D;EACpEC,IAAI,EAAE,gDAAgD;EACtDC,QAAQ,EAAE,sBAAsB;EAChCC,QAAQ,EAAE,sBAAsB;EAChCC,OAAO,EAAE,qRAAqR;EAC9RC,QAAQ,EAAE,0LAA0L;EACpMC,IAAI,EAAE,qJAAqJ;EAC3JC,WAAW,EAAE,iNAAiN;EAC9NC,UAAU,EAAE,sGAAsG;EAClHC,UAAU,EAAE,gKAAgK;EAC5KC,OAAO,EAAE,sPAAsP;EAC/PC,KAAK,EAAE,6EAA6E;EACpFC,IAAI,EAAE,0EAA0E;EAChFC,MAAM,EAAE,mHAAmH;EAC3HC,IAAI,EAAE,6WAA6W;EACnXC,IAAI,EAAE,2CAA2C;EACjDC,KAAK,EAAE;AACT,CAAC;AAED,MAAMC,GAAY,GAAG;EACnBC,SAAS,EAAEtC;AACb,CAAC;AAED,SAASC,OAAO,EAAEoC,GAAG"}
package/lib/index.d.ts CHANGED
@@ -312,32 +312,32 @@ declare module '@vue/runtime-core' {
312
312
 
313
313
  export interface GlobalComponents {
314
314
  VApp: typeof import('vuetify/components')['VApp']
315
- VAppBar: typeof import('vuetify/components')['VAppBar']
316
- VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
317
- VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
318
315
  VAlert: typeof import('vuetify/components')['VAlert']
319
316
  VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
320
317
  VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
321
- VAvatar: typeof import('vuetify/components')['VAvatar']
318
+ VAppBar: typeof import('vuetify/components')['VAppBar']
319
+ VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
320
+ VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
322
321
  VBadge: typeof import('vuetify/components')['VBadge']
323
322
  VBanner: typeof import('vuetify/components')['VBanner']
324
323
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
325
324
  VBannerText: typeof import('vuetify/components')['VBannerText']
325
+ VAvatar: typeof import('vuetify/components')['VAvatar']
326
326
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
327
327
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
328
328
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
329
329
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
330
330
  VBtn: typeof import('vuetify/components')['VBtn']
331
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
332
331
  VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
332
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
333
+ VCarousel: typeof import('vuetify/components')['VCarousel']
334
+ VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
333
335
  VCard: typeof import('vuetify/components')['VCard']
334
336
  VCardActions: typeof import('vuetify/components')['VCardActions']
335
337
  VCardItem: typeof import('vuetify/components')['VCardItem']
336
338
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
337
339
  VCardText: typeof import('vuetify/components')['VCardText']
338
340
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
339
- VCarousel: typeof import('vuetify/components')['VCarousel']
340
- VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
341
341
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
342
342
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
343
343
  VChip: typeof import('vuetify/components')['VChip']
@@ -345,8 +345,8 @@ declare module '@vue/runtime-core' {
345
345
  VCode: typeof import('vuetify/components')['VCode']
346
346
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
347
347
  VCombobox: typeof import('vuetify/components')['VCombobox']
348
- VCounter: typeof import('vuetify/components')['VCounter']
349
348
  VDialog: typeof import('vuetify/components')['VDialog']
349
+ VCounter: typeof import('vuetify/components')['VCounter']
350
350
  VDivider: typeof import('vuetify/components')['VDivider']
351
351
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
352
352
  VExpansionPanel: typeof import('vuetify/components')['VExpansionPanel']
@@ -354,15 +354,15 @@ declare module '@vue/runtime-core' {
354
354
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
355
355
  VField: typeof import('vuetify/components')['VField']
356
356
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
357
- VFooter: typeof import('vuetify/components')['VFooter']
358
357
  VFileInput: typeof import('vuetify/components')['VFileInput']
358
+ VFooter: typeof import('vuetify/components')['VFooter']
359
+ VImg: typeof import('vuetify/components')['VImg']
360
+ VInput: typeof import('vuetify/components')['VInput']
359
361
  VIcon: typeof import('vuetify/components')['VIcon']
360
362
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
361
363
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
362
364
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
363
365
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
364
- VImg: typeof import('vuetify/components')['VImg']
365
- VInput: typeof import('vuetify/components')['VInput']
366
366
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
367
367
  VItem: typeof import('vuetify/components')['VItem']
368
368
  VKbd: typeof import('vuetify/components')['VKbd']
@@ -376,10 +376,10 @@ declare module '@vue/runtime-core' {
376
376
  VListItemSubtitle: typeof import('vuetify/components')['VListItemSubtitle']
377
377
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
378
378
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
379
- VMain: typeof import('vuetify/components')['VMain']
380
379
  VMenu: typeof import('vuetify/components')['VMenu']
381
380
  VMessages: typeof import('vuetify/components')['VMessages']
382
381
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
382
+ VMain: typeof import('vuetify/components')['VMain']
383
383
  VOverlay: typeof import('vuetify/components')['VOverlay']
384
384
  VPagination: typeof import('vuetify/components')['VPagination']
385
385
  VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
@@ -393,11 +393,11 @@ declare module '@vue/runtime-core' {
393
393
  VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
394
394
  VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
395
395
  VSlider: typeof import('vuetify/components')['VSlider']
396
- VSnackbar: typeof import('vuetify/components')['VSnackbar']
397
- VSwitch: typeof import('vuetify/components')['VSwitch']
398
396
  VSystemBar: typeof import('vuetify/components')['VSystemBar']
397
+ VSnackbar: typeof import('vuetify/components')['VSnackbar']
399
398
  VTabs: typeof import('vuetify/components')['VTabs']
400
399
  VTab: typeof import('vuetify/components')['VTab']
400
+ VSwitch: typeof import('vuetify/components')['VSwitch']
401
401
  VTable: typeof import('vuetify/components')['VTable']
402
402
  VTextarea: typeof import('vuetify/components')['VTextarea']
403
403
  VTextField: typeof import('vuetify/components')['VTextField']
@@ -406,26 +406,25 @@ declare module '@vue/runtime-core' {
406
406
  VToolbar: typeof import('vuetify/components')['VToolbar']
407
407
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
408
408
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
409
- VTooltip: typeof import('vuetify/components')['VTooltip']
410
409
  VWindow: typeof import('vuetify/components')['VWindow']
411
410
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
412
- VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
413
- VForm: typeof import('vuetify/components')['VForm']
411
+ VTooltip: typeof import('vuetify/components')['VTooltip']
412
+ VHover: typeof import('vuetify/components')['VHover']
414
413
  VContainer: typeof import('vuetify/components')['VContainer']
415
414
  VCol: typeof import('vuetify/components')['VCol']
416
415
  VRow: typeof import('vuetify/components')['VRow']
417
416
  VSpacer: typeof import('vuetify/components')['VSpacer']
418
- VHover: typeof import('vuetify/components')['VHover']
417
+ VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
418
+ VForm: typeof import('vuetify/components')['VForm']
419
419
  VLayout: typeof import('vuetify/components')['VLayout']
420
420
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
421
421
  VLazy: typeof import('vuetify/components')['VLazy']
422
422
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
423
423
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
424
- VParallax: typeof import('vuetify/components')['VParallax']
425
424
  VRadio: typeof import('vuetify/components')['VRadio']
426
- VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
427
425
  VResponsive: typeof import('vuetify/components')['VResponsive']
428
- VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
426
+ VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
427
+ VParallax: typeof import('vuetify/components')['VParallax']
429
428
  VValidation: typeof import('vuetify/components')['VValidation']
430
429
  VFabTransition: typeof import('vuetify/components')['VFabTransition']
431
430
  VDialogBottomTransition: typeof import('vuetify/components')['VDialogBottomTransition']
@@ -443,5 +442,6 @@ declare module '@vue/runtime-core' {
443
442
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
444
443
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
445
444
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
445
+ VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
446
446
  }
447
447
  }
@@ -32,12 +32,12 @@ export const makeVDataTableProps = propsFactory({
32
32
  width: [String, Number],
33
33
  fixedHeader: Boolean,
34
34
  fixedFooter: Boolean,
35
- 'onClick:row': Function
35
+ 'onClick:row': Function,
36
+ search: String
36
37
  }, 'v-data-table');
37
38
  export const VDataTable = genericComponent()({
38
39
  name: 'VDataTable',
39
40
  props: {
40
- search: String,
41
41
  ...makeVDataTableProps(),
42
42
  ...makeDataTableExpandProps(),
43
43
  ...makeDataTableGroupProps(),
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","makeDataTableExpandProps","provideExpanded","useOptions","provideDefaults","computed","toRef","genericComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","hover","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","Function","VDataTable","name","props","search","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","_createVNode","top","_Fragment","colgroup","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [InternalDataTableHeader]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n hover: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","provideSort","useSortedItems","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","makeDataTableExpandProps","provideExpanded","useOptions","provideDefaults","computed","toRef","genericComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","hover","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","Function","search","VDataTable","name","props","emits","value","setup","_ref","emit","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","showSelect","showExpand","items","filterKeys","map","c","key","filteredItems","sortByWithGroups","opened","extractRows","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","paginatedItems","paginatedItemsWithoutGroups","_createVNode","top","_Fragment","colgroup","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableHeader } from './types'\n\nexport type VDataTableSlots = VDataTableRowsSlots & {\n colgroup: [InternalDataTableHeader]\n default: []\n top: []\n headers: []\n body: []\n tbody: []\n thead: []\n tfoot: []\n bottom: []\n 'footer.prepend': []\n}\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n hover: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n 'onClick:row': Function as PropType<(e: Event, value: { item: DataTableItem }) => void>,\n search: String,\n}, 'v-data-table')\n\nexport const VDataTable = genericComponent<VDataTableSlots>()({\n name: 'VDataTable',\n\n props: {\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { emit, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const filterKeys = computed(() => columns.value.map(c => 'columns.' + c.key))\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter<DataTableItem>(props, items, search, { filterKeys })\n\n provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n provideSelection(props, paginatedItemsWithoutGroups)\n\n provideExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n hover={ props.hover }\n >\n {{\n top: slots.top,\n default: slots.default ?? (() => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n )}\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ props['onClick:row'] }\n v-slots={ slots }\n />\n )}\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n )),\n bottom: slots.bottom ?? (() => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n )),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableFooter.mjs","names":["VBtn","VSelect","useLocale","usePagination","computed","genericComponent","VDataTableFooter","name","props","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","_createVNode","prepend","v","Number","onClick","Math","max","min"],"sources":["../../../src/labs/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { usePagination } from './composables/paginate'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalItem } from '@/composables/items'\n\nexport const VDataTableFooter = genericComponent<{ prepend: [] }>()({\n name: 'VDataTableFooter',\n\n props: {\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\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<InternalItem[]>,\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 },\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 ...option,\n title: t(option.title),\n }))\n ))\n\n return () => (\n <div\n class=\"v-data-table-footer\"\n >\n { slots.prepend?.() }\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\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 <div class=\"v-data-table-footer__pagination\">\n <VBtn\n icon={ props.firstIcon }\n variant=\"plain\"\n onClick={ () => page.value = 1 }\n disabled={ page.value === 1 }\n aria-label={ t(props.firstPageLabel) }\n />\n <VBtn\n icon={ props.prevIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.max(1, page.value - 1) }\n disabled={ page.value === 1 }\n aria-label={ t(props.prevPageLabel) }\n />\n { props.showCurrentPage && (\n <span key=\"page\" class=\"v-data-table-footer__page\">{ page.value }</span>\n )}\n <VBtn\n icon={ props.nextIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.min(pageCount.value, page.value + 1) }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.nextPageLabel) }\n />\n <VBtn\n icon={ props.lastIcon }\n variant=\"plain\"\n onClick={ () => page.value = pageCount.value }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.lastPageLabel) }\n />\n </div>\n </div>\n )\n },\n})\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableFooter.mjs","names":["VBtn","VSelect","useLocale","usePagination","computed","genericComponent","VDataTableFooter","name","props","prevIcon","type","String","default","nextIcon","firstIcon","lastIcon","itemsPerPageText","pageText","firstPageLabel","prevPageLabel","nextPageLabel","lastPageLabel","itemsPerPageOptions","Array","value","title","showCurrentPage","Boolean","setup","_ref","slots","t","page","pageCount","startIndex","stopIndex","itemsLength","itemsPerPage","setItemsPerPage","map","option","_createVNode","prepend","v","Number","onClick","Math","max","min"],"sources":["../../../src/labs/VDataTable/VDataTableFooter.tsx"],"sourcesContent":["// Styles\nimport './VDataTableFooter.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VSelect } from '@/components/VSelect'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { usePagination } from './composables/paginate'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VDataTableFooter = genericComponent<{ prepend: [] }>()({\n name: 'VDataTableFooter',\n\n props: {\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n firstIcon: {\n type: String,\n default: '$first',\n },\n lastIcon: {\n type: String,\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<{ 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 },\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 ...option,\n title: t(option.title),\n }))\n ))\n\n return () => (\n <div\n class=\"v-data-table-footer\"\n >\n { slots.prepend?.() }\n <div class=\"v-data-table-footer__items-per-page\">\n <span>{ t(props.itemsPerPageText) }</span>\n <VSelect\n items={ itemsPerPageOptions.value }\n modelValue={ itemsPerPage.value }\n onUpdate:modelValue={ v => setItemsPerPage(Number(v)) }\n density=\"compact\"\n variant=\"outlined\"\n hide-details\n />\n </div>\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 <div class=\"v-data-table-footer__pagination\">\n <VBtn\n icon={ props.firstIcon }\n variant=\"plain\"\n onClick={ () => page.value = 1 }\n disabled={ page.value === 1 }\n aria-label={ t(props.firstPageLabel) }\n />\n <VBtn\n icon={ props.prevIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.max(1, page.value - 1) }\n disabled={ page.value === 1 }\n aria-label={ t(props.prevPageLabel) }\n />\n { props.showCurrentPage && (\n <span key=\"page\" class=\"v-data-table-footer__page\">{ page.value }</span>\n )}\n <VBtn\n icon={ props.nextIcon }\n variant=\"plain\"\n onClick={ () => page.value = Math.min(pageCount.value, page.value + 1) }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.nextPageLabel) }\n />\n <VBtn\n icon={ props.lastIcon }\n variant=\"plain\"\n onClick={ () => page.value = pageCount.value }\n disabled={ page.value === pageCount.value }\n aria-label={ t(props.lastPageLabel) }\n />\n </div>\n </div>\n )\n },\n})\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableHeaders.mjs","names":["VCheckboxBtn","VDataTableColumn","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","useBackgroundColor","useHeaders","useSelection","useSort","convertToUnit","genericComponent","useRender","VDataTableHeaders","name","props","color","String","sticky","Boolean","multiSort","sortAscIcon","type","default","sortDescIcon","setup","_ref","slots","emit","toggleSort","sortBy","someSelected","allSelected","selectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","position","zIndex","undefined","left","fixedOffset","top","getSortIcon","id","item","value","find","key","order","backgroundColorClasses","backgroundColorStyles","VDataTableHeaderCell","_ref2","x","isSorted","noPadding","_createVNode","align","sortable","width","minWidth","colspan","rowspan","lastFixed","slotName","slotProps","title","findIndex","_Fragment","map","row","loading","length","loader"],"sources":["../../../src/labs/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\n\n// Utilities\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InternalDataTableHeader } from './types'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type VDataTableHeadersSlots = {\n default: []\n loader: [LoaderSlotProps]\n 'column.data-table-select': [InternalDataTableHeader, (value: boolean) => void]\n}\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: {\n color: String,\n sticky: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n\n ...makeLoaderProps(),\n },\n\n setup (props, { slots, emit }) {\n const { toggleSort, sortBy } = useSort()\n const { someSelected, allSelected, selectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n const getFixedStyles = (column: InternalDataTableHeader, y: number) => {\n if (!props.sticky && !column.fixed) return null\n\n return {\n position: 'sticky',\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined, // TODO: This needs to account for possible previous fixed columns.\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined, // TODO: This needs to account for possible row/colspan of previous columns\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (id: string) {\n const item = sortBy.value.find(item => item.key === id)\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 VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const isSorted = !!sortBy.value.find(x => x.key === column.key)\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n 'v-data-table__th',\n {\n 'v-data-table__th--sortable': column.sortable,\n 'v-data-table__th--sorted': isSorted,\n },\n loaderClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.width),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n onClick={ column.sortable ? () => toggleSort(column.key) : undefined }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n >\n {{\n default: () => {\n const slotName = `column.${column.key}`\n const slotProps = {\n column,\n selectAll,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['column.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n )\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column.key) }\n />\n )}\n { props.multiSort && isSorted && (\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 useRender(() => (\n <>\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\n <LoaderSlot\n name=\"v-data-table-headers\"\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"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableHeaders.mjs","names":["VCheckboxBtn","VDataTableColumn","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","useBackgroundColor","useHeaders","useSelection","useSort","convertToUnit","genericComponent","useRender","VDataTableHeaders","name","props","color","String","sticky","Boolean","multiSort","sortAscIcon","type","default","sortDescIcon","setup","_ref","slots","emit","toggleSort","sortBy","someSelected","allSelected","selectAll","columns","headers","loaderClasses","getFixedStyles","column","y","fixed","position","zIndex","undefined","left","fixedOffset","top","getSortIcon","id","item","value","find","key","order","backgroundColorClasses","backgroundColorStyles","VDataTableHeaderCell","_ref2","x","isSorted","noPadding","_createVNode","align","sortable","width","minWidth","colspan","rowspan","lastFixed","slotName","slotProps","title","findIndex","_Fragment","map","row","loading","length","loader"],"sources":["../../../src/labs/VDataTable/VDataTableHeaders.tsx"],"sourcesContent":["// Components\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VDataTableColumn } from './VDataTableColumn'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useHeaders } from './composables/headers'\nimport { useSelection } from './composables/select'\nimport { useSort } from './composables/sort'\n\n// Utilities\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InternalDataTableHeader } from './types'\nimport type { LoaderSlotProps } from '@/composables/loader'\n\nexport type VDataTableHeadersSlots = {\n default: []\n loader: [LoaderSlotProps]\n 'column.data-table-select': [InternalDataTableHeader, (value: boolean) => void]\n}\n\nexport const VDataTableHeaders = genericComponent<VDataTableHeadersSlots>()({\n name: 'VDataTableHeaders',\n\n props: {\n color: String,\n sticky: Boolean,\n multiSort: Boolean,\n sortAscIcon: {\n type: IconValue,\n default: '$sortAsc',\n },\n sortDescIcon: {\n type: IconValue,\n default: '$sortDesc',\n },\n\n ...makeLoaderProps(),\n },\n\n setup (props, { slots, emit }) {\n const { toggleSort, sortBy } = useSort()\n const { someSelected, allSelected, selectAll } = useSelection()\n const { columns, headers } = useHeaders()\n const { loaderClasses } = useLoader(props)\n\n const getFixedStyles = (column: InternalDataTableHeader, y: number) => {\n if (!props.sticky && !column.fixed) return null\n\n return {\n position: 'sticky',\n zIndex: column.fixed ? 4 : props.sticky ? 3 : undefined, // TODO: This needs to account for possible previous fixed columns.\n left: column.fixed ? convertToUnit(column.fixedOffset) : undefined, // TODO: This needs to account for possible row/colspan of previous columns\n top: props.sticky ? `calc(var(--v-table-header-height) * ${y})` : undefined,\n }\n }\n\n function getSortIcon (id: string) {\n const item = sortBy.value.find(item => item.key === id)\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 VDataTableHeaderCell = ({ column, x, y }: { column: InternalDataTableHeader, x: number, y: number }) => {\n const isSorted = !!sortBy.value.find(x => x.key === column.key)\n const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand'\n\n return (\n <VDataTableColumn\n tag=\"th\"\n align={ column.align }\n class={[\n 'v-data-table__th',\n {\n 'v-data-table__th--sortable': column.sortable,\n 'v-data-table__th--sorted': isSorted,\n },\n loaderClasses.value,\n ]}\n style={{\n width: convertToUnit(column.width),\n minWidth: convertToUnit(column.width),\n ...getFixedStyles(column, y),\n }}\n colspan={ column.colspan }\n rowspan={ column.rowspan }\n onClick={ column.sortable ? () => toggleSort(column.key) : undefined }\n lastFixed={ column.lastFixed }\n noPadding={ noPadding }\n >\n {{\n default: () => {\n const slotName = `column.${column.key}`\n const slotProps = {\n column,\n selectAll,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['column.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ allSelected.value }\n indeterminate={ someSelected.value && !allSelected.value }\n onUpdate:modelValue={ selectAll }\n />\n )\n }\n\n return (\n <div class=\"v-data-table-header__content\">\n <span>{ column.title }</span>\n { column.sortable && (\n <VIcon\n key=\"icon\"\n class=\"v-data-table-header__sort-icon\"\n icon={ getSortIcon(column.key) }\n />\n )}\n { props.multiSort && isSorted && (\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 useRender(() => (\n <>\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-headers\"\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"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from "vue";
1
+ import { resolveDirective as _resolveDirective, Fragment as _Fragment, createVNode as _createVNode } from "vue";
2
2
  // Components
3
3
  import { VDataTableGroupHeaderRow } from "./VDataTableGroupHeaderRow.mjs";
4
4
  import { VDataTableRow } from "./VDataTableRow.mjs"; // Composables
@@ -52,56 +52,64 @@ export const VDataTableRows = genericComponent()({
52
52
  const {
53
53
  t
54
54
  } = useLocale();
55
- useRender(() => _createVNode(_Fragment, null, [props.loading ? slots.loading?.() ?? _createVNode(VDataTableRow, {
56
- "class": "v-data-table-rows-no-data",
57
- "key": "loading"
58
- }, {
59
- default: () => [t(props.loadingText)]
60
- }) : undefined, !props.loading && !props.items.length && !props.hideNoData && (slots['no-data']?.() ?? _createVNode(VDataTableRow, {
61
- "class": "v-data-table-rows-no-data",
62
- "key": "no-data"
63
- }, {
64
- default: () => [t(props.noDataText)]
65
- })), props.items.map((item, index) => {
66
- if (item.type === 'group-header') {
67
- return slots['group-header'] ? slots['group-header']({
55
+ useRender(() => {
56
+ if (props.loading && slots.loading) {
57
+ return _createVNode("tr", {
58
+ "class": "v-data-table-rows-no-data",
59
+ "key": "loading"
60
+ }, [_createVNode("td", {
61
+ "colspan": columns.value.length
62
+ }, [slots.loading()])]);
63
+ }
64
+ if (!props.loading && !props.items.length && !props.hideNoData && slots['no-data']) {
65
+ return _createVNode("tr", {
66
+ "class": "v-data-table-rows-no-data",
67
+ "key": "no-data"
68
+ }, [_createVNode("td", {
69
+ "colspan": columns.value.length
70
+ }, [slots['no-data']?.() ?? t(props.noDataText)])]);
71
+ }
72
+ return _createVNode(_Fragment, null, [props.items.map((item, index) => {
73
+ if (item.type === 'group-header') {
74
+ return slots['group-header'] ? slots['group-header']({
75
+ index,
76
+ item,
77
+ columns: columns.value,
78
+ isExpanded,
79
+ toggleExpand,
80
+ isSelected,
81
+ toggleSelect,
82
+ toggleGroup,
83
+ isGroupOpen
84
+ }) : _createVNode(VDataTableGroupHeaderRow, {
85
+ "key": `group-header_${item.id}`,
86
+ "item": item
87
+ }, slots);
88
+ }
89
+ const slotProps = {
68
90
  index,
69
91
  item,
70
92
  columns: columns.value,
71
93
  isExpanded,
72
94
  toggleExpand,
73
95
  isSelected,
74
- toggleSelect,
75
- toggleGroup,
76
- isGroupOpen
77
- }) : _createVNode(VDataTableGroupHeaderRow, {
78
- "key": `group-header_${item.id}`,
96
+ toggleSelect
97
+ };
98
+ return _createVNode(_Fragment, null, [slots.item ? slots.item(slotProps) : _createVNode(VDataTableRow, {
99
+ "key": `item_${item.value}`,
100
+ "onClick": expandOnClick.value || props['onClick:row'] ? event => {
101
+ if (expandOnClick.value) {
102
+ toggleExpand(item);
103
+ }
104
+ props['onClick:row']?.(event, {
105
+ item
106
+ });
107
+ } : undefined,
108
+ "index": index,
79
109
  "item": item
80
- }, slots);
81
- }
82
- const slotProps = {
83
- index,
84
- item,
85
- columns: columns.value,
86
- isExpanded,
87
- toggleExpand,
88
- isSelected,
89
- toggleSelect
90
- };
91
- return _createVNode(_Fragment, null, [slots.item ? slots.item(slotProps) : _createVNode(VDataTableRow, {
92
- "key": `item_${item.value}`,
93
- "onClick": expandOnClick.value || props['onClick:row'] ? event => {
94
- if (expandOnClick.value) {
95
- toggleExpand(item);
96
- }
97
- props['onClick:row']?.(event, {
98
- item
99
- });
100
- } : undefined,
101
- "index": index,
102
- "item": item
103
- }, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
104
- })]));
110
+ }, slots), isExpanded(item) && slots['expanded-row']?.(slotProps)]);
111
+ })]);
112
+ });
105
113
  return {};
106
114
  }
107
115
  });