@vuetify/nightly 3.9.2-master.2025-07-25 → 3.9.2-master.2025-07-27

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.
@@ -8,13 +8,16 @@ export type VPieSlots = {
8
8
  isActive: (item: PieItem) => boolean;
9
9
  toggle: (item: PieItem) => void;
10
10
  items: PieItem[];
11
+ total: number;
11
12
  };
12
13
  'legend-text': {
13
14
  item: PieItem;
15
+ total: number;
14
16
  };
15
17
  title: never;
16
18
  tooltip: {
17
19
  item: PieItem;
20
+ total: number;
18
21
  };
19
22
  };
20
23
  export declare const makeVPieProps: <Defaults extends {
@@ -271,6 +274,7 @@ export declare const makeVPieProps: <Defaults extends {
271
274
  type: PropType<boolean | {
272
275
  titleFormat?: TextTemplate;
273
276
  subtitleFormat?: TextTemplate;
277
+ avatarSize?: number;
274
278
  transition?: string | boolean | TransitionProps;
275
279
  offset?: number;
276
280
  }>;
@@ -279,6 +283,7 @@ export declare const makeVPieProps: <Defaults extends {
279
283
  type: PropType<boolean | {
280
284
  titleFormat?: TextTemplate;
281
285
  subtitleFormat?: TextTemplate;
286
+ avatarSize?: number;
282
287
  transition?: string | boolean | TransitionProps;
283
288
  offset?: number;
284
289
  }>;
@@ -287,22 +292,26 @@ export declare const makeVPieProps: <Defaults extends {
287
292
  type: PropType<unknown extends Defaults["tooltip"] ? boolean | {
288
293
  titleFormat?: TextTemplate;
289
294
  subtitleFormat?: TextTemplate;
295
+ avatarSize?: number;
290
296
  transition?: string | boolean | TransitionProps;
291
297
  offset?: number;
292
298
  } : boolean | {
293
299
  titleFormat?: TextTemplate;
294
300
  subtitleFormat?: TextTemplate;
301
+ avatarSize?: number;
295
302
  transition?: string | boolean | TransitionProps;
296
303
  offset?: number;
297
304
  } | Defaults["tooltip"]>;
298
305
  default: unknown extends Defaults["tooltip"] ? boolean | {
299
306
  titleFormat?: TextTemplate;
300
307
  subtitleFormat?: TextTemplate;
308
+ avatarSize?: number;
301
309
  transition?: string | boolean | TransitionProps;
302
310
  offset?: number;
303
311
  } : Defaults["tooltip"] | NonNullable<boolean | {
304
312
  titleFormat?: TextTemplate;
305
313
  subtitleFormat?: TextTemplate;
314
+ avatarSize?: number;
306
315
  transition?: string | boolean | TransitionProps;
307
316
  offset?: number;
308
317
  }>;
@@ -322,6 +331,7 @@ export declare const VPie: {
322
331
  tooltip: boolean | {
323
332
  titleFormat?: TextTemplate;
324
333
  subtitleFormat?: TextTemplate;
334
+ avatarSize?: number;
325
335
  transition?: string | boolean | TransitionProps;
326
336
  offset?: number;
327
337
  };
@@ -361,13 +371,16 @@ export declare const VPie: {
361
371
  isActive: (item: PieItem) => boolean;
362
372
  toggle: (item: PieItem) => void;
363
373
  items: PieItem[];
374
+ total: number;
364
375
  }) => import("vue").VNodeChild) | undefined;
365
376
  'legend-text'?: ((arg: {
366
377
  item: PieItem;
378
+ total: number;
367
379
  }) => import("vue").VNodeChild) | undefined;
368
380
  title?: (() => import("vue").VNodeChild) | undefined;
369
381
  tooltip?: ((arg: {
370
382
  item: PieItem;
383
+ total: number;
371
384
  }) => import("vue").VNodeChild) | undefined;
372
385
  };
373
386
  'v-slots'?: {
@@ -378,13 +391,16 @@ export declare const VPie: {
378
391
  isActive: (item: PieItem) => boolean;
379
392
  toggle: (item: PieItem) => void;
380
393
  items: PieItem[];
394
+ total: number;
381
395
  }) => import("vue").VNodeChild) | undefined;
382
396
  'legend-text'?: false | ((arg: {
383
397
  item: PieItem;
398
+ total: number;
384
399
  }) => import("vue").VNodeChild) | undefined;
385
400
  title?: false | (() => import("vue").VNodeChild) | undefined;
386
401
  tooltip?: false | ((arg: {
387
402
  item: PieItem;
403
+ total: number;
388
404
  }) => import("vue").VNodeChild) | undefined;
389
405
  } | undefined;
390
406
  } & {
@@ -395,13 +411,16 @@ export declare const VPie: {
395
411
  isActive: (item: PieItem) => boolean;
396
412
  toggle: (item: PieItem) => void;
397
413
  items: PieItem[];
414
+ total: number;
398
415
  }) => import("vue").VNodeChild) | undefined;
399
416
  "v-slot:legend-text"?: false | ((arg: {
400
417
  item: PieItem;
418
+ total: number;
401
419
  }) => import("vue").VNodeChild) | undefined;
402
420
  "v-slot:title"?: false | (() => import("vue").VNodeChild) | undefined;
