@editora/ui-core 0.1.19 → 0.1.21
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/dist/{ElementBase-1b301e7f.js → ElementBase-EV6mVBUV.js} +1 -1
- package/dist/{ElementBase-909688f3.mjs → ElementBase-YlTLMsGk.mjs} +3 -3
- package/dist/accordion.cjs.js +3 -3
- package/dist/accordion.esm.js +39 -62
- package/dist/alert-dialog.cjs.js +19 -19
- package/dist/alert-dialog.esm.js +69 -87
- package/dist/alert.cjs.js +1 -1
- package/dist/alert.esm.js +4 -7
- package/dist/anchor.cjs.js +2 -2
- package/dist/anchor.esm.js +3 -3
- package/dist/animated-beam.cjs.js +83 -83
- package/dist/animated-beam.esm.js +250 -277
- package/dist/animated-list.cjs.js +4 -4
- package/dist/animated-list.esm.js +47 -61
- package/dist/animated-text.cjs.js +2 -2
- package/dist/animated-text.esm.js +13 -24
- package/dist/app-header.cjs.js +3 -3
- package/dist/app-header.esm.js +11 -13
- package/dist/aspect-ratio.cjs.js +1 -1
- package/dist/aspect-ratio.esm.js +4 -7
- package/dist/avatar.cjs.js +1 -1
- package/dist/avatar.esm.js +7 -13
- package/dist/badge.cjs.js +1 -1
- package/dist/badge.esm.js +4 -7
- package/dist/block-controls.cjs.js +2 -2
- package/dist/block-controls.esm.js +19 -35
- package/dist/box.cjs.js +1 -1
- package/dist/box.esm.js +8 -15
- package/dist/breadcrumb.cjs.js +2 -2
- package/dist/breadcrumb.esm.js +20 -37
- package/dist/button.cjs.js +1 -521
- package/dist/button.esm.js +2 -671
- package/dist/{calendar-2c11b824.mjs → calendar-DLY4acgn.mjs} +293 -342
- package/dist/{calendar-a8735e40.js → calendar-Dkof-FTK.js} +25 -25
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.esm.js +8 -9
- package/dist/card.cjs.js +4 -4
- package/dist/card.esm.js +13 -19
- package/dist/chart.cjs.js +64 -64
- package/dist/chart.esm.js +223 -254
- package/dist/checkbox.cjs.js +1 -1
- package/dist/checkbox.esm.js +2 -3
- package/dist/collapsible.cjs.js +1 -1
- package/dist/collapsible.esm.js +5 -9
- package/dist/{collection-a1aac0c6.mjs → collection-C7URGjEI.mjs} +8 -14
- package/dist/collection.cjs.js +1 -1
- package/dist/collection.esm.js +30 -29
- package/dist/color-picker.cjs.js +10 -10
- package/dist/color-picker.esm.js +190 -253
- package/dist/combobox.cjs.js +13 -13
- package/dist/combobox.esm.js +93 -126
- package/dist/command-palette.cjs.js +3 -3
- package/dist/command-palette.esm.js +19 -30
- package/dist/command.cjs.js +4 -4
- package/dist/command.esm.js +41 -53
- package/dist/components/ui-collection.d.ts.map +1 -1
- package/dist/components/ui-multi-select.d.ts.map +1 -1
- package/dist/components/ui-orbiter.d.ts.map +1 -1
- package/dist/components/ui-portal.d.ts.map +1 -1
- package/dist/components/ui-positioner.d.ts.map +1 -1
- package/dist/components/ui-skeleton.d.ts.map +1 -1
- package/dist/components/ui-sortable.d.ts +8 -0
- package/dist/components/ui-sortable.d.ts.map +1 -1
- package/dist/components/ui-split-button.d.ts +1 -0
- package/dist/components/ui-split-button.d.ts.map +1 -1
- package/dist/components/ui-tabs.d.ts.map +1 -1
- package/dist/components/ui-textarea.d.ts.map +1 -1
- package/dist/components/ui-time-picker.d.ts.map +1 -1
- package/dist/container.cjs.js +2 -2
- package/dist/container.esm.js +2 -3
- package/dist/context-menu.cjs.js +8 -8
- package/dist/context-menu.esm.js +157 -219
- package/dist/control-group.cjs.js +1 -1
- package/dist/control-group.esm.js +2 -3
- package/dist/data-table.cjs.js +4 -4
- package/dist/data-table.esm.js +299 -381
- package/dist/date-field.cjs.js +3 -3
- package/dist/date-field.esm.js +68 -80
- package/dist/date-picker.cjs.js +9 -9
- package/dist/date-picker.esm.js +69 -97
- package/dist/date-range-picker.cjs.js +3 -3
- package/dist/date-range-picker.esm.js +32 -56
- package/dist/date-range-time-picker.cjs.js +9 -9
- package/dist/date-range-time-picker.esm.js +111 -140
- package/dist/date-time-picker.cjs.js +7 -7
- package/dist/date-time-picker.esm.js +115 -147
- package/dist/date-time-utils-Dmost5Ee.js +1 -0
- package/dist/date-time-utils-y1N2gvG2.mjs +268 -0
- package/dist/description.cjs.js +1 -1
- package/dist/description.esm.js +3 -5
- package/dist/dialog.cjs.js +12 -12
- package/dist/dialog.esm.js +44 -63
- package/dist/direction-provider.cjs.js +1 -1
- package/dist/direction-provider.esm.js +2 -3
- package/dist/{dismissable-layer-9c7e6b58.mjs → dismissable-layer-BmPIoK80.mjs} +29 -33
- package/dist/dismissable-layer-DNfrKA20.js +1 -0
- package/dist/dismissable-layer.cjs.js +2 -2
- package/dist/dismissable-layer.esm.js +4 -6
- package/dist/dock.cjs.js +5 -5
- package/dist/dock.esm.js +134 -155
- package/dist/drawer.cjs.js +2 -2
- package/dist/drawer.esm.js +18 -35
- package/dist/dropdown.cjs.js +2 -2
- package/dist/dropdown.esm.js +119 -149
- package/dist/dropzone.cjs.js +1 -1
- package/dist/dropzone.esm.js +0 -1
- package/dist/empty-state.cjs.js +1 -1
- package/dist/empty-state.esm.js +1 -1
- package/dist/field-error.cjs.js +1 -1
- package/dist/field-error.esm.js +3 -5
- package/dist/field.cjs.js +5 -5
- package/dist/field.esm.js +27 -34
- package/dist/fieldset.cjs.js +4 -4
- package/dist/fieldset.esm.js +19 -24
- package/dist/file-upload.cjs.js +4 -4
- package/dist/file-upload.esm.js +69 -93
- package/dist/flex.cjs.js +1 -1
- package/dist/flex.esm.js +5 -9
- package/dist/floating-toolbar.cjs.js +4 -4
- package/dist/floating-toolbar.esm.js +60 -85
- package/dist/focus-scope-Bwug2gDv.js +1 -0
- package/dist/{focus-scope-103833ee.mjs → focus-scope-CmEsG5UZ.mjs} +39 -48
- package/dist/focus-scope.cjs.js +2 -2
- package/dist/focus-scope.esm.js +15 -20
- package/dist/form.cjs.js +2 -2
- package/dist/form.esm.js +26 -53
- package/dist/gantt.cjs.js +43 -43
- package/dist/gantt.esm.js +295 -322
- package/dist/grid.cjs.js +1 -1
- package/dist/grid.esm.js +5 -9
- package/dist/hover-card.cjs.js +4 -4
- package/dist/hover-card.esm.js +22 -28
- package/dist/icon-cloud.cjs.js +7 -7
- package/dist/icon-cloud.esm.js +48 -62
- package/dist/icon.cjs.js +1 -1
- package/dist/icon.esm.js +2 -4
- package/dist/index.cjs.js +1 -1
- package/dist/index.esm.js +378 -390
- package/dist/inline-edit.cjs.js +11 -11
- package/dist/inline-edit.esm.js +32 -36
- package/dist/input.cjs.js +17 -17
- package/dist/input.esm.js +50 -63
- package/dist/label.cjs.js +2 -2
- package/dist/label.esm.js +8 -17
- package/dist/layout.cjs.js +2 -2
- package/dist/layout.esm.js +20 -26
- package/dist/listbox-B6QgECax.js +46 -0
- package/dist/listbox-DJamVeFj.mjs +200 -0
- package/dist/listbox.cjs.js +1 -1
- package/dist/listbox.esm.js +2 -4
- package/dist/marquee.cjs.js +5 -5
- package/dist/marquee.esm.js +33 -50
- package/dist/masonry-grid.cjs.js +1 -1
- package/dist/masonry-grid.esm.js +5 -9
- package/dist/menu.cjs.js +3 -3
- package/dist/menu.esm.js +106 -126
- package/dist/menubar.cjs.js +5 -5
- package/dist/menubar.esm.js +118 -164
- package/dist/meter.cjs.js +2 -2
- package/dist/meter.esm.js +4 -4
- package/dist/multi-select.cjs.js +5 -5
- package/dist/multi-select.esm.js +125 -137
- package/dist/navigation-menu.cjs.js +4 -4
- package/dist/navigation-menu.esm.js +44 -55
- package/dist/number-field.cjs.js +2 -2
- package/dist/number-field.esm.js +73 -98
- package/dist/number-ticker.cjs.js +3 -3
- package/dist/number-ticker.esm.js +22 -43
- package/dist/odometer.cjs.js +1 -1
- package/dist/odometer.esm.js +5 -9
- package/dist/orbiter.cjs.js +13 -13
- package/dist/orbiter.esm.js +79 -90
- package/dist/{overlayManager-5bbd4dc3.mjs → overlayManager-BJjU1VA8.mjs} +4 -5
- package/dist/{overlayManager-0eda4e08.js → overlayManager-CSy3fJmJ.js} +1 -1
- package/dist/pagination.cjs.js +2 -2
- package/dist/pagination.esm.js +14 -18
- package/dist/{panel-group-a376cc5e.mjs → panel-group-8sVNnGxg.mjs} +24 -46
- package/dist/panel-group-CaD0_KQf.js +36 -0
- package/dist/panel-group.cjs.js +1 -1
- package/dist/panel-group.esm.js +2 -5
- package/dist/panel.cjs.js +4 -4
- package/dist/panel.esm.js +8 -10
- package/dist/password-field.cjs.js +9 -9
- package/dist/password-field.esm.js +62 -82
- package/dist/pin-input.cjs.js +3 -3
- package/dist/pin-input.esm.js +33 -39
- package/dist/placement-grid.cjs.js +4 -4
- package/dist/placement-grid.esm.js +108 -131
- package/dist/plugin-panel.cjs.js +7 -7
- package/dist/plugin-panel.esm.js +13 -15
- package/dist/popover.cjs.js +2 -2
- package/dist/popover.esm.js +21 -31
- package/dist/portal-DgpQ3Jo1.js +1 -0
- package/dist/{portal-fe73e5cc.mjs → portal-bR42gHvG.mjs} +43 -48
- package/dist/portal.cjs.js +3 -3
- package/dist/portal.esm.js +20 -28
- package/dist/{positioner-e9770c66.mjs → positioner-D0VGxtYU.mjs} +189 -209
- package/dist/positioner-D_fqyx_j.js +1 -0
- package/dist/positioner.cjs.js +2 -2
- package/dist/positioner.esm.js +22 -28
- package/dist/presence.cjs.js +1 -1
- package/dist/presence.esm.js +7 -13
- package/dist/primitives/auto-scroll.d.ts +9 -0
- package/dist/primitives/auto-scroll.d.ts.map +1 -0
- package/dist/primitives/selector.d.ts +4 -0
- package/dist/primitives/selector.d.ts.map +1 -0
- package/dist/progress.cjs.js +1 -1
- package/dist/progress.esm.js +5 -9
- package/dist/quick-actions.cjs.js +6 -6
- package/dist/quick-actions.esm.js +52 -62
- package/dist/radio-group.cjs.js +13 -13
- package/dist/radio-group.esm.js +39 -51
- package/dist/radio.cjs.js +1 -1
- package/dist/radio.esm.js +5 -9
- package/dist/rating.cjs.js +1 -1
- package/dist/rating.esm.js +12 -23
- package/dist/{roving-focus-group-4350c9a7.mjs → roving-focus-group-Dbm1Jko_.mjs} +3 -6
- package/dist/roving-focus-group.cjs.js +1 -1
- package/dist/roving-focus-group.esm.js +3 -5
- package/dist/runtime-CTaOSmBj.js +1 -0
- package/dist/{runtime-161f68a2.mjs → runtime-D1gFh1fS.mjs} +338 -366
- package/dist/runtime.cjs.js +1 -1
- package/dist/runtime.esm.js +6 -6
- package/dist/scroll-area.cjs.js +3 -3
- package/dist/scroll-area.esm.js +38 -46
- package/dist/{scroll-lock-31da444f.mjs → scroll-lock-LfqXXqsu.mjs} +5 -9
- package/dist/section.cjs.js +1 -1
- package/dist/section.esm.js +1 -1
- package/dist/select.cjs.js +7 -7
- package/dist/select.esm.js +67 -97
- package/dist/selection-popup.cjs.js +1 -1
- package/dist/selection-popup.esm.js +8 -15
- package/dist/selector-BvAh35ve.js +1 -0
- package/dist/selector-WI8pD7YO.mjs +18 -0
- package/dist/separator.cjs.js +1 -1
- package/dist/separator.esm.js +1 -1
- package/dist/sidebar.cjs.js +18 -18
- package/dist/sidebar.esm.js +117 -139
- package/dist/skeleton.cjs.js +11 -11
- package/dist/skeleton.esm.js +27 -24
- package/dist/slider.cjs.js +1 -1
- package/dist/slider.esm.js +6 -11
- package/dist/slot.cjs.js +4 -4
- package/dist/slot.esm.js +16 -19
- package/dist/sortable.cjs.js +79 -65
- package/dist/sortable.esm.js +714 -734
- package/dist/spinning-text.cjs.js +12 -12
- package/dist/spinning-text.esm.js +80 -92
- package/dist/split-button.cjs.js +4 -4
- package/dist/split-button.esm.js +77 -62
- package/dist/splitter.cjs.js +1 -1
- package/dist/splitter.esm.js +1 -1
- package/dist/stepper.cjs.js +8 -8
- package/dist/stepper.esm.js +32 -52
- package/dist/switch.cjs.js +7 -7
- package/dist/switch.esm.js +23 -31
- package/dist/table.cjs.js +2 -2
- package/dist/table.esm.js +46 -56
- package/dist/tabs.cjs.js +8 -8
- package/dist/tabs.esm.js +89 -109
- package/dist/tags-input.cjs.js +4 -4
- package/dist/tags-input.esm.js +45 -62
- package/dist/textarea.cjs.js +10 -10
- package/dist/textarea.esm.js +49 -52
- package/dist/time-field.cjs.js +4 -4
- package/dist/time-field.esm.js +70 -84
- package/dist/time-picker.cjs.js +22 -22
- package/dist/time-picker.esm.js +88 -110
- package/dist/timeline.cjs.js +1 -1
- package/dist/timeline.esm.js +3 -5
- package/dist/toast.cjs.js +2 -2
- package/dist/toast.esm.js +33 -47
- package/dist/toggle-group.cjs.js +6 -6
- package/dist/toggle-group.esm.js +85 -105
- package/dist/toggle.cjs.js +1 -1
- package/dist/toggle.esm.js +3 -5
- package/dist/toolbar.cjs.js +1 -1
- package/dist/toolbar.esm.js +13 -24
- package/dist/tooltip.cjs.js +2 -2
- package/dist/tooltip.esm.js +31 -42
- package/dist/transfer-list.cjs.js +31 -31
- package/dist/transfer-list.esm.js +114 -127
- package/dist/{tree-dcd74a4a.mjs → tree-B3kE8ESs.mjs} +55 -62
- package/dist/tree-Dx_kv_ih.js +39 -0
- package/dist/tree-item.cjs.js +2 -2
- package/dist/tree-item.esm.js +2 -3
- package/dist/tree.cjs.js +1 -1
- package/dist/tree.esm.js +2 -5
- package/dist/ui-button-Q0GNNWKC.mjs +665 -0
- package/dist/ui-button-rXQOS9QJ.js +521 -0
- package/dist/{icon-9e9da03b.js → ui-icon-BzVNC_lr.js} +4 -4
- package/dist/{icon-e2a85cc1.mjs → ui-icon-YI6lyuqU.mjs} +58 -65
- package/dist/visually-hidden.cjs.js +1 -1
- package/dist/visually-hidden.esm.js +1 -1
- package/dist/wizard.cjs.js +14 -14
- package/dist/wizard.esm.js +85 -105
- package/package.json +2 -2
- package/dist/date-time-utils-66480de4.js +0 -1
- package/dist/date-time-utils-a2c7af25.mjs +0 -307
- package/dist/dismissable-layer-193e3bed.js +0 -1
- package/dist/focus-scope-2b12b4e7.js +0 -1
- package/dist/listbox-308789a0.mjs +0 -210
- package/dist/listbox-ef2f708e.js +0 -46
- package/dist/panel-group-40254cdd.js +0 -36
- package/dist/portal-c69756c0.js +0 -1
- package/dist/positioner-33529bb8.js +0 -1
- package/dist/runtime-3f13807b.js +0 -1
- package/dist/tree-0a7a8d05.js +0 -39
- /package/dist/{collection-a2969ad2.js → collection-qv8A8rq4.js} +0 -0
- /package/dist/{menu-item-styles-27fdbac4.mjs → menu-item-styles-CZiPwPwl.mjs} +0 -0
- /package/dist/{menu-item-styles-83ad1e22.js → menu-item-styles-CbNUEwP2.js} +0 -0
- /package/dist/{roving-focus-group-5c059bf9.js → roving-focus-group-BdJ_4Njm.js} +0 -0
- /package/dist/{scroll-lock-d7b0df21.js → scroll-lock-BX6e3Ced.js} +0 -0
package/dist/chart.esm.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { E as Y } from "./ElementBase-
|
|
1
|
+
import { E as Y } from "./ElementBase-YlTLMsGk.mjs";
|
|
2
2
|
const V = 180, Z = `
|
|
3
3
|
:host {
|
|
4
4
|
--ui-chart-bg: color-mix(in srgb, var(--ui-color-surface, #ffffff) 94%, transparent);
|
|
@@ -622,7 +622,7 @@ const V = 180, Z = `
|
|
|
622
622
|
"var(--ui-color-info, #0891b2)",
|
|
623
623
|
"var(--ui-color-accent, #7c3aed)"
|
|
624
624
|
];
|
|
625
|
-
function
|
|
625
|
+
function c(p) {
|
|
626
626
|
return p.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
627
627
|
}
|
|
628
628
|
function M(p, t, e) {
|
|
@@ -631,31 +631,30 @@ function M(p, t, e) {
|
|
|
631
631
|
function J(p, t, e) {
|
|
632
632
|
if (p)
|
|
633
633
|
try {
|
|
634
|
-
const
|
|
635
|
-
if (Array.isArray(
|
|
636
|
-
return
|
|
637
|
-
if (typeof
|
|
638
|
-
return Number.isFinite(
|
|
639
|
-
if (
|
|
640
|
-
const
|
|
641
|
-
if (!Number.isFinite(
|
|
642
|
-
|
|
643
|
-
const c = n.label, d = n.tone;
|
|
634
|
+
const i = JSON.parse(p);
|
|
635
|
+
if (Array.isArray(i))
|
|
636
|
+
return i.map((o, s) => {
|
|
637
|
+
if (typeof o == "number")
|
|
638
|
+
return Number.isFinite(o) ? { label: String(s + 1), value: o } : null;
|
|
639
|
+
if (o && typeof o == "object") {
|
|
640
|
+
const n = Number(o.value);
|
|
641
|
+
if (!Number.isFinite(n)) return null;
|
|
642
|
+
const d = o.label, u = o.tone;
|
|
644
643
|
return {
|
|
645
|
-
label: typeof
|
|
646
|
-
value:
|
|
647
|
-
tone: typeof
|
|
644
|
+
label: typeof d == "string" && d.trim() ? d.trim() : String(s + 1),
|
|
645
|
+
value: n,
|
|
646
|
+
tone: typeof u == "string" && u.trim() ? u.trim() : void 0
|
|
648
647
|
};
|
|
649
648
|
}
|
|
650
649
|
return null;
|
|
651
|
-
}).filter((
|
|
650
|
+
}).filter((o) => !!o);
|
|
652
651
|
} catch {
|
|
653
652
|
return [];
|
|
654
653
|
}
|
|
655
|
-
const a = (t || "").split(",").map((
|
|
656
|
-
return a.map((
|
|
657
|
-
label:
|
|
658
|
-
value:
|
|
654
|
+
const a = (t || "").split(",").map((i) => Number(i.trim())).filter((i) => Number.isFinite(i)), r = (e || "").split(",").map((i) => i.trim()).filter(Boolean);
|
|
655
|
+
return a.map((i, o) => ({
|
|
656
|
+
label: r[o] || String(o + 1),
|
|
657
|
+
value: i
|
|
659
658
|
}));
|
|
660
659
|
}
|
|
661
660
|
function G(p) {
|
|
@@ -664,37 +663,33 @@ function G(p) {
|
|
|
664
663
|
return Number.isFinite(t) ? { label: String(e + 1), value: t } : null;
|
|
665
664
|
if (t && typeof t == "object") {
|
|
666
665
|
const a = Number(t.value);
|
|
667
|
-
if (!Number.isFinite(a))
|
|
668
|
-
|
|
669
|
-
const s = t.label, r = t.tone;
|
|
666
|
+
if (!Number.isFinite(a)) return null;
|
|
667
|
+
const r = t.label, i = t.tone;
|
|
670
668
|
return {
|
|
671
|
-
label: typeof
|
|
669
|
+
label: typeof r == "string" && r.trim() ? r.trim() : String(e + 1),
|
|
672
670
|
value: a,
|
|
673
|
-
tone: typeof
|
|
671
|
+
tone: typeof i == "string" && i.trim() ? i.trim() : void 0
|
|
674
672
|
};
|
|
675
673
|
}
|
|
676
674
|
return null;
|
|
677
675
|
}).filter((t) => !!t) : [];
|
|
678
676
|
}
|
|
679
677
|
function Q(p) {
|
|
680
|
-
if (!p)
|
|
681
|
-
return [];
|
|
678
|
+
if (!p) return [];
|
|
682
679
|
try {
|
|
683
680
|
const t = JSON.parse(p);
|
|
684
|
-
return Array.isArray(t) ? t.map((a,
|
|
685
|
-
if (!a || typeof a != "object")
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
return null;
|
|
690
|
-
const o = a.tone, i = a.dash, c = Number(a.strokeWidth), d = Number(a.opacity), T = a.fill;
|
|
681
|
+
return Array.isArray(t) ? t.map((a, r) => {
|
|
682
|
+
if (!a || typeof a != "object") return null;
|
|
683
|
+
const i = a.name, o = G(a.data);
|
|
684
|
+
if (!o.length) return null;
|
|
685
|
+
const s = a.tone, n = a.dash, d = Number(a.strokeWidth), u = Number(a.opacity), T = a.fill;
|
|
691
686
|
return {
|
|
692
|
-
name: typeof
|
|
693
|
-
data:
|
|
694
|
-
tone: typeof
|
|
695
|
-
dash: typeof
|
|
696
|
-
strokeWidth: Number.isFinite(
|
|
697
|
-
opacity: Number.isFinite(
|
|
687
|
+
name: typeof i == "string" && i.trim() ? i.trim() : `Series ${r + 1}`,
|
|
688
|
+
data: o,
|
|
689
|
+
tone: typeof s == "string" && s.trim() ? s.trim() : void 0,
|
|
690
|
+
dash: typeof n == "string" && n.trim() ? n.trim() : void 0,
|
|
691
|
+
strokeWidth: Number.isFinite(d) && d > 0 ? d : void 0,
|
|
692
|
+
opacity: Number.isFinite(u) && u > 0 ? u : void 0,
|
|
698
693
|
fill: typeof T == "boolean" ? T : void 0
|
|
699
694
|
};
|
|
700
695
|
}).filter((a) => !!a) : [];
|
|
@@ -703,51 +698,47 @@ function Q(p) {
|
|
|
703
698
|
}
|
|
704
699
|
}
|
|
705
700
|
function tt(p) {
|
|
706
|
-
const t = p.map((a,
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
};
|
|
713
|
-
}).filter((a) => Number.isFinite(a.value));
|
|
714
|
-
if (t.length <= V)
|
|
715
|
-
return { points: t, truncated: 0 };
|
|
701
|
+
const t = p.map((a, r) => ({
|
|
702
|
+
label: a.label?.trim() || String(r + 1),
|
|
703
|
+
value: Number(a.value),
|
|
704
|
+
tone: typeof a.tone == "string" && a.tone.trim() ? a.tone.trim() : void 0
|
|
705
|
+
})).filter((a) => Number.isFinite(a.value));
|
|
706
|
+
if (t.length <= V) return { points: t, truncated: 0 };
|
|
716
707
|
const e = t.length - V;
|
|
717
708
|
return { points: t.slice(t.length - V), truncated: e };
|
|
718
709
|
}
|
|
719
710
|
function et(p, t) {
|
|
720
|
-
const a = (p.length ? p : t.length ? [{ name: "Series 1", data: t }] : []).map((
|
|
721
|
-
const
|
|
711
|
+
const a = (p.length ? p : t.length ? [{ name: "Series 1", data: t }] : []).map((n) => {
|
|
712
|
+
const d = tt(n.data);
|
|
722
713
|
return {
|
|
723
|
-
name:
|
|
724
|
-
data:
|
|
725
|
-
tone:
|
|
726
|
-
fill:
|
|
727
|
-
dash:
|
|
728
|
-
strokeWidth:
|
|
729
|
-
opacity:
|
|
730
|
-
truncated:
|
|
714
|
+
name: n.name,
|
|
715
|
+
data: d.points,
|
|
716
|
+
tone: n.tone,
|
|
717
|
+
fill: n.fill,
|
|
718
|
+
dash: n.dash,
|
|
719
|
+
strokeWidth: n.strokeWidth,
|
|
720
|
+
opacity: n.opacity,
|
|
721
|
+
truncated: d.truncated
|
|
731
722
|
};
|
|
732
|
-
}).filter((
|
|
733
|
-
a.forEach((
|
|
734
|
-
|
|
723
|
+
}).filter((n) => n.data.length > 0), r = /* @__PURE__ */ new Set();
|
|
724
|
+
a.forEach((n) => {
|
|
725
|
+
n.data.forEach((d) => r.add(d.label));
|
|
735
726
|
});
|
|
736
|
-
let
|
|
737
|
-
|
|
738
|
-
const
|
|
739
|
-
const
|
|
727
|
+
let i = Array.from(r), o = a.reduce((n, d) => Math.max(n, d.truncated), 0);
|
|
728
|
+
i.length > V && (o += i.length - V, i = i.slice(i.length - V));
|
|
729
|
+
const s = a.map((n) => {
|
|
730
|
+
const d = new Set(i);
|
|
740
731
|
return {
|
|
741
|
-
name:
|
|
742
|
-
data:
|
|
743
|
-
tone:
|
|
744
|
-
fill:
|
|
745
|
-
dash:
|
|
746
|
-
strokeWidth:
|
|
747
|
-
opacity:
|
|
732
|
+
name: n.name,
|
|
733
|
+
data: n.data.filter((u) => d.has(u.label)),
|
|
734
|
+
tone: n.tone,
|
|
735
|
+
fill: n.fill,
|
|
736
|
+
dash: n.dash,
|
|
737
|
+
strokeWidth: n.strokeWidth,
|
|
738
|
+
opacity: n.opacity
|
|
748
739
|
};
|
|
749
740
|
});
|
|
750
|
-
return { labels:
|
|
741
|
+
return { labels: i, series: s, truncated: o };
|
|
751
742
|
}
|
|
752
743
|
function K(p) {
|
|
753
744
|
return p === "loading" ? "Updating" : p === "error" ? "Issue" : p === "success" ? "Stable" : "Live";
|
|
@@ -825,34 +816,34 @@ class it extends Y {
|
|
|
825
816
|
return this.getAttribute("value-suffix") || "";
|
|
826
817
|
}
|
|
827
818
|
_resolveStats(t) {
|
|
828
|
-
const e = t.map((
|
|
829
|
-
return { total: a, average:
|
|
819
|
+
const e = t.map((u) => u.value), a = e.reduce((u, T) => u + T, 0), r = e.length ? a / e.length : 0, i = e.length ? Math.min(...e) : 0, o = e.length ? Math.max(...e) : 0, s = e.length > 1 ? e[e.length - 1] - e[0] : 0, n = e[0] || 0, d = n !== 0 ? s / Math.abs(n) * 100 : null;
|
|
820
|
+
return { total: a, average: r, min: i, max: o, delta: s, deltaPct: d };
|
|
830
821
|
}
|
|
831
822
|
_valueDomain(t, e) {
|
|
832
|
-
const a = !!
|
|
833
|
-
let
|
|
834
|
-
a && (
|
|
835
|
-
let
|
|
836
|
-
if (
|
|
837
|
-
const
|
|
838
|
-
|
|
823
|
+
const a = !!e?.includeZero, r = e?.fitPadding ?? 0.14, i = t.map((u) => u.value);
|
|
824
|
+
let o = Math.min(...i), s = Math.max(...i);
|
|
825
|
+
a && (o = Math.min(0, o), s = Math.max(0, s));
|
|
826
|
+
let n = s - o;
|
|
827
|
+
if (n <= 0) {
|
|
828
|
+
const u = Math.max(Math.abs(s) * 0.12, 1);
|
|
829
|
+
o -= u, s += u, n = s - o;
|
|
839
830
|
} else {
|
|
840
|
-
const
|
|
841
|
-
a ? (
|
|
831
|
+
const u = n * r;
|
|
832
|
+
a ? (o -= u * 0.25, s += u) : (o -= u, s += u), n = s - o;
|
|
842
833
|
}
|
|
843
|
-
const
|
|
844
|
-
return { min:
|
|
834
|
+
const d = o <= 0 && s >= 0;
|
|
835
|
+
return { min: o, max: s, span: n, zeroInDomain: d };
|
|
845
836
|
}
|
|
846
837
|
_formatValue(t, e) {
|
|
847
|
-
const a = this._valuePrefix(),
|
|
838
|
+
const a = this._valuePrefix(), r = this._valueSuffix();
|
|
848
839
|
try {
|
|
849
|
-
const
|
|
840
|
+
const i = new Intl.NumberFormat(void 0, {
|
|
850
841
|
maximumFractionDigits: Math.abs(t) >= 100 ? 0 : 1,
|
|
851
842
|
...e
|
|
852
843
|
}).format(t);
|
|
853
|
-
return `${a}${
|
|
844
|
+
return `${a}${i}${r}`;
|
|
854
845
|
} catch {
|
|
855
|
-
return `${a}${t.toFixed(Math.abs(t) >= 100 ? 0 : 1)}${
|
|
846
|
+
return `${a}${t.toFixed(Math.abs(t) >= 100 ? 0 : 1)}${r}`;
|
|
856
847
|
}
|
|
857
848
|
}
|
|
858
849
|
_seriesTone(t, e) {
|
|
@@ -862,52 +853,49 @@ class it extends Y {
|
|
|
862
853
|
return t.tone || a || q[e % q.length] || "var(--ui-chart-accent)";
|
|
863
854
|
}
|
|
864
855
|
_seriesValueDetails(t, e, a) {
|
|
865
|
-
const
|
|
866
|
-
return e.map((
|
|
867
|
-
const
|
|
856
|
+
const r = t[a];
|
|
857
|
+
return e.map((i, o) => {
|
|
858
|
+
const s = i.data.find((n) => n.label === r) || null;
|
|
868
859
|
return {
|
|
869
|
-
series:
|
|
870
|
-
value:
|
|
871
|
-
tone:
|
|
860
|
+
series: i.name,
|
|
861
|
+
value: s?.value ?? null,
|
|
862
|
+
tone: s?.tone || this._seriesTone(i, o)
|
|
872
863
|
};
|
|
873
864
|
});
|
|
874
865
|
}
|
|
875
|
-
_pointDetail(t, e, a,
|
|
876
|
-
const
|
|
877
|
-
if (!
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
const
|
|
883
|
-
if (!o)
|
|
884
|
-
return null;
|
|
885
|
-
const i = this._resolveStats(r.data), c = this._seriesValueDetails(e.labels, e.series, t);
|
|
866
|
+
_pointDetail(t, e, a, r) {
|
|
867
|
+
const i = this._primarySeries(e);
|
|
868
|
+
if (!i) return null;
|
|
869
|
+
const o = e.labels[t];
|
|
870
|
+
if (!o) return null;
|
|
871
|
+
const s = i.data.find((u) => u.label === o) || i.data[t];
|
|
872
|
+
if (!s) return null;
|
|
873
|
+
const n = this._resolveStats(i.data), d = this._seriesValueDetails(e.labels, e.series, t);
|
|
886
874
|
return {
|
|
887
875
|
index: t,
|
|
888
|
-
label:
|
|
889
|
-
value:
|
|
890
|
-
tone:
|
|
891
|
-
series:
|
|
892
|
-
seriesValues:
|
|
876
|
+
label: o,
|
|
877
|
+
value: s.value,
|
|
878
|
+
tone: s.tone || this._seriesTone(i, 0),
|
|
879
|
+
series: i.name,
|
|
880
|
+
seriesValues: d,
|
|
893
881
|
type: a,
|
|
894
|
-
total:
|
|
895
|
-
min:
|
|
896
|
-
max:
|
|
897
|
-
source:
|
|
882
|
+
total: n.total,
|
|
883
|
+
min: n.min,
|
|
884
|
+
max: n.max,
|
|
885
|
+
source: r
|
|
898
886
|
};
|
|
899
887
|
}
|
|
900
888
|
_emitPointSelect(t, e, a) {
|
|
901
|
-
const
|
|
902
|
-
|
|
889
|
+
const r = this._pointDetail(t, e, this._type(), a);
|
|
890
|
+
r && (this.dispatchEvent(
|
|
903
891
|
new CustomEvent("point-select", {
|
|
904
|
-
detail:
|
|
892
|
+
detail: r,
|
|
905
893
|
bubbles: !0,
|
|
906
894
|
composed: !0
|
|
907
895
|
})
|
|
908
896
|
), this.dispatchEvent(
|
|
909
897
|
new CustomEvent("ui-point-select", {
|
|
910
|
-
detail:
|
|
898
|
+
detail: r,
|
|
911
899
|
bubbles: !0,
|
|
912
900
|
composed: !0
|
|
913
901
|
})
|
|
@@ -915,8 +903,7 @@ class it extends Y {
|
|
|
915
903
|
}
|
|
916
904
|
_indexFromTarget(t) {
|
|
917
905
|
const e = t instanceof Element ? t.closest("[data-point-index]") : null;
|
|
918
|
-
if (!e)
|
|
919
|
-
return null;
|
|
906
|
+
if (!e) return null;
|
|
920
907
|
const a = Number(e.getAttribute("data-point-index"));
|
|
921
908
|
return !Number.isInteger(a) || a < 0 ? null : a;
|
|
922
909
|
}
|
|
@@ -935,8 +922,7 @@ class it extends Y {
|
|
|
935
922
|
}
|
|
936
923
|
}
|
|
937
924
|
_onPointerOver(t) {
|
|
938
|
-
if (!this._isInteractive() || this._activePinned)
|
|
939
|
-
return;
|
|
925
|
+
if (!this._isInteractive() || this._activePinned) return;
|
|
940
926
|
const e = this._indexFromTarget(t.target);
|
|
941
927
|
e == null || this._activeIndex === e || (this._activeIndex = e, this.requestRender());
|
|
942
928
|
}
|
|
@@ -944,40 +930,34 @@ class it extends Y {
|
|
|
944
930
|
!this._isInteractive() || this._activePinned || this._activeIndex == null || (this._activeIndex = null, this.requestRender());
|
|
945
931
|
}
|
|
946
932
|
_onFocusIn(t) {
|
|
947
|
-
if (!this._isInteractive())
|
|
948
|
-
return;
|
|
933
|
+
if (!this._isInteractive()) return;
|
|
949
934
|
const e = this._indexFromTarget(t.target);
|
|
950
935
|
e == null || this._activeIndex === e || (this._activeIndex = e, this.requestRender());
|
|
951
936
|
}
|
|
952
937
|
_onClick(t) {
|
|
953
|
-
if (!this._isInteractive())
|
|
954
|
-
return;
|
|
938
|
+
if (!this._isInteractive()) return;
|
|
955
939
|
const e = this._data();
|
|
956
|
-
if (!e.labels.length || !e.series.length)
|
|
957
|
-
return;
|
|
940
|
+
if (!e.labels.length || !e.series.length) return;
|
|
958
941
|
const a = this._indexFromTarget(t.target);
|
|
959
|
-
if (a == null || a >= e.labels.length)
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
this._activeIndex = a, this._activePinned = s, this.requestRender(), this._emitPointSelect(a, e, "pointer");
|
|
942
|
+
if (a == null || a >= e.labels.length) return;
|
|
943
|
+
const r = !(this._activePinned && this._activeIndex === a);
|
|
944
|
+
this._activeIndex = a, this._activePinned = r, this.requestRender(), this._emitPointSelect(a, e, "pointer");
|
|
963
945
|
}
|
|
964
946
|
_onKeyDown(t) {
|
|
965
|
-
if (!this._isInteractive())
|
|
966
|
-
return;
|
|
947
|
+
if (!this._isInteractive()) return;
|
|
967
948
|
const e = this._data();
|
|
968
|
-
if (!e.labels.length || !e.series.length)
|
|
969
|
-
|
|
970
|
-
const s = this._indexFromTarget(t.target) ?? this._activeIndex ?? 0;
|
|
949
|
+
if (!e.labels.length || !e.series.length) return;
|
|
950
|
+
const r = this._indexFromTarget(t.target) ?? this._activeIndex ?? 0;
|
|
971
951
|
if (t.key === "ArrowRight" || t.key === "ArrowDown") {
|
|
972
952
|
t.preventDefault();
|
|
973
|
-
const
|
|
974
|
-
this._setActiveIndex(
|
|
953
|
+
const o = M(r + 1, 0, e.labels.length - 1);
|
|
954
|
+
this._setActiveIndex(o, !0), this._focusIndex(o);
|
|
975
955
|
return;
|
|
976
956
|
}
|
|
977
957
|
if (t.key === "ArrowLeft" || t.key === "ArrowUp") {
|
|
978
958
|
t.preventDefault();
|
|
979
|
-
const
|
|
980
|
-
this._setActiveIndex(
|
|
959
|
+
const o = M(r - 1, 0, e.labels.length - 1);
|
|
960
|
+
this._setActiveIndex(o, !0), this._focusIndex(o);
|
|
981
961
|
return;
|
|
982
962
|
}
|
|
983
963
|
if (t.key === "Home") {
|
|
@@ -986,27 +966,24 @@ class it extends Y {
|
|
|
986
966
|
}
|
|
987
967
|
if (t.key === "End") {
|
|
988
968
|
t.preventDefault();
|
|
989
|
-
const
|
|
990
|
-
this._setActiveIndex(
|
|
969
|
+
const o = e.labels.length - 1;
|
|
970
|
+
this._setActiveIndex(o, !0), this._focusIndex(o);
|
|
991
971
|
return;
|
|
992
972
|
}
|
|
993
973
|
if (t.key === "Escape") {
|
|
994
|
-
if (!this._activePinned && this._activeIndex == null)
|
|
995
|
-
return;
|
|
974
|
+
if (!this._activePinned && this._activeIndex == null) return;
|
|
996
975
|
t.preventDefault(), this._setActiveIndex(null, !1);
|
|
997
976
|
return;
|
|
998
977
|
}
|
|
999
|
-
if (t.key !== "Enter" && t.key !== " ")
|
|
1000
|
-
return;
|
|
978
|
+
if (t.key !== "Enter" && t.key !== " ") return;
|
|
1001
979
|
t.preventDefault();
|
|
1002
|
-
const
|
|
1003
|
-
this._setActiveIndex(
|
|
980
|
+
const i = M(r, 0, e.labels.length - 1);
|
|
981
|
+
this._setActiveIndex(i, !0), this._emitPointSelect(i, e, "keyboard");
|
|
1004
982
|
}
|
|
1005
983
|
_axisXLabels(t) {
|
|
1006
|
-
if (t.length <= 8)
|
|
1007
|
-
return t.map(() => "visible");
|
|
984
|
+
if (t.length <= 8) return t.map(() => "visible");
|
|
1008
985
|
const e = Math.max(1, Math.ceil(t.length / 6));
|
|
1009
|
-
return t.map((a,
|
|
986
|
+
return t.map((a, r) => r === 0 || r === t.length - 1 || r % e === 0 ? "visible" : "hidden");
|
|
1010
987
|
}
|
|
1011
988
|
_buildCartesianTicks(t, e) {
|
|
1012
989
|
return [1, 0.75, 0.5, 0.25, 0].map((a) => this._formatValue(t + (e - t) * a));
|
|
@@ -1014,7 +991,7 @@ class it extends Y {
|
|
|
1014
991
|
_plotCartesian(t, e, a) {
|
|
1015
992
|
const $ = t.labels, P = t.series, w = e === "bar", b = P.flatMap((g) => g.data.map((x) => x.value)), y = this._valueDomain(b.map((g, x) => ({ label: String(x), value: g })), { includeZero: w }), F = y.min, l = y.max, v = y.span, f = $.length > 1 ? 208 / ($.length - 1) : 0, S = y.zeroInDomain ? 0 : F, h = 6 + (l - S) / v * 48, k = [0, 0.25, 0.5, 0.75, 1].map((g) => {
|
|
1016
993
|
const x = 6 + 48 * g, I = y.zeroInDomain && Math.abs(x - h) < 0.5;
|
|
1017
|
-
return `<line x1="8" y1="${x.toFixed(2)}" x2="${
|
|
994
|
+
return `<line x1="8" y1="${x.toFixed(2)}" x2="${216 .toFixed(2)}" y2="${x.toFixed(2)}" stroke="var(--ui-chart-grid)" stroke-width="${I ? "0.75" : "0.45"}" />`;
|
|
1018
995
|
}).join(""), L = P.map((g) => new Map(g.data.map((x) => [x.label, x]))), j = $.map((g, x) => {
|
|
1019
996
|
const I = 8 + f * x, D = L.map((z) => z.get(g)).filter((z) => !!z).map((z) => 6 + (l - z.value) / v * 48), C = D.length ? Math.min(...D) : 6 + 48 / 2;
|
|
1020
997
|
return {
|
|
@@ -1023,22 +1000,21 @@ class it extends Y {
|
|
|
1023
1000
|
};
|
|
1024
1001
|
}), E = $.map((g, x) => {
|
|
1025
1002
|
const I = j[x];
|
|
1026
|
-
return `<button type="button" class="plot-hit" data-role="plot-hit" data-point-index="${x}" data-active="${a === x ? "true" : "false"}" style="--x:${I.xPct.toFixed(3)};--y:${I.yPct.toFixed(3)};" aria-label="${
|
|
1003
|
+
return `<button type="button" class="plot-hit" data-role="plot-hit" data-point-index="${x}" data-active="${a === x ? "true" : "false"}" style="--x:${I.xPct.toFixed(3)};--y:${I.yPct.toFixed(3)};" aria-label="${c(g)}" ${this._isInteractive() ? "" : "disabled"}></button>`;
|
|
1027
1004
|
}).join("");
|
|
1028
1005
|
if (e === "bar") {
|
|
1029
1006
|
const g = 208 / Math.max(1, $.length), x = M(g * 0.82, 6, 22), I = x / Math.max(1, P.length), D = P.map((C, z) => {
|
|
1030
1007
|
const N = this._seriesTone(C, z);
|
|
1031
1008
|
return $.map((O, H) => {
|
|
1032
1009
|
const W = L[z].get(O);
|
|
1033
|
-
if (!W)
|
|
1034
|
-
return "";
|
|
1010
|
+
if (!W) return "";
|
|
1035
1011
|
const m = 8 + H * g + (g - x) / 2 + I * z, _ = 6 + (l - W.value) / v * 48, A = Math.min(_, h), R = Math.max(1, Math.abs(h - _)), B = a === H, X = a == null || B ? C.opacity ?? 1 : 0.72;
|
|
1036
|
-
return `<rect x="${m.toFixed(2)}" y="${A.toFixed(2)}" width="${Math.max(2, I - 1).toFixed(2)}" height="${R.toFixed(2)}" rx="1.4" fill="${N}" opacity="${X}" />`;
|
|
1012
|
+
return `<rect x="${m.toFixed(2)}" y="${A.toFixed(2)}" width="${Math.max(2, I - 1).toFixed(2)}" height="${R.toFixed(2)}" rx="1.4" fill="${c(N)}" opacity="${X}" />`;
|
|
1037
1013
|
}).join("");
|
|
1038
1014
|
}).join("");
|
|
1039
1015
|
return {
|
|
1040
1016
|
svg: `
|
|
1041
|
-
<svg class="plot" part="plot" viewBox="0 0 220 64" width="100%" height="100%" role="img" aria-label="${
|
|
1017
|
+
<svg class="plot" part="plot" viewBox="0 0 220 64" width="100%" height="100%" role="img" aria-label="${c(this._ariaLabel())}" preserveAspectRatio="none">
|
|
1042
1018
|
<g class="plot-grid">${k}</g>
|
|
1043
1019
|
${D}
|
|
1044
1020
|
</svg>
|
|
@@ -1062,21 +1038,19 @@ class it extends Y {
|
|
|
1062
1038
|
z.push({ x: m.x, y: m.y, point: m.point, index: m.index });
|
|
1063
1039
|
}), z.length && C.push(z);
|
|
1064
1040
|
const N = (m) => m.map((_, A) => A === 0 ? `M${_.x.toFixed(2)} ${_.y.toFixed(2)}` : e === "step" ? `H${_.x.toFixed(2)} V${_.y.toFixed(2)}` : `L${_.x.toFixed(2)} ${_.y.toFixed(2)}`).join(" "), O = e === "area" ? C.map((m) => {
|
|
1065
|
-
if (!(typeof g.fill == "boolean" ? g.fill : x === 0))
|
|
1066
|
-
return "";
|
|
1041
|
+
if (!(typeof g.fill == "boolean" ? g.fill : x === 0)) return "";
|
|
1067
1042
|
const A = N(m), R = m[0], B = m[m.length - 1];
|
|
1068
1043
|
return `<path d="${A} L ${B.x.toFixed(2)} ${h.toFixed(2)} L ${R.x.toFixed(2)} ${h.toFixed(2)} Z" fill="color-mix(in srgb, ${I} 18%, transparent)" opacity="${g.opacity ?? (x === 0 ? 1 : 0.65)}" />`;
|
|
1069
|
-
}).join("") : "", H = e === "scatter" ? "" : C.map((m) => `<path d="${N(m)}" fill="none" stroke="${I}" stroke-width="${(g.strokeWidth || (x === 0 ? 1.9 : 1.55)).toFixed(2)}" stroke-linecap="round" stroke-linejoin="round" ${g.dash ? `stroke-dasharray="${
|
|
1070
|
-
if (!m.point || m.y == null)
|
|
1071
|
-
return "";
|
|
1044
|
+
}).join("") : "", H = e === "scatter" ? "" : C.map((m) => `<path d="${N(m)}" fill="none" stroke="${c(I)}" stroke-width="${(g.strokeWidth || (x === 0 ? 1.9 : 1.55)).toFixed(2)}" stroke-linecap="round" stroke-linejoin="round" ${g.dash ? `stroke-dasharray="${c(g.dash)}"` : ""} opacity="${g.opacity ?? 1}" />`).join(""), W = D.map((m) => {
|
|
1045
|
+
if (!m.point || m.y == null) return "";
|
|
1072
1046
|
const _ = a === m.index, A = _ ? 2.35 : 1.6, R = a == null || _ ? g.opacity ?? 1 : 0.72;
|
|
1073
|
-
return `<circle cx="${m.x.toFixed(2)}" cy="${m.y.toFixed(2)}" r="${A.toFixed(2)}" fill="${this._pointTone(m.point, m.index, I)}" opacity="${R}" />`;
|
|
1047
|
+
return `<circle cx="${m.x.toFixed(2)}" cy="${m.y.toFixed(2)}" r="${A.toFixed(2)}" fill="${c(this._pointTone(m.point, m.index, I))}" opacity="${R}" />`;
|
|
1074
1048
|
}).join("");
|
|
1075
1049
|
return `${O}${H}${W}`;
|
|
1076
1050
|
}).join("");
|
|
1077
1051
|
return {
|
|
1078
1052
|
svg: `
|
|
1079
|
-
<svg class="plot" part="plot" viewBox="0 0 220 64" width="100%" height="100%" role="img" aria-label="${
|
|
1053
|
+
<svg class="plot" part="plot" viewBox="0 0 220 64" width="100%" height="100%" role="img" aria-label="${c(this._ariaLabel())}" preserveAspectRatio="none">
|
|
1080
1054
|
<g class="plot-grid">${k}</g>
|
|
1081
1055
|
${U}
|
|
1082
1056
|
</svg>
|
|
@@ -1087,19 +1061,19 @@ class it extends Y {
|
|
|
1087
1061
|
};
|
|
1088
1062
|
}
|
|
1089
1063
|
_plotRadial(t, e) {
|
|
1090
|
-
const
|
|
1091
|
-
const f = -Math.PI / 2 + Math.PI * 2 * v / t.length, h = 10 + (l.value -
|
|
1064
|
+
const n = t.map((l) => l.value), d = Math.min(...n), u = Math.max(...n), T = Math.max(1, u - d), $ = t.map((l, v) => {
|
|
1065
|
+
const f = -Math.PI / 2 + Math.PI * 2 * v / t.length, h = 10 + (l.value - d) / T * 18, k = 32 + Math.cos(f) * h, L = 32 + Math.sin(f) * h;
|
|
1092
1066
|
return { x: k, y: L, point: l, index: v, angle: f };
|
|
1093
|
-
}), P = $.map((l, v) => `${v === 0 ? "M" : "L"}${l.x.toFixed(2)} ${l.y.toFixed(2)}`).join(" ") + " Z", w = [0.25, 0.5, 0.75, 1].map((l) => `<circle cx="32" cy="32" r="${(10 + l *
|
|
1067
|
+
}), P = $.map((l, v) => `${v === 0 ? "M" : "L"}${l.x.toFixed(2)} ${l.y.toFixed(2)}`).join(" ") + " Z", w = [0.25, 0.5, 0.75, 1].map((l) => `<circle cx="32" cy="32" r="${(10 + l * 18).toFixed(2)}" fill="none" stroke="var(--ui-chart-grid)" stroke-width="0.45" />`).join(""), b = $.map((l) => `<line x1="32" y1="32" x2="${(32 + Math.cos(l.angle) * 28).toFixed(2)}" y2="${(32 + Math.sin(l.angle) * 28).toFixed(2)}" stroke="var(--ui-chart-grid)" stroke-width="0.45" />`).join(""), y = $.map((l) => {
|
|
1094
1068
|
const v = this._pointTone(l.point, l.index), f = e === l.index;
|
|
1095
|
-
return `<circle cx="${l.x.toFixed(2)}" cy="${l.y.toFixed(2)}" r="${f ? "2.35" : "1.85"}" fill="${v}" opacity="${e == null || f ? "1" : "0.74"}" />`;
|
|
1069
|
+
return `<circle cx="${l.x.toFixed(2)}" cy="${l.y.toFixed(2)}" r="${f ? "2.35" : "1.85"}" fill="${c(v)}" opacity="${e == null || f ? "1" : "0.74"}" />`;
|
|
1096
1070
|
}).join(""), F = $.map((l) => {
|
|
1097
1071
|
const v = M(l.x / 64 * 100, 0, 100).toFixed(3), f = M(l.y / 64 * 100, 0, 100).toFixed(3), S = e === l.index, h = `${l.point.label}: ${this._formatValue(l.point.value)}`;
|
|
1098
|
-
return `<button type="button" class="plot-hit" data-role="plot-hit" data-point-index="${l.index}" data-active="${S ? "true" : "false"}" style="--x:${v};--y:${f};" aria-label="${
|
|
1072
|
+
return `<button type="button" class="plot-hit" data-role="plot-hit" data-point-index="${l.index}" data-active="${S ? "true" : "false"}" style="--x:${v};--y:${f};" aria-label="${c(h)}" ${this._isInteractive() ? "" : "disabled"}></button>`;
|
|
1099
1073
|
}).join("");
|
|
1100
1074
|
return {
|
|
1101
1075
|
svg: `
|
|
1102
|
-
<svg class="plot" part="plot" viewBox="0 0 64 64" width="100%" height="100%" role="img" aria-label="${
|
|
1076
|
+
<svg class="plot" part="plot" viewBox="0 0 64 64" width="100%" height="100%" role="img" aria-label="${c(this._ariaLabel())}" preserveAspectRatio="xMidYMid meet">
|
|
1103
1077
|
${w}
|
|
1104
1078
|
${b}
|
|
1105
1079
|
<path d="${P}" fill="color-mix(in srgb, var(--ui-chart-accent) 16%, transparent)" stroke="var(--ui-chart-accent)" stroke-width="1.2" />
|
|
@@ -1115,49 +1089,49 @@ class it extends Y {
|
|
|
1115
1089
|
};
|
|
1116
1090
|
}
|
|
1117
1091
|
_plotDonut(t, e) {
|
|
1118
|
-
const a = t.reduce((w, b) => w + Math.max(0, b.value), 0),
|
|
1119
|
-
let
|
|
1092
|
+
const a = t.reduce((w, b) => w + Math.max(0, b.value), 0), r = Math.max(1, a), i = 18, o = 7, s = 32, n = 32, d = 2 * Math.PI * i;
|
|
1093
|
+
let u = 0;
|
|
1120
1094
|
const T = t.map((w, b) => {
|
|
1121
|
-
const l = Math.max(0, w.value) /
|
|
1095
|
+
const l = Math.max(0, w.value) / r * d, v = this._pointTone(w, b), f = e === b, S = e == null || f ? "1" : "0.7", h = `
|
|
1122
1096
|
<circle
|
|
1123
|
-
cx="${
|
|
1124
|
-
cy="${
|
|
1125
|
-
r="${
|
|
1097
|
+
cx="${s}"
|
|
1098
|
+
cy="${n}"
|
|
1099
|
+
r="${i}"
|
|
1126
1100
|
fill="none"
|
|
1127
|
-
stroke="${v}"
|
|
1128
|
-
stroke-width="${f ?
|
|
1129
|
-
stroke-dasharray="${l.toFixed(3)} ${(
|
|
1130
|
-
stroke-dashoffset="${(-
|
|
1131
|
-
transform="rotate(-90 ${
|
|
1101
|
+
stroke="${c(v)}"
|
|
1102
|
+
stroke-width="${f ? o + 0.8 : o}"
|
|
1103
|
+
stroke-dasharray="${l.toFixed(3)} ${(d - l).toFixed(3)}"
|
|
1104
|
+
stroke-dashoffset="${(-u).toFixed(3)}"
|
|
1105
|
+
transform="rotate(-90 ${s} ${n})"
|
|
1132
1106
|
stroke-linecap="round"
|
|
1133
1107
|
opacity="${S}"
|
|
1134
1108
|
/>
|
|
1135
1109
|
`;
|
|
1136
|
-
return
|
|
1110
|
+
return u += l, h;
|
|
1137
1111
|
}).join("");
|
|
1138
1112
|
let $ = 0;
|
|
1139
1113
|
const P = t.map((w, b) => {
|
|
1140
|
-
const y = Math.max(0, w.value), l = y /
|
|
1114
|
+
const y = Math.max(0, w.value), l = y / r * Math.PI * 2, v = -Math.PI / 2 + $ + l / 2, f = s + Math.cos(v) * (i + 6), S = n + Math.sin(v) * (i + 6);
|
|
1141
1115
|
$ += l;
|
|
1142
|
-
const h = M(f / 64 * 100, 0, 100).toFixed(3), k = M(S / 64 * 100, 0, 100).toFixed(3), L = e === b, j =
|
|
1143
|
-
return `<button type="button" class="plot-hit" data-role="plot-hit" data-point-index="${b}" data-active="${L ? "true" : "false"}" style="--x:${h};--y:${k};" aria-label="${
|
|
1116
|
+
const h = M(f / 64 * 100, 0, 100).toFixed(3), k = M(S / 64 * 100, 0, 100).toFixed(3), L = e === b, j = r > 0 ? y / r * 100 : 0, E = `${w.label}: ${this._formatValue(w.value)} (${this._formatValue(j, { maximumFractionDigits: 1 })}%)`;
|
|
1117
|
+
return `<button type="button" class="plot-hit" data-role="plot-hit" data-point-index="${b}" data-active="${L ? "true" : "false"}" style="--x:${h};--y:${k};" aria-label="${c(E)}" ${this._isInteractive() ? "" : "disabled"}></button>`;
|
|
1144
1118
|
}).join("");
|
|
1145
1119
|
return {
|
|
1146
1120
|
svg: `
|
|
1147
|
-
<svg class="plot" part="plot" viewBox="0 0 64 64" width="100%" height="100%" role="img" aria-label="${
|
|
1148
|
-
<circle cx="${
|
|
1121
|
+
<svg class="plot" part="plot" viewBox="0 0 64 64" width="100%" height="100%" role="img" aria-label="${c(this._ariaLabel())}" preserveAspectRatio="xMidYMid meet">
|
|
1122
|
+
<circle cx="${s}" cy="${n}" r="${i}" fill="none" stroke="var(--ui-chart-grid)" stroke-width="${o}" />
|
|
1149
1123
|
${T}
|
|
1150
|
-
<text x="${
|
|
1151
|
-
<text x="${
|
|
1124
|
+
<text x="${s}" y="30" text-anchor="middle" font-size="4.5" fill="var(--ui-chart-muted)">Total</text>
|
|
1125
|
+
<text x="${s}" y="36" text-anchor="middle" font-size="6" font-weight="700" fill="var(--ui-chart-text)">${c(this._formatValue(a))}</text>
|
|
1152
1126
|
</svg>
|
|
1153
1127
|
`,
|
|
1154
1128
|
hits: P,
|
|
1155
1129
|
anchors: t.map((w, b) => {
|
|
1156
1130
|
let y = 0;
|
|
1157
1131
|
for (let F = 0; F <= b; F += 1) {
|
|
1158
|
-
const f = Math.max(0, t[F].value) /
|
|
1132
|
+
const f = Math.max(0, t[F].value) / r * Math.PI * 2;
|
|
1159
1133
|
if (F === b) {
|
|
1160
|
-
const S = -Math.PI / 2 + y + f / 2, h =
|
|
1134
|
+
const S = -Math.PI / 2 + y + f / 2, h = s + Math.cos(S) * (i + 6), k = n + Math.sin(S) * (i + 6);
|
|
1161
1135
|
return {
|
|
1162
1136
|
xPct: M(h / 64 * 100, 0, 100),
|
|
1163
1137
|
yPct: M(k / 64 * 100, 0, 100)
|
|
@@ -1171,8 +1145,8 @@ class it extends Y {
|
|
|
1171
1145
|
};
|
|
1172
1146
|
}
|
|
1173
1147
|
_plot(t, e, a) {
|
|
1174
|
-
const
|
|
1175
|
-
return
|
|
1148
|
+
const r = this._primarySeries(t);
|
|
1149
|
+
return r ? e === "donut" ? this._plotDonut(r.data, a) : e === "radial" ? this._plotRadial(r.data, a) : this._plotCartesian(t, e, a) : { svg: "", hits: "", anchors: [], yTicks: [] };
|
|
1176
1150
|
}
|
|
1177
1151
|
_ariaLabel() {
|
|
1178
1152
|
const t = this.getAttribute("title") || "Chart";
|
|
@@ -1186,25 +1160,22 @@ class it extends Y {
|
|
|
1186
1160
|
}
|
|
1187
1161
|
_tooltipMarkup(t, e) {
|
|
1188
1162
|
const a = this._activeIndex;
|
|
1189
|
-
if (a == null || !e.anchors[a])
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
const
|
|
1195
|
-
if (!r.length)
|
|
1196
|
-
return "";
|
|
1197
|
-
const n = e.anchors[a];
|
|
1163
|
+
if (a == null || !e.anchors[a]) return "";
|
|
1164
|
+
const r = t.labels[a];
|
|
1165
|
+
if (!r) return "";
|
|
1166
|
+
const i = this._seriesValueDetails(t.labels, t.series, a).filter((s) => s.value != null);
|
|
1167
|
+
if (!i.length) return "";
|
|
1168
|
+
const o = e.anchors[a];
|
|
1198
1169
|
return `
|
|
1199
|
-
<div class="tooltip" part="tooltip" style="--x:${
|
|
1200
|
-
<div class="tooltip-title">${
|
|
1170
|
+
<div class="tooltip" part="tooltip" style="--x:${o.xPct.toFixed(3)};--y:${o.yPct.toFixed(3)};">
|
|
1171
|
+
<div class="tooltip-title">${c(r)}</div>
|
|
1201
1172
|
<div class="tooltip-list">
|
|
1202
|
-
${
|
|
1203
|
-
(
|
|
1173
|
+
${i.map(
|
|
1174
|
+
(s) => `
|
|
1204
1175
|
<div class="tooltip-row">
|
|
1205
|
-
<span class="tooltip-dot" style="--dot:${
|
|
1206
|
-
<span class="tooltip-series">${
|
|
1207
|
-
<span class="tooltip-value">${
|
|
1176
|
+
<span class="tooltip-dot" style="--dot:${c(s.tone || "var(--ui-chart-accent)")};"></span>
|
|
1177
|
+
<span class="tooltip-series">${c(s.series)}</span>
|
|
1178
|
+
<span class="tooltip-value">${c(this._formatValue(s.value || 0))}</span>
|
|
1208
1179
|
</div>
|
|
1209
1180
|
`
|
|
1210
1181
|
).join("")}
|
|
@@ -1213,46 +1184,44 @@ class it extends Y {
|
|
|
1213
1184
|
`;
|
|
1214
1185
|
}
|
|
1215
1186
|
_activeInsight(t) {
|
|
1216
|
-
var o;
|
|
1217
1187
|
const e = this._primarySeries(t);
|
|
1218
|
-
if (!e)
|
|
1219
|
-
return "";
|
|
1188
|
+
if (!e) return "";
|
|
1220
1189
|
const a = this._activeIndex;
|
|
1221
1190
|
if (a == null || !t.labels[a]) {
|
|
1222
|
-
const
|
|
1191
|
+
const s = this._resolveStats(e.data), n = s.delta > 0 ? "up" : s.delta < 0 ? "down" : "flat", d = `${s.delta >= 0 ? "+" : ""}${this._formatValue(s.delta)}${s.deltaPct == null ? "" : ` (${s.deltaPct >= 0 ? "+" : ""}${this._formatValue(s.deltaPct, { maximumFractionDigits: 1 })}%)`}`;
|
|
1223
1192
|
return `
|
|
1224
1193
|
<div class="insight" part="insight">
|
|
1225
|
-
<span>Range <strong>${this._formatValue(
|
|
1226
|
-
<strong data-tone="${
|
|
1194
|
+
<span>Range <strong>${this._formatValue(s.min)}</strong> to <strong>${this._formatValue(s.max)}</strong></span>
|
|
1195
|
+
<strong data-tone="${n}">${c(d)}</strong>
|
|
1227
1196
|
</div>
|
|
1228
1197
|
`;
|
|
1229
1198
|
}
|
|
1230
|
-
const
|
|
1199
|
+
const r = t.labels[a], i = this._seriesValueDetails(t.labels, t.series, a).filter((s) => s.value != null), o = i.reduce((s, n) => s + (n.value || 0), 0);
|
|
1231
1200
|
return `
|
|
1232
1201
|
<div class="insight" part="insight">
|
|
1233
|
-
<span>Selected <strong>${
|
|
1234
|
-
<strong>${
|
|
1202
|
+
<span>Selected <strong>${c(r)}</strong></span>
|
|
1203
|
+
<strong>${c(this._formatValue(t.series.length > 1 ? o : i[0]?.value || 0))}</strong>
|
|
1235
1204
|
</div>
|
|
1236
1205
|
`;
|
|
1237
1206
|
}
|
|
1238
1207
|
render() {
|
|
1239
|
-
const t = this._data(), e = this._primarySeries(t), a = this._type(),
|
|
1208
|
+
const t = this._data(), e = this._primarySeries(t), a = this._type(), r = this._state(), i = this._isDisabled(), o = this._isInteractive(), s = (this.getAttribute("title") || "").trim(), n = (this.getAttribute("subtitle") || "").trim(), d = this._showLegend(), u = this._showSummary(), T = this._hasToolbarSlot(), $ = this._hasSlot("title"), P = this._hasSlot("subtitle"), w = $ || P || !!s || !!n || r !== "idle";
|
|
1240
1209
|
if (!e || !t.labels.length) {
|
|
1241
|
-
const h =
|
|
1210
|
+
const h = r === "error" ? "Chart data failed to load" : "No series data available";
|
|
1242
1211
|
this.setContent(`
|
|
1243
1212
|
<style>${Z}</style>
|
|
1244
|
-
<section class="frame" part="frame" data-state="${
|
|
1213
|
+
<section class="frame" part="frame" data-state="${r}" data-disabled="${i ? "true" : "false"}" aria-disabled="${i ? "true" : "false"}">
|
|
1245
1214
|
<div class="toolbar" part="toolbar" ${T ? "" : "hidden"}>
|
|
1246
1215
|
<slot name="header"></slot>
|
|
1247
1216
|
</div>
|
|
1248
1217
|
<header class="header" part="header" ${w ? "" : "hidden"}>
|
|
1249
1218
|
<div class="meta">
|
|
1250
|
-
${$ ? '<slot class="title-slot" name="title"></slot>' :
|
|
1251
|
-
${P ? '<slot class="subtitle-slot" name="subtitle"></slot>' :
|
|
1219
|
+
${$ ? '<slot class="title-slot" name="title"></slot>' : s ? `<h3 class="title" part="title">${c(s)}</h3>` : ""}
|
|
1220
|
+
${P ? '<slot class="subtitle-slot" name="subtitle"></slot>' : n ? `<p class="subtitle" part="subtitle">${c(n)}</p>` : ""}
|
|
1252
1221
|
</div>
|
|
1253
|
-
<span class="status-pill" data-state="${
|
|
1222
|
+
<span class="status-pill" data-state="${r}">${K(r)}</span>
|
|
1254
1223
|
</header>
|
|
1255
|
-
<div class="empty" part="empty">${
|
|
1224
|
+
<div class="empty" part="empty">${c(h)}</div>
|
|
1256
1225
|
</section>
|
|
1257
1226
|
`);
|
|
1258
1227
|
return;
|
|
@@ -1260,9 +1229,9 @@ class it extends Y {
|
|
|
1260
1229
|
this._activeIndex != null && (this._activeIndex < 0 || this._activeIndex >= t.labels.length) && (this._activeIndex = null, this._activePinned = !1);
|
|
1261
1230
|
const b = this._resolveStats(e.data), y = this._plot(t, a, this._activeIndex), F = this._axisXLabels(t.labels), l = t.series.length > 1 ? t.series.map(
|
|
1262
1231
|
(h, k) => `
|
|
1263
|
-
<div class="legend-item" aria-label="${
|
|
1264
|
-
<span class="legend-dot" style="--dot:${this._seriesTone(h, k)};"></span>
|
|
1265
|
-
<span>${
|
|
1232
|
+
<div class="legend-item" aria-label="${c(h.name)}">
|
|
1233
|
+
<span class="legend-dot" style="--dot:${c(this._seriesTone(h, k))};"></span>
|
|
1234
|
+
<span>${c(h.name)}</span>
|
|
1266
1235
|
</div>
|
|
1267
1236
|
`
|
|
1268
1237
|
).join("") : e.data.map((h, k) => {
|
|
@@ -1274,24 +1243,24 @@ class it extends Y {
|
|
|
1274
1243
|
data-role="legend-item"
|
|
1275
1244
|
data-point-index="${k}"
|
|
1276
1245
|
data-active="${L ? "true" : "false"}"
|
|
1277
|
-
aria-label="${
|
|
1278
|
-
${
|
|
1246
|
+
aria-label="${c(E)}"
|
|
1247
|
+
${o ? "" : "disabled"}
|
|
1279
1248
|
>
|
|
1280
|
-
<span class="legend-dot" style="--dot:${j};"></span>
|
|
1281
|
-
<span>${
|
|
1249
|
+
<span class="legend-dot" style="--dot:${c(j)};"></span>
|
|
1250
|
+
<span>${c(h.label)}</span>
|
|
1282
1251
|
</button>
|
|
1283
1252
|
`;
|
|
1284
|
-
}).join(""), v = b.delta > 0 ? "up" : b.delta < 0 ? "down" : "flat", f = `${b.delta >= 0 ? "+" : ""}${this._formatValue(b.delta)}`, S =
|
|
1253
|
+
}).join(""), v = b.delta > 0 ? "up" : b.delta < 0 ? "down" : "flat", f = `${b.delta >= 0 ? "+" : ""}${this._formatValue(b.delta)}`, S = r === "error" ? '<div class="message" part="message" data-tone="error">Data source returned partial metrics. Review upstream mapping.</div>' : r === "success" ? '<div class="message" part="message" data-tone="success">Data pipeline healthy. All metrics are up to date.</div>' : "";
|
|
1285
1254
|
this.setContent(`
|
|
1286
1255
|
<style>${Z}</style>
|
|
1287
1256
|
<section
|
|
1288
1257
|
class="frame"
|
|
1289
1258
|
part="frame"
|
|
1290
|
-
data-state="${
|
|
1291
|
-
data-disabled="${
|
|
1292
|
-
aria-disabled="${
|
|
1259
|
+
data-state="${r}"
|
|
1260
|
+
data-disabled="${i ? "true" : "false"}"
|
|
1261
|
+
aria-disabled="${i ? "true" : "false"}"
|
|
1293
1262
|
>
|
|
1294
|
-
<div class="sr-only" aria-live="polite">${
|
|
1263
|
+
<div class="sr-only" aria-live="polite">${c(s)} ${c(K(r))}</div>
|
|
1295
1264
|
|
|
1296
1265
|
<div class="toolbar" part="toolbar" ${T ? "" : "hidden"}>
|
|
1297
1266
|
<slot name="header"></slot>
|
|
@@ -1299,29 +1268,29 @@ class it extends Y {
|
|
|
1299
1268
|
|
|
1300
1269
|
<header class="header" part="header" ${w ? "" : "hidden"}>
|
|
1301
1270
|
<div class="meta">
|
|
1302
|
-
${$ ? '<slot class="title-slot" name="title"></slot>' :
|
|
1303
|
-
${P ? '<slot class="subtitle-slot" name="subtitle"></slot>' :
|
|
1271
|
+
${$ ? '<slot class="title-slot" name="title"></slot>' : s ? `<h3 class="title" part="title">${c(s)}</h3>` : ""}
|
|
1272
|
+
${P ? '<slot class="subtitle-slot" name="subtitle"></slot>' : n ? `<p class="subtitle" part="subtitle">${c(n)}</p>` : ""}
|
|
1304
1273
|
</div>
|
|
1305
|
-
<span class="status-pill" data-state="${
|
|
1274
|
+
<span class="status-pill" data-state="${r}">${K(r)}</span>
|
|
1306
1275
|
</header>
|
|
1307
1276
|
|
|
1308
|
-
${
|
|
1277
|
+
${u ? `
|
|
1309
1278
|
<section class="summary" part="summary">
|
|
1310
1279
|
<div class="metric" part="metric">
|
|
1311
1280
|
<span class="metric-label">Total</span>
|
|
1312
|
-
<span class="metric-value">${
|
|
1281
|
+
<span class="metric-value">${c(this._formatValue(b.total))}</span>
|
|
1313
1282
|
</div>
|
|
1314
1283
|
<div class="metric" part="metric">
|
|
1315
1284
|
<span class="metric-label">Average</span>
|
|
1316
|
-
<span class="metric-value">${
|
|
1285
|
+
<span class="metric-value">${c(this._formatValue(b.average))}</span>
|
|
1317
1286
|
</div>
|
|
1318
1287
|
<div class="metric" part="metric">
|
|
1319
1288
|
<span class="metric-label">Peak</span>
|
|
1320
|
-
<span class="metric-value">${
|
|
1289
|
+
<span class="metric-value">${c(this._formatValue(b.max))}</span>
|
|
1321
1290
|
</div>
|
|
1322
1291
|
<div class="metric" part="metric">
|
|
1323
1292
|
<span class="metric-label">Delta</span>
|
|
1324
|
-
<span class="metric-value" data-tone="${v}">${
|
|
1293
|
+
<span class="metric-value" data-tone="${v}">${c(f)}</span>
|
|
1325
1294
|
</div>
|
|
1326
1295
|
</section>
|
|
1327
1296
|
` : ""}
|
|
@@ -1330,19 +1299,19 @@ class it extends Y {
|
|
|
1330
1299
|
<div class="plot-body">
|
|
1331
1300
|
${a === "donut" || a === "radial" ? "" : `
|
|
1332
1301
|
<div class="axis-y" part="axis-y">
|
|
1333
|
-
${y.yTicks.map((h) => `<span>${
|
|
1302
|
+
${y.yTicks.map((h) => `<span>${c(h)}</span>`).join("")}
|
|
1334
1303
|
</div>
|
|
1335
1304
|
`}
|
|
1336
1305
|
<div class="plot-stage">
|
|
1337
1306
|
${y.svg}
|
|
1338
1307
|
<div class="plot-hit-layer" part="plot-hits">${y.hits}</div>
|
|
1339
1308
|
${this._tooltipMarkup(t, y)}
|
|
1340
|
-
${
|
|
1309
|
+
${r === "loading" ? '<div class="loading-overlay" part="loading-overlay" aria-hidden="true"></div>' : ""}
|
|
1341
1310
|
</div>
|
|
1342
1311
|
${a === "donut" || a === "radial" ? "" : `
|
|
1343
1312
|
<div class="axis-x" part="axis-x">
|
|
1344
1313
|
${t.labels.map(
|
|
1345
|
-
(h, k) => `<span class="axis-x-label" data-hidden="${F[k] === "hidden" ? "true" : "false"}">${
|
|
1314
|
+
(h, k) => `<span class="axis-x-label" data-hidden="${F[k] === "hidden" ? "true" : "false"}">${c(h)}</span>`
|
|
1346
1315
|
).join("")}
|
|
1347
1316
|
</div>
|
|
1348
1317
|
`}
|
|
@@ -1351,7 +1320,7 @@ class it extends Y {
|
|
|
1351
1320
|
|
|
1352
1321
|
${this._activeInsight(t)}
|
|
1353
1322
|
|
|
1354
|
-
${
|
|
1323
|
+
${d ? `<section class="legend" part="legend">${l}</section>` : ""}
|
|
1355
1324
|
|
|
1356
1325
|
${t.truncated > 0 ? `<div class="message" part="message">Showing last ${t.truncated + t.labels.length} records (truncated to ${V}).</div>` : ""}
|
|
1357
1326
|
|