vuetify 3.1.14 → 3.1.16

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 (113) hide show
  1. package/dist/json/attributes.json +193 -141
  2. package/dist/json/importMap.json +8 -8
  3. package/dist/json/tags.json +13 -0
  4. package/dist/json/web-types.json +513 -282
  5. package/dist/vuetify-labs.css +465 -457
  6. package/dist/vuetify-labs.d.ts +521 -163
  7. package/dist/vuetify-labs.esm.js +272 -179
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +272 -179
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +17 -9
  12. package/dist/vuetify.d.ts +470 -145
  13. package/dist/vuetify.esm.js +178 -106
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +178 -106
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +638 -624
  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/VBreadcrumbs/VBreadcrumbs.mjs +31 -16
  26. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  27. package/lib/components/VBreadcrumbs/index.d.ts +3 -3
  28. package/lib/components/VCard/VCard.mjs.map +1 -1
  29. package/lib/components/VCard/index.d.ts +21 -16
  30. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  31. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  32. package/lib/components/VCheckbox/index.d.ts +22 -1
  33. package/lib/components/VCombobox/VCombobox.css +1 -1
  34. package/lib/components/VCombobox/VCombobox.mjs +6 -4
  35. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  36. package/lib/components/VCombobox/VCombobox.sass +1 -1
  37. package/lib/components/VCombobox/index.d.ts +29 -17
  38. package/lib/components/VDialog/VDialog.mjs +2 -2
  39. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  40. package/lib/components/VField/VField.css +0 -1
  41. package/lib/components/VField/VField.sass +0 -1
  42. package/lib/components/VField/index.d.ts +6 -0
  43. package/lib/components/VFileInput/VFileInput.mjs +13 -17
  44. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  45. package/lib/components/VFileInput/index.d.ts +68 -23
  46. package/lib/components/VInput/VInput.mjs +14 -7
  47. package/lib/components/VInput/VInput.mjs.map +1 -1
  48. package/lib/components/VInput/index.d.ts +22 -1
  49. package/lib/components/VList/VList.mjs +3 -22
  50. package/lib/components/VList/VList.mjs.map +1 -1
  51. package/lib/components/VOverlay/locationStrategies.mjs +9 -4
  52. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  53. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  54. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  55. package/lib/components/VRadioGroup/index.d.ts +22 -1
  56. package/lib/components/VRangeSlider/VRangeSlider.mjs +2 -2
  57. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  58. package/lib/components/VRangeSlider/index.d.ts +22 -1
  59. package/lib/components/VSelect/VSelect.mjs +6 -0
  60. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  61. package/lib/components/VSelect/index.d.ts +32 -17
  62. package/lib/components/VSlideGroup/VSlideGroup.mjs +2 -2
  63. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  64. package/lib/components/VSlider/VSlider.mjs +2 -2
  65. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  66. package/lib/components/VSlider/index.d.ts +22 -1
  67. package/lib/components/VSwitch/VSwitch.mjs +5 -3
  68. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  69. package/lib/components/VSwitch/index.d.ts +43 -1
  70. package/lib/components/VTextField/VTextField.mjs +4 -12
  71. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  72. package/lib/components/VTextField/index.d.ts +70 -22
  73. package/lib/components/VTextarea/VTextarea.mjs +4 -12
  74. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  75. package/lib/components/VTextarea/index.d.ts +61 -22
  76. package/lib/components/VTreeview/_mixins.sass +0 -0
  77. package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -0
  78. package/lib/components/VValidation/index.d.ts +10 -1
  79. package/lib/components/index.d.ts +468 -143
  80. package/lib/composables/focus.mjs +3 -2
  81. package/lib/composables/focus.mjs.map +1 -1
  82. package/lib/composables/items.mjs +7 -2
  83. package/lib/composables/items.mjs.map +1 -1
  84. package/lib/entry-bundler.mjs +1 -1
  85. package/lib/framework.mjs +1 -1
  86. package/lib/iconsets/mdi-svg.mjs +2 -2
  87. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  88. package/lib/index.d.ts +2 -2
  89. package/lib/labs/VDataTable/VDataTable.mjs +3 -3
  90. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  91. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  92. package/lib/labs/VDataTable/VDataTableHeaders.mjs +34 -20
  93. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  94. package/lib/labs/VDataTable/VDataTableRow.mjs +2 -4
  95. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  96. package/lib/labs/VDataTable/VDataTableRows.mjs +52 -44
  97. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  98. package/lib/labs/VDataTable/VDataTableServer.mjs +3 -2
  99. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  100. package/lib/labs/VDataTable/VDataTableVirtual.mjs +0 -1
  101. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  102. package/lib/labs/VDataTable/composables/options.mjs +2 -1
  103. package/lib/labs/VDataTable/composables/options.mjs.map +1 -1
  104. package/lib/labs/VDataTable/index.d.ts +44 -11
  105. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +1 -0
  106. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  107. package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
  108. package/lib/labs/components.d.ts +53 -20
  109. package/lib/locale/el.mjs +0 -0
  110. package/lib/locale/index.mjs +0 -0
  111. package/lib/util/helpers.mjs +26 -0
  112. package/lib/util/helpers.mjs.map +1 -1
  113. package/package.json +3 -3