403
421
  "v-slot:tooltip"?: false | ((arg: {
404
422
  item: PieItem;
423
+ total: number;
405
424
  }) => import("vue").VNodeChild) | undefined;
406
425
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, {
407
426
  animation: boolean | {
@@ -416,6 +435,7 @@ export declare const VPie: {
416
435
  tooltip: boolean | {
417
436
  titleFormat?: TextTemplate;
418
437
  subtitleFormat?: TextTemplate;
438
+ avatarSize?: number;
419
439
  transition?: string | boolean | TransitionProps;
420
440
  offset?: number;
421
441
  };
@@ -444,13 +464,16 @@ export declare const VPie: {
444
464
  isActive: (item: PieItem) => boolean;
445
465
  toggle: (item: PieItem) => void;
446
466
  items: PieItem[];
467
+ total: number;
447
468
  }) => import("vue").VNode[];
448
469
  'legend-text': (arg: {
449
470
  item: PieItem;
471
+ total: number;
450
472
  }) => import("vue").VNode[];
451
473
  title: () => import("vue").VNode[];
452
474
  tooltip: (arg: {
453
475
  item: PieItem;
476
+ total: number;
454
477
  }) => import("vue").VNode[];
455
478
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
456
479
  P: {};
@@ -472,6 +495,7 @@ export declare const VPie: {
472
495
  tooltip: boolean | {
473
496
  titleFormat?: TextTemplate;
474
497
  subtitleFormat?: TextTemplate;
498
+ avatarSize?: number;
475
499
  transition?: string | boolean | TransitionProps;
476
500
  offset?: number;
477
501
  };
@@ -511,13 +535,16 @@ export declare const VPie: {
511
535
  isActive: (item: PieItem) => boolean;
512
536
  toggle: (item: PieItem) => void;
513
537
  items: PieItem[];
538
+ total: number;
514
539
  }) => import("vue").VNodeChild) | undefined;
515
540
  'legend-text'?: ((arg: {
516
541
  item: PieItem;
542
+ total: number;
517
543
  }) => import("vue").VNodeChild) | undefined;
518
544
  title?: (() => import("vue").VNodeChild) | undefined;
519
545
  tooltip?: ((arg: {
520
546
  item: PieItem;
547
+ total: number;
521
548
  }) => import("vue").VNodeChild) | undefined;
522
549
  };
523
550
  'v-slots'?: {
@@ -528,13 +555,16 @@ export declare const VPie: {
528
555
  isActive: (item: PieItem) => boolean;
529
556
  toggle: (item: PieItem) => void;
530
557
  items: PieItem[];
558
+ total: number;
531
559
  }) => import("vue").VNodeChild) | undefined;
532
560
  'legend-text'?: false | ((arg: {
533
561
  item: PieItem;
562
+ total: number;
534
563
  }) => import("vue").VNodeChild) | undefined;
535
564
  title?: false | (() => import("vue").VNodeChild) | undefined;
536
565
  tooltip?: false | ((arg: {
537
566
  item: PieItem;
567
+ total: number;
538
568
  }) => import("vue").VNodeChild) | undefined;
539
569
  } | undefined;
540
570
  } & {
@@ -545,13 +575,16 @@ export declare const VPie: {
545
575
  isActive: (item: PieItem) => boolean;
546
576
  toggle: (item: PieItem) => void;
547
577
  items: PieItem[];
578
+ total: number;
548
579
  }) => import("vue").VNodeChild) | undefined;
549
580
  "v-slot:legend-text"?: false | ((arg: {
550
581
  item: PieItem;
582
+ total: number;
551
583
  }) => import("vue").VNodeChild) | undefined;
552
584
  "v-slot:title"?: false | (() => import("vue").VNodeChild) | undefined;
553
585
  "v-slot:tooltip"?: false | ((arg: {
554
586
  item: PieItem;
587
+ total: number;
555
588
  }) => import("vue").VNodeChild) | undefined;
556
589
  }, () => JSX.Element, {}, {}, {}, {
557
590
  animation: boolean | {
@@ -566,6 +599,7 @@ export declare const VPie: {
566
599
  tooltip: boolean | {
567
600
  titleFormat?: TextTemplate;
568
601
  subtitleFormat?: TextTemplate;
602
+ avatarSize?: number;
569
603
  transition?: string | boolean | TransitionProps;
570
604
  offset?: number;
571
605
  };
@@ -603,6 +637,7 @@ export declare const VPie: {
603
637
  tooltip: boolean | {
604
638
  titleFormat?: TextTemplate;
605
639
  subtitleFormat?: TextTemplate;
640
+ avatarSize?: number;
606
641
  transition?: string | boolean | TransitionProps;
607
642
  offset?: number;
608
643
  };
@@ -642,13 +677,16 @@ export declare const VPie: {
642
677
  isActive: (item: PieItem) => boolean;
643
678
  toggle: (item: PieItem) => void;
644
679
  items: PieItem[];
680
+ total: number;
645
681
  }) => import("vue").VNodeChild) | undefined;
646
682
  'legend-text'?: ((arg: {
647
683
  item: PieItem;
684
+ total: number;
648
685
  }) => import("vue").VNodeChild) | undefined;
649
686
  title?: (() => import("vue").VNodeChild) | undefined;
650
687
  tooltip?: ((arg: {
651
688
  item: PieItem;
689
+ total: number;
652
690
  }) => import("vue").VNodeChild) | undefined;
653
691
  };
654
692
  'v-slots'?: {
@@ -659,13 +697,16 @@ export declare const VPie: {
659
697
  isActive: (item: PieItem) => boolean;
660
698
  toggle: (item: PieItem) => void;
661
699
  items: PieItem[];
700
+ total: number;
662
701
  }) => import("vue").VNodeChild) | undefined;
