vuetify 3.6.4 → 3.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/dist/_component-variables-labs.sass +1 -0
  2. package/dist/json/attributes.json +292 -4
  3. package/dist/json/importMap-labs.json +28 -16
  4. package/dist/json/importMap.json +128 -128
  5. package/dist/json/tags.json +87 -0
  6. package/dist/json/web-types.json +1395 -88
  7. package/dist/vuetify-labs.css +2027 -2128
  8. package/dist/vuetify-labs.d.ts +1730 -65
  9. package/dist/vuetify-labs.esm.js +366 -47
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +366 -47
  12. package/dist/vuetify-labs.min.css +3 -3
  13. package/dist/vuetify.css +900 -1069
  14. package/dist/vuetify.d.ts +209 -107
  15. package/dist/vuetify.esm.js +78 -31
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +78 -31
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +3 -3
  20. package/dist/vuetify.min.js +67 -66
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VBanner/VBanner.mjs +3 -1
  23. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  24. package/lib/components/VBanner/index.d.mts +15 -9
  25. package/lib/components/VBtn/index.d.mts +2 -0
  26. package/lib/components/VChipGroup/index.d.mts +15 -9
  27. package/lib/components/VDataTable/VDataTable.mjs +6 -2
  28. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  29. package/lib/components/VDataTable/VDataTableServer.mjs +3 -2
  30. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  31. package/lib/components/VDataTable/VDataTableVirtual.mjs +3 -1
  32. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  33. package/lib/components/VDataTable/index.d.mts +54 -0
  34. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +3 -1
  35. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  36. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -4
  37. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  38. package/lib/components/VExpansionPanel/index.d.mts +82 -27
  39. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  40. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  41. package/lib/components/VMenu/VMenu.mjs +2 -1
  42. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  43. package/lib/components/VSelect/VSelect.mjs +1 -1
  44. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  45. package/lib/components/VSlideGroup/VSlideGroup.mjs +3 -1
  46. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  47. package/lib/components/VSlideGroup/index.d.mts +17 -9
  48. package/lib/components/VStepper/VStepper.mjs +17 -8
  49. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  50. package/lib/components/VStepper/VStepperItem.css +47 -0
  51. package/lib/components/VStepper/VStepperItem.mjs +10 -5
  52. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  53. package/lib/components/VStepper/VStepperItem.sass +18 -0
  54. package/lib/components/VStepper/index.d.mts +1 -1
  55. package/lib/components/VSwitch/VSwitch.css +44 -0
  56. package/lib/components/VSwitch/VSwitch.mjs +4 -3
  57. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  58. package/lib/components/VSwitch/VSwitch.sass +55 -0
  59. package/lib/components/VTabs/index.d.mts +17 -9
  60. package/lib/components/VWindow/index.d.mts +2 -0
  61. package/lib/components/index.d.mts +162 -63
  62. package/lib/composables/group.mjs +8 -0
  63. package/lib/composables/group.mjs.map +1 -1
  64. package/lib/entry-bundler.mjs +1 -1
  65. package/lib/framework.mjs +1 -1
  66. package/lib/index.d.mts +47 -44
  67. package/lib/labs/VNumberInput/VNumberInput.mjs +16 -6
  68. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  69. package/lib/labs/VNumberInput/index.d.mts +1 -1
  70. package/lib/labs/VStepperVertical/VStepperVertical.mjs +106 -0
  71. package/lib/labs/VStepperVertical/VStepperVertical.mjs.map +1 -0
  72. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +38 -0
  73. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs.map +1 -0
  74. package/lib/labs/VStepperVertical/VStepperVerticalItem.css +69 -0
  75. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +134 -0
  76. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs.map +1 -0
  77. package/lib/labs/VStepperVertical/VStepperVerticalItem.sass +74 -0
  78. package/lib/labs/VStepperVertical/_variables.scss +3 -0
  79. package/lib/labs/VStepperVertical/index.d.mts +1590 -0
  80. package/lib/labs/VStepperVertical/index.mjs +4 -0
  81. package/lib/labs/VStepperVertical/index.mjs.map +1 -0
  82. package/lib/labs/VTreeview/VTreeviewChildren.mjs +12 -10
  83. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  84. package/lib/labs/components.d.mts +1600 -21
  85. package/lib/labs/components.mjs +1 -0
  86. package/lib/labs/components.mjs.map +1 -1
  87. package/lib/locale/de.mjs +4 -4
  88. package/lib/locale/de.mjs.map +1 -1
  89. package/lib/locale/hu.mjs +18 -18
  90. package/lib/locale/hu.mjs.map +1 -1
  91. package/lib/styles/generic/_colors.scss +0 -1
  92. package/lib/styles/main.css +0 -260
  93. package/package.json +2 -2
