@vuetify/nightly 3.1.0-dev-20230104.0 → 3.1.0-dev-20230105.0

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.
package/CHANGELOG.md CHANGED
@@ -1,8 +1,8 @@
1
- # [](https://github.com/vuetifyjs/vuetify/compare/v3.1.0-dev-20230104.0...v) (2023-01-04)
1
+ # [](https://github.com/vuetifyjs/vuetify/compare/v3.1.0-dev-20230105.0...v) (2023-01-05)
2
2
 
3
3
 
4
4
 
5
- # [3.1.0-dev-20230104.0](https://github.com/vuetifyjs/vuetify/compare/v3.0.6...v3.1.0-dev-20230104.0) (2023-01-04)
5
+ # [3.1.0-dev-20230105.0](https://github.com/vuetifyjs/vuetify/compare/v3.0.6...v3.1.0-dev-20230105.0) (2023-01-05)
6
6
 
7
7
 
8
8
  ### Bug Fixes
@@ -18,6 +18,7 @@
18
18
 
19
19
  * **labs:** add labs export ([#16341](https://github.com/vuetifyjs/vuetify/issues/16341)) ([cd013a9](https://github.com/vuetifyjs/vuetify/commit/cd013a9c3723a2657e11006a82ba153728e4c304))
20
20
  * **VBreadcrumbs:** improve DX when using explicit components ([#16229](https://github.com/vuetifyjs/vuetify/issues/16229)) ([a11e937](https://github.com/vuetifyjs/vuetify/commit/a11e937c624ee1bf58ab3a93f9139181f89e0612))
21
+ * **VDataTable:** add click:row event ([a7cc135](https://github.com/vuetifyjs/vuetify/commit/a7cc13513a9677006541db79905897027051012e))
21
22
  * **VDataTable:** port to v3 ([#16235](https://github.com/vuetifyjs/vuetify/issues/16235)) ([807e729](https://github.com/vuetifyjs/vuetify/commit/807e7298c2e9e876b89dce8bdec1d218d8e04c26)), closes [#13479](https://github.com/vuetifyjs/vuetify/issues/13479)
22
23
  * **VIcon:** allow components in default slot ([#16168](https://github.com/vuetifyjs/vuetify/issues/16168)) ([aa0a697](https://github.com/vuetifyjs/vuetify/commit/aa0a697276f6ff412d9c8c04fa9956d8dee7e0c7)), closes [#15164](https://github.com/vuetifyjs/vuetify/issues/15164)
23
24
  * **VNavigationDrawer:** add rail prop v-model support ([#16352](https://github.com/vuetifyjs/vuetify/issues/16352)) ([22f591b](https://github.com/vuetifyjs/vuetify/commit/22f591bfb56ae641eac0090a6db60800595430bd)), closes [#16022](https://github.com/vuetifyjs/vuetify/issues/16022)
@@ -4,10 +4,6 @@
4
4
  "from": "components/VDefaultsProvider/index.mjs",
5
5
  "styles": []
6
6
  },
7
- "VHover": {
8
- "from": "components/VHover/index.mjs",
9
- "styles": []
10
- },
11
7
  "VForm": {
12
8
  "from": "components/VForm/index.mjs",
13
9
  "styles": []
@@ -28,6 +24,10 @@
28
24
  "from": "components/VGrid/index.mjs",
29
25
  "styles": []
30
26
  },
27
+ "VHover": {
28
+ "from": "components/VHover/index.mjs",
29
+ "styles": []
30
+ },
31
31
  "VLayout": {
32
32
  "from": "components/VLayout/index.mjs",
33
33
  "styles": []
@@ -52,10 +52,6 @@
52
52
  "from": "components/VRadio/index.mjs",
53
53
  "styles": []
54
54
  },
55
- "VParallax": {
56
- "from": "components/VParallax/index.mjs",
57
- "styles": []
58
- },
59
55
  "VRangeSlider": {
60
56
  "from": "components/VRangeSlider/index.mjs",
61
57
  "styles": []
@@ -244,10 +240,6 @@
244
240
  "from": "components/VCarousel/index.mjs",
245
241
  "styles": []
246
242
  },
247
- "VChip": {
248
- "from": "components/VChip/index.mjs",
249
- "styles": []
250
- },
251
243
  "VCheckbox": {
252
244
  "from": "components/VCheckbox/index.mjs",
253
245
  "styles": []
@@ -256,6 +248,10 @@
256
248
  "from": "components/VCheckbox/index.mjs",
257
249
  "styles": []
258
250
  },
251
+ "VChip": {
252
+ "from": "components/VChip/index.mjs",
253
+ "styles": []
254
+ },
259
255
  "VChipGroup": {
260
256
  "from": "components/VChipGroup/index.mjs",
261
257
  "styles": []
@@ -308,14 +304,14 @@
308
304
  "from": "components/VField/index.mjs",
309
305
  "styles": []
310
306
  },
311
- "VFooter": {
312
- "from": "components/VFooter/index.mjs",
313
- "styles": []
314
- },
315
307
  "VFileInput": {
316
308
  "from": "components/VFileInput/index.mjs",
317
309
  "styles": []
318
310
  },
311
+ "VFooter": {
312
+ "from": "components/VFooter/index.mjs",
313
+ "styles": []
314
+ },
319
315
  "VIcon": {
320
316
  "from": "components/VIcon/index.mjs",
321
317
  "styles": []
@@ -492,6 +488,10 @@
492
488
  "from": "components/VTextarea/index.mjs",
493
489
  "styles": []
494
490
  },
491
+ "VTextField": {
492
+ "from": "components/VTextField/index.mjs",
493
+ "styles": []
494
+ },
495
495
  "VTimeline": {
496
496
  "from": "components/VTimeline/index.mjs",
497
497
  "styles": []
@@ -500,10 +500,6 @@
500
500
  "from": "components/VTimeline/index.mjs",
501
501
  "styles": []
502
502
  },
503
- "VTextField": {
504
- "from": "components/VTextField/index.mjs",
505
- "styles": []
506
- },
507
503
  "VToolbar": {
508
504
  "from": "components/VToolbar/index.mjs",
509
505
  "styles": []
@@ -527,6 +523,10 @@
527
523
  "VWindowItem": {
528
524
  "from": "components/VWindow/index.mjs",
529
525
  "styles": []
526
+ },
527
+ "VParallax": {
528
+ "from": "components/VParallax/index.mjs",
529
+ "styles": []
530
530
  }
531
531
  },
532
532
  "directives": [
@@ -145,6 +145,9 @@ declare const VDataTable: vue.DefineComponent<{
145
145
  'update:options': (value: any) => true;
146
146
  'update:groupBy': (value: any) => true;
147
147
  'update:expanded': (value: any) => true;
148
+ 'click:row': (event: Event, value: {
149
+ item: DataTableItem;
150
+ }) => true;
148
151
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
149
152
  customFilter: vue.PropType<FilterFunction>;
150
153
  customKeyFilter: vue.PropType<FilterKeyFunctions>;
@@ -225,6 +228,9 @@ declare const VDataTable: vue.DefineComponent<{
225
228
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
226
229
  "onUpdate:sortBy"?: ((value: any) => any) | undefined;
227
230
  "onUpdate:expanded"?: ((value: any) => any) | undefined;
231
+ "onClick:row"?: ((event: Event, value: {
232
+ item: DataTableItem;
233
+ }) => any) | undefined;
228
234
  "onUpdate:page"?: ((value: number) => any) | undefined;
229
235
  "onUpdate:itemsPerPage"?: ((value: number) => any) | undefined;
230
236
  "onUpdate:options"?: ((value: any) => any) | undefined;
@@ -273,7 +279,11 @@ declare const VDataTableRows: vue.DefineComponent<{
273
279
  default: string;
274
280
  };
275
281
  rowHeight: NumberConstructor;
276
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
282
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
283
+ 'click:row': (event: Event, value: {
284
+ item: DataTableItem;
285
+ }) => true;
286
+ }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
277
287
  loading: (StringConstructor | BooleanConstructor)[];
278
288
  loadingText: {
279
289
  type: StringConstructor;
@@ -289,7 +299,11 @@ declare const VDataTableRows: vue.DefineComponent<{
289
299
  default: string;
290
300
  };
291
301
  rowHeight: NumberConstructor;
292
- }>>, {
302
+ }>> & {
303
+ "onClick:row"?: ((event: Event, value: {
304
+ item: DataTableItem;
305
+ }) => any) | undefined;
306
+ }, {
293
307
  noDataText: string;
294
308
  loadingText: string;
295
309
  items: InternalDataTableItem[];
@@ -386,6 +400,9 @@ declare const VDataTableVirtual: vue.DefineComponent<{
386
400
  'update:options': (value: any) => true;
387
401
  'update:groupBy': (value: any) => true;
388
402
  'update:expanded': (value: any) => true;
403
+ 'click:row': (event: Event, value: {
404
+ item: DataTableItem;
405
+ }) => true;
389
406
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
390
407
  customFilter: vue.PropType<FilterFunction>;
391
408
  customKeyFilter: vue.PropType<FilterKeyFunctions>;
@@ -466,6 +483,9 @@ declare const VDataTableVirtual: vue.DefineComponent<{
466
483
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
467
484
  "onUpdate:sortBy"?: ((value: any) => any) | undefined;
468
485
  "onUpdate:expanded"?: ((value: any) => any) | undefined;
486
+ "onClick:row"?: ((event: Event, value: {
487
+ item: DataTableItem;
488
+ }) => any) | undefined;
469
489
  "onUpdate:options"?: ((value: any) => any) | undefined;
470
490
  "onUpdate:groupBy"?: ((value: any) => any) | undefined;
471
491
  }, {
@@ -573,6 +593,9 @@ declare const VDataTableServer: vue.DefineComponent<{
573
593
  'update:sortBy': (sortBy: any) => true;
574
594
  'update:options': (options: any) => true;
575
595
  'update:expanded': (options: any) => true;
596
+ 'click:row': (event: Event, value: {
597
+ item: DataTableItem;
598
+ }) => true;
576
599
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
577
600
  page: {
578
601
  type: (StringConstructor | NumberConstructor)[];
@@ -647,6 +670,9 @@ declare const VDataTableServer: vue.DefineComponent<{
647
670
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
648
671
  "onUpdate:sortBy"?: ((sortBy: any) => any) | undefined;
649
672
  "onUpdate:expanded"?: ((options: any) => any) | undefined;
673
+ "onClick:row"?: ((event: Event, value: {
674
+ item: DataTableItem;
675
+ }) => any) | undefined;
650
676
  "onUpdate:page"?: ((page: number) => any) | undefined;
651
677
  "onUpdate:itemsPerPage"?: ((page: number) => any) | undefined;
652
678
  "onUpdate:options"?: ((options: any) => any) | undefined;
@@ -4589,8 +4589,12 @@
4589
4589
  },
4590
4590
  rowHeight: Number
4591
4591
  },
4592
+ emits: {
4593
+ 'click:row': (event, value) => true
4594
+ },
4592
4595
  setup(props, _ref) {
4593
4596
  let {
4597
+ emit,
4594
4598
  slots
4595
4599
  } = _ref;
4596
4600
  const {
@@ -4626,7 +4630,14 @@
4626
4630
  }
4627
4631
  return vue.createVNode(vue.Fragment, null, [vue.createVNode(VDataTableRow, {
4628
4632
  "key": `item_${item.value}`,
4629
- "onClick": expandOnClick.value ? () => expand(item, !expanded.value.has(item.value)) : undefined,
4633
+ "onClick": event => {
4634
+ if (expandOnClick.value) {
4635
+ expand(item, !expanded.value.has(item.value));
4636
+ }
4637
+ emit('click:row', event, {
4638
+ item
4639
+ });
4640
+ },
4630
4641
  "item": item
4631
4642
  }, slots), expanded.value.has(item.value) && ((_slots$expandedRow = slots['expanded-row']) == null ? void 0 : _slots$expandedRow.call(slots, {
4632
4643
  item,
@@ -9162,10 +9173,12 @@
9162
9173
  'update:sortBy': value => true,
9163
9174
  'update:options': value => true,
9164
9175
  'update:groupBy': value => true,
9165
- 'update:expanded': value => true
9176
+ 'update:expanded': value => true,
9177
+ 'click:row': (event, value) => true
9166
9178
  },
9167
9179
  setup(props, _ref) {
9168
9180
  let {
9181
+ emit,
9169
9182
  slots
9170
9183
  } = _ref;
9171
9184
  const groupBy = useProxiedModel(props, 'groupBy');
@@ -9240,7 +9253,8 @@
9240
9253
  "sticky": props.fixedHeader,
9241
9254
  "multiSort": props.multiSort
9242
9255
  }, slots)]), (_slots$thead = slots.thead) == null ? void 0 : _slots$thead.call(slots), vue.createVNode("tbody", null, [slots.body ? slots.body() : vue.createVNode(VDataTableRows, {
9243
- "items": paginatedItems.value
9256
+ "items": paginatedItems.value,
9257
+ "onClick:row": (event, value) => emit('click:row', event, value)
9244
9258
  }, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
9245
9259
  },
9246
9260
  bottom: slots.bottom ? slots.bottom() : () => vue.createVNode(VDataTableFooter, null, {
@@ -9351,10 +9365,12 @@
9351
9365
  'update:sortBy': value => true,
9352
9366
  'update:options': value => true,
9353
9367
  'update:groupBy': value => true,
9354
- 'update:expanded': value => true
9368
+ 'update:expanded': value => true,
9369
+ 'click:row': (event, value) => true
9355
9370
  },
9356
9371
  setup(props, _ref) {
9357
9372
  let {
9373
+ emit,
9358
9374
  slots
9359
9375
  } = _ref;
9360
9376
  const groupBy = useProxiedModel(props, 'groupBy');
@@ -9445,7 +9461,8 @@
9445
9461
  border: 0
9446
9462
  }
9447
9463
  }, null)]), vue.createVNode(VDataTableRows, {
9448
- "items": visibleItems.value
9464
+ "items": visibleItems.value,
9465
+ "onClick:row": (event, value) => emit('click:row', event, value)
9449
9466
  }, slots), vue.createVNode("tr", {
9450
9467
  "style": {
9451
9468
  height: convertToUnit(paddingBottom.value),
@@ -9463,6 +9480,8 @@
9463
9480
  }
9464
9481
  });
9465
9482
 
9483
+ // Types
9484
+
9466
9485
  const VDataTableServer = defineComponent({
9467
9486
  name: 'VDataTableServer',
9468
9487
  props: {
@@ -9487,10 +9506,12 @@
9487
9506
  'update:itemsPerPage': page => true,
9488
9507
  'update:sortBy': sortBy => true,
9489
9508
  'update:options': options => true,
9490
- 'update:expanded': options => true
9509
+ 'update:expanded': options => true,
9510
+ 'click:row': (event, value) => true
9491
9511
  },
9492
9512
  setup(props, _ref) {
9493
9513
  let {
9514
+ emit,
9494
9515
  slots
9495
9516
  } = _ref;
9496
9517
  createExpanded(props);
@@ -9557,7 +9578,8 @@
9557
9578
  "class": "v-data-table__tbody",
9558
9579
  "role": "rowgroup"
9559
9580
  }, [slots.body ? slots.body() : vue.createVNode(VDataTableRows, {
9560
- "items": items.value
9581
+ "items": items.value,
9582
+ "onClick:row": (event, value) => emit('click:row', event, value)
9561
9583
  }, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
9562
9584
  },
9563
9585
  bottom: slots.bottom ? slots.bottom() : () => vue.createVNode(VDataTableFooter, null, {
package/dist/vuetify.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.0-dev-20230104.0
2
+ * Vuetify v3.1.0-dev-20230105.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
package/dist/vuetify.d.ts CHANGED
@@ -25971,19 +25971,18 @@ declare module '@vue/runtime-core' {
25971
25971
 
25972
25972
  export interface GlobalComponents {
25973
25973
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
25974
- VHover: typeof import('vuetify/components')['VHover']
25975
25974
  VForm: typeof import('vuetify/components')['VForm']
25976
25975
  VContainer: typeof import('vuetify/components')['VContainer']
25977
25976
  VCol: typeof import('vuetify/components')['VCol']
25978
25977
  VRow: typeof import('vuetify/components')['VRow']
25979
25978
  VSpacer: typeof import('vuetify/components')['VSpacer']
25979
+ VHover: typeof import('vuetify/components')['VHover']
25980
25980
  VLayout: typeof import('vuetify/components')['VLayout']
25981
25981
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
25982
25982
  VLazy: typeof import('vuetify/components')['VLazy']
25983
25983
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
25984
25984
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
25985
25985
  VRadio: typeof import('vuetify/components')['VRadio']
25986
- VParallax: typeof import('vuetify/components')['VParallax']
25987
25986
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
25988
25987
  VResponsive: typeof import('vuetify/components')['VResponsive']
25989
25988
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
@@ -26031,9 +26030,9 @@ declare module '@vue/runtime-core' {
26031
26030
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
26032
26031
  VCarousel: typeof import('vuetify/components')['VCarousel']
26033
26032
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
26034
- VChip: typeof import('vuetify/components')['VChip']
26035
26033
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
26036
26034
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
26035
+ VChip: typeof import('vuetify/components')['VChip']
26037
26036
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
26038
26037
  VCode: typeof import('vuetify/components')['VCode']
26039
26038
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
@@ -26047,8 +26046,8 @@ declare module '@vue/runtime-core' {
26047
26046
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
26048
26047
  VField: typeof import('vuetify/components')['VField']
26049
26048
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
26050
- VFooter: typeof import('vuetify/components')['VFooter']
26051
26049
  VFileInput: typeof import('vuetify/components')['VFileInput']
26050
+ VFooter: typeof import('vuetify/components')['VFooter']
26052
26051
  VIcon: typeof import('vuetify/components')['VIcon']
26053
26052
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
26054
26053
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
@@ -26093,14 +26092,15 @@ declare module '@vue/runtime-core' {
26093
26092
  VTab: typeof import('vuetify/components')['VTab']
26094
26093
  VTable: typeof import('vuetify/components')['VTable']
26095
26094
  VTextarea: typeof import('vuetify/components')['VTextarea']
26095
+ VTextField: typeof import('vuetify/components')['VTextField']
26096
26096
  VTimeline: typeof import('vuetify/components')['VTimeline']
26097
26097
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
26098
- VTextField: typeof import('vuetify/components')['VTextField']
26099
26098
  VToolbar: typeof import('vuetify/components')['VToolbar']
26100
26099
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
26101
26100
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
26102
26101
  VTooltip: typeof import('vuetify/components')['VTooltip']
26103
26102
  VWindow: typeof import('vuetify/components')['VWindow']
26104
26103
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
26104
+ VParallax: typeof import('vuetify/components')['VParallax']
26105
26105
  }
26106
26106
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.0-dev-20230104.0
2
+ * Vuetify v3.1.0-dev-20230105.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -18303,7 +18303,7 @@ function createVuetify$1() {
18303
18303
  locale
18304
18304
  };
18305
18305
  }
18306
- const version$1 = "3.1.0-dev-20230104.0";
18306
+ const version$1 = "3.1.0-dev-20230105.0";
18307
18307
  createVuetify$1.version = version$1;
18308
18308
 
18309
18309
  // Vue's inject() can only be used in setup
@@ -18324,7 +18324,7 @@ const createVuetify = function () {
18324
18324
  ...options
18325
18325
  });
18326
18326
  };
18327
- const version = "3.1.0-dev-20230104.0";
18327
+ const version = "3.1.0-dev-20230105.0";
18328
18328
  createVuetify.version = version;
18329
18329
 
18330
18330
  export { components, createVuetify, directives, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.0-dev-20230104.0
2
+ * Vuetify v3.1.0-dev-20230105.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -18307,7 +18307,7 @@
18307
18307
  locale
18308
18308
  };
18309
18309
  }
18310
- const version$1 = "3.1.0-dev-20230104.0";
18310
+ const version$1 = "3.1.0-dev-20230105.0";
18311
18311
  createVuetify$1.version = version$1;
18312
18312
 
18313
18313
  // Vue's inject() can only be used in setup
@@ -18328,7 +18328,7 @@
18328
18328
  ...options
18329
18329
  });
18330
18330
  };
18331
- const version = "3.1.0-dev-20230104.0";
18331
+ const version = "3.1.0-dev-20230105.0";
18332
18332
  createVuetify.version = version;
18333
18333
 
18334
18334
  exports.components = components;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.0-dev-20230104.0
2
+ * Vuetify v3.1.0-dev-20230105.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.1.0-dev-20230104.0
2
+ * Vuetify v3.1.0-dev-20230105.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1562,8 +1562,8 @@ e.mount=function(){const a=l(...arguments)
1562
1562
  return t.nextTick((()=>c.update())),e.mount=l,a}}Le.reset(),e.mixin({computed:{$vuetify(){return t.reactive({defaults:eu.call(this,Pe),display:eu.call(this,$n),theme:eu.call(this,pt),icons:eu.call(this,Ul),locale:eu.call(this,$t)})}}})}
1563
1563
  return{install:f,defaults:u,display:c,theme:d,icons:v,locale:p}}function eu(e){var t,l
1564
1564
  const a=this.$,o=(null==(t=a.parent)?void 0:t.provides)??(null==(l=a.vnode.appContext)?void 0:l.provides)
1565
- if(o&&e in o)return o[e]}Qs.version="3.1.0-dev-20230104.0"
1565
+ if(o&&e in o)return o[e]}Qs.version="3.1.0-dev-20230105.0"
1566
1566
  const tu=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}
1567
- return Qs({components:Us,directives:Js,...e})},lu="3.1.0-dev-20230104.0"
1567
+ return Qs({components:Us,directives:Js,...e})},lu="3.1.0-dev-20230105.0"
1568
1568
  tu.version=lu,e.components=Us,e.createVuetify=tu,e.directives=Js,e.useDisplay=Ln,e.useLayout=lt,e.useLocale=Et,e.useRtl=Tt,e.useTheme=yt,e.version=lu,Object.defineProperty(e,"__esModule",{value:!0})}))
1569
1569
  //# sourceMappingURL=vuetify.min.js.map
@@ -10,7 +10,7 @@ export const createVuetify = function () {
10
10
  ...options
11
11
  });
12
12
  };
13
- export const version = "3.1.0-dev-20230104.0";
13
+ export const version = "3.1.0-dev-20230105.0";
14
14
  createVuetify.version = version;
15
15
  export { components, directives };
16
16
  export * from "./composables/index.mjs";
package/lib/framework.mjs CHANGED
@@ -87,7 +87,7 @@ export function createVuetify() {
87
87
  locale
88
88
  };
89
89
  }
90
- export const version = "3.1.0-dev-20230104.0";
90
+ export const version = "3.1.0-dev-20230105.0";
91
91
  createVuetify.version = version;
92
92
 
93
93
  // Vue's inject() can only be used in setup
package/lib/index.d.ts CHANGED
@@ -315,19 +315,18 @@ declare module '@vue/runtime-core' {
315
315
 
316
316
  export interface GlobalComponents {
317
317
  VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
318
- VHover: typeof import('vuetify/components')['VHover']
319
318
  VForm: typeof import('vuetify/components')['VForm']
320
319
  VContainer: typeof import('vuetify/components')['VContainer']
321
320
  VCol: typeof import('vuetify/components')['VCol']
322
321
  VRow: typeof import('vuetify/components')['VRow']
323
322
  VSpacer: typeof import('vuetify/components')['VSpacer']
323
+ VHover: typeof import('vuetify/components')['VHover']
324
324
  VLayout: typeof import('vuetify/components')['VLayout']
325
325
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
326
326
  VLazy: typeof import('vuetify/components')['VLazy']
327
327
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
328
328
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
329
329
  VRadio: typeof import('vuetify/components')['VRadio']
330
- VParallax: typeof import('vuetify/components')['VParallax']
331
330
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
332
331
  VResponsive: typeof import('vuetify/components')['VResponsive']
333
332
  VThemeProvider: typeof import('vuetify/components')['VThemeProvider']
@@ -375,9 +374,9 @@ declare module '@vue/runtime-core' {
375
374
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
376
375
  VCarousel: typeof import('vuetify/components')['VCarousel']
377
376
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
378
- VChip: typeof import('vuetify/components')['VChip']
379
377
  VCheckbox: typeof import('vuetify/components')['VCheckbox']
380
378
  VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
379
+ VChip: typeof import('vuetify/components')['VChip']
381
380
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
382
381
  VCode: typeof import('vuetify/components')['VCode']
383
382
  VColorPicker: typeof import('vuetify/components')['VColorPicker']
@@ -391,8 +390,8 @@ declare module '@vue/runtime-core' {
391
390
  VExpansionPanelTitle: typeof import('vuetify/components')['VExpansionPanelTitle']
392
391
  VField: typeof import('vuetify/components')['VField']
393
392
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
394
- VFooter: typeof import('vuetify/components')['VFooter']
395
393
  VFileInput: typeof import('vuetify/components')['VFileInput']
394
+ VFooter: typeof import('vuetify/components')['VFooter']
396
395
  VIcon: typeof import('vuetify/components')['VIcon']
397
396
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
398
397
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
@@ -437,14 +436,15 @@ declare module '@vue/runtime-core' {
437
436
  VTab: typeof import('vuetify/components')['VTab']
438
437
  VTable: typeof import('vuetify/components')['VTable']
439
438
  VTextarea: typeof import('vuetify/components')['VTextarea']
439
+ VTextField: typeof import('vuetify/components')['VTextField']
440
440
  VTimeline: typeof import('vuetify/components')['VTimeline']
441
441
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
442
- VTextField: typeof import('vuetify/components')['VTextField']
443
442
  VToolbar: typeof import('vuetify/components')['VToolbar']
444
443
  VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
445
444
  VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
446
445
  VTooltip: typeof import('vuetify/components')['VTooltip']
447
446
  VWindow: typeof import('vuetify/components')['VWindow']
448
447
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
448
+ VParallax: typeof import('vuetify/components')['VParallax']
449
449
  }
450
450
  }
@@ -52,10 +52,12 @@ export const VDataTable = defineComponent({
52
52
  'update:sortBy': value => true,
53
53
  'update:options': value => true,
54
54
  'update:groupBy': value => true,
55
- 'update:expanded': value => true
55
+ 'update:expanded': value => true,
56
+ 'click:row': (event, value) => true
56
57
  },
57
58
  setup(props, _ref) {
58
59
  let {
60
+ emit,
59
61
  slots
60
62
  } = _ref;
61
63
  const groupBy = useProxiedModel(props, 'groupBy');
@@ -130,7 +132,8 @@ export const VDataTable = defineComponent({
130
132
  "sticky": props.fixedHeader,
131
133
  "multiSort": props.multiSort
132
134
  }, slots)]), (_slots$thead = slots.thead) == null ? void 0 : _slots$thead.call(slots), _createVNode("tbody", null, [slots.body ? slots.body() : _createVNode(VDataTableRows, {
133
- "items": paginatedItems.value
135
+ "items": paginatedItems.value,
136
+ "onClick:row": (event, value) => emit('click:row', event, value)
134
137
  }, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
135
138
  },
136
139
  bottom: slots.bottom ? slots.bottom() : () => _createVNode(VDataTableFooter, null, {
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","useProxiedModel","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createPagination","makeDataTablePaginateProps","usePaginatedItems","createSelection","makeDataTableSelectProps","createExpanded","makeDataTableExpandProps","useOptions","provideDefaults","computed","toRef","defineComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","VDataTable","name","props","search","emits","value","setup","slots","groupBy","columns","showSelect","showExpand","items","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","page","itemsPerPage","startIndex","stopIndex","pageCount","paginatedItems","paginatedItemsWithoutGroups","top","colgroup","headers","multiSort","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, usePaginatedItems } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n}, 'v-data-table')\n\nexport const VDataTable = defineComponent({\n name: 'VDataTable',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { filteredItems } = useFilter<DataTableItem>(props, items, toRef(props, 'search'))\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, groupBy, sortBy)\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const { page, itemsPerPage, startIndex, stopIndex, pageCount } = createPagination(props, flatItems)\n const { paginatedItems } = usePaginatedItems(flatItems, startIndex, stopIndex, itemsPerPage)\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n createSelection(props, paginatedItemsWithoutGroups)\n\n createExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n pageCount,\n startIndex,\n stopIndex,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ? slots.default() : () => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n ) }\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n v-slots={ slots }\n />\n ) }\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n ),\n bottom: slots.bottom ? slots.bottom() : () => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n ),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTable.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","VDataTableFooter","useProxiedModel","makeDataTableItemProps","useDataTableItems","createHeaders","makeDataTableHeaderProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createPagination","makeDataTablePaginateProps","usePaginatedItems","createSelection","makeDataTableSelectProps","createExpanded","makeDataTableExpandProps","useOptions","provideDefaults","computed","toRef","defineComponent","propsFactory","useRender","makeFilterProps","useFilter","makeVDataTableProps","hideNoData","Boolean","noDataText","type","String","default","height","Number","width","fixedHeader","fixedFooter","VDataTable","name","props","search","emits","value","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","page","itemsPerPage","startIndex","stopIndex","pageCount","paginatedItems","paginatedItemsWithoutGroups","top","colgroup","headers","multiSort","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTable.tsx"],"sourcesContent":["// Styles\nimport './VDataTable.sass'\n\n// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\nimport { VDataTableFooter } from './VDataTableFooter'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createPagination, makeDataTablePaginateProps, usePaginatedItems } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const makeVDataTableProps = propsFactory({\n ...makeDataTableItemProps(),\n ...makeDataTableHeaderProps(),\n hideNoData: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n height: [String, Number],\n width: [String, Number],\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n}, 'v-data-table')\n\nexport const VDataTable = defineComponent({\n name: 'VDataTable',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n ...makeFilterProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any[]) => true,\n 'update:page': (value: number) => true,\n 'update:itemsPerPage': (value: number) => true,\n 'update:sortBy': (value: any) => true,\n 'update:options': (value: any) => true,\n 'update:groupBy': (value: any) => true,\n 'update:expanded': (value: any) => true,\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { filteredItems } = useFilter<DataTableItem>(props, items, toRef(props, 'search'))\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, groupBy, sortBy)\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const { page, itemsPerPage, startIndex, stopIndex, pageCount } = createPagination(props, flatItems)\n const { paginatedItems } = usePaginatedItems(flatItems, startIndex, stopIndex, itemsPerPage)\n\n const paginatedItemsWithoutGroups = computed(() => extractRows(paginatedItems.value))\n\n createSelection(props, paginatedItemsWithoutGroups)\n\n createExpanded(props)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n pageCount,\n startIndex,\n stopIndex,\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--show-select': props.showSelect,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ? slots.default() : () => (\n <>\n { slots.colgroup?.({ columns }) }\n <thead>\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n ) }\n </thead>\n { slots.thead?.() }\n <tbody>\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ paginatedItems.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n ) }\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n ),\n bottom: slots.bottom ? slots.bottom() : () => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n ),\n }}\n </VTable>\n ))\n\n return {}\n },\n})\n\nexport type VDataTable = InstanceType<typeof VDataTable>\n"],"mappings":"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"}
@@ -25,8 +25,12 @@ export const VDataTableRows = defineComponent({
25
25
  },
26
26
  rowHeight: Number
27
27
  },
28
+ emits: {
29
+ 'click:row': (event, value) => true
30
+ },
28
31
  setup(props, _ref) {
29
32
  let {
33
+ emit,
30
34
  slots
31
35
  } = _ref;
32
36
  const {
@@ -62,7 +66,14 @@ export const VDataTableRows = defineComponent({
62
66
  }
63
67
  return _createVNode(_Fragment, null, [_createVNode(VDataTableRow, {
64
68
  "key": `item_${item.value}`,
65
- "onClick": expandOnClick.value ? () => expand(item, !expanded.value.has(item.value)) : undefined,
69
+ "onClick": event => {
70
+ if (expandOnClick.value) {
71
+ expand(item, !expanded.value.has(item.value));
72
+ }
73
+ emit('click:row', event, {
74
+ item
75
+ });
76
+ },
66
77
  "item": item
67
78
  }, slots), expanded.value.has(item.value) && ((_slots$expandedRow = slots['expanded-row']) == null ? void 0 : _slots$expandedRow.call(slots, {
68
79
  item,
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useExpanded","useHeaders","useLocale","defineComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","setup","slots","columns","expanded","expand","expandOnClick","t","undefined","length","map","item","index","id","value","has"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { InternalDataTableItem } from './types'\n\nexport const VDataTableRows = defineComponent({\n name: 'VDataTableRows',\n\n props: {\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<InternalDataTableItem[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowHeight: Number,\n },\n\n setup (props, { slots }) {\n const { columns } = useHeaders()\n const { expanded, expand, expandOnClick } = useExpanded()\n const { t } = useLocale()\n\n useRender(() => (\n <>\n { props.loading ? slots.loading?.() ?? (\n <VDataTableRow\n class=\"v-data-table-rows-no-data\"\n key=\"loading\"\n >\n { t(props.loadingText) }\n </VDataTableRow>\n ) : undefined }\n\n { !props.loading && !props.items.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VDataTableRow\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n { t(props.noDataText) }\n </VDataTableRow>\n )) }\n\n { props.items.map((item, index) => {\n if (item.type === 'group-header') {\n return (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n v-slots={ slots }\n />\n )\n }\n\n return (\n <>\n <VDataTableRow\n key={ `item_${item.value}` }\n onClick={ expandOnClick.value ? () => expand(item, !expanded.value.has(item.value)) : undefined }\n item={ item }\n v-slots={ slots }\n />\n\n { expanded.value.has(item.value) && slots['expanded-row']?.({ item, columns: columns.value }) }\n </>\n )\n }) }\n </>\n ))\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":";AAAA;AAAA,SACSA,wBAAwB;AAAA,SACxBC,aAAa,+BAEtB;AAAA,SACSC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,SAAS,wCAElB;AAAA,SACSC,eAAe,EAAEC,SAAS,gCAEnC;AAIA,OAAO,MAAMC,cAAc,GAAGF,eAAe,CAAC;EAC5CG,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAE;IACLC,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM,CAAC;IAC1BC,WAAW,EAAE;MACXC,IAAI,EAAEF,MAAM;MACZG,OAAO,EAAE;IACX,CAAC;IACDC,UAAU,EAAEL,OAAO;IACnBM,KAAK,EAAE;MACLH,IAAI,EAAEI,KAA0C;MAChDH,OAAO,EAAE,MAAO;IAClB,CAAC;IACDI,UAAU,EAAE;MACVL,IAAI,EAAEF,MAAM;MACZG,OAAO,EAAE;IACX,CAAC;IACDK,SAAS,EAAEC;EACb,CAAC;EAEDC,KAAK,CAAEb,KAAK,QAAa;IAAA,IAAX;MAAEc;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAQ,CAAC,GAAGrB,UAAU,EAAE;IAChC,MAAM;MAAEsB,QAAQ;MAAEC,MAAM;MAAEC;IAAc,CAAC,GAAGzB,WAAW,EAAE;IACzD,MAAM;MAAE0B;IAAE,CAAC,GAAGxB,SAAS,EAAE;IAEzBE,SAAS,CAAC;MAAA;MAAA,sCAEJG,KAAK,CAACC,OAAO,GAAG,mBAAAa,KAAK,CAACb,OAAO,qBAAb,oBAAAa,KAAK,CAAY;QAAA,SAEzB,2BAA2B;QAAA,OAC7B;MAAS;QAAA,gBAEXK,CAAC,CAACnB,KAAK,CAACI,WAAW,CAAC;MAAA,EAEzB,GAAGgB,SAAS,EAEX,CAACpB,KAAK,CAACC,OAAO,IAAI,CAACD,KAAK,CAACQ,KAAK,CAACa,MAAM,IAAI,CAACrB,KAAK,CAACO,UAAU,KAAK,kBAAAO,KAAK,CAAC,SAAS,CAAC,qBAAhB,mBAAAA,KAAK,CAAe;QAAA,SAE3E,2BAA2B;QAAA,OAC7B;MAAS;QAAA,gBAEXK,CAAC,CAACnB,KAAK,CAACU,UAAU,CAAC;MAAA,EAExB,CAAC,EAEAV,KAAK,CAACQ,KAAK,CAACc,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QAAA;QACjC,IAAID,IAAI,CAAClB,IAAI,KAAK,cAAc,EAAE;UAChC;YAAA,OAEW,gBAAekB,IAAI,CAACE,EAAG,EAAC;YAAA,QACxBF;UAAI,GACDT,KAAK;QAGrB;QAEA;UAAA,OAGa,QAAOS,IAAI,CAACG,KAAM,EAAC;UAAA,WAChBR,aAAa,CAACQ,KAAK,GAAG,MAAMT,MAAM,CAACM,IAAI,EAAE,CAACP,QAAQ,CAACU,KAAK,CAACC,GAAG,CAACJ,IAAI,CAACG,KAAK,CAAC,CAAC,GAAGN,SAAS;UAAA,QACxFG;QAAI,GACDT,KAAK,GAGfE,QAAQ,CAACU,KAAK,CAACC,GAAG,CAACJ,IAAI,CAACG,KAAK,CAAC,2BAAIZ,KAAK,CAAC,cAAc,CAAC,qBAArB,wBAAAA,KAAK,EAAmB;UAAES,IAAI;UAAER,OAAO,EAAEA,OAAO,CAACW;QAAM,CAAC,CAAC;MAGnG,CAAC,CAAC;IAAA,CAEL,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VDataTableRows.mjs","names":["VDataTableGroupHeaderRow","VDataTableRow","useExpanded","useHeaders","useLocale","defineComponent","useRender","VDataTableRows","name","props","loading","Boolean","String","loadingText","type","default","hideNoData","items","Array","noDataText","rowHeight","Number","emits","event","value","setup","emit","slots","columns","expanded","expand","expandOnClick","t","undefined","length","map","item","index","id","has"],"sources":["../../../src/labs/VDataTable/VDataTableRows.tsx"],"sourcesContent":["// Components\nimport { VDataTableGroupHeaderRow } from './VDataTableGroupHeaderRow'\nimport { VDataTableRow } from './VDataTableRow'\n\n// Composables\nimport { useExpanded } from './composables/expand'\nimport { useHeaders } from './composables/headers'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { DataTableItem, InternalDataTableItem } from './types'\n\nexport const VDataTableRows = defineComponent({\n name: 'VDataTableRows',\n\n props: {\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n hideNoData: Boolean,\n items: {\n type: Array as PropType<InternalDataTableItem[]>,\n default: () => ([]),\n },\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n rowHeight: Number,\n },\n\n emits: {\n 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const { columns } = useHeaders()\n const { expanded, expand, expandOnClick } = useExpanded()\n const { t } = useLocale()\n\n useRender(() => (\n <>\n { props.loading ? slots.loading?.() ?? (\n <VDataTableRow\n class=\"v-data-table-rows-no-data\"\n key=\"loading\"\n >\n { t(props.loadingText) }\n </VDataTableRow>\n ) : undefined }\n\n { !props.loading && !props.items.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VDataTableRow\n class=\"v-data-table-rows-no-data\"\n key=\"no-data\"\n >\n { t(props.noDataText) }\n </VDataTableRow>\n )) }\n\n { props.items.map((item, index) => {\n if (item.type === 'group-header') {\n return (\n <VDataTableGroupHeaderRow\n key={ `group-header_${item.id}` }\n item={ item }\n v-slots={ slots }\n />\n )\n }\n\n return (\n <>\n <VDataTableRow\n key={ `item_${item.value}` }\n onClick={ (event: Event) => {\n if (expandOnClick.value) {\n expand(item, !expanded.value.has(item.value))\n }\n\n emit('click:row', event, { item })\n } }\n item={ item }\n v-slots={ slots }\n />\n\n { expanded.value.has(item.value) && slots['expanded-row']?.({ item, columns: columns.value }) }\n </>\n )\n }) }\n </>\n ))\n\n return {}\n },\n})\n\nexport type VDataTableRows = InstanceType<typeof VDataTableRows>\n"],"mappings":";AAAA;AAAA,SACSA,wBAAwB;AAAA,SACxBC,aAAa,+BAEtB;AAAA,SACSC,WAAW;AAAA,SACXC,UAAU;AAAA,SACVC,SAAS,wCAElB;AAAA,SACSC,eAAe,EAAEC,SAAS,gCAEnC;AAIA,OAAO,MAAMC,cAAc,GAAGF,eAAe,CAAC;EAC5CG,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAE;IACLC,OAAO,EAAE,CAACC,OAAO,EAAEC,MAAM,CAAC;IAC1BC,WAAW,EAAE;MACXC,IAAI,EAAEF,MAAM;MACZG,OAAO,EAAE;IACX,CAAC;IACDC,UAAU,EAAEL,OAAO;IACnBM,KAAK,EAAE;MACLH,IAAI,EAAEI,KAA0C;MAChDH,OAAO,EAAE,MAAO;IAClB,CAAC;IACDI,UAAU,EAAE;MACVL,IAAI,EAAEF,MAAM;MACZG,OAAO,EAAE;IACX,CAAC;IACDK,SAAS,EAAEC;EACb,CAAC;EAEDC,KAAK,EAAE;IACL,WAAW,EAAE,CAACC,KAAY,EAAEC,KAA8B,KAAK;EACjE,CAAC;EAEDC,KAAK,CAAEhB,KAAK,QAAmB;IAAA,IAAjB;MAAEiB,IAAI;MAAEC;IAAM,CAAC;IAC3B,MAAM;MAAEC;IAAQ,CAAC,GAAGzB,UAAU,EAAE;IAChC,MAAM;MAAE0B,QAAQ;MAAEC,MAAM;MAAEC;IAAc,CAAC,GAAG7B,WAAW,EAAE;IACzD,MAAM;MAAE8B;IAAE,CAAC,GAAG5B,SAAS,EAAE;IAEzBE,SAAS,CAAC;MAAA;MAAA,sCAEJG,KAAK,CAACC,OAAO,GAAG,mBAAAiB,KAAK,CAACjB,OAAO,qBAAb,oBAAAiB,KAAK,CAAY;QAAA,SAEzB,2BAA2B;QAAA,OAC7B;MAAS;QAAA,gBAEXK,CAAC,CAACvB,KAAK,CAACI,WAAW,CAAC;MAAA,EAEzB,GAAGoB,SAAS,EAEX,CAACxB,KAAK,CAACC,OAAO,IAAI,CAACD,KAAK,CAACQ,KAAK,CAACiB,MAAM,IAAI,CAACzB,KAAK,CAACO,UAAU,KAAK,kBAAAW,KAAK,CAAC,SAAS,CAAC,qBAAhB,mBAAAA,KAAK,CAAe;QAAA,SAE3E,2BAA2B;QAAA,OAC7B;MAAS;QAAA,gBAEXK,CAAC,CAACvB,KAAK,CAACU,UAAU,CAAC;MAAA,EAExB,CAAC,EAEAV,KAAK,CAACQ,KAAK,CAACkB,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QAAA;QACjC,IAAID,IAAI,CAACtB,IAAI,KAAK,cAAc,EAAE;UAChC;YAAA,OAEW,gBAAesB,IAAI,CAACE,EAAG,EAAC;YAAA,QACxBF;UAAI,GACDT,KAAK;QAGrB;QAEA;UAAA,OAGa,QAAOS,IAAI,CAACZ,KAAM,EAAC;UAAA,WACfD,KAAY,IAAK;YAC1B,IAAIQ,aAAa,CAACP,KAAK,EAAE;cACvBM,MAAM,CAACM,IAAI,EAAE,CAACP,QAAQ,CAACL,KAAK,CAACe,GAAG,CAACH,IAAI,CAACZ,KAAK,CAAC,CAAC;YAC/C;YAEAE,IAAI,CAAC,WAAW,EAAEH,KAAK,EAAE;cAAEa;YAAK,CAAC,CAAC;UACpC,CAAC;UAAA,QACMA;QAAI,GACDT,KAAK,GAGfE,QAAQ,CAACL,KAAK,CAACe,GAAG,CAACH,IAAI,CAACZ,KAAK,CAAC,2BAAIG,KAAK,CAAC,cAAc,CAAC,qBAArB,wBAAAA,KAAK,EAAmB;UAAES,IAAI;UAAER,OAAO,EAAEA,OAAO,CAACJ;QAAM,CAAC,CAAC;MAGnG,CAAC,CAAC;IAAA,CAEL,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -14,7 +14,7 @@ import { useOptions } from "./composables/options.mjs";
14
14
  import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
15
15
  import { provide, toRef } from 'vue';
16
16
  import { defineComponent, useRender } from "../../util/index.mjs";
17
- import { makeVDataTableProps } from "./VDataTable.mjs";
17
+ import { makeVDataTableProps } from "./VDataTable.mjs"; // Types
18
18
  export const VDataTableServer = defineComponent({
19
19
  name: 'VDataTableServer',
20
20
  props: {
@@ -39,10 +39,12 @@ export const VDataTableServer = defineComponent({
39
39
  'update:itemsPerPage': page => true,
40
40
  'update:sortBy': sortBy => true,
41
41
  'update:options': options => true,
42
- 'update:expanded': options => true
42
+ 'update:expanded': options => true,
43
+ 'click:row': (event, value) => true
43
44
  },
44
45
  setup(props, _ref) {
45
46
  let {
47
+ emit,
46
48
  slots
47
49
  } = _ref;
48
50
  createExpanded(props);
@@ -109,7 +111,8 @@ export const VDataTableServer = defineComponent({
109
111
  "class": "v-data-table__tbody",
110
112
  "role": "rowgroup"
111
113
  }, [slots.body ? slots.body() : _createVNode(VDataTableRows, {
112
- "items": items.value
114
+ "items": items.value,
115
+ "onClick:row": (event, value) => emit('click:row', event, value)
113
116
  }, slots)]), (_slots$tbody = slots.tbody) == null ? void 0 : _slots$tbody.call(slots), (_slots$tfoot = slots.tfoot) == null ? void 0 : _slots$tfoot.call(slots)]);
114
117
  },
115
118
  bottom: slots.bottom ? slots.bottom() : () => _createVNode(VDataTableFooter, null, {
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","createExpanded","makeDataTableExpandProps","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","createSort","makeDataTableSortProps","createPagination","makeDataTablePaginateProps","createSelection","makeDataTableSelectProps","useOptions","provideDefaults","provide","toRef","defineComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","emits","value","page","sortBy","options","setup","slots","columns","showSelect","showExpand","items","toggleSort","itemsPerPage","startIndex","stopIndex","pageCount","hideNoData","noDataText","fixedHeader","fixedFooter","height","top","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createSort, makeDataTableSortProps } from './composables/sort'\nimport { createPagination, makeDataTablePaginateProps } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { provide, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\nexport const VDataTableServer = defineComponent({\n name: 'VDataTableServer',\n\n props: {\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n itemsLength: [Number, String],\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n },\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 },\n\n setup (props, { slots }) {\n createExpanded(props)\n\n const { columns } = createHeaders(props, {\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { sortBy, toggleSort } = createSort(props)\n\n const { page, itemsPerPage, startIndex, stopIndex, pageCount } = createPagination(props, items)\n\n createSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n startIndex,\n stopIndex,\n pageCount,\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 useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ? slots.default() : () => (\n <>\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n loading={ props.loading }\n color={ props.color }\n />\n ) }\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ items.value }\n v-slots={ slots }\n />\n ) }\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n ),\n bottom: slots.bottom ? slots.bottom() : () => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n ),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableServer.mjs","names":["VTable","VDataTableFooter","VDataTableHeaders","VDataTableRows","createExpanded","makeDataTableExpandProps","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","createSort","makeDataTableSortProps","createPagination","makeDataTablePaginateProps","createSelection","makeDataTableSelectProps","useOptions","provideDefaults","provide","toRef","defineComponent","useRender","makeVDataTableProps","VDataTableServer","name","props","color","String","loading","Boolean","loadingText","type","default","itemsLength","Number","emits","value","page","sortBy","options","event","setup","emit","slots","columns","showSelect","showExpand","items","toggleSort","itemsPerPage","startIndex","stopIndex","pageCount","hideNoData","noDataText","fixedHeader","fixedFooter","height","top","headers","thead","body","tbody","tfoot","bottom","prepend"],"sources":["../../../src/labs/VDataTable/VDataTableServer.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableFooter } from './VDataTableFooter'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createSort, makeDataTableSortProps } from './composables/sort'\nimport { createPagination, makeDataTablePaginateProps } from './composables/paginate'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { useOptions } from './composables/options'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { provide, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const VDataTableServer = defineComponent({\n name: 'VDataTableServer',\n\n props: {\n color: String,\n loading: [Boolean, String],\n loadingText: {\n type: String,\n default: '$vuetify.dataIterator.loadingText',\n },\n itemsLength: [Number, String],\n\n ...makeVDataTableProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTablePaginateProps(),\n },\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 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n createExpanded(props)\n\n const { columns } = createHeaders(props, {\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n\n const { items } = useDataTableItems(props, columns)\n\n const { sortBy, toggleSort } = createSort(props)\n\n const { page, itemsPerPage, startIndex, stopIndex, pageCount } = createPagination(props, items)\n\n createSelection(props, items)\n\n useOptions({\n page,\n itemsPerPage,\n sortBy,\n startIndex,\n stopIndex,\n pageCount,\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 useRender(() => (\n <VTable\n class={[\n 'v-data-table',\n {\n 'v-data-table--loading': props.loading,\n },\n ]}\n fixedHeader={ props.fixedHeader }\n fixedFooter={ props.fixedFooter }\n height={ props.height }\n >\n {{\n top: slots.top,\n default: slots.default ? slots.default() : () => (\n <>\n <thead class=\"v-data-table__thead\" role=\"rowgroup\">\n { slots.headers ? slots.headers() : (\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n loading={ props.loading }\n color={ props.color }\n />\n ) }\n </thead>\n { slots.thead?.() }\n <tbody class=\"v-data-table__tbody\" role=\"rowgroup\">\n { slots.body ? slots.body() : (\n <VDataTableRows\n items={ items.value }\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n ) }\n </tbody>\n { slots.tbody?.() }\n { slots.tfoot?.() }\n </>\n ),\n bottom: slots.bottom ? slots.bottom() : () => (\n <VDataTableFooter\n v-slots={{\n prepend: slots['footer.prepend'],\n }}\n />\n ),\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableServer = InstanceType<typeof VDataTableServer>\n"],"mappings":"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"}
@@ -37,10 +37,12 @@ export const VDataTableVirtual = defineComponent({
37
37
  'update:sortBy': value => true,
38
38
  'update:options': value => true,
39
39
  'update:groupBy': value => true,
40
- 'update:expanded': value => true
40
+ 'update:expanded': value => true,
41
+ 'click:row': (event, value) => true
41
42
  },
42
43
  setup(props, _ref) {
43
44
  let {
45
+ emit,
44
46
  slots
45
47
  } = _ref;
46
48
  const groupBy = useProxiedModel(props, 'groupBy');
@@ -131,7 +133,8 @@ export const VDataTableVirtual = defineComponent({
131
133
  border: 0
132
134
  }
133
135
  }, null)]), _createVNode(VDataTableRows, {
134
- "items": visibleItems.value
136
+ "items": visibleItems.value,
137
+ "onClick:row": (event, value) => emit('click:row', event, value)
135
138
  }, slots), _createVNode("tr", {
136
139
  "style": {
137
140
  height: convertToUnit(paddingBottom.value),
@@ -1 +1 @@
1
- {"version":3,"file":"VDataTableVirtual.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","useProxiedModel","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","createExpanded","makeDataTableExpandProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createSelection","makeDataTableSelectProps","makeDataTableVirtualProps","useVirtual","useOptions","makeFilterProps","useFilter","provideDefaults","computed","ref","toRef","convertToUnit","defineComponent","useRender","makeVDataTableProps","VDataTableVirtual","name","props","search","String","emits","value","setup","slots","groupBy","columns","showSelect","showExpand","items","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","length","pageCount","itemsPerPage","hideNoData","noDataText","height","fixedHeader","top","wrapper","multiSort","border","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { makeDataTableVirtualProps, useVirtual } from './composables/virtual'\nimport { useOptions } from './composables/options'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utlities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const VDataTableVirtual = defineComponent({\n name: 'VDataTableVirtual',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeVDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n },\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, { slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const { filteredItems } = useFilter<DataTableItem>(props, items, toRef(props, 'search'))\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, groupBy, sortBy)\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allRows = computed(() => extractRows(flatItems.value))\n\n createSelection(props, allRows)\n createExpanded(props)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n startIndex,\n stopIndex,\n itemHeight,\n handleScroll,\n } = useVirtual(props, flatItems)\n\n const visibleItems = computed(() => {\n return flatItems.value.slice(startIndex.value, stopIndex.value)\n })\n\n useOptions({\n sortBy,\n page: ref(1),\n startIndex: ref(0),\n stopIndex: computed(() => flatItems.value.length - 1),\n pageCount: ref(1),\n itemsPerPage: ref(-1),\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class=\"v-data-table\"\n style={{\n '--v-table-row-height': convertToUnit(itemHeight.value),\n }}\n height={ props.height }\n fixedHeader={ props.fixedHeader }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n items={visibleItems.value}\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VDataTableVirtual.mjs","names":["VTable","VDataTableHeaders","VDataTableRows","useProxiedModel","createHeaders","makeDataTableHeaderProps","makeDataTableItemProps","useDataTableItems","createExpanded","makeDataTableExpandProps","createSort","makeDataTableSortProps","useSortedItems","createGroupBy","makeDataTableGroupProps","useGroupedItems","createSelection","makeDataTableSelectProps","makeDataTableVirtualProps","useVirtual","useOptions","makeFilterProps","useFilter","provideDefaults","computed","ref","toRef","convertToUnit","defineComponent","useRender","makeVDataTableProps","VDataTableVirtual","name","props","search","String","emits","value","event","setup","emit","slots","groupBy","columns","showSelect","showExpand","items","filteredItems","sortBy","sortByWithGroups","opened","extractRows","sortedItems","flatItems","allRows","containerRef","paddingTop","paddingBottom","startIndex","stopIndex","itemHeight","handleScroll","visibleItems","slice","page","length","pageCount","itemsPerPage","hideNoData","noDataText","height","fixedHeader","top","wrapper","multiSort","border","bottom"],"sources":["../../../src/labs/VDataTable/VDataTableVirtual.tsx"],"sourcesContent":["// Components\nimport { VTable } from '@/components/VTable'\nimport { VDataTableHeaders } from './VDataTableHeaders'\nimport { VDataTableRows } from './VDataTableRows'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { createHeaders, makeDataTableHeaderProps } from './composables/headers'\nimport { makeDataTableItemProps, useDataTableItems } from './composables/items'\nimport { createExpanded, makeDataTableExpandProps } from './composables/expand'\nimport { createSort, makeDataTableSortProps, useSortedItems } from './composables/sort'\nimport { createGroupBy, makeDataTableGroupProps, useGroupedItems } from './composables/group'\nimport { createSelection, makeDataTableSelectProps } from './composables/select'\nimport { makeDataTableVirtualProps, useVirtual } from './composables/virtual'\nimport { useOptions } from './composables/options'\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utlities\nimport { computed, ref, toRef } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\nimport { makeVDataTableProps } from './VDataTable'\n\n// Types\nimport type { DataTableItem } from './types'\n\nexport const VDataTableVirtual = defineComponent({\n name: 'VDataTableVirtual',\n\n props: {\n search: String,\n\n ...makeVDataTableProps(),\n ...makeVDataTableProps(),\n ...makeDataTableGroupProps(),\n ...makeDataTableExpandProps(),\n ...makeDataTableHeaderProps(),\n ...makeDataTableItemProps(),\n ...makeDataTableSelectProps(),\n ...makeDataTableSortProps(),\n ...makeDataTableVirtualProps(),\n ...makeFilterProps(),\n },\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 'click:row': (event: Event, value: { item: DataTableItem }) => true,\n },\n\n setup (props, { emit, slots }) {\n const groupBy = useProxiedModel(props, 'groupBy')\n const { columns } = createHeaders(props, {\n groupBy,\n showSelect: toRef(props, 'showSelect'),\n showExpand: toRef(props, 'showExpand'),\n })\n const { items } = useDataTableItems(props, columns)\n\n const { filteredItems } = useFilter<DataTableItem>(props, items, toRef(props, 'search'))\n\n const { sortBy } = createSort(props)\n const { sortByWithGroups, opened, extractRows } = createGroupBy(props, groupBy, sortBy)\n\n const { sortedItems } = useSortedItems(filteredItems, sortByWithGroups, columns)\n const { flatItems } = useGroupedItems(sortedItems, groupBy, opened)\n\n const allRows = computed(() => extractRows(flatItems.value))\n\n createSelection(props, allRows)\n createExpanded(props)\n\n const {\n containerRef,\n paddingTop,\n paddingBottom,\n startIndex,\n stopIndex,\n itemHeight,\n handleScroll,\n } = useVirtual(props, flatItems)\n\n const visibleItems = computed(() => {\n return flatItems.value.slice(startIndex.value, stopIndex.value)\n })\n\n useOptions({\n sortBy,\n page: ref(1),\n startIndex: ref(0),\n stopIndex: computed(() => flatItems.value.length - 1),\n pageCount: ref(1),\n itemsPerPage: ref(-1),\n })\n\n provideDefaults({\n VDataTableRows: {\n hideNoData: toRef(props, 'hideNoData'),\n noDataText: toRef(props, 'noDataText'),\n },\n })\n\n useRender(() => (\n <VTable\n class=\"v-data-table\"\n style={{\n '--v-table-row-height': convertToUnit(itemHeight.value),\n }}\n height={ props.height }\n fixedHeader={ props.fixedHeader }\n >\n {{\n top: slots.top,\n wrapper: () => (\n <div\n ref={ containerRef }\n onScroll={ handleScroll }\n class=\"v-table__wrapper\"\n style={{\n height: convertToUnit(props.height),\n }}\n >\n <table>\n <thead>\n <VDataTableHeaders\n sticky={ props.fixedHeader }\n multiSort={ props.multiSort }\n v-slots={ slots }\n />\n </thead>\n <tbody>\n <tr style={{ height: convertToUnit(paddingTop.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingTop.value), border: 0 }}></td>\n </tr>\n\n <VDataTableRows\n items={visibleItems.value}\n onClick:row={ (event, value) => emit('click:row', event, value) }\n v-slots={ slots }\n />\n\n <tr style={{ height: convertToUnit(paddingBottom.value), border: 0 }}>\n <td colspan={columns.value.length} style={{ height: convertToUnit(paddingBottom.value), border: 0 }}></td>\n </tr>\n </tbody>\n </table>\n </div>\n ),\n bottom: slots.bottom,\n }}\n </VTable>\n ))\n },\n})\n\nexport type VDataTableVirtual = InstanceType<typeof VDataTableVirtual>\n"],"mappings":"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"}
@@ -145,6 +145,9 @@ declare const VDataTable: vue.DefineComponent<{
145
145
  'update:options': (value: any) => true;
146
146
  'update:groupBy': (value: any) => true;
147
147
  'update:expanded': (value: any) => true;
148
+ 'click:row': (event: Event, value: {
149
+ item: DataTableItem;
150
+ }) => true;
148
151
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
149
152
  customFilter: vue.PropType<FilterFunction>;
150
153
  customKeyFilter: vue.PropType<FilterKeyFunctions>;
@@ -225,6 +228,9 @@ declare const VDataTable: vue.DefineComponent<{
225
228
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
226
229
  "onUpdate:sortBy"?: ((value: any) => any) | undefined;
227
230
  "onUpdate:expanded"?: ((value: any) => any) | undefined;
231
+ "onClick:row"?: ((event: Event, value: {
232
+ item: DataTableItem;
233
+ }) => any) | undefined;
228
234
  "onUpdate:page"?: ((value: number) => any) | undefined;
229
235
  "onUpdate:itemsPerPage"?: ((value: number) => any) | undefined;
230
236
  "onUpdate:options"?: ((value: any) => any) | undefined;
@@ -273,7 +279,11 @@ declare const VDataTableRows: vue.DefineComponent<{
273
279
  default: string;
274
280
  };
275
281
  rowHeight: NumberConstructor;
276
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
282
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
283
+ 'click:row': (event: Event, value: {
284
+ item: DataTableItem;
285
+ }) => true;
286
+ }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
277
287
  loading: (StringConstructor | BooleanConstructor)[];
278
288
  loadingText: {
279
289
  type: StringConstructor;
@@ -289,7 +299,11 @@ declare const VDataTableRows: vue.DefineComponent<{
289
299
  default: string;
290
300
  };
291
301
  rowHeight: NumberConstructor;
292
- }>>, {
302
+ }>> & {
303
+ "onClick:row"?: ((event: Event, value: {
304
+ item: DataTableItem;
305
+ }) => any) | undefined;
306
+ }, {
293
307
  noDataText: string;
294
308
  loadingText: string;
295
309
  items: InternalDataTableItem[];
@@ -386,6 +400,9 @@ declare const VDataTableVirtual: vue.DefineComponent<{
386
400
  'update:options': (value: any) => true;
387
401
  'update:groupBy': (value: any) => true;
388
402
  'update:expanded': (value: any) => true;
403
+ 'click:row': (event: Event, value: {
404
+ item: DataTableItem;
405
+ }) => true;
389
406
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
390
407
  customFilter: vue.PropType<FilterFunction>;
391
408
  customKeyFilter: vue.PropType<FilterKeyFunctions>;
@@ -466,6 +483,9 @@ declare const VDataTableVirtual: vue.DefineComponent<{
466
483
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
467
484
  "onUpdate:sortBy"?: ((value: any) => any) | undefined;
468
485
  "onUpdate:expanded"?: ((value: any) => any) | undefined;
486
+ "onClick:row"?: ((event: Event, value: {
487
+ item: DataTableItem;
488
+ }) => any) | undefined;
469
489
  "onUpdate:options"?: ((value: any) => any) | undefined;
470
490
  "onUpdate:groupBy"?: ((value: any) => any) | undefined;
471
491
  }, {
@@ -573,6 +593,9 @@ declare const VDataTableServer: vue.DefineComponent<{
573
593
  'update:sortBy': (sortBy: any) => true;
574
594
  'update:options': (options: any) => true;
575
595
  'update:expanded': (options: any) => true;
596
+ 'click:row': (event: Event, value: {
597
+ item: DataTableItem;
598
+ }) => true;
576
599
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
577
600
  page: {
578
601
  type: (StringConstructor | NumberConstructor)[];
@@ -647,6 +670,9 @@ declare const VDataTableServer: vue.DefineComponent<{
647
670
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
648
671
  "onUpdate:sortBy"?: ((sortBy: any) => any) | undefined;
649
672
  "onUpdate:expanded"?: ((options: any) => any) | undefined;
673
+ "onClick:row"?: ((event: Event, value: {
674
+ item: DataTableItem;
675
+ }) => any) | undefined;
650
676
  "onUpdate:page"?: ((page: number) => any) | undefined;
651
677
  "onUpdate:itemsPerPage"?: ((page: number) => any) | undefined;
652
678
  "onUpdate:options"?: ((options: any) => any) | undefined;
@@ -145,6 +145,9 @@ declare const VDataTable: vue.DefineComponent<{
145
145
  'update:options': (value: any) => true;
146
146
  'update:groupBy': (value: any) => true;
147
147
  'update:expanded': (value: any) => true;
148
+ 'click:row': (event: Event, value: {
149
+ item: DataTableItem;
150
+ }) => true;
148
151
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
149
152
  customFilter: vue.PropType<FilterFunction>;
150
153
  customKeyFilter: vue.PropType<FilterKeyFunctions>;
@@ -225,6 +228,9 @@ declare const VDataTable: vue.DefineComponent<{
225
228
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
226
229
  "onUpdate:sortBy"?: ((value: any) => any) | undefined;
227
230
  "onUpdate:expanded"?: ((value: any) => any) | undefined;
231
+ "onClick:row"?: ((event: Event, value: {
232
+ item: DataTableItem;
233
+ }) => any) | undefined;
228
234
  "onUpdate:page"?: ((value: number) => any) | undefined;
229
235
  "onUpdate:itemsPerPage"?: ((value: number) => any) | undefined;
230
236
  "onUpdate:options"?: ((value: any) => any) | undefined;
@@ -273,7 +279,11 @@ declare const VDataTableRows: vue.DefineComponent<{
273
279
  default: string;
274
280
  };
275
281
  rowHeight: NumberConstructor;
276
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
282
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
283
+ 'click:row': (event: Event, value: {
284
+ item: DataTableItem;
285
+ }) => true;
286
+ }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
277
287
  loading: (StringConstructor | BooleanConstructor)[];
278
288
  loadingText: {
279
289
  type: StringConstructor;
@@ -289,7 +299,11 @@ declare const VDataTableRows: vue.DefineComponent<{
289
299
  default: string;
290
300
  };
291
301
  rowHeight: NumberConstructor;
292
- }>>, {
302
+ }>> & {
303
+ "onClick:row"?: ((event: Event, value: {
304
+ item: DataTableItem;
305
+ }) => any) | undefined;
306
+ }, {
293
307
  noDataText: string;
294
308
  loadingText: string;
295
309
  items: InternalDataTableItem[];
@@ -386,6 +400,9 @@ declare const VDataTableVirtual: vue.DefineComponent<{
386
400
  'update:options': (value: any) => true;
387
401
  'update:groupBy': (value: any) => true;
388
402
  'update:expanded': (value: any) => true;
403
+ 'click:row': (event: Event, value: {
404
+ item: DataTableItem;
405
+ }) => true;
389
406
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
390
407
  customFilter: vue.PropType<FilterFunction>;
391
408
  customKeyFilter: vue.PropType<FilterKeyFunctions>;
@@ -466,6 +483,9 @@ declare const VDataTableVirtual: vue.DefineComponent<{
466
483
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
467
484
  "onUpdate:sortBy"?: ((value: any) => any) | undefined;
468
485
  "onUpdate:expanded"?: ((value: any) => any) | undefined;
486
+ "onClick:row"?: ((event: Event, value: {
487
+ item: DataTableItem;
488
+ }) => any) | undefined;
469
489
  "onUpdate:options"?: ((value: any) => any) | undefined;
470
490
  "onUpdate:groupBy"?: ((value: any) => any) | undefined;
471
491
  }, {
@@ -573,6 +593,9 @@ declare const VDataTableServer: vue.DefineComponent<{
573
593
  'update:sortBy': (sortBy: any) => true;
574
594
  'update:options': (options: any) => true;
575
595
  'update:expanded': (options: any) => true;
596
+ 'click:row': (event: Event, value: {
597
+ item: DataTableItem;
598
+ }) => true;
576
599
  }, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
577
600
  page: {
578
601
  type: (StringConstructor | NumberConstructor)[];
@@ -647,6 +670,9 @@ declare const VDataTableServer: vue.DefineComponent<{
647
670
  "onUpdate:modelValue"?: ((value: any[]) => any) | undefined;
648
671
  "onUpdate:sortBy"?: ((sortBy: any) => any) | undefined;
649
672
  "onUpdate:expanded"?: ((options: any) => any) | undefined;
673
+ "onClick:row"?: ((event: Event, value: {
674
+ item: DataTableItem;
675
+ }) => any) | undefined;
650
676
  "onUpdate:page"?: ((page: number) => any) | undefined;
651
677
  "onUpdate:itemsPerPage"?: ((page: number) => any) | undefined;
652
678
  "onUpdate:options"?: ((options: any) => any) | undefined;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetify/nightly",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.1.0-dev-20230104.0",
4
+ "version": "3.1.0-dev-20230105.0",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"