@vuetify/nightly 3.9.2-master.2025-07-26 → 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.
- package/CHANGELOG.md +9 -3
- package/dist/json/attributes.json +3465 -3465
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +152 -152
- package/dist/json/web-types.json +6369 -6357
- package/dist/vuetify-labs.cjs +14 -7
- package/dist/vuetify-labs.css +5216 -5216
- package/dist/vuetify-labs.d.ts +95 -54
- package/dist/vuetify-labs.esm.js +14 -7
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +14 -7
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +5 -3
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3668 -3668
- package/dist/vuetify.d.ts +54 -54
- package/dist/vuetify.esm.js +5 -3
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +5 -3
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +6 -4
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +2 -0
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +54 -54
- package/lib/framework.js +1 -1
- package/lib/labs/VPie/VPie.css +1 -1
- package/lib/labs/VPie/VPie.d.ts +50 -0
- package/lib/labs/VPie/VPie.js +9 -4
- package/lib/labs/VPie/VPie.js.map +1 -1
- package/lib/labs/VPie/VPie.sass +1 -1
- package/package.json +1 -1
package/lib/labs/VPie/VPie.d.ts
CHANGED
@@ -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
|
}>;
|
package/lib/labs/VPie/VPie.js
CHANGED
@@ -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":[]}
|
package/lib/labs/VPie/VPie.sass
CHANGED