@@ -36,7 +36,9 @@ export const makeVBannerProps = propsFactory({
36
36
  ...makeComponentProps(),
37
37
  ...makeDensityProps(),
38
38
  ...makeDimensionProps(),
39
- ...makeDisplayProps(),
39
+ ...makeDisplayProps({
40
+ mobile: null
41
+ }),
40
42
  ...makeElevationProps(),
41
43
  ...makeLocationProps(),
42
44
  ...makePositionProps(),
@@ -1 +1 @@
1
- {"version":3,"file":"VBanner.mjs","names":["VBannerActions","VBannerText","VAvatar","VDefaultsProvider","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeDisplayProps","useDisplay","makeElevationProps","useElevation","IconValue","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","toRef","genericComponent","propsFactory","useRender","makeVBannerProps","avatar","String","bgColor","color","icon","lines","stacked","Boolean","sticky","text","VBanner","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","displayClasses","mobile","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","themeClasses","density","hasText","hasPrependMedia","hasPrepend","prepend","_createVNode","tag","value","class","style","default","image","actions"],"sources":["../../../src/components/VBanner/VBanner.tsx"],"sourcesContent":["// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VBannerSlots = {\n default: never\n prepend: never\n text: never\n actions: never\n}\n\nexport const makeVBannerProps = propsFactory({\n avatar: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeDisplayProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VBanner')\n\nexport const VBanner = genericComponent<VBannerSlots>()({\n name: 'VBanner',\n\n props: makeVBannerProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({ VBannerActions: { color, density } })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrependMedia = !!(props.avatar || props.icon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n displayClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n props.style,\n ]}\n role=\"banner\"\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-banner__prepend\">\n { !slots.prepend ? (\n <VAvatar\n key=\"prepend-avatar\"\n color={ color.value }\n density={ density.value }\n icon={ props.icon }\n image={ props.avatar }\n />\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-banner__content\">\n { hasText && (\n <VBannerText key=\"text\">\n { slots.text?.() ?? props.text }\n </VBannerText>\n )}\n\n { slots.default?.() }\n </div>\n\n { slots.actions && (\n <VBannerActions key=\"actions\" v-slots:default={ slots.actions } />\n )}\n </props.tag>\n )\n })\n },\n})\n\nexport type VBanner = InstanceType<typeof VBanner>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VBanner.mjs","names":["VBannerActions","VBannerText","VAvatar","VDefaultsProvider","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeDisplayProps","useDisplay","makeElevationProps","useElevation","IconValue","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","toRef","genericComponent","propsFactory","useRender","makeVBannerProps","avatar","String","bgColor","color","icon","lines","stacked","Boolean","sticky","text","mobile","VBanner","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","displayClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","themeClasses","density","hasText","hasPrependMedia","hasPrepend","prepend","_createVNode","tag","value","class","style","default","image","actions"],"sources":["../../../src/components/VBanner/VBanner.tsx"],"sourcesContent":["// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerText } from './VBannerText'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VBannerSlots = {\n default: never\n prepend: never\n text: never\n actions: never\n}\n\nexport const makeVBannerProps = propsFactory({\n avatar: String,\n bgColor: String,\n color: String,\n icon: IconValue,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VBanner')\n\nexport const VBanner = genericComponent<VBannerSlots>()({\n name: 'VBanner',\n\n props: makeVBannerProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({ VBannerActions: { color, density } })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrependMedia = !!(props.avatar || props.icon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n displayClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n props.style,\n ]}\n role=\"banner\"\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-banner__prepend\">\n { !slots.prepend ? (\n <VAvatar\n key=\"prepend-avatar\"\n color={ color.value }\n density={ density.value }\n icon={ props.icon }\n image={ props.avatar }\n />\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n color: color.value,\n density: density.value,\n icon: props.icon,\n image: props.avatar,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-banner__content\">\n { hasText && (\n <VBannerText key=\"text\">\n { slots.text?.() ?? props.text }\n </VBannerText>\n )}\n\n { slots.default?.() }\n </div>\n\n { slots.actions && (\n <VBannerActions key=\"actions\" v-slots:default={ slots.actions } />\n )}\n </props.tag>\n )\n })\n },\n})\n\nexport type VBanner = InstanceType<typeof VBanner>\n"],"mappings":"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","ignoreList":[]}
@@ -24,7 +24,7 @@ declare const VBanner: {
24
24
  new (...args: any[]): vue.CreateComponentPublicInstance<{
25
25
  style: vue.StyleValue;
26
26
  tag: string;
27
- mobile: boolean | null;
27
+ mobile: NonNullable<boolean | null> | null;
28
28
  sticky: boolean;
29
29
  tile: boolean;
30
30
  density: Density;
@@ -71,7 +71,7 @@ declare const VBanner: {
71
71
  }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
72
72
  style: vue.StyleValue;
73
73
  tag: string;
74
- mobile: boolean | null;
74
+ mobile: NonNullable<boolean | null> | null;
75
75
  sticky: boolean;
76
76
  tile: boolean;
77
77
  density: Density;
@@ -118,7 +118,7 @@ declare const VBanner: {
118
118
  }, {
119
119
  style: vue.StyleValue;
120
120
  tag: string;
121
- mobile: boolean | null;
121
+ mobile: NonNullable<boolean | null> | null;
122
122
  sticky: boolean;
123
123
  rounded: string | number | boolean;
124
124
  tile: boolean;
@@ -147,7 +147,7 @@ declare const VBanner: {
147
147
  }, {
148
148
  style: vue.StyleValue;
149
149
  tag: string;
150
- mobile: boolean | null;
150
+ mobile: NonNullable<boolean | null> | null;
151
151
  sticky: boolean;
152
152
  tile: boolean;
153
153
  density: Density;
@@ -194,7 +194,7 @@ declare const VBanner: {
194
194
  }, {}, {}, {}, {}, {
195
195
  style: vue.StyleValue;
196
196
  tag: string;
197
- mobile: boolean | null;
197
+ mobile: NonNullable<boolean | null> | null;
198
198
  sticky: boolean;
199
199
  rounded: string | number | boolean;
200
200
  tile: boolean;
@@ -207,7 +207,7 @@ declare const VBanner: {
207
207
  } & vue.ComponentOptionsBase<{
208
208
  style: vue.StyleValue;
209
209
  tag: string;
210
- mobile: boolean | null;
210
+ mobile: NonNullable<boolean | null> | null;
211
211
  sticky: boolean;
212
212
  tile: boolean;
213
213
  density: Density;
@@ -254,7 +254,7 @@ declare const VBanner: {
254
254
  }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
255
255
  style: vue.StyleValue;
256
256
  tag: string;
257
- mobile: boolean | null;
257
+ mobile: NonNullable<boolean | null> | null;
258
258
  sticky: boolean;
259
259
  rounded: string | number | boolean;
260
260
  tile: boolean;
@@ -293,9 +293,12 @@ declare const VBanner: {
293
293
  type: (StringConstructor | NumberConstructor)[];
294
294
  validator(v: any): boolean;
295
295
  };
296
- mobile: {
296
+ mobile: Omit<{
297
297
  type: PropType<boolean | null>;
298
298
  default: boolean;
299
+ }, "default" | "type"> & {
300
+ type: PropType<NonNullable<boolean | null> | null>;
301
+ default: NonNullable<boolean | null> | null;
299
302
  };
300
303
  mobileBreakpoint: PropType<number | DisplayBreakpoint>;
301
304
  height: (StringConstructor | NumberConstructor)[];
@@ -343,9 +346,12 @@ declare const VBanner: {
343
346
  type: (StringConstructor | NumberConstructor)[];
344
347
  validator(v: any): boolean;
345
348
  };
346
- mobile: {
349
+ mobile: Omit<{
347
350
  type: PropType<boolean | null>;
348
351
  default: boolean;
352
+ }, "default" | "type"> & {
353
+ type: PropType<NonNullable<boolean | null> | null>;
354
+ default: NonNullable<boolean | null> | null;
349
355
  };
350
356
  mobileBreakpoint: PropType<number | DisplayBreakpoint>;
351
357
  height: (StringConstructor | NumberConstructor)[];
@@ -39,6 +39,8 @@ interface GroupProvide {
39
39
  interface GroupItemProvide {
40
40
  id: number;
41
41
  isSelected: Ref<boolean>;
42
+ isFirst: Ref<boolean>;
43
+ isLast: Ref<boolean>;
42
44
  toggle: () => void;
43
45
  select: (value: boolean) => void;
44
46
  selectedClass: Ref<(string | undefined)[] | false>;
@@ -79,7 +79,7 @@ declare const VChipGroup: {
79
79
  style: vue.StyleValue;
80
80
  disabled: boolean;
81
81
  tag: string;
82
- mobile: boolean | null;
82
+ mobile: NonNullable<boolean | null> | null;
83
83
  variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
84
84
  column: boolean;
85
85
  multiple: boolean;
@@ -105,7 +105,7 @@ declare const VChipGroup: {
105
105
  style: vue.StyleValue;
106
106
  disabled: boolean;
107
107
  tag: string;
108
- mobile: boolean | null;
108
+ mobile: NonNullable<boolean | null> | null;
109
109
  variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
110
110
  column: boolean;
111
111
  multiple: boolean;
@@ -129,7 +129,7 @@ declare const VChipGroup: {
129
129
  style: vue.StyleValue;
130
130
  disabled: boolean;
131
131
  tag: string;
132
- mobile: boolean | null;
132
+ mobile: NonNullable<boolean | null> | null;
133
133
  variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
134
134
  column: boolean;
135
135
  multiple: boolean;
@@ -162,7 +162,7 @@ declare const VChipGroup: {
162
162
  style: vue.StyleValue;
163
163
  disabled: boolean;
164
164
  tag: string;
165
- mobile: boolean | null;
165
+ mobile: NonNullable<boolean | null> | null;
166
166
  variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
167
167
  column: boolean;
168
168
  multiple: boolean;
@@ -186,7 +186,7 @@ declare const VChipGroup: {
186
186
  style: vue.StyleValue;
187
187
  disabled: boolean;
188
188
  tag: string;
189
- mobile: boolean | null;
189
+ mobile: NonNullable<boolean | null> | null;
190
190
  variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
191
191
  column: boolean;
192
192
  multiple: boolean;
@@ -206,7 +206,7 @@ declare const VChipGroup: {
206
206
  style: vue.StyleValue;
207
207
  disabled: boolean;
208
208
  tag: string;
209
- mobile: boolean | null;
209
+ mobile: NonNullable<boolean | null> | null;
210
210
  variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
211
211
  column: boolean;
212
212
  multiple: boolean;
@@ -232,7 +232,7 @@ declare const VChipGroup: {
232
232
  style: vue.StyleValue;
233
233
  disabled: boolean;
234
234
  tag: string;
235
- mobile: boolean | null;
235
+ mobile: NonNullable<boolean | null> | null;
236
236
  variant: NonNullable<"flat" | "text" | "elevated" | "tonal" | "outlined" | "plain">;
237
237
  column: boolean;
238
238
  multiple: boolean;
@@ -290,9 +290,12 @@ declare const VChipGroup: {
290
290
  type: PropType<vue.StyleValue>;
291
291
  default: null;
292
292
  };
293
- mobile: {
293
+ mobile: Omit<{
294
294
  type: PropType<boolean | null>;
295
295
  default: boolean;
296
+ }, "default" | "type"> & {
297
+ type: PropType<NonNullable<boolean | null> | null>;
298
+ default: NonNullable<boolean | null> | null;
296
299
  };
297
300
  mobileBreakpoint: PropType<number | DisplayBreakpoint>;
298
301
  centerActive: BooleanConstructor;
@@ -354,9 +357,12 @@ declare const VChipGroup: {
354
357
  type: PropType<vue.StyleValue>;
355
358
  default: null;
356
359
  };
357
- mobile: {
360
+ mobile: Omit<{
358
361
  type: PropType<boolean | null>;
359
362
  default: boolean;
363
+ }, "default" | "type"> & {
364
+ type: PropType<NonNullable<boolean | null> | null>;
365
+ default: NonNullable<boolean | null> | null;
360
366
  };
361
367
  mobileBreakpoint: PropType<number | DisplayBreakpoint>;
362
368
  centerActive: BooleanConstructor;
@@ -22,6 +22,8 @@ import { computed, toRef } from 'vue';
22
22
  import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
23
23
  export const makeDataTableProps = propsFactory({
24
24
  ...makeVDataTableRowsProps(),
25
+ hideDefaultFooter: Boolean,
26
+ hideDefaultHeader: Boolean,
25
27
  width: [String, Number],
26
28
  search: String,
27
29
  ...makeDataTableExpandProps(),
@@ -204,10 +206,12 @@ export const VDataTable = genericComponent()({
204
206
  "style": props.style
205
207
  }, tableProps), {
206
208
  top: () => slots.top?.(slotProps.value),
207
- default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), _createVNode("thead", null, [_createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), _createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {
209
+ default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode("thead", {
210
+ "key": "thead"
211
+ }, [_createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), _createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {
208
212
  "items": paginatedItems.value
209
213
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
210
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {
214
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {
211
215
  prepend: slots['footer.prepend']
212
216
  })])
213
217
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTable.mjs","names":["makeVDataTableFooterProps","VDataTableFooter","makeVDataTableHeadersProps","VDataTableHeaders","makeVDataTableRowsProps","VDataTableRows","VDivider","makeVTableProps","VTable","makeDataTableExpandProps","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemsProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","computed","toRef","genericComponent","propsFactory","useRender","makeDataTableProps","width","String","Number","search","makeVDataTableProps","VDataTable","name","props","emits","value","setup","_ref","attrs","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","headers","sortFunctions","sortRawFunctions","filterFunctions","showSelect","showExpand","items","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","pageCount","setItemsPerPage","paginatedItems","paginatedItemsWithoutGroups","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","currentPage","isExpanded","toggleExpand","hideNoData","noDataText","loading","loadingText","slotProps","map","raw","internalItems","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/components/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from './VDataTableHeaders'\nimport { makeVDataTableRowsProps, VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTableProps, VTable } from '@/components/VTable/VTable'\n\n// Composables\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemsProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, UnwrapRef } from 'vue'\nimport type { Group } from './composables/group'\nimport type { CellProps, DataTableHeader, DataTableItem, InternalDataTableHeader, RowProps } from './types'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport type VDataTableSlotProps<T> = {\n page: number\n itemsPerPage: number\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n pageCount: number\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n setItemsPerPage: ReturnType<typeof providePagination>['setItemsPerPage']\n someSelected: boolean\n allSelected: boolean\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n select: ReturnType<typeof provideSelection>['select']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n items: readonly T[]\n internalItems: readonly DataTableItem[]\n groupedItems: readonly (DataTableItem<T> | Group<DataTableItem<T>>)[]\n columns: InternalDataTableHeader[]\n headers: InternalDataTableHeader[][]\n}\n\nexport type VDataTableSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n default: VDataTableSlotProps<T>\n colgroup: VDataTableSlotProps<T>\n top: VDataTableSlotProps<T>\n body: VDataTableSlotProps<T>\n tbody: VDataTableSlotProps<T>\n thead: VDataTableSlotProps<T>\n tfoot: VDataTableSlotProps<T>\n bottom: VDataTableSlotProps<T>\n 'body.prepend': VDataTableSlotProps<T>\n 'body.append': VDataTableSlotProps<T>\n 'footer.prepend': never\n}\n\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n\n width: [String, Number],\n search: String,\n\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps(),\n}, 'DataTable')\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTable')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTable = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n headers?: DeepReadonly<DataTableHeader<ItemType<T>>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTable',\n\n props: makeVDataTableProps(),\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 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions,\n } = 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 search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => item.columns,\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex, pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, currentPage: paginatedItemsWithoutGroups })\n\n const { isExpanded, toggleExpand } = 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 loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableSlotProps<any>>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.(slotProps.value) }\n <tbody>\n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ paginatedItems.value }\n v-slots={ slots }\n />\n )}\n { slots['body.append']?.(slotProps.value) }\n </tbody>\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : (\n <>\n <VDivider />\n\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n </>\n ),\n }}\n </VTable>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDataTable.mjs","names":["makeVDataTableFooterProps","VDataTableFooter","makeVDataTableHeadersProps","VDataTableHeaders","makeVDataTableRowsProps","VDataTableRows","VDivider","makeVTableProps","VTable","makeDataTableExpandProps","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","makeDataTableHeaderProps","makeDataTableItemsProps","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","usePaginatedItems","makeDataTableSelectProps","provideSelection","createSort","makeDataTableSortProps","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","computed","toRef","genericComponent","propsFactory","useRender","makeDataTableProps","hideDefaultFooter","Boolean","hideDefaultHeader","width","String","Number","search","makeVDataTableProps","VDataTable","name","props","emits","value","setup","_ref","attrs","slots","groupBy","sortBy","multiSort","mustSort","page","itemsPerPage","columns","headers","sortFunctions","sortRawFunctions","filterFunctions","showSelect","showExpand","items","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","itemsLength","length","startIndex","stopIndex","pageCount","setItemsPerPage","paginatedItems","paginatedItemsWithoutGroups","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","currentPage","isExpanded","toggleExpand","hideNoData","noDataText","loading","loadingText","slotProps","map","raw","internalItems","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/components/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { makeVDataTableHeadersProps, VDataTableHeaders } from './VDataTableHeaders'\nimport { makeVDataTableRowsProps, VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVTableProps, VTable } from '@/components/VTable/VTable'\n\n// Composables\nimport { makeDataTableExpandProps, provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemsProps, useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination, usePaginatedItems } from './composables/paginate'\nimport { makeDataTableSelectProps, provideSelection } from './composables/select'\nimport { createSort, makeDataTableSortProps, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { DeepReadonly, UnwrapRef } from 'vue'\nimport type { Group } from './composables/group'\nimport type { CellProps, DataTableHeader, DataTableItem, InternalDataTableHeader, RowProps } from './types'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport type VDataTableSlotProps<T> = {\n page: number\n itemsPerPage: number\n sortBy: UnwrapRef<ReturnType<typeof provideSort>['sortBy']>\n pageCount: number\n toggleSort: ReturnType<typeof provideSort>['toggleSort']\n setItemsPerPage: ReturnType<typeof providePagination>['setItemsPerPage']\n someSelected: boolean\n allSelected: boolean\n isSelected: ReturnType<typeof provideSelection>['isSelected']\n select: ReturnType<typeof provideSelection>['select']\n selectAll: ReturnType<typeof provideSelection>['selectAll']\n toggleSelect: ReturnType<typeof provideSelection>['toggleSelect']\n isExpanded: ReturnType<typeof provideExpanded>['isExpanded']\n toggleExpand: ReturnType<typeof provideExpanded>['toggleExpand']\n isGroupOpen: ReturnType<typeof provideGroupBy>['isGroupOpen']\n toggleGroup: ReturnType<typeof provideGroupBy>['toggleGroup']\n items: readonly T[]\n internalItems: readonly DataTableItem[]\n groupedItems: readonly (DataTableItem<T> | Group<DataTableItem<T>>)[]\n columns: InternalDataTableHeader[]\n headers: InternalDataTableHeader[][]\n}\n\nexport type VDataTableSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n default: VDataTableSlotProps<T>\n colgroup: VDataTableSlotProps<T>\n top: VDataTableSlotProps<T>\n body: VDataTableSlotProps<T>\n tbody: VDataTableSlotProps<T>\n thead: VDataTableSlotProps<T>\n tfoot: VDataTableSlotProps<T>\n bottom: VDataTableSlotProps<T>\n 'body.prepend': VDataTableSlotProps<T>\n 'body.append': VDataTableSlotProps<T>\n 'footer.prepend': never\n}\n\nexport const makeDataTableProps = propsFactory({\n ...makeVDataTableRowsProps(),\n\n hideDefaultFooter: Boolean,\n hideDefaultHeader: Boolean,\n width: [String, Number],\n search: String,\n\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemsProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeVDataTableHeadersProps(),\n ...makeVTableProps(),\n}, 'DataTable')\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeFilterProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTable')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTable = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n headers?: DeepReadonly<DataTableHeader<ItemType<T>>[]>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTable',\n\n props: makeVDataTableProps(),\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 'update:currentItems': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n\n const {\n columns,\n headers,\n sortFunctions,\n sortRawFunctions,\n filterFunctions,\n } = 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 search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => item.columns,\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n const itemsLength = computed(() => flatItems.value.length)\n\n const { startIndex, stopIndex, pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n const { paginatedItems } = usePaginatedItems({ items: flatItems, startIndex, stopIndex, itemsPerPage })\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n const {\n isSelected,\n select,\n selectAll,\n toggleSelect,\n someSelected,\n allSelected,\n } = provideSelection(props, { allItems: items, currentPage: paginatedItemsWithoutGroups })\n\n const { isExpanded, toggleExpand } = 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 loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableSlotProps<any>>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: paginatedItemsWithoutGroups.value.map(item => item.raw),\n internalItems: paginatedItemsWithoutGroups.value,\n groupedItems: paginatedItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n <thead key=\"thead\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n v-slots={ slots }\n />\n </thead>\n )}\n { slots.thead?.(slotProps.value) }\n <tbody>\n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ paginatedItems.value }\n v-slots={ slots }\n />\n )}\n { slots['body.append']?.(slotProps.value) }\n </tbody>\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && (\n <>\n <VDivider />\n\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n </>\n ),\n }}\n </VTable>\n )\n })\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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","ignoreList":[]}
@@ -165,7 +165,8 @@ export const VDataTableServer = genericComponent()({
165
165
  "style": props.style
166
166
  }, tableProps), {
167
167
  top: () => slots.top?.(slotProps.value),
168
- default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), _createVNode("thead", {
168
+ default: () => slots.default ? slots.default(slotProps.value) : _createVNode(_Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode("thead", {
169
+ "key": "thead",
169
170
  "class": "v-data-table__thead",
170
171
  "role": "rowgroup"
171
172
  }, [_createVNode(VDataTableHeaders, _mergeProps(dataTableHeadersProps, {
@@ -176,7 +177,7 @@ export const VDataTableServer = genericComponent()({
176
177
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : _createVNode(VDataTableRows, _mergeProps(attrs, dataTableRowsProps, {
177
178
  "items": flatItems.value
178
179
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
179
- bottom: () => slots.bottom ? slots.bottom(slotProps.value) : _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {
180
+ bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && _createVNode(_Fragment, null, [_createVNode(VDivider, null, null), _createVNode(VDataTableFooter, dataTableFooterProps, {
180
181
  prepend: slots['footer.prepend']
181
182
  })])
182
183
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableServer.mjs","names":["makeDataTableProps","makeVDataTableFooterProps","VDataTableFooter","VDataTableHeaders","VDataTableRows","VDivider","VTable","provideExpanded","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","provideSelection","createSort","provideSort","provideDefaults","computed","provide","toRef","genericComponent","propsFactory","useRender","makeVDataTableServerProps","itemsLength","type","Number","String","required","VDataTableServer","name","props","emits","value","page","sortBy","options","setup","_ref","attrs","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","headers","showSelect","showExpand","items","toggleSort","opened","isGroupOpen","toggleGroup","extractRows","pageCount","setItemsPerPage","flatItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","currentPage","isExpanded","toggleExpand","itemsWithoutGroups","search","hideNoData","noDataText","loading","loadingText","slotProps","map","item","raw","internalItems","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","fixedHeader","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/components/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps, VDataTableSlots } from './VDataTable'\nimport type { CellProps, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTableServer')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableServer = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n const { columns, headers } = 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 { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened, isGroupOpen, toggleGroup, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems: items,\n currentPage: items,\n })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const itemsWithoutGroups = computed(() => extractRows(items.value))\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search'),\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableSlotProps<any>>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value.map(item => item.raw),\n internalItems: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n { slots.thead?.(slotProps.value) }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ flatItems.value }\n v-slots={ slots }\n />\n )}\n { slots['body.append']?.(slotProps.value) }\n </tbody>\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : (\n <>\n <VDivider />\n\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n </>\n ),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":";AAAA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,iBAAiB;AAAA,SACjBC,cAAc;AAAA,SACdC,QAAQ;AAAA,SACRC,MAAM,+BAEf;AAAA,SACSC,eAAe;AAAA,SACfC,aAAa,EAAEC,cAAc,EAAEC,eAAe;AAAA,SAC9CC,aAAa;AAAA,SACbC,iBAAiB;AAAA,SACjBC,UAAU;AAAA,SACVC,gBAAgB,EAAEC,0BAA0B,EAAEC,iBAAiB;AAAA,SAC/DC,gBAAgB;AAAA,SAChBC,UAAU,EAAEC,WAAW;AAAA,SACvBC,eAAe,0CAExB;AACA,SAASC,QAAQ,EAAEC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACrCC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAKA,OAAO,MAAMC,yBAAyB,GAAGF,YAAY,CAAC;EACpDG,WAAW,EAAE;IACXC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,QAAQ,EAAE;EACZ,CAAC;EAED,GAAGjB,0BAA0B,CAAC,CAAC;EAC/B,GAAGf,kBAAkB,CAAC,CAAC;EACvB,GAAGC,yBAAyB,CAAC;AAC/B,CAAC,EAAE,kBAAkB,CAAC;AAItB,OAAO,MAAMgC,gBAAgB,GAAGT,gBAAgB,CAWD,CAAC,CAAC;EAC/CU,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAER,yBAAyB,CAAC,CAAC;EAElCS,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAY,IAAK,IAAI;IAC3C,aAAa,EAAGC,IAAY,IAAK,IAAI;IACrC,qBAAqB,EAAGA,IAAY,IAAK,IAAI;IAC7C,eAAe,EAAGC,MAAW,IAAK,IAAI;IACtC,gBAAgB,EAAGC,OAAY,IAAK,IAAI;IACxC,iBAAiB,EAAGA,OAAY,IAAK,IAAI;IACzC,gBAAgB,EAAGH,KAAU,IAAK;EACpC,CAAC;EAEDI,KAAKA,CAAEN,KAAK,EAAAO,IAAA,EAAoB;IAAA,IAAlB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC5B,MAAM;MAAEG;IAAQ,CAAC,GAAGrC,aAAa,CAAC2B,KAAK,CAAC;IACxC,MAAM;MAAEI,MAAM;MAAEO,SAAS;MAAEC;IAAS,CAAC,GAAG7B,UAAU,CAACiB,KAAK,CAAC;IACzD,MAAM;MAAEG,IAAI;MAAEU;IAAa,CAAC,GAAGlC,gBAAgB,CAACqB,KAAK,CAAC;IACtD,MAAMP,WAAW,GAAGP,QAAQ,CAAC,MAAM4B,QAAQ,CAACd,KAAK,CAACP,WAAW,EAAE,EAAE,CAAC,CAAC;IAEnE,MAAM;MAAEsB,OAAO;MAAEC;IAAQ,CAAC,GAAGxC,aAAa,CAACwB,KAAK,EAAE;MAChDU,OAAO;MACPO,UAAU,EAAE7B,KAAK,CAACY,KAAK,EAAE,YAAY,CAAC;MACtCkB,UAAU,EAAE9B,KAAK,CAACY,KAAK,EAAE,YAAY;IACvC,CAAC,CAAC;IAEF,MAAM;MAAEmB;IAAM,CAAC,GAAG1C,iBAAiB,CAACuB,KAAK,EAAEe,OAAO,CAAC;IAEnD,MAAM;MAAEK;IAAW,CAAC,GAAGpC,WAAW,CAAC;MAAEoB,MAAM;MAAEO,SAAS;MAAEC,QAAQ;MAAET;IAAK,CAAC,CAAC;IAEzE,MAAM;MAAEkB,MAAM;MAAEC,WAAW;MAAEC,WAAW;MAAEC;IAAY,CAAC,GAAGlD,cAAc,CAAC;MAAEoC,OAAO;MAAEN;IAAO,CAAC,CAAC;IAE7F,MAAM;MAAEqB,SAAS;MAAEC;IAAgB,CAAC,GAAG7C,iBAAiB,CAAC;MAAEsB,IAAI;MAAEU,YAAY;MAAEpB;IAAY,CAAC,CAAC;IAE7F,MAAM;MAAEkC;IAAU,CAAC,GAAGpD,eAAe,CAAC4C,KAAK,EAAET,OAAO,EAAEW,MAAM,CAAC;IAE7D,MAAM;MAAEO,UAAU;MAAEC,MAAM;MAAEC,SAAS;MAAEC,YAAY;MAAEC,YAAY;MAAEC;IAAY,CAAC,GAAGnD,gBAAgB,CAACkB,KAAK,EAAE;MACzGkC,QAAQ,EAAEf,KAAK;MACfgB,WAAW,EAAEhB;IACf,CAAC,CAAC;IAEF,MAAM;MAAEiB,UAAU;MAAEC;IAAa,CAAC,GAAGjE,eAAe,CAAC4B,KAAK,CAAC;IAE3D,MAAMsC,kBAAkB,GAAGpD,QAAQ,CAAC,MAAMsC,WAAW,CAACL,KAAK,CAACjB,KAAK,CAAC,CAAC;IAEnExB,UAAU,CAAC;MACTyB,IAAI;MACJU,YAAY;MACZT,MAAM;MACNM,OAAO;MACP6B,MAAM,EAAEnD,KAAK,CAACY,KAAK,EAAE,QAAQ;IAC/B,CAAC,CAAC;IAEFb,OAAO,CAAC,cAAc,EAAE;MACtBiC,UAAU;MACVhB;IACF,CAAC,CAAC;IAEFnB,eAAe,CAAC;MACdhB,cAAc,EAAE;QACduE,UAAU,EAAEpD,KAAK,CAACY,KAAK,EAAE,YAAY,CAAC;QACtCyC,UAAU,EAAErD,KAAK,CAACY,KAAK,EAAE,YAAY,CAAC;QACtC0C,OAAO,EAAEtD,KAAK,CAACY,KAAK,EAAE,SAAS,CAAC;QAChC2C,WAAW,EAAEvD,KAAK,CAACY,KAAK,EAAE,aAAa;MACzC;IACF,CAAC,CAAC;IAEF,MAAM4C,SAAS,GAAG1D,QAAQ,CAA2B,OAAO;MAC1DiB,IAAI,EAAEA,IAAI,CAACD,KAAK;MAChBW,YAAY,EAAEA,YAAY,CAACX,KAAK;MAChCE,MAAM,EAAEA,MAAM,CAACF,KAAK;MACpBuB,SAAS,EAAEA,SAAS,CAACvB,KAAK;MAC1BkB,UAAU;MACVM,eAAe;MACfM,YAAY,EAAEA,YAAY,CAAC9B,KAAK;MAChC+B,WAAW,EAAEA,WAAW,CAAC/B,KAAK;MAC9B0B,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,YAAY;MACZK,UAAU;MACVC,YAAY;MACZf,WAAW;MACXC,WAAW;MACXJ,KAAK,EAAEmB,kBAAkB,CAACpC,KAAK,CAAC2C,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,GAAG,CAAC;MACrDC,aAAa,EAAEV,kBAAkB,CAACpC,KAAK;MACvC+C,YAAY,EAAEtB,SAAS,CAACzB,KAAK;MAC7Ba,OAAO,EAAEA,OAAO,CAACb,KAAK;MACtBc,OAAO,EAAEA,OAAO,CAACd;IACnB,CAAC,CAAC,CAAC;IAEHX,SAAS,CAAC,MAAM;MACd,MAAM2D,oBAAoB,GAAGnF,gBAAgB,CAACoF,WAAW,CAACnD,KAAK,CAAC;MAChE,MAAMoD,qBAAqB,GAAGpF,iBAAiB,CAACmF,WAAW,CAACnD,KAAK,CAAC;MAClE,MAAMqD,kBAAkB,GAAGpF,cAAc,CAACkF,WAAW,CAACnD,KAAK,CAAC;MAC5D,MAAMsD,UAAU,GAAGnF,MAAM,CAACgF,WAAW,CAACnD,KAAK,CAAC;MAE5C,OAAAuD,YAAA,CAAApF,MAAA,EAAAqF,WAAA;QAAA,SAEW,CACL,cAAc,EACd;UACE,uBAAuB,EAAExD,KAAK,CAAC0C;QACjC,CAAC,EACD1C,KAAK,CAACyD,KAAK,CACZ;QAAA,SACOzD,KAAK,CAAC0D;MAAK,GACdJ,UAAU;QAGbK,GAAG,EAAEA,CAAA,KAAMlD,KAAK,CAACkD,GAAG,GAAGf,SAAS,CAAC1C,KAAK,CAAC;QACvC0D,OAAO,EAAEA,CAAA,KAAMnD,KAAK,CAACmD,OAAO,GAAGnD,KAAK,CAACmD,OAAO,CAAChB,SAAS,CAAC1C,KAAK,CAAC,GAAAqD,YAAA,CAAAM,SAAA,SAEvDpD,KAAK,CAACqD,QAAQ,GAAGlB,SAAS,CAAC1C,KAAK,CAAC,EAAAqD,YAAA;UAAA;UAAA;QAAA,IAAAA,YAAA,CAAAvF,iBAAA,EAAAwF,WAAA,CAG1BJ,qBAAqB;UAAA,UACjBpD,KAAK,CAAC+D;QAAW,IAChBtD,KAAK,KAGjBA,KAAK,CAACuD,KAAK,GAAGpB,SAAS,CAAC1C,KAAK,CAAC,EAAAqD,YAAA;UAAA;UAAA;QAAA,IAE5B9C,KAAK,CAAC,cAAc,CAAC,GAAGmC,SAAS,CAAC1C,KAAK,CAAC,EACxCO,KAAK,CAACwD,IAAI,GAAGxD,KAAK,CAACwD,IAAI,CAACrB,SAAS,CAAC1C,KAAK,CAAC,GAAAqD,YAAA,CAAAtF,cAAA,EAAAuF,WAAA,CAEjChD,KAAK,EACL6C,kBAAkB;UAAA,SACf1B,SAAS,CAACzB;QAAK,IACbO,KAAK,CAElB,EACCA,KAAK,CAAC,aAAa,CAAC,GAAGmC,SAAS,CAAC1C,KAAK,CAAC,IAEzCO,KAAK,CAACyD,KAAK,GAAGtB,SAAS,CAAC1C,KAAK,CAAC,EAC9BO,KAAK,CAAC0D,KAAK,GAAGvB,SAAS,CAAC1C,KAAK,CAAC,EAEnC;QACDkE,MAAM,EAAEA,CAAA,KAAM3D,KAAK,CAAC2D,MAAM,GAAG3D,KAAK,CAAC2D,MAAM,CAACxB,SAAS,CAAC1C,KAAK,CAAC,GAAAqD,YAAA,CAAAM,SAAA,SAAAN,YAAA,CAAArF,QAAA,eAAAqF,YAAA,CAAAxF,gBAAA,EAK/CmF,oBAAoB,EAChB;UACPmB,OAAO,EAAE5D,KAAK,CAAC,gBAAgB;QACjC,CAAC;MAGN;IAIT,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VDataTableServer.mjs","names":["makeDataTableProps","makeVDataTableFooterProps","VDataTableFooter","VDataTableHeaders","VDataTableRows","VDivider","VTable","provideExpanded","createGroupBy","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","createPagination","makeDataTablePaginateProps","providePagination","provideSelection","createSort","provideSort","provideDefaults","computed","provide","toRef","genericComponent","propsFactory","useRender","makeVDataTableServerProps","itemsLength","type","Number","String","required","VDataTableServer","name","props","emits","value","page","sortBy","options","setup","_ref","attrs","slots","groupBy","multiSort","mustSort","itemsPerPage","parseInt","columns","headers","showSelect","showExpand","items","toggleSort","opened","isGroupOpen","toggleGroup","extractRows","pageCount","setItemsPerPage","flatItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","allItems","currentPage","isExpanded","toggleExpand","itemsWithoutGroups","search","hideNoData","noDataText","loading","loadingText","slotProps","map","item","raw","internalItems","groupedItems","dataTableFooterProps","filterProps","dataTableHeadersProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","default","_Fragment","colgroup","hideDefaultHeader","fixedHeader","thead","body","tbody","tfoot","bottom","hideDefaultFooter","prepend"],"sources":["../../../src/components/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { makeVDataTableFooterProps, VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDivider } from '@/components/VDivider'\nimport { VTable } from '@/components/VTable'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { createPagination, makeDataTablePaginateProps, providePagination } from './composables/paginate'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps, VDataTableSlots } from './VDataTable'\nimport type { CellProps, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport const makeVDataTableServerProps = propsFactory({\n itemsLength: {\n type: [Number, String],\n required: true,\n },\n\n ...makeDataTablePaginateProps(),\n ...makeDataTableProps(),\n ...makeVDataTableFooterProps(),\n}, 'VDataTableServer')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableServer = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableServer',\n\n props: makeVDataTableServerProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (page: number) => true,\n 'update:itemsPerPage': (page: number) => true,\n 'update:sortBy': (sortBy: any) => true,\n 'update:options': (options: any) => true,\n 'update:expanded': (options: any) => true,\n 'update:groupBy': (value: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n const { page, itemsPerPage } = createPagination(props)\n const itemsLength = computed(() => parseInt(props.itemsLength, 10))\n\n const { columns, headers } = 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 { toggleSort } = provideSort({ sortBy, multiSort, mustSort, page })\n\n const { opened, isGroupOpen, toggleGroup, extractRows } = provideGroupBy({ groupBy, sortBy })\n\n const { pageCount, setItemsPerPage } = providePagination({ page, itemsPerPage, itemsLength })\n\n const { flatItems } = useGroupedItems(items, groupBy, opened)\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems: items,\n currentPage: items,\n })\n\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const itemsWithoutGroups = computed(() => extractRows(items.value))\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n groupBy,\n search: toRef(props, 'search'),\n })\n\n provide('v-data-table', {\n toggleSort,\n sortBy,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableSlotProps<any>>(() => ({\n page: page.value,\n itemsPerPage: itemsPerPage.value,\n sortBy: sortBy.value,\n pageCount: pageCount.value,\n toggleSort,\n setItemsPerPage,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: itemsWithoutGroups.value.map(item => item.raw),\n internalItems: itemsWithoutGroups.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableFooterProps = VDataTableFooter.filterProps(props)\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n default: () => slots.default ? slots.default(slotProps.value) : (\n <>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n <thead key=\"thead\" class=\"v-data-table__thead\" role=\"rowgroup\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n )}\n { slots.thead?.(slotProps.value) }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots['body.prepend']?.(slotProps.value) }\n { slots.body ? slots.body(slotProps.value) : (\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ flatItems.value }\n v-slots={ slots }\n />\n )}\n { slots['body.append']?.(slotProps.value) }\n </tbody>\n { slots.tbody?.(slotProps.value) }\n { slots.tfoot?.(slotProps.value) }\n </>\n ),\n bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && (\n <>\n <VDivider />\n\n <VDataTableFooter\n { ...dataTableFooterProps }\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n </>\n ),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":";AAAA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,yBAAyB,EAAEC,gBAAgB;AAAA,SAC3CC,iBAAiB;AAAA,SACjBC,cAAc;AAAA,SACdC,QAAQ;AAAA,SACRC,MAAM,+BAEf;AAAA,SACSC,eAAe;AAAA,SACfC,aAAa,EAAEC,cAAc,EAAEC,eAAe;AAAA,SAC9CC,aAAa;AAAA,SACbC,iBAAiB;AAAA,SACjBC,UAAU;AAAA,SACVC,gBAAgB,EAAEC,0BAA0B,EAAEC,iBAAiB;AAAA,SAC/DC,gBAAgB;AAAA,SAChBC,UAAU,EAAEC,WAAW;AAAA,SACvBC,eAAe,0CAExB;AACA,SAASC,QAAQ,EAAEC,OAAO,EAAEC,KAAK,QAAQ,KAAK;AAAA,SACrCC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAKA,OAAO,MAAMC,yBAAyB,GAAGF,YAAY,CAAC;EACpDG,WAAW,EAAE;IACXC,IAAI,EAAE,CAACC,MAAM,EAAEC,MAAM,CAAC;IACtBC,QAAQ,EAAE;EACZ,CAAC;EAED,GAAGjB,0BAA0B,CAAC,CAAC;EAC/B,GAAGf,kBAAkB,CAAC,CAAC;EACvB,GAAGC,yBAAyB,CAAC;AAC/B,CAAC,EAAE,kBAAkB,CAAC;AAItB,OAAO,MAAMgC,gBAAgB,GAAGT,gBAAgB,CAWD,CAAC,CAAC;EAC/CU,IAAI,EAAE,kBAAkB;EAExBC,KAAK,EAAER,yBAAyB,CAAC,CAAC;EAElCS,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAY,IAAK,IAAI;IAC3C,aAAa,EAAGC,IAAY,IAAK,IAAI;IACrC,qBAAqB,EAAGA,IAAY,IAAK,IAAI;IAC7C,eAAe,EAAGC,MAAW,IAAK,IAAI;IACtC,gBAAgB,EAAGC,OAAY,IAAK,IAAI;IACxC,iBAAiB,EAAGA,OAAY,IAAK,IAAI;IACzC,gBAAgB,EAAGH,KAAU,IAAK;EACpC,CAAC;EAEDI,KAAKA,CAAEN,KAAK,EAAAO,IAAA,EAAoB;IAAA,IAAlB;MAAEC,KAAK;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC5B,MAAM;MAAEG;IAAQ,CAAC,GAAGrC,aAAa,CAAC2B,KAAK,CAAC;IACxC,MAAM;MAAEI,MAAM;MAAEO,SAAS;MAAEC;IAAS,CAAC,GAAG7B,UAAU,CAACiB,KAAK,CAAC;IACzD,MAAM;MAAEG,IAAI;MAAEU;IAAa,CAAC,GAAGlC,gBAAgB,CAACqB,KAAK,CAAC;IACtD,MAAMP,WAAW,GAAGP,QAAQ,CAAC,MAAM4B,QAAQ,CAACd,KAAK,CAACP,WAAW,EAAE,EAAE,CAAC,CAAC;IAEnE,MAAM;MAAEsB,OAAO;MAAEC;IAAQ,CAAC,GAAGxC,aAAa,CAACwB,KAAK,EAAE;MAChDU,OAAO;MACPO,UAAU,EAAE7B,KAAK,CAACY,KAAK,EAAE,YAAY,CAAC;MACtCkB,UAAU,EAAE9B,KAAK,CAACY,KAAK,EAAE,YAAY;IACvC,CAAC,CAAC;IAEF,MAAM;MAAEmB;IAAM,CAAC,GAAG1C,iBAAiB,CAACuB,KAAK,EAAEe,OAAO,CAAC;IAEnD,MAAM;MAAEK;IAAW,CAAC,GAAGpC,WAAW,CAAC;MAAEoB,MAAM;MAAEO,SAAS;MAAEC,QAAQ;MAAET;IAAK,CAAC,CAAC;IAEzE,MAAM;MAAEkB,MAAM;MAAEC,WAAW;MAAEC,WAAW;MAAEC;IAAY,CAAC,GAAGlD,cAAc,CAAC;MAAEoC,OAAO;MAAEN;IAAO,CAAC,CAAC;IAE7F,MAAM;MAAEqB,SAAS;MAAEC;IAAgB,CAAC,GAAG7C,iBAAiB,CAAC;MAAEsB,IAAI;MAAEU,YAAY;MAAEpB;IAAY,CAAC,CAAC;IAE7F,MAAM;MAAEkC;IAAU,CAAC,GAAGpD,eAAe,CAAC4C,KAAK,EAAET,OAAO,EAAEW,MAAM,CAAC;IAE7D,MAAM;MAAEO,UAAU;MAAEC,MAAM;MAAEC,SAAS;MAAEC,YAAY;MAAEC,YAAY;MAAEC;IAAY,CAAC,GAAGnD,gBAAgB,CAACkB,KAAK,EAAE;MACzGkC,QAAQ,EAAEf,KAAK;MACfgB,WAAW,EAAEhB;IACf,CAAC,CAAC;IAEF,MAAM;MAAEiB,UAAU;MAAEC;IAAa,CAAC,GAAGjE,eAAe,CAAC4B,KAAK,CAAC;IAE3D,MAAMsC,kBAAkB,GAAGpD,QAAQ,CAAC,MAAMsC,WAAW,CAACL,KAAK,CAACjB,KAAK,CAAC,CAAC;IAEnExB,UAAU,CAAC;MACTyB,IAAI;MACJU,YAAY;MACZT,MAAM;MACNM,OAAO;MACP6B,MAAM,EAAEnD,KAAK,CAACY,KAAK,EAAE,QAAQ;IAC/B,CAAC,CAAC;IAEFb,OAAO,CAAC,cAAc,EAAE;MACtBiC,UAAU;MACVhB;IACF,CAAC,CAAC;IAEFnB,eAAe,CAAC;MACdhB,cAAc,EAAE;QACduE,UAAU,EAAEpD,KAAK,CAACY,KAAK,EAAE,YAAY,CAAC;QACtCyC,UAAU,EAAErD,KAAK,CAACY,KAAK,EAAE,YAAY,CAAC;QACtC0C,OAAO,EAAEtD,KAAK,CAACY,KAAK,EAAE,SAAS,CAAC;QAChC2C,WAAW,EAAEvD,KAAK,CAACY,KAAK,EAAE,aAAa;MACzC;IACF,CAAC,CAAC;IAEF,MAAM4C,SAAS,GAAG1D,QAAQ,CAA2B,OAAO;MAC1DiB,IAAI,EAAEA,IAAI,CAACD,KAAK;MAChBW,YAAY,EAAEA,YAAY,CAACX,KAAK;MAChCE,MAAM,EAAEA,MAAM,CAACF,KAAK;MACpBuB,SAAS,EAAEA,SAAS,CAACvB,KAAK;MAC1BkB,UAAU;MACVM,eAAe;MACfM,YAAY,EAAEA,YAAY,CAAC9B,KAAK;MAChC+B,WAAW,EAAEA,WAAW,CAAC/B,KAAK;MAC9B0B,UAAU;MACVC,MAAM;MACNC,SAAS;MACTC,YAAY;MACZK,UAAU;MACVC,YAAY;MACZf,WAAW;MACXC,WAAW;MACXJ,KAAK,EAAEmB,kBAAkB,CAACpC,KAAK,CAAC2C,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,GAAG,CAAC;MACrDC,aAAa,EAAEV,kBAAkB,CAACpC,KAAK;MACvC+C,YAAY,EAAEtB,SAAS,CAACzB,KAAK;MAC7Ba,OAAO,EAAEA,OAAO,CAACb,KAAK;MACtBc,OAAO,EAAEA,OAAO,CAACd;IACnB,CAAC,CAAC,CAAC;IAEHX,SAAS,CAAC,MAAM;MACd,MAAM2D,oBAAoB,GAAGnF,gBAAgB,CAACoF,WAAW,CAACnD,KAAK,CAAC;MAChE,MAAMoD,qBAAqB,GAAGpF,iBAAiB,CAACmF,WAAW,CAACnD,KAAK,CAAC;MAClE,MAAMqD,kBAAkB,GAAGpF,cAAc,CAACkF,WAAW,CAACnD,KAAK,CAAC;MAC5D,MAAMsD,UAAU,GAAGnF,MAAM,CAACgF,WAAW,CAACnD,KAAK,CAAC;MAE5C,OAAAuD,YAAA,CAAApF,MAAA,EAAAqF,WAAA;QAAA,SAEW,CACL,cAAc,EACd;UACE,uBAAuB,EAAExD,KAAK,CAAC0C;QACjC,CAAC,EACD1C,KAAK,CAACyD,KAAK,CACZ;QAAA,SACOzD,KAAK,CAAC0D;MAAK,GACdJ,UAAU;QAGbK,GAAG,EAAEA,CAAA,KAAMlD,KAAK,CAACkD,GAAG,GAAGf,SAAS,CAAC1C,KAAK,CAAC;QACvC0D,OAAO,EAAEA,CAAA,KAAMnD,KAAK,CAACmD,OAAO,GAAGnD,KAAK,CAACmD,OAAO,CAAChB,SAAS,CAAC1C,KAAK,CAAC,GAAAqD,YAAA,CAAAM,SAAA,SAEvDpD,KAAK,CAACqD,QAAQ,GAAGlB,SAAS,CAAC1C,KAAK,CAAC,EACjC,CAACF,KAAK,CAAC+D,iBAAiB,IAAAR,YAAA;UAAA;UAAA;UAAA;QAAA,IAAAA,YAAA,CAAAvF,iBAAA,EAAAwF,WAAA,CAGfJ,qBAAqB;UAAA,UACjBpD,KAAK,CAACgE;QAAW,IAChBvD,KAAK,GAGpB,EACCA,KAAK,CAACwD,KAAK,GAAGrB,SAAS,CAAC1C,KAAK,CAAC,EAAAqD,YAAA;UAAA;UAAA;QAAA,IAE5B9C,KAAK,CAAC,cAAc,CAAC,GAAGmC,SAAS,CAAC1C,KAAK,CAAC,EACxCO,KAAK,CAACyD,IAAI,GAAGzD,KAAK,CAACyD,IAAI,CAACtB,SAAS,CAAC1C,KAAK,CAAC,GAAAqD,YAAA,CAAAtF,cAAA,EAAAuF,WAAA,CAEjChD,KAAK,EACL6C,kBAAkB;UAAA,SACf1B,SAAS,CAACzB;QAAK,IACbO,KAAK,CAElB,EACCA,KAAK,CAAC,aAAa,CAAC,GAAGmC,SAAS,CAAC1C,KAAK,CAAC,IAEzCO,KAAK,CAAC0D,KAAK,GAAGvB,SAAS,CAAC1C,KAAK,CAAC,EAC9BO,KAAK,CAAC2D,KAAK,GAAGxB,SAAS,CAAC1C,KAAK,CAAC,EAEnC;QACDmE,MAAM,EAAEA,CAAA,KAAM5D,KAAK,CAAC4D,MAAM,GAAG5D,KAAK,CAAC4D,MAAM,CAACzB,SAAS,CAAC1C,KAAK,CAAC,GAAG,CAACF,KAAK,CAACsE,iBAAiB,IAAAf,YAAA,CAAAM,SAAA,SAAAN,YAAA,CAAArF,QAAA,eAAAqF,YAAA,CAAAxF,gBAAA,EAK1EmF,oBAAoB,EAChB;UACPqB,OAAO,EAAE9D,KAAK,CAAC,gBAAgB;QACjC,CAAC;MAGN;IAIT,CAAC,CAAC;EACJ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -175,7 +175,9 @@ export const VDataTableVirtual = genericComponent()({
175
175
  "style": {
176
176
  height: convertToUnit(props.height)
177
177
  }
178
- }, [_createVNode("table", null, [slots.colgroup?.(slotProps.value), _createVNode("thead", null, [_createVNode(VDataTableHeaders, _mergeProps(dataTableHeadersProps, {
178
+ }, [_createVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && _createVNode("thead", {
179
+ "key": "thead"
180
+ }, [_createVNode(VDataTableHeaders, _mergeProps(dataTableHeadersProps, {
179
181
  "sticky": props.fixedHeader
180
182
  }), slots)]), _createVNode("tbody", null, [_createVNode("tr", {
181
183
  "ref": markerRef,
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableVirtual.mjs","names":["makeDataTableProps","VDataTableHeaders","VDataTableRow","VDataTableRows","VTable","VVirtualScrollItem","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","provideSelection","createSort","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","makeVirtualProps","useVirtual","computed","shallowRef","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","setup","_ref","attrs","slots","groupBy","sortBy","multiSort","mustSort","columns","headers","filterFunctions","sortFunctions","sortRawFunctions","showSelect","showExpand","items","search","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","allItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","currentPage","isExpanded","toggleExpand","containerRef","markerRef","paddingTop","paddingBottom","computedItems","handleItemResize","handleScroll","handleScrollend","displayItems","map","raw","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","internalItems","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","wrapper","height","colgroup","fixedHeader","border","length","itemSlotProps","internalItem","index","default","_ref2","itemRef","bottom"],"sources":["../../../src/components/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { CellProps, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey, TemplateRef } from '@/util'\n\ntype VDataTableVirtualSlotProps<T> = Omit<\n VDataTableSlotProps<T>,\n | 'setItemsPerPage'\n | 'page'\n | 'pageCount'\n | 'itemsPerPage'\n>\n\nexport type VDataTableVirtualSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n colgroup: VDataTableVirtualSlotProps<T>\n top: VDataTableVirtualSlotProps<T>\n headers: VDataTableHeadersSlots['headers']\n bottom: VDataTableVirtualSlotProps<T>\n 'body.prepend': VDataTableVirtualSlotProps<T>\n 'body.append': VDataTableVirtualSlotProps<T>\n item: {\n itemRef: TemplateRef\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableVirtual = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableVirtualSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => 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, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => item.columns,\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n } = useVirtual(props, flatItems)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps<any>>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n { slots.colgroup?.(slotProps.value) }\n <thead>\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr ref={ markerRef } style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n\n { slots['body.prepend']?.(slotProps.value) }\n\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ displayItems.value }\n >\n {{\n ...slots,\n item: itemSlotProps => (\n <VVirtualScrollItem\n key={ itemSlotProps.internalItem.index }\n renderless\n onUpdate:height={ height => handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n <VDataTableRow\n { ...itemSlotProps.props }\n ref={ itemRef }\n key={ itemSlotProps.internalItem.index }\n index={ itemSlotProps.internalItem.index }\n v-slots={ slots }\n />\n )\n )}\n </VVirtualScrollItem>\n ),\n }}\n </VDataTableRows>\n\n { slots['body.append']?.(slotProps.value) }\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VDataTableVirtual.mjs","names":["makeDataTableProps","VDataTableHeaders","VDataTableRow","VDataTableRows","VTable","VVirtualScrollItem","provideExpanded","createGroupBy","makeDataTableGroupProps","provideGroupBy","useGroupedItems","createHeaders","useDataTableItems","useOptions","provideSelection","createSort","provideSort","useSortedItems","provideDefaults","makeFilterProps","useFilter","makeVirtualProps","useVirtual","computed","shallowRef","toRef","convertToUnit","genericComponent","propsFactory","useRender","makeVDataTableVirtualProps","VDataTableVirtual","name","props","emits","value","setup","_ref","attrs","slots","groupBy","sortBy","multiSort","mustSort","columns","headers","filterFunctions","sortFunctions","sortRawFunctions","showSelect","showExpand","items","search","filteredItems","transform","item","customKeyFilter","toggleSort","sortByWithGroups","opened","extractRows","isGroupOpen","toggleGroup","sortedItems","flatItems","allItems","isSelected","select","selectAll","toggleSelect","someSelected","allSelected","currentPage","isExpanded","toggleExpand","containerRef","markerRef","paddingTop","paddingBottom","computedItems","handleItemResize","handleScroll","handleScrollend","displayItems","map","raw","page","itemsPerPage","hideNoData","noDataText","loading","loadingText","slotProps","internalItems","groupedItems","dataTableHeadersProps","filterProps","dataTableRowsProps","tableProps","_createVNode","_mergeProps","class","style","top","wrapper","height","colgroup","hideDefaultHeader","fixedHeader","border","length","itemSlotProps","internalItem","index","default","_ref2","itemRef","bottom"],"sources":["../../../src/components/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { makeDataTableProps } from './VDataTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRow } from './VDataTableRow'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VTable } from '@/components/VTable'\nimport { VVirtualScrollItem } from '@/components/VVirtualScroll/VVirtualScrollItem'\n\n// Composables\nimport { provideExpanded } from './composables/expand'\nimport { createGroupBy, makeDataTableGroupProps, provideGroupBy, useGroupedItems } from './composables/group'\nimport { createHeaders } from './composables/headers'\nimport { useDataTableItems } from './composables/items'\nimport { useOptions } from './composables/options'\nimport { provideSelection } from './composables/select'\nimport { createSort, provideSort, useSortedItems } from './composables/sort'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { computed, shallowRef, toRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { VDataTableSlotProps } from './VDataTable'\nimport type { VDataTableHeadersSlots } from './VDataTableHeaders'\nimport type { VDataTableRowsSlots } from './VDataTableRows'\nimport type { CellProps, RowProps } from '@/components/VDataTable/types'\nimport type { GenericProps, SelectItemKey, TemplateRef } from '@/util'\n\ntype VDataTableVirtualSlotProps<T> = Omit<\n VDataTableSlotProps<T>,\n | 'setItemsPerPage'\n | 'page'\n | 'pageCount'\n | 'itemsPerPage'\n>\n\nexport type VDataTableVirtualSlots<T> = VDataTableRowsSlots<T> & VDataTableHeadersSlots & {\n colgroup: VDataTableVirtualSlotProps<T>\n top: VDataTableVirtualSlotProps<T>\n headers: VDataTableHeadersSlots['headers']\n bottom: VDataTableVirtualSlotProps<T>\n 'body.prepend': VDataTableVirtualSlotProps<T>\n 'body.append': VDataTableVirtualSlotProps<T>\n item: {\n itemRef: TemplateRef\n }\n}\n\nexport const makeVDataTableVirtualProps = propsFactory({\n ...makeDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeVirtualProps(),\n ...makeFilterProps(),\n}, 'VDataTableVirtual')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VDataTableVirtual = genericComponent<new <T extends readonly any[], V>(\n props: {\n items?: T\n itemValue?: SelectItemKey<ItemType<T>>\n rowProps?: RowProps<ItemType<T>>\n cellProps?: CellProps<ItemType<T>>\n itemSelectable?: SelectItemKey<ItemType<T>>\n modelValue?: V\n 'onUpdate:modelValue'?: (value: V) => void\n },\n slots: VDataTableVirtualSlots<ItemType<T>>,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VDataTableVirtual',\n\n props: makeVDataTableVirtualProps(),\n\n emits: {\n 'update:modelValue': (value: any[]) => 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, { attrs, slots }) {\n const { groupBy } = createGroupBy(props)\n const { sortBy, multiSort, mustSort } = createSort(props)\n\n const {\n columns,\n headers,\n filterFunctions,\n sortFunctions,\n sortRawFunctions,\n } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const search = toRef(props, 'search')\n const { filteredItems } = useFilter(props, items, search, {\n transform: item => item.columns,\n customKeyFilter: filterFunctions,\n })\n\n const { toggleSort } = provideSort({ sortBy, multiSort, mustSort })\n const { sortByWithGroups, opened, extractRows, isGroupOpen, toggleGroup } = provideGroupBy({ groupBy, sortBy })\n\n const { sortedItems } = useSortedItems(props, filteredItems, sortByWithGroups, {\n transform: item => item.columns,\n sortFunctions,\n sortRawFunctions,\n })\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allItems = computed(() => extractRows(flatItems.value))\n\n const { isSelected, select, selectAll, toggleSelect, someSelected, allSelected } = provideSelection(props, {\n allItems,\n currentPage: allItems,\n })\n const { isExpanded, toggleExpand } = provideExpanded(props)\n\n const {\n containerRef,\n markerRef,\n paddingTop,\n paddingBottom,\n computedItems,\n handleItemResize,\n handleScroll,\n handleScrollend,\n } = useVirtual(props, flatItems)\n const displayItems = computed(() => computedItems.value.map(item => item.raw))\n\n useOptions({\n sortBy,\n page: shallowRef(1),\n itemsPerPage: shallowRef(-1),\n groupBy,\n search,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n loading: toRef(props, 'loading'),\n loadingText: toRef(props, 'loadingText'),\n },\n })\n\n const slotProps = computed<VDataTableVirtualSlotProps<any>>(() => ({\n sortBy: sortBy.value,\n toggleSort,\n someSelected: someSelected.value,\n allSelected: allSelected.value,\n isSelected,\n select,\n selectAll,\n toggleSelect,\n isExpanded,\n toggleExpand,\n isGroupOpen,\n toggleGroup,\n items: allItems.value.map(item => item.raw),\n internalItems: allItems.value,\n groupedItems: flatItems.value,\n columns: columns.value,\n headers: headers.value,\n }))\n\n useRender(() => {\n const dataTableHeadersProps = VDataTableHeaders.filterProps(props)\n const dataTableRowsProps = VDataTableRows.filterProps(props)\n const tableProps = VTable.filterProps(props)\n\n return (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n props.class,\n ]}\n style={ props.style }\n { ...tableProps }\n >\n {{\n top: () => slots.top?.(slotProps.value),\n wrapper: () => (\n <div\n ref={ containerRef }\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n { slots.colgroup?.(slotProps.value) }\n { !props.hideDefaultHeader && (\n <thead key=\"thead\">\n <VDataTableHeaders\n { ...dataTableHeadersProps }\n sticky={ props.fixedHeader }\n v-slots={ slots }\n />\n </thead>\n )}\n <tbody>\n <tr ref={ markerRef } style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n\n { slots['body.prepend']?.(slotProps.value) }\n\n <VDataTableRows\n { ...attrs }\n { ...dataTableRowsProps }\n items={ displayItems.value }\n >\n {{\n ...slots,\n item: itemSlotProps => (\n <VVirtualScrollItem\n key={ itemSlotProps.internalItem.index }\n renderless\n onUpdate:height={ height => handleItemResize(itemSlotProps.internalItem.index, height) }\n >\n { ({ itemRef }) => (\n slots.item?.({ ...itemSlotProps, itemRef }) ?? (\n <VDataTableRow\n { ...itemSlotProps.props }\n ref={ itemRef }\n key={ itemSlotProps.internalItem.index }\n index={ itemSlotProps.internalItem.index }\n v-slots={ slots }\n />\n )\n )}\n </VVirtualScrollItem>\n ),\n }}\n </VDataTableRows>\n\n { slots['body.append']?.(slotProps.value) }\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={ columns.value.length } style={{ height: 0, border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: () => slots.bottom?.(slotProps.value),\n }}\n </VTable>\n )\n })\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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","ignoreList":[]}