663
702
  'legend-text'?: false | ((arg: {
664
703
  item: PieItem;
704
+ total: number;
665
705
  }) => import("vue").VNodeChild) | undefined;
666
706
  title?: false | (() => import("vue").VNodeChild) | undefined;
667
707
  tooltip?: false | ((arg: {
668
708
  item: PieItem;
709
+ total: number;
669
710
  }) => import("vue").VNodeChild) | undefined;
670
711
  } | undefined;
671
712
  } & {
@@ -676,13 +717,16 @@ export declare const VPie: {
676
717
  isActive: (item: PieItem) => boolean;
677
718
  toggle: (item: PieItem) => void;
678
719
  items: PieItem[];
720
+ total: number;
679
721
  }) => import("vue").VNodeChild) | undefined;
680
722
  "v-slot:legend-text"?: false | ((arg: {
681
723
  item: PieItem;
724
+ total: number;
682
725
  }) => import("vue").VNodeChild) | undefined;
683
726
  "v-slot:title"?: false | (() => import("vue").VNodeChild) | undefined;
684
727
  "v-slot:tooltip"?: false | ((arg: {
685
728
  item: PieItem;
729
+ total: number;
686
730
  }) => import("vue").VNodeChild) | undefined;
687
731
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, {
688
732
  animation: boolean | {
@@ -697,6 +741,7 @@ export declare const VPie: {
697
741
  tooltip: boolean | {
698
742
  titleFormat?: TextTemplate;
699
743
  subtitleFormat?: TextTemplate;
744
+ avatarSize?: number;
700
745
  transition?: string | boolean | TransitionProps;
701
746
  offset?: number;
702
747
  };
@@ -725,13 +770,16 @@ export declare const VPie: {
725
770
  isActive: (item: PieItem) => boolean;
726
771
  toggle: (item: PieItem) => void;
727
772
  items: PieItem[];
773
+ total: number;
728
774
  }) => import("vue").VNode[];
729
775
  'legend-text': (arg: {
730
776
  item: PieItem;
777
+ total: number;
731
778
  }) => import("vue").VNode[];
732
779
  title: () => import("vue").VNode[];
733
780
  tooltip: (arg: {
734
781
  item: PieItem;
782
+ total: number;
735
783
  }) => import("vue").VNode[];
736
784
  }>>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("../../util/index.js").FilterPropsOptions<{
737
785
  animation: {
@@ -805,6 +853,7 @@ export declare const VPie: {
805
853
  type: PropType<boolean | {
806
854
  titleFormat?: TextTemplate;
807
855
  subtitleFormat?: TextTemplate;
856
+ avatarSize?: number;
808
857
  transition?: string | boolean | TransitionProps;
809
858
  offset?: number;
810
859
  }>;
@@ -882,6 +931,7 @@ export declare const VPie: {
882
931
  type: PropType<boolean | {
883
932
  titleFormat?: TextTemplate;
884
933
  subtitleFormat?: TextTemplate;
934
+ avatarSize?: number;
885
935
  transition?: string | boolean | TransitionProps;
886
936
  offset?: number;
887
937
  }>;
@@ -191,7 +191,7 @@ export const VPie = genericComponent()({
191
191
  };
192
192
  const tooltipDefaults = {
193
193
  VAvatar: {
194
- size: 28
194
+ size: typeof props.tooltip === 'object' ? props.tooltip.avatarSize : 28
195
195
  }
196
196
  };
197
197
  const avatarSlot = _ref2 => {
@@ -257,7 +257,8 @@ export const VPie = genericComponent()({
257
257
  }, [slots.legend?.({
258
258
  isActive,
259
259
  toggle,
260
- items: arcs.value
260
+ items: arcs.value,
261
+ total: total.value
261
262
  }) ?? _createVNode(VChipGroup, {
262
263
  "column": true,
263
264
  "multiple": true,
@@ -273,7 +274,8 @@ export const VPie = genericComponent()({
273
274
  default: () => _createElementVNode("div", {
274
275
  "class": "v-pie__legend__text"
275
276
  }, [slots['legend-text']?.({
276
- item
277
+ item,
278
+ total: total.value
277
279
  }) ?? legendTextFormatFunction.value(item)])
278
280
  }))]
279
281
  })])]
@@ -281,7 +283,10 @@ export const VPie = genericComponent()({
281
283
  "defaults": tooltipDefaults
282
284
  }, {
283
285
  default: () => [_createVNode(VPieTooltip, tooltipProps, {
284
- default: slots.tooltip,
286
+ default: slots.tooltip ? slotProps => slots.tooltip?.({
287
+ ...slotProps,
288
+ total: total.value
289
+ }) : undefined,
285
290
  prepend: avatarSlot
286
291
  })]
287
292
  })]);
@@ -1 +1 @@
1
- {"version":3,"file":"VPie.js","names":["makeVPieSegmentProps","VPieSegment","VPieTooltip","VAvatar","VChip","VChipGroup","VDefaultsProvider","useColor","makeDensityProps","computed","shallowRef","toRef","watch","formatTextTemplate","convertToUnit","genericComponent","pick","propsFactory","makeVPieProps","title","String","bgColor","items","type","Array","default","palette","itemKey","itemValue","itemTitle","size","Number","rotate","gaugeCut","legend","Boolean","Object","tooltip","VPie","name","props","setup","_ref","slots","legendConfig","visible","position","textFormat","colorClasses","colorStyles","background","textColorStyles","value","legendAvatarSize","comfortable","compact","density","legendDirection","includes","legendMode","legendTextFormatFunction","item","arcs","filter","map","index","key","color","colorFromPalette","pattern","patternFromPalette","raw","visibleItemsKeys","length","a","immediate","visibleItems","isActive","total","reduce","sum","gaugeOffset","Math","cos","PI","min","rotateDeg","arcOffset","slice","acc","s","arcSize","v","undefined","paletteItem","toggle","x","tooltipItem","tooltipVisible","mouseLeaveTimeout","onMouseenter","clearTimeout","onMouseleave","setTimeout","segmentProps","defaultTooltipTransition","duration","tooltipProps","modelValue","titleFormat","subtitleFormat","transition","offset","legendDefaults","direction","tooltipDefaults","avatarSlot","_ref2","_createVNode","_createElementVNode","_normalizeClass","_normalizeStyle","transform","marginBottom","_mergeProps","center","$event","prepend"],"sources":["../../../src/labs/VPie/VPie.tsx"],"sourcesContent":["// Styles\nimport './VPie.sass'\n\n// Components\nimport { makeVPieSegmentProps, VPieSegment } from './VPieSegment'\nimport { VPieTooltip } from './VPieTooltip'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChip } from '@/components/VChip'\nimport { VChipGroup } from '@/components/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useColor } from '@/composables/color'\nimport { makeDensityProps } from '@/composables/density'\n\n// Utilities\nimport { computed, shallowRef, toRef, watch } from 'vue'\nimport { formatTextTemplate } from './utils'\nimport { convertToUnit, genericComponent, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, TransitionProps } from 'vue'\nimport type { PieItem, TextTemplate } from './types'\n\nexport type VPieSlots = {\n center: { total: number }\n legend: {\n isActive: (item: PieItem) => boolean\n toggle: (item: PieItem) => void\n items: PieItem[]\n }\n 'legend-text': { item: PieItem }\n title: never\n tooltip: { item: PieItem }\n}\n\nexport const makeVPieProps = propsFactory({\n title: String,\n bgColor: String,\n items: {\n type: Array as PropType<Record<string, any> | { color?: string, pattern?: string }[]>,\n default: () => [],\n },\n palette: {\n type: Array as PropType<({ color?: string, pattern?: string } | string)[]>,\n default: () => [],\n },\n itemKey: {\n type: String,\n default: 'key',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n size: {\n type: [Number, String],\n default: 250,\n },\n rotate: [Number, String],\n gaugeCut: [Number, String],\n legend: {\n type: [Boolean, Object] as PropType<boolean | {\n position?: 'left' | 'top' | 'right' | 'bottom'\n textFormat?: TextTemplate\n }>,\n default: false,\n },\n tooltip: {\n type: [Boolean, Object] as PropType<boolean | {\n titleFormat?: TextTemplate\n subtitleFormat?: TextTemplate\n transition?: string | boolean | TransitionProps\n offset?: number\n }>,\n default: false,\n },\n\n ...makeDensityProps(),\n ...pick(makeVPieSegmentProps(), [\n 'animation',\n 'gap',\n 'rounded',\n 'innerCut',\n 'hoverScale',\n 'hideSlice',\n 'reveal',\n ]),\n}, 'VPie')\n\nexport const VPie = genericComponent<VPieSlots>()({\n name: 'VPie',\n\n props: makeVPieProps(),\n\n setup (props, { slots }) {\n const legendConfig = computed(() => ({\n visible: !!props.legend,\n position: 'bottom',\n textFormat: '[title]',\n ...(typeof props.legend === 'object' ? props.legend : {}),\n }))\n\n const { colorClasses, colorStyles } = useColor(() => ({ background: props.bgColor }))\n const textColorStyles = toRef(() => pick(colorStyles.value, ['color', 'caretColor']))\n\n const legendAvatarSize = toRef(() => ({ default: 20, comfortable: 18, compact: 16 }[props.density ?? 'default']))\n const legendDirection = toRef(() => ['left', 'right'].includes(legendConfig.value.position) ? 'vertical' : 'horizontal')\n\n const legendMode = toRef(() => !legendConfig.value.visible ? 'hidden' : legendConfig.value.position)\n\n const legendTextFormatFunction = toRef(() => (item: PieItem) => {\n return typeof legendConfig.value.textFormat === 'function'\n ? legendConfig.value.textFormat(item)\n : formatTextTemplate(legendConfig.value.textFormat, item)\n })\n\n const arcs = computed<PieItem[]>(() => {\n // hidden items get (value: 0) to trigger disappearing animation\n return props.items\n .filter(Boolean)\n .map((item: any, index: number) => {\n return {\n key: item[props.itemKey],\n color: item.color ?? colorFromPalette(index),\n value: item[props.itemValue],\n title: String(item[props.itemTitle]),\n pattern: item.pattern ?? patternFromPalette(index),\n raw: item,\n } as PieItem\n })\n })\n\n const visibleItemsKeys = shallowRef<PieItem['key'][]>([])\n\n watch(() => arcs.value.length, () => {\n // reset when number of items changes\n visibleItemsKeys.value = arcs.value.map(a => a.key)\n }, { immediate: true })\n\n const visibleItems = computed(() => {\n // hidden items get (value: 0) to trigger disappearing animation\n return arcs.value.map(item => {\n return isActive(item)\n ? item\n : { ...item, value: 0 }\n })\n })\n\n const total = computed(() => visibleItems.value.reduce((sum, item) => sum + item.value, 0))\n\n const gaugeCut = toRef(() => Number(props.gaugeCut ?? 0))\n const gaugeOffset = computed(() => (1 - Math.cos(Math.PI * Math.min(90, gaugeCut.value / 2) / 180)) / 2)\n const rotateDeg = computed(() => `${gaugeCut.value ? (180 + gaugeCut.value / 2) : (props.rotate ?? 0)}deg`)\n\n function arcOffset (index: number) {\n return visibleItems.value\n .slice(0, index)\n .reduce((acc, s) => acc + (total.value > 0 ? s.value / total.value : 0) * (360 - gaugeCut.value), 0)\n }\n\n function arcSize (v: number) { return v / total.value * (100 - gaugeCut.value / 3.6) }\n\n function colorFromPalette (index: number) {\n if (props.palette.length === 0) return undefined\n const paletteItem = props.palette[index % props.palette.length]\n return typeof paletteItem === 'object' ? paletteItem.color : paletteItem\n }\n\n function patternFromPalette (index: number) {\n if (props.palette.length === 0) return undefined\n const paletteItem = props.palette[index % props.palette.length]\n return typeof paletteItem === 'object' ? paletteItem.pattern : undefined\n }\n\n function isActive (item: PieItem) {\n return visibleItemsKeys.value.includes(item.key)\n }\n\n function toggle (item: PieItem) {\n if (isActive(item)) {\n visibleItemsKeys.value = visibleItemsKeys.value.filter(x => x !== item.key)\n } else {\n visibleItemsKeys.value = [...visibleItemsKeys.value, item.key]\n }\n }\n\n const tooltipItem = shallowRef<PieItem | null>(null)\n const tooltipVisible = shallowRef(false)\n\n let mouseLeaveTimeout = null! as ReturnType<typeof setTimeout>\n\n function onMouseenter (item: PieItem) {\n if (!props.tooltip) return\n\n clearTimeout(mouseLeaveTimeout)\n tooltipVisible.value = true\n tooltipItem.value = item\n }\n\n function onMouseleave () {\n if (!props.tooltip) return\n\n clearTimeout(mouseLeaveTimeout)\n mouseLeaveTimeout = setTimeout(() => {\n tooltipVisible.value = false\n\n // intentionally reusing timeout here\n mouseLeaveTimeout = setTimeout(() => {\n tooltipItem.value = null\n }, 500)\n }, 100)\n }\n\n return () => {\n const segmentProps = pick(props, [\n 'animation',\n 'gap',\n 'rounded',\n 'hideSlice',\n 'reveal',\n 'innerCut',\n 'hoverScale',\n ])\n\n const defaultTooltipTransition = {\n name: 'fade-transition',\n duration: 150,\n }\n\n const tooltipProps = {\n item: tooltipItem.value,\n modelValue: tooltipVisible.value,\n titleFormat: typeof props.tooltip === 'object' ? props.tooltip.titleFormat : '[title]',\n subtitleFormat: typeof props.tooltip === 'object' ? props.tooltip.subtitleFormat : '[value]',\n transition: typeof props.tooltip === 'object' ? props.tooltip.transition : defaultTooltipTransition,\n offset: typeof props.tooltip === 'object' ? props.tooltip.offset : 16,\n }\n\n const legendDefaults = {\n VChipGroup: {\n direction: legendDirection.value,\n },\n VChip: {\n density: props.density,\n },\n VAvatar: {\n size: legendAvatarSize.value,\n },\n }\n\n const tooltipDefaults = {\n VAvatar: {\n size: 28,\n },\n }\n\n const avatarSlot = ({ item }: { item: PieItem }) => (\n <VAvatar color={ item.color } start>\n { item.pattern && (\n <svg height=\"40\" width=\"40\">\n <rect width=\"40\" height=\"40\" fill={ item.pattern } />\n </svg>\n )}\n </VAvatar>\n )\n\n return (\n <div\n class={[\n 'v-pie',\n `v-pie--legend-${legendMode.value}`,\n ]}\n style={{\n '--v-pie-size': convertToUnit(props.size),\n }}\n >\n { slots.title?.() ?? (props.title && (<div class=\"v-pie__title\">{ props.title }</div>)) }\n <div\n class={[\n 'v-pie__content',\n colorClasses.value,\n ]}\n style={[\n {\n transform: `rotate(${rotateDeg.value})`,\n marginBottom: `calc(-1 * ${convertToUnit(props.size)} * ${gaugeOffset.value})`,\n },\n textColorStyles.value,\n ]}\n >\n <div\n class={[\n 'v-pie__content-underlay',\n colorClasses.value,\n ]}\n style={ colorStyles.value }\n />\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 100 100\"\n >\n { arcs.value.map((item, index) => (\n <VPieSegment\n { ...segmentProps }\n key={ item.key }\n color={ item.color }\n value={ isActive(item) ? arcSize(item.value) : 0 }\n rotate={ arcOffset(index) }\n pattern={ item.pattern }\n onMouseenter={ () => onMouseenter(item) }\n onMouseleave={ () => onMouseleave() }\n />\n ))}\n </svg>\n\n <div\n class=\"v-pie__center-content\"\n style={{\n transform: `translate(-50%, -50%)\n rotate(-${rotateDeg.value})\n translateY(calc(-100% * ${gaugeOffset.value}))`,\n }}\n >\n <div>\n { slots.center?.({ total: total.value }) }\n </div>\n </div>\n </div>\n\n { legendConfig.value.visible && (\n <VDefaultsProvider key=\"legend\" defaults={ legendDefaults }>\n <div class=\"v-pie__legend\">\n { slots.legend?.({ isActive, toggle, items: arcs.value }) ?? (\n <VChipGroup\n column\n multiple\n v-model={ visibleItemsKeys.value }\n >\n { arcs.value.map(item => (\n <VChip\n value={ item.key }\n v-slots={{\n prepend: () => avatarSlot({ item }),\n default: () => (\n <div class=\"v-pie__legend__text\">\n { slots['legend-text']?.({ item }) ?? legendTextFormatFunction.value(item) }\n </div>\n ),\n }}\n />\n ))}\n </VChipGroup>\n )}\n </div>\n </VDefaultsProvider>\n )}\n { !!props.tooltip && (\n <VDefaultsProvider defaults={ tooltipDefaults }>\n <VPieTooltip\n { ...tooltipProps }\n v-slots={{\n default: slots.tooltip,\n prepend: avatarSlot,\n }}\n />\n </VDefaultsProvider>\n )}\n </div>\n )\n }\n },\n})\n\nexport type VPie = InstanceType<typeof VPie>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VPie.js","names":["makeVPieSegmentProps","VPieSegment","VPieTooltip","VAvatar","VChip","VChipGroup","VDefaultsProvider","useColor","makeDensityProps","computed","shallowRef","toRef","watch","formatTextTemplate","convertToUnit","genericComponent","pick","propsFactory","makeVPieProps","title","String","bgColor","items","type","Array","default","palette","itemKey","itemValue","itemTitle","size","Number","rotate","gaugeCut","legend","Boolean","Object","tooltip","VPie","name","props","setup","_ref","slots","legendConfig","visible","position","textFormat","colorClasses","colorStyles","background","textColorStyles","value","legendAvatarSize","comfortable","compact","density","legendDirection","includes","legendMode","legendTextFormatFunction","item","arcs","filter","map","index","key","color","colorFromPalette","pattern","patternFromPalette","raw","visibleItemsKeys","length","a","immediate","visibleItems","isActive","total","reduce","sum","gaugeOffset","Math","cos","PI","min","rotateDeg","arcOffset","slice","acc","s","arcSize","v","undefined","paletteItem","toggle","x","tooltipItem","tooltipVisible","mouseLeaveTimeout","onMouseenter","clearTimeout","onMouseleave","setTimeout","segmentProps","defaultTooltipTransition","duration","tooltipProps","modelValue","titleFormat","subtitleFormat","transition","offset","legendDefaults","direction","tooltipDefaults","avatarSize","avatarSlot","_ref2","_createVNode","_createElementVNode","_normalizeClass","_normalizeStyle","transform","marginBottom","_mergeProps","center","$event","prepend","slotProps"],"sources":["../../../src/labs/VPie/VPie.tsx"],"sourcesContent":["// Styles\nimport './VPie.sass'\n\n// Components\nimport { makeVPieSegmentProps, VPieSegment } from './VPieSegment'\nimport { VPieTooltip } from './VPieTooltip'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChip } from '@/components/VChip'\nimport { VChipGroup } from '@/components/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\n\n// Composables\nimport { useColor } from '@/composables/color'\nimport { makeDensityProps } from '@/composables/density'\n\n// Utilities\nimport { computed, shallowRef, toRef, watch } from 'vue'\nimport { formatTextTemplate } from './utils'\nimport { convertToUnit, genericComponent, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType, TransitionProps } from 'vue'\nimport type { PieItem, TextTemplate } from './types'\n\nexport type VPieSlots = {\n center: { total: number }\n legend: {\n isActive: (item: PieItem) => boolean\n toggle: (item: PieItem) => void\n items: PieItem[]\n total: number\n }\n 'legend-text': {\n item: PieItem\n total: number\n }\n title: never\n tooltip: {\n item: PieItem\n total: number\n }\n}\n\nexport const makeVPieProps = propsFactory({\n title: String,\n bgColor: String,\n items: {\n type: Array as PropType<Record<string, any> | { color?: string, pattern?: string }[]>,\n default: () => [],\n },\n palette: {\n type: Array as PropType<({ color?: string, pattern?: string } | string)[]>,\n default: () => [],\n },\n itemKey: {\n type: String,\n default: 'key',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n size: {\n type: [Number, String],\n default: 250,\n },\n rotate: [Number, String],\n gaugeCut: [Number, String],\n legend: {\n type: [Boolean, Object] as PropType<boolean | {\n position?: 'left' | 'top' | 'right' | 'bottom'\n textFormat?: TextTemplate\n }>,\n default: false,\n },\n tooltip: {\n type: [Boolean, Object] as PropType<boolean | {\n titleFormat?: TextTemplate\n subtitleFormat?: TextTemplate\n avatarSize?: number\n transition?: string | boolean | TransitionProps\n offset?: number\n }>,\n default: false,\n },\n\n ...makeDensityProps(),\n ...pick(makeVPieSegmentProps(), [\n 'animation',\n 'gap',\n 'rounded',\n 'innerCut',\n 'hoverScale',\n 'hideSlice',\n 'reveal',\n ]),\n}, 'VPie')\n\nexport const VPie = genericComponent<VPieSlots>()({\n name: 'VPie',\n\n props: makeVPieProps(),\n\n setup (props, { slots }) {\n const legendConfig = computed(() => ({\n visible: !!props.legend,\n position: 'bottom',\n textFormat: '[title]',\n ...(typeof props.legend === 'object' ? props.legend : {}),\n }))\n\n const { colorClasses, colorStyles } = useColor(() => ({ background: props.bgColor }))\n const textColorStyles = toRef(() => pick(colorStyles.value, ['color', 'caretColor']))\n\n const legendAvatarSize = toRef(() => ({ default: 20, comfortable: 18, compact: 16 }[props.density ?? 'default']))\n const legendDirection = toRef(() => ['left', 'right'].includes(legendConfig.value.position) ? 'vertical' : 'horizontal')\n\n const legendMode = toRef(() => !legendConfig.value.visible ? 'hidden' : legendConfig.value.position)\n\n const legendTextFormatFunction = toRef(() => (item: PieItem) => {\n return typeof legendConfig.value.textFormat === 'function'\n ? legendConfig.value.textFormat(item)\n : formatTextTemplate(legendConfig.value.textFormat, item)\n })\n\n const arcs = computed<PieItem[]>(() => {\n // hidden items get (value: 0) to trigger disappearing animation\n return props.items\n .filter(Boolean)\n .map((item: any, index: number) => {\n return {\n key: item[props.itemKey],\n color: item.color ?? colorFromPalette(index),\n value: item[props.itemValue],\n title: String(item[props.itemTitle]),\n pattern: item.pattern ?? patternFromPalette(index),\n raw: item,\n } as PieItem\n })\n })\n\n const visibleItemsKeys = shallowRef<PieItem['key'][]>([])\n\n watch(() => arcs.value.length, () => {\n // reset when number of items changes\n visibleItemsKeys.value = arcs.value.map(a => a.key)\n }, { immediate: true })\n\n const visibleItems = computed(() => {\n // hidden items get (value: 0) to trigger disappearing animation\n return arcs.value.map(item => {\n return isActive(item)\n ? item\n : { ...item, value: 0 }\n })\n })\n\n const total = computed(() => visibleItems.value.reduce((sum, item) => sum + item.value, 0))\n\n const gaugeCut = toRef(() => Number(props.gaugeCut ?? 0))\n const gaugeOffset = computed(() => (1 - Math.cos(Math.PI * Math.min(90, gaugeCut.value / 2) / 180)) / 2)\n const rotateDeg = computed(() => `${gaugeCut.value ? (180 + gaugeCut.value / 2) : (props.rotate ?? 0)}deg`)\n\n function arcOffset (index: number) {\n return visibleItems.value\n .slice(0, index)\n .reduce((acc, s) => acc + (total.value > 0 ? s.value / total.value : 0) * (360 - gaugeCut.value), 0)\n }\n\n function arcSize (v: number) { return v / total.value * (100 - gaugeCut.value / 3.6) }\n\n function colorFromPalette (index: number) {\n if (props.palette.length === 0) return undefined\n const paletteItem = props.palette[index % props.palette.length]\n return typeof paletteItem === 'object' ? paletteItem.color : paletteItem\n }\n\n function patternFromPalette (index: number) {\n if (props.palette.length === 0) return undefined\n const paletteItem = props.palette[index % props.palette.length]\n return typeof paletteItem === 'object' ? paletteItem.pattern : undefined\n }\n\n function isActive (item: PieItem) {\n return visibleItemsKeys.value.includes(item.key)\n }\n\n function toggle (item: PieItem) {\n if (isActive(item)) {\n visibleItemsKeys.value = visibleItemsKeys.value.filter(x => x !== item.key)\n } else {\n visibleItemsKeys.value = [...visibleItemsKeys.value, item.key]\n }\n }\n\n const tooltipItem = shallowRef<PieItem | null>(null)\n const tooltipVisible = shallowRef(false)\n\n let mouseLeaveTimeout = null! as ReturnType<typeof setTimeout>\n\n function onMouseenter (item: PieItem) {\n if (!props.tooltip) return\n\n clearTimeout(mouseLeaveTimeout)\n tooltipVisible.value = true\n tooltipItem.value = item\n }\n\n function onMouseleave () {\n if (!props.tooltip) return\n\n clearTimeout(mouseLeaveTimeout)\n mouseLeaveTimeout = setTimeout(() => {\n tooltipVisible.value = false\n\n // intentionally reusing timeout here\n mouseLeaveTimeout = setTimeout(() => {\n tooltipItem.value = null\n }, 500)\n }, 100)\n }\n\n return () => {\n const segmentProps = pick(props, [\n 'animation',\n 'gap',\n 'rounded',\n 'hideSlice',\n 'reveal',\n 'innerCut',\n 'hoverScale',\n ])\n\n const defaultTooltipTransition = {\n name: 'fade-transition',\n duration: 150,\n }\n\n const tooltipProps = {\n item: tooltipItem.value,\n modelValue: tooltipVisible.value,\n titleFormat: typeof props.tooltip === 'object' ? props.tooltip.titleFormat : '[title]',\n subtitleFormat: typeof props.tooltip === 'object' ? props.tooltip.subtitleFormat : '[value]',\n transition: typeof props.tooltip === 'object' ? props.tooltip.transition : defaultTooltipTransition,\n offset: typeof props.tooltip === 'object' ? props.tooltip.offset : 16,\n }\n\n const legendDefaults = {\n VChipGroup: {\n direction: legendDirection.value,\n },\n VChip: {\n density: props.density,\n },\n VAvatar: {\n size: legendAvatarSize.value,\n },\n }\n\n const tooltipDefaults = {\n VAvatar: {\n size: typeof props.tooltip === 'object' ? props.tooltip.avatarSize : 28,\n },\n }\n\n const avatarSlot = ({ item }: { item: PieItem }) => (\n <VAvatar color={ item.color } start>\n { item.pattern && (\n <svg height=\"40\" width=\"40\">\n <rect width=\"40\" height=\"40\" fill={ item.pattern } />\n </svg>\n )}\n </VAvatar>\n )\n\n return (\n <div\n class={[\n 'v-pie',\n `v-pie--legend-${legendMode.value}`,\n ]}\n style={{\n '--v-pie-size': convertToUnit(props.size),\n }}\n >\n { slots.title?.() ?? (props.title && (<div class=\"v-pie__title\">{ props.title }</div>)) }\n <div\n class={[\n 'v-pie__content',\n colorClasses.value,\n ]}\n style={[\n {\n transform: `rotate(${rotateDeg.value})`,\n marginBottom: `calc(-1 * ${convertToUnit(props.size)} * ${gaugeOffset.value})`,\n },\n textColorStyles.value,\n ]}\n >\n <div\n class={[\n 'v-pie__content-underlay',\n colorClasses.value,\n ]}\n style={ colorStyles.value }\n />\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 100 100\"\n >\n { arcs.value.map((item, index) => (\n <VPieSegment\n { ...segmentProps }\n key={ item.key }\n color={ item.color }\n value={ isActive(item) ? arcSize(item.value) : 0 }\n rotate={ arcOffset(index) }\n pattern={ item.pattern }\n onMouseenter={ () => onMouseenter(item) }\n onMouseleave={ () => onMouseleave() }\n />\n ))}\n </svg>\n\n <div\n class=\"v-pie__center-content\"\n style={{\n transform: `translate(-50%, -50%)\n rotate(-${rotateDeg.value})\n translateY(calc(-100% * ${gaugeOffset.value}))`,\n }}\n >\n <div>\n { slots.center?.({ total: total.value }) }\n </div>\n </div>\n </div>\n\n { legendConfig.value.visible && (\n <VDefaultsProvider key=\"legend\" defaults={ legendDefaults }>\n <div class=\"v-pie__legend\">\n { slots.legend?.({ isActive, toggle, items: arcs.value, total: total.value }) ?? (\n <VChipGroup\n column\n multiple\n v-model={ visibleItemsKeys.value }\n >\n { arcs.value.map(item => (\n <VChip\n value={ item.key }\n v-slots={{\n prepend: () => avatarSlot({ item }),\n default: () => (\n <div class=\"v-pie__legend__text\">\n { slots['legend-text']?.({ item, total: total.value }) ?? legendTextFormatFunction.value(item) }\n </div>\n ),\n }}\n />\n ))}\n </VChipGroup>\n )}\n </div>\n </VDefaultsProvider>\n )}\n { !!props.tooltip && (\n <VDefaultsProvider defaults={ tooltipDefaults }>\n <VPieTooltip\n { ...tooltipProps }\n v-slots={{\n default: slots.tooltip ? slotProps => slots.tooltip?.({ ...slotProps, total: total.value }) : undefined,\n prepend: avatarSlot,\n }}\n />\n </VDefaultsProvider>\n )}\n </div>\n )\n }\n },\n})\n\nexport type VPie = InstanceType<typeof VPie>\n"],"mappings":"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","ignoreList":[]}
@@ -70,7 +70,7 @@
70
70
  .v-chip__content
71
71
  width: 100%
72
72
 
73
- .v-chip:not(.v-chip--selected)
73
+ .v-chip-group .v-chip:not(.v-chip--selected)
74
74
  opacity: $pie-legend-chip-disabled-opacity
75
75
 
76
76
  &__text
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.9.2-master.2025-07-25",
4
+ "version": "3.9.2-master.2025-07-27",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"