@@ -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.16";
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.16";
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
@@ -342,8 +342,8 @@ declare module '@vue/runtime-core' {
342
342
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
343
343
  VChip: typeof import('vuetify/components')['VChip']
344
344
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
345
- VCode: typeof import('vuetify/components')['VCode']
346
345
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
346
+ VCode: typeof import('vuetify/components')['VCode']
347
347
  VCombobox: typeof import('vuetify/components')['VCombobox']
348
348
  VCounter: typeof import('vuetify/components')['VCounter']
349
349
  VDialog: typeof import('vuetify/components')['VDialog']
@@ -354,8 +354,8 @@ 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
359
  VIcon: typeof import('vuetify/components')['VIcon']
360
360
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
361
361
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
@@ -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(),
@@ -154,7 +154,7 @@ export const VDataTable = genericComponent()({
154
154
  top: slots.top,
155
155
  default: slots.default ?? (() => _createVNode(_Fragment, null, [slots.colgroup?.({
156
156
  columns
157
- }), _createVNode("thead", null, [slots.headers ? slots.headers() : _createVNode(VDataTableHeaders, {
157
+ }), _createVNode("thead", null, [_createVNode(VDataTableHeaders, {
158
158
  "sticky": props.fixedHeader,
159
159
  "multiSort": props.multiSort
160
160
  }, slots)]), slots.thead?.(), _createVNode("tbody", null, [slots.body ? slots.body() : _createVNode(VDataTableRows, {
@@ -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","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 <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\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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"}
@@ -9,6 +9,7 @@ import { useBackgroundColor } from "../../composables/color.mjs";
9
9
  import { useHeaders } from "./composables/headers.mjs";
10
10
  import { useSelection } from "./composables/select.mjs";
11
11
  import { useSort } from "./composables/sort.mjs"; // Utilities
12
+ import { computed } from 'vue';
12
13
  import { convertToUnit, genericComponent, useRender } from "../../util/index.mjs"; // Types
13
14
  export const VDataTableHeaders = genericComponent()({
14
15
  name: 'VDataTableHeaders',
@@ -67,6 +68,17 @@ export const VDataTableHeaders = genericComponent()({
67
68
  backgroundColorClasses,
68
69
  backgroundColorStyles
69
70
  } = useBackgroundColor(props, 'color');
71
+ const slotProps = computed(() => ({
72
+ headers: headers.value,
73
+ columns: columns.value,
74
+ toggleSort,
75
+ sortBy: sortBy.value,
76
+ someSelected: someSelected.value,
77
+ allSelected: allSelected.value,
78
+ selectAll,
79
+ getSortIcon,
80
+ getFixedStyles
81
+ }));
70
82
  const VDataTableHeaderCell = _ref2 => {
71
83
  let {
72
84
  column,
@@ -94,14 +106,14 @@ export const VDataTableHeaders = genericComponent()({
94
106
  "noPadding": noPadding
95
107
  }, {
96
108
  default: () => {
97
- const slotName = `column.${column.key}`;
98
- const slotProps = {
109
+ const columnSlotName = `column.${column.key}`;
110
+ const columnSlotProps = {
99
111
  column,
100
112
  selectAll
101
113
  };
102
- if (slots[slotName]) return slots[slotName](slotProps);
114
+ if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
103
115
  if (column.key === 'data-table-select') {
104
- return slots['column.data-table-select']?.(slotProps) ?? _createVNode(VCheckboxBtn, {
116
+ return slots['column.data-table-select']?.(columnSlotProps) ?? _createVNode(VCheckboxBtn, {
105
117
  "modelValue": allSelected.value,
106
118
  "indeterminate": someSelected.value && !allSelected.value,
107
119
  "onUpdate:modelValue": selectAll
@@ -121,22 +133,24 @@ export const VDataTableHeaders = genericComponent()({
121
133
  }
122
134
  });
123
135
  };
124
- useRender(() => _createVNode(_Fragment, null, [headers.value.map((row, y) => _createVNode("tr", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {
125
- "column": column,
126
- "x": x,
127
- "y": y
128
- }, null))])), props.loading && _createVNode("tr", {
129
- "class": "v-data-table__progress"
130
- }, [_createVNode("th", {
131
- "colspan": columns.value.length
132
- }, [_createVNode(LoaderSlot, {
133
- "name": "v-data-table-headers",
134
- "active": true,
135
- "color": typeof props.loading === 'boolean' ? undefined : props.loading,
136
- "indeterminate": true
137
- }, {
138
- default: slots.loader
139
- })])])]));
136
+ useRender(() => {
137
+ return _createVNode(_Fragment, null, [slots.headers ? slots.headers(slotProps.value) : headers.value.map((row, y) => _createVNode("tr", null, [row.map((column, x) => _createVNode(VDataTableHeaderCell, {
138
+ "column": column,
139
+ "x": x,
140
+ "y": y
141
+ }, null))])), props.loading && _createVNode("tr", {
142
+ "class": "v-data-table__progress"
143
+ }, [_createVNode("th", {
144
+ "colspan": columns.value.length
145
+ }, [_createVNode(LoaderSlot, {
146
+ "name": "v-data-table-headers",
147
+ "active": true,
148
+ "color": typeof props.loading === 'boolean' ? undefined : props.loading,
149
+ "indeterminate": true
150
+ }, {
151
+ default: slots.loader
152
+ })])])]);
153
+ });
140
154
  }
141
155
  });
142
156
  //# sourceMappingURL=VDataTableHeaders.mjs.map
@@ -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","computed","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","slotProps","VDataTableHeaderCell","_ref2","x","isSorted","noPadding","_createVNode","align","sortable","width","minWidth","colspan","rowspan","lastFixed","columnSlotName","columnSlotProps","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 { computed } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { InternalDataTableHeader } from './types'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { SortItem } from './composables/sort'\n\ntype HeadersSlotProps = {\n headers: InternalDataTableHeader[][]\n columns: InternalDataTableHeader[]\n sortBy: SortItem[]\n someSelected: boolean\n allSelected: boolean\n toggleSort: (key: string) => void\n selectAll: (value: boolean) => void\n getSortIcon: (key: string) => IconValue\n getFixedStyles: (column: InternalDataTableHeader) => Record<string, string>\n}\n\nexport type VDataTableHeadersSlots = {\n default: []\n headers: [HeadersSlotProps]\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 slotProps = computed(() => ({\n headers: headers.value,\n columns: columns.value,\n toggleSort,\n sortBy: sortBy.value,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n selectAll,\n getSortIcon,\n getFixedStyles,\n }))\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 columnSlotName = `column.${column.key}`\n const columnSlotProps = {\n column,\n selectAll,\n }\n\n if (slots[columnSlotName]) return slots[columnSlotName]!(columnSlotProps)\n\n if (column.key === 'data-table-select') {\n return slots['column.data-table-select']?.(columnSlotProps) ?? (\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 return (\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\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})\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
1
+ import { createVNode as _createVNode } from "vue";
2
2
  // Components
3
3
  import { VBtn } from "../../components/VBtn/index.mjs";
4
4
  import { VCheckboxBtn } from "../../components/VCheckbox/index.mjs"; // Composables
@@ -35,9 +35,7 @@ export const VDataTableRow = defineComponent({
35
35
  'v-data-table__tr--clickable': !!props.onClick
36
36
  }],
37
37
  "onClick": props.onClick
38
- }, [!columns.value.length && _createVNode(VDataTableColumn, {
39
- "key": "no-data"
40
- }, slots), props.item && columns.value.map((column, i) => _createVNode(VDataTableColumn, {
38
+ }, [props.item && columns.value.map((column, i) => _createVNode(VDataTableColumn, {
41
39
  "align": column.align,
42
40
  "fixed": column.fixed,
43
41
  "fixedOffset": column.fixedOffset,
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRow.mjs","names":["VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","VDataTableColumn","withModifiers","defineComponent","getPropertyFromItem","useRender","VDataTableRow","name","props","index","Number","item","Object","onClick","Function","setup","_ref","slots","isSelected","toggleSelect","isExpanded","toggleExpand","columns","_createVNode","value","length","map","column","i","align","fixed","fixedOffset","lastFixed","key","width","default","slotName","slotProps"],"sources":["../../../src/labs/VDataTable/VDataTableRow.tsx"],"sourcesContent":["// Components\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 { VDataTableColumn } from './VDataTableColumn'\n\n// Utilities\nimport { withModifiers } from 'vue'\nimport { defineComponent, getPropertyFromItem, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem } from './types'\n\nexport const VDataTableRow = defineComponent({\n name: 'VDataTableRow',\n\n props: {\n index: Number as PropType<Number>,\n item: Object as PropType<DataTableItem>,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n },\n\n setup (props, { slots }) {\n const { isSelected, toggleSelect } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\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,\n },\n ]}\n onClick={ props.onClick }\n >\n { !columns.value.length && (\n <VDataTableColumn\n key=\"no-data\"\n v-slots={ slots }\n />\n )}\n\n { props.item && columns.value.map((column, i) => (\n <VDataTableColumn\n align={ column.align }\n fixed={ column.fixed }\n fixedOffset={ column.fixedOffset }\n lastFixed={ column.lastFixed }\n noPadding={ column.key === 'data-table-select' || column.key === 'data-table-expand' }\n width={ column.width }\n >\n {{\n default: () => {\n const item = props.item!\n const slotName = `item.${column.key}`\n const slotProps = {\n index: props.index,\n item: props.item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ isSelected([item]) }\n onClick={ withModifiers(() => toggleSelect(item), ['stop']) }\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? (\n <VBtn\n icon={ isExpanded(item) ? '$collapse' : '$expand' }\n size=\"small\"\n variant=\"text\"\n onClick={ withModifiers(() => toggleExpand(item), ['stop']) }\n />\n )\n }\n\n return getPropertyFromItem(item.columns, column.key)\n },\n }}\n </VDataTableColumn>\n ))}\n </tr>\n ))\n },\n})\n\nexport type VDataTableRow = InstanceType<typeof VDataTableRow>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableRow.mjs","names":["VBtn","VCheckboxBtn","useExpanded","useHeaders","useSelection","VDataTableColumn","withModifiers","defineComponent","getPropertyFromItem","useRender","VDataTableRow","name","props","index","Number","item","Object","onClick","Function","setup","_ref","slots","isSelected","toggleSelect","isExpanded","toggleExpand","columns","_createVNode","value","map","column","i","align","fixed","fixedOffset","lastFixed","key","width","default","slotName","slotProps"],"sources":["../../../src/labs/VDataTable/VDataTableRow.tsx"],"sourcesContent":["// Components\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 { VDataTableColumn } from './VDataTableColumn'\n\n// Utilities\nimport { withModifiers } from 'vue'\nimport { defineComponent, getPropertyFromItem, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem } from './types'\n\nexport const VDataTableRow = defineComponent({\n name: 'VDataTableRow',\n\n props: {\n index: Number as PropType<Number>,\n item: Object as PropType<DataTableItem>,\n onClick: Function as PropType<(e: MouseEvent) => void>,\n },\n\n setup (props, { slots }) {\n const { isSelected, toggleSelect } = useSelection()\n const { isExpanded, toggleExpand } = useExpanded()\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,\n },\n ]}\n onClick={ props.onClick }\n >\n { props.item && columns.value.map((column, i) => (\n <VDataTableColumn\n align={ column.align }\n fixed={ column.fixed }\n fixedOffset={ column.fixedOffset }\n lastFixed={ column.lastFixed }\n noPadding={ column.key === 'data-table-select' || column.key === 'data-table-expand' }\n width={ column.width }\n >\n {{\n default: () => {\n const item = props.item!\n const slotName = `item.${column.key}`\n const slotProps = {\n index: props.index,\n item: props.item,\n columns: columns.value,\n isSelected,\n toggleSelect,\n isExpanded,\n toggleExpand,\n }\n\n if (slots[slotName]) return slots[slotName]!(slotProps)\n\n if (column.key === 'data-table-select') {\n return slots['item.data-table-select']?.(slotProps) ?? (\n <VCheckboxBtn\n modelValue={ isSelected([item]) }\n onClick={ withModifiers(() => toggleSelect(item), ['stop']) }\n />\n )\n }\n\n if (column.key === 'data-table-expand') {\n return slots['item.data-table-expand']?.(slotProps) ?? (\n <VBtn\n icon={ isExpanded(item) ? '$collapse' : '$expand' }\n size=\"small\"\n variant=\"text\"\n onClick={ withModifiers(() => toggleExpand(item), ['stop']) }\n />\n )\n }\n\n return getPropertyFromItem(item.columns, column.key)\n },\n }}\n </VDataTableColumn>\n ))}\n </tr>\n ))\n },\n})\n\nexport type VDataTableRow = InstanceType<typeof VDataTableRow>\n"],"mappings":";AAAA;AAAA,SACSA,IAAI;AAAA,SACJC,YAAY,gDAErB;AAAA,SACSC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,YAAY;AAAA,SACZC,gBAAgB,kCAEzB;AACA,SAASC,aAAa,QAAQ,KAAK;AAAA,SAC1BC,eAAe,EAAEC,mBAAmB,EAAEC,SAAS,gCAExD;AAIA,OAAO,MAAMC,aAAa,GAAGH,eAAe,CAAC;EAC3CI,IAAI,EAAE,eAAe;EAErBC,KAAK,EAAE;IACLC,KAAK,EAAEC,MAA0B;IACjCC,IAAI,EAAEC,MAAiC;IACvCC,OAAO,EAAEC;EACX,CAAC;EAEDC,KAAKA,CAAEP,KAAK,EAAAQ,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE,UAAU;MAAEC;IAAa,CAAC,GAAGnB,YAAY,EAAE;IACnD,MAAM;MAAEoB,UAAU;MAAEC;IAAa,CAAC,GAAGvB,WAAW,EAAE;IAClD,MAAM;MAAEwB;IAAQ,CAAC,GAAGvB,UAAU,EAAE;IAEhCM,SAAS,CAAC,MAAAkB,YAAA;MAAA,SAEC,CACL,kBAAkB,EAClB;QACE,6BAA6B,EAAE,CAAC,CAACf,KAAK,CAACK;MACzC,CAAC,CACF;MAAA,WACSL,KAAK,CAACK;IAAO,IAErBL,KAAK,CAACG,IAAI,IAAIW,OAAO,CAACE,KAAK,CAACC,GAAG,CAAC,CAACC,MAAM,EAAEC,CAAC,KAAAJ,YAAA,CAAAtB,gBAAA;MAAA,SAEhCyB,MAAM,CAACE,KAAK;MAAA,SACZF,MAAM,CAACG,KAAK;MAAA,eACNH,MAAM,CAACI,WAAW;MAAA,aACpBJ,MAAM,CAACK,SAAS;MAAA,aAChBL,MAAM,CAACM,GAAG,KAAK,mBAAmB,IAAIN,MAAM,CAACM,GAAG,KAAK,mBAAmB;MAAA,SAC5EN,MAAM,CAACO;IAAK;MAGlBC,OAAO,EAAEA,CAAA,KAAM;QACb,MAAMvB,IAAI,GAAGH,KAAK,CAACG,IAAK;QACxB,MAAMwB,QAAQ,GAAI,QAAOT,MAAM,CAACM,GAAI,EAAC;QACrC,MAAMI,SAAS,GAAG;UAChB3B,KAAK,EAAED,KAAK,CAACC,KAAK;UAClBE,IAAI,EAAEH,KAAK,CAACG,IAAI;UAChBW,OAAO,EAAEA,OAAO,CAACE,KAAK;UACtBN,UAAU;UACVC,YAAY;UACZC,UAAU;UACVC;QACF,CAAC;QAED,IAAIJ,KAAK,CAACkB,QAAQ,CAAC,EAAE,OAAOlB,KAAK,CAACkB,QAAQ,CAAC,CAAEC,SAAS,CAAC;QAEvD,IAAIV,MAAM,CAACM,GAAG,KAAK,mBAAmB,EAAE;UACtC,OAAOf,KAAK,CAAC,wBAAwB,CAAC,GAAGmB,SAAS,CAAC,IAAAb,YAAA,CAAA1B,YAAA;YAAA,cAElCqB,UAAU,CAAC,CAACP,IAAI,CAAC,CAAC;YAAA,WACrBT,aAAa,CAAC,MAAMiB,YAAY,CAACR,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;UAAC,QAE9D;QACH;QAEA,IAAIe,MAAM,CAACM,GAAG,KAAK,mBAAmB,EAAE;UACtC,OAAOf,KAAK,CAAC,wBAAwB,CAAC,GAAGmB,SAAS,CAAC,IAAAb,YAAA,CAAA3B,IAAA;YAAA,QAExCwB,UAAU,CAACT,IAAI,CAAC,GAAG,WAAW,GAAG,SAAS;YAAA,QAC5C,OAAO;YAAA,WACJ,MAAM;YAAA,WACJT,aAAa,CAAC,MAAMmB,YAAY,CAACV,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC;UAAC,QAE9D;QACH;QAEA,OAAOP,mBAAmB,CAACO,IAAI,CAACW,OAAO,EAAEI,MAAM,CAACM,GAAG,CAAC;MACtD;IAAC,EAGN,CAAC,EAEL,CAAC;EACJ;AACF,CAAC,CAAC"}