@skdx/angular-charts 0.34.0 → 0.34.1
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/README.md +9 -1
- package/fesm2022/skdx-angular-charts-area.mjs +25 -3
- package/fesm2022/skdx-angular-charts-area.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-bar.mjs +25 -3
- package/fesm2022/skdx-angular-charts-bar.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-boxplot.mjs +62 -6
- package/fesm2022/skdx-angular-charts-boxplot.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-bubble.mjs +119 -0
- package/fesm2022/skdx-angular-charts-bubble.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-bullet.mjs +110 -0
- package/fesm2022/skdx-angular-charts-bullet.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-bump.mjs +113 -0
- package/fesm2022/skdx-angular-charts-bump.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-candlestick.mjs +40 -5
- package/fesm2022/skdx-angular-charts-candlestick.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-chord.mjs +49 -10
- package/fesm2022/skdx-angular-charts-chord.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-circle-packing.mjs +107 -0
- package/fesm2022/skdx-angular-charts-circle-packing.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-combo.mjs +82 -0
- package/fesm2022/skdx-angular-charts-combo.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-dumbbell.mjs +116 -0
- package/fesm2022/skdx-angular-charts-dumbbell.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-funnel.mjs +39 -5
- package/fesm2022/skdx-angular-charts-funnel.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-gantt.mjs +47 -6
- package/fesm2022/skdx-angular-charts-gantt.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-gauge.mjs +134 -0
- package/fesm2022/skdx-angular-charts-gauge.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-heatmap.mjs +63 -5
- package/fesm2022/skdx-angular-charts-heatmap.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-histogram.mjs +134 -0
- package/fesm2022/skdx-angular-charts-histogram.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-icicle.mjs +119 -0
- package/fesm2022/skdx-angular-charts-icicle.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-internal.mjs +9286 -2473
- package/fesm2022/skdx-angular-charts-internal.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-line.mjs +25 -3
- package/fesm2022/skdx-angular-charts-line.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-linear-gauge.mjs +119 -0
- package/fesm2022/skdx-angular-charts-linear-gauge.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-map.mjs +51 -5
- package/fesm2022/skdx-angular-charts-map.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-marimekko.mjs +103 -0
- package/fesm2022/skdx-angular-charts-marimekko.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-network.mjs +113 -0
- package/fesm2022/skdx-angular-charts-network.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-organization.mjs +111 -0
- package/fesm2022/skdx-angular-charts-organization.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-parallel.mjs +105 -0
- package/fesm2022/skdx-angular-charts-parallel.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-pareto.mjs +123 -0
- package/fesm2022/skdx-angular-charts-pareto.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-pie.mjs +47 -5
- package/fesm2022/skdx-angular-charts-pie.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-polar-area.mjs +118 -0
- package/fesm2022/skdx-angular-charts-polar-area.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-radar.mjs +61 -10
- package/fesm2022/skdx-angular-charts-radar.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-radial.mjs +25 -3
- package/fesm2022/skdx-angular-charts-radial.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-range.mjs +133 -0
- package/fesm2022/skdx-angular-charts-range.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-sankey.mjs +67 -6
- package/fesm2022/skdx-angular-charts-sankey.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-scatter.mjs +42 -5
- package/fesm2022/skdx-angular-charts-scatter.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-sparkline.mjs +39 -5
- package/fesm2022/skdx-angular-charts-sparkline.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-sunburst.mjs +74 -6
- package/fesm2022/skdx-angular-charts-sunburst.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-swarm.mjs +101 -0
- package/fesm2022/skdx-angular-charts-swarm.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-timeline.mjs +98 -0
- package/fesm2022/skdx-angular-charts-timeline.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-tree.mjs +118 -0
- package/fesm2022/skdx-angular-charts-tree.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-treemap.mjs +63 -6
- package/fesm2022/skdx-angular-charts-treemap.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-waffle.mjs +113 -0
- package/fesm2022/skdx-angular-charts-waffle.mjs.map +1 -0
- package/fesm2022/skdx-angular-charts-waterfall.mjs +62 -6
- package/fesm2022/skdx-angular-charts-waterfall.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts.mjs +22 -1
- package/fesm2022/skdx-angular-charts.mjs.map +1 -1
- package/package.json +86 -2
- package/types/skdx-angular-charts-boxplot.d.ts +18 -3
- package/types/skdx-angular-charts-bubble.d.ts +27 -0
- package/types/skdx-angular-charts-bullet.d.ts +24 -0
- package/types/skdx-angular-charts-bump.d.ts +25 -0
- package/types/skdx-angular-charts-candlestick.d.ts +7 -2
- package/types/skdx-angular-charts-chord.d.ts +11 -4
- package/types/skdx-angular-charts-circle-packing.d.ts +23 -0
- package/types/skdx-angular-charts-combo.d.ts +12 -0
- package/types/skdx-angular-charts-dumbbell.d.ts +26 -0
- package/types/skdx-angular-charts-funnel.d.ts +7 -1
- package/types/skdx-angular-charts-gantt.d.ts +9 -2
- package/types/skdx-angular-charts-gauge.d.ts +36 -0
- package/types/skdx-angular-charts-heatmap.d.ts +20 -2
- package/types/skdx-angular-charts-histogram.d.ts +34 -0
- package/types/skdx-angular-charts-icicle.d.ts +29 -0
- package/types/skdx-angular-charts-internal.d.ts +1952 -89
- package/types/skdx-angular-charts-linear-gauge.d.ts +29 -0
- package/types/skdx-angular-charts-map.d.ts +14 -2
- package/types/skdx-angular-charts-marimekko.d.ts +21 -0
- package/types/skdx-angular-charts-network.d.ts +25 -0
- package/types/skdx-angular-charts-organization.d.ts +25 -0
- package/types/skdx-angular-charts-parallel.d.ts +25 -0
- package/types/skdx-angular-charts-pareto.d.ts +27 -0
- package/types/skdx-angular-charts-pie.d.ts +11 -1
- package/types/skdx-angular-charts-polar-area.d.ts +28 -0
- package/types/skdx-angular-charts-radar.d.ts +20 -5
- package/types/skdx-angular-charts-range.d.ts +29 -0
- package/types/skdx-angular-charts-sankey.d.ts +20 -2
- package/types/skdx-angular-charts-scatter.d.ts +9 -2
- package/types/skdx-angular-charts-sparkline.d.ts +8 -2
- package/types/skdx-angular-charts-sunburst.d.ts +23 -2
- package/types/skdx-angular-charts-swarm.d.ts +19 -0
- package/types/skdx-angular-charts-timeline.d.ts +18 -0
- package/types/skdx-angular-charts-tree.d.ts +28 -0
- package/types/skdx-angular-charts-treemap.d.ts +18 -2
- package/types/skdx-angular-charts-waffle.d.ts +25 -0
- package/types/skdx-angular-charts-waterfall.d.ts +17 -3
- package/types/skdx-angular-charts.d.ts +22 -1
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { SkdxSizedBase, layoutPolarAreaChart, SkdxChartRootComponent } from '@skdx/angular-charts/internal';
|
|
4
|
+
|
|
5
|
+
/*
|
|
6
|
+
* Copyright (c) 2026 SkandaDX
|
|
7
|
+
* This file is part of the SkandaDX organization.
|
|
8
|
+
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
9
|
+
*/
|
|
10
|
+
/** A Nightingale rose: equal angular sectors whose radius follows the value. */
|
|
11
|
+
class SkdxPolarAreaChartComponent extends SkdxSizedBase {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.data = input.required(/* @ts-ignore */
|
|
15
|
+
...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
|
|
16
|
+
/** Radius proportional to the value, or to its square root (area-proportional). */
|
|
17
|
+
this.scale = input(/* @ts-ignore */
|
|
18
|
+
...(ngDevMode ? [undefined, { debugName: "scale" }] : /* istanbul ignore next */ []));
|
|
19
|
+
/** Outer ring value. */
|
|
20
|
+
this.max = input(/* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [undefined, { debugName: "max" }] : /* istanbul ignore next */ []));
|
|
22
|
+
/** Degrees clockwise from 12 o'clock. */
|
|
23
|
+
this.startAngle = input(/* @ts-ignore */
|
|
24
|
+
...(ngDevMode ? [undefined, { debugName: "startAngle" }] : /* istanbul ignore next */ []));
|
|
25
|
+
this.endAngle = input(/* @ts-ignore */
|
|
26
|
+
...(ngDevMode ? [undefined, { debugName: "endAngle" }] : /* istanbul ignore next */ []));
|
|
27
|
+
/** Gap between sectors, in degrees. */
|
|
28
|
+
this.padAngle = input(/* @ts-ignore */
|
|
29
|
+
...(ngDevMode ? [undefined, { debugName: "padAngle" }] : /* istanbul ignore next */ []));
|
|
30
|
+
/** Hole radius as a fraction of the outer radius. */
|
|
31
|
+
this.innerRadius = input(/* @ts-ignore */
|
|
32
|
+
...(ngDevMode ? [undefined, { debugName: "innerRadius" }] : /* istanbul ignore next */ []));
|
|
33
|
+
/** Number of grid rings. */
|
|
34
|
+
this.levels = input(/* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [undefined, { debugName: "levels" }] : /* istanbul ignore next */ []));
|
|
36
|
+
/** Write each name at its sector's edge. */
|
|
37
|
+
this.labels = input(false, /* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [{ debugName: "labels" }] : /* istanbul ignore next */ []));
|
|
39
|
+
this.layout = computed(() => layoutPolarAreaChart({
|
|
40
|
+
...this.sized(),
|
|
41
|
+
data: this.data(),
|
|
42
|
+
scale: this.scale(),
|
|
43
|
+
max: this.max(),
|
|
44
|
+
startAngle: this.startAngle(),
|
|
45
|
+
endAngle: this.endAngle(),
|
|
46
|
+
padAngle: this.padAngle(),
|
|
47
|
+
innerRadius: this.innerRadius(),
|
|
48
|
+
levels: this.levels(),
|
|
49
|
+
labels: this.labels(),
|
|
50
|
+
}), /* @ts-ignore */
|
|
51
|
+
...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
52
|
+
}
|
|
53
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxPolarAreaChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxPolarAreaChartComponent, isStandalone: true, selector: "skdx-polar-area-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, startAngle: { classPropertyName: "startAngle", publicName: "startAngle", isSignal: true, isRequired: false, transformFunction: null }, endAngle: { classPropertyName: "endAngle", publicName: "endAngle", isSignal: true, isRequired: false, transformFunction: null }, padAngle: { classPropertyName: "padAngle", publicName: "padAngle", isSignal: true, isRequired: false, transformFunction: null }, innerRadius: { classPropertyName: "innerRadius", publicName: "innerRadius", isSignal: true, isRequired: false, transformFunction: null }, levels: { classPropertyName: "levels", publicName: "levels", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
55
|
+
<skdx-chart-root
|
|
56
|
+
[layout]="layout()"
|
|
57
|
+
[options]="options()"
|
|
58
|
+
kind="polar-area"
|
|
59
|
+
[label]="label() ?? 'Polar area chart'"
|
|
60
|
+
[zoomable]="zoomable()"
|
|
61
|
+
[selectionMode]="selectionMode()"
|
|
62
|
+
[editable]="editable()"
|
|
63
|
+
[syncId]="syncId()"
|
|
64
|
+
[crosshair]="syncedCrosshair()"
|
|
65
|
+
[responsive]="!!responsive()"
|
|
66
|
+
(itemClick)="itemClick.emit($event)"
|
|
67
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
68
|
+
(taskChange)="taskChange.emit($event)"
|
|
69
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
70
|
+
(zoomChange)="zoom.set($event)"
|
|
71
|
+
(viewChange)="view.set($event)"
|
|
72
|
+
(selectedChange)="selected.set($event)"
|
|
73
|
+
(highlightedChange)="highlighted.set($event)"
|
|
74
|
+
(syncChange)="sync($event)"
|
|
75
|
+
(measured)="measuredWidth.set($event)"
|
|
76
|
+
></skdx-chart-root>
|
|
77
|
+
`, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "options", "kind", "label", "zoomable", "selectionMode", "editable", "syncId", "crosshair", "responsive"], outputs: ["itemClick", "hiddenSeriesChange", "zoomChange", "viewChange", "selectedChange", "highlightedChange", "dataIssue", "taskChange", "syncChange", "measured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
78
|
+
}
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxPolarAreaChartComponent, decorators: [{
|
|
80
|
+
type: Component,
|
|
81
|
+
args: [{
|
|
82
|
+
selector: 'skdx-polar-area-chart',
|
|
83
|
+
standalone: true,
|
|
84
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
85
|
+
imports: [SkdxChartRootComponent],
|
|
86
|
+
template: `
|
|
87
|
+
<skdx-chart-root
|
|
88
|
+
[layout]="layout()"
|
|
89
|
+
[options]="options()"
|
|
90
|
+
kind="polar-area"
|
|
91
|
+
[label]="label() ?? 'Polar area chart'"
|
|
92
|
+
[zoomable]="zoomable()"
|
|
93
|
+
[selectionMode]="selectionMode()"
|
|
94
|
+
[editable]="editable()"
|
|
95
|
+
[syncId]="syncId()"
|
|
96
|
+
[crosshair]="syncedCrosshair()"
|
|
97
|
+
[responsive]="!!responsive()"
|
|
98
|
+
(itemClick)="itemClick.emit($event)"
|
|
99
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
100
|
+
(taskChange)="taskChange.emit($event)"
|
|
101
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
102
|
+
(zoomChange)="zoom.set($event)"
|
|
103
|
+
(viewChange)="view.set($event)"
|
|
104
|
+
(selectedChange)="selected.set($event)"
|
|
105
|
+
(highlightedChange)="highlighted.set($event)"
|
|
106
|
+
(syncChange)="sync($event)"
|
|
107
|
+
(measured)="measuredWidth.set($event)"
|
|
108
|
+
></skdx-chart-root>
|
|
109
|
+
`,
|
|
110
|
+
}]
|
|
111
|
+
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], scale: [{ type: i0.Input, args: [{ isSignal: true, alias: "scale", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], startAngle: [{ type: i0.Input, args: [{ isSignal: true, alias: "startAngle", required: false }] }], endAngle: [{ type: i0.Input, args: [{ isSignal: true, alias: "endAngle", required: false }] }], padAngle: [{ type: i0.Input, args: [{ isSignal: true, alias: "padAngle", required: false }] }], innerRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "innerRadius", required: false }] }], levels: [{ type: i0.Input, args: [{ isSignal: true, alias: "levels", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }] } });
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Generated bundle index. Do not edit.
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
export { SkdxPolarAreaChartComponent };
|
|
118
|
+
//# sourceMappingURL=skdx-angular-charts-polar-area.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skdx-angular-charts-polar-area.mjs","sources":["../../src/polar-area/index.ts","../../src/polar-area/skdx-angular-charts-polar-area.ts"],"sourcesContent":["/*\n * Copyright (c) 2026 SkandaDX\n * This file is part of the SkandaDX organization.\n * Licensed under the MIT License. See LICENSE in the repository root.\n */\n\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nimport {\n layoutPolarAreaChart,\n SkdxChartRootComponent,\n SkdxSizedBase,\n type Datum,\n} from '@skdx/angular-charts/internal';\n\n/** A Nightingale rose: equal angular sectors whose radius follows the value. */\n@Component({\n selector: 'skdx-polar-area-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"layout()\"\n [options]=\"options()\"\n kind=\"polar-area\"\n [label]=\"label() ?? 'Polar area chart'\"\n [zoomable]=\"zoomable()\"\n [selectionMode]=\"selectionMode()\"\n [editable]=\"editable()\"\n [syncId]=\"syncId()\"\n [crosshair]=\"syncedCrosshair()\"\n [responsive]=\"!!responsive()\"\n (itemClick)=\"itemClick.emit($event)\"\n (dataIssue)=\"dataIssue.emit($event)\"\n (taskChange)=\"taskChange.emit($event)\"\n (hiddenSeriesChange)=\"toggle($event)\"\n (zoomChange)=\"zoom.set($event)\"\n (viewChange)=\"view.set($event)\"\n (selectedChange)=\"selected.set($event)\"\n (highlightedChange)=\"highlighted.set($event)\"\n (syncChange)=\"sync($event)\"\n (measured)=\"measuredWidth.set($event)\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxPolarAreaChartComponent extends SkdxSizedBase {\n readonly data = input.required<Datum[]>();\n /** Radius proportional to the value, or to its square root (area-proportional). */\n readonly scale = input<'linear' | 'sqrt'>();\n /** Outer ring value. */\n readonly max = input<number>();\n /** Degrees clockwise from 12 o'clock. */\n readonly startAngle = input<number>();\n readonly endAngle = input<number>();\n /** Gap between sectors, in degrees. */\n readonly padAngle = input<number>();\n /** Hole radius as a fraction of the outer radius. */\n readonly innerRadius = input<number>();\n /** Number of grid rings. */\n readonly levels = input<number>();\n /** Write each name at its sector's edge. */\n readonly labels = input(false);\n\n protected readonly layout = computed(() =>\n layoutPolarAreaChart({\n ...this.sized(),\n data: this.data(),\n scale: this.scale(),\n max: this.max(),\n startAngle: this.startAngle(),\n endAngle: this.endAngle(),\n padAngle: this.padAngle(),\n innerRadius: this.innerRadius(),\n levels: this.levels(),\n labels: this.labels(),\n }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -13,41 +13,81 @@ class SkdxRadarChartComponent extends SkdxSizedBase {
|
|
|
13
13
|
super(...arguments);
|
|
14
14
|
this.series = input.required(/* @ts-ignore */
|
|
15
15
|
...(ngDevMode ? [{ debugName: "series" }] : /* istanbul ignore next */ []));
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
/** One axis per category. */
|
|
17
|
+
this.categories = input(/* @ts-ignore */
|
|
18
|
+
...(ngDevMode ? [undefined, { debugName: "categories" }] : /* istanbul ignore next */ []));
|
|
19
|
+
/** Axes with their own min/max scales. */
|
|
20
|
+
this.metrics = input(/* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [undefined, { debugName: "metrics" }] : /* istanbul ignore next */ []));
|
|
22
|
+
/** `metric` scales each axis by its own bounds; `series` (or `true`) scales each series to its own maximum; `none` shares one scale. */
|
|
23
|
+
this.normalize = input(/* @ts-ignore */
|
|
24
|
+
...(ngDevMode ? [undefined, { debugName: "normalize" }] : /* istanbul ignore next */ []));
|
|
21
25
|
/** Outer ring value. */
|
|
22
26
|
this.max = input(/* @ts-ignore */
|
|
23
27
|
...(ngDevMode ? [undefined, { debugName: "max" }] : /* istanbul ignore next */ []));
|
|
24
28
|
/** Fill the polygons. */
|
|
25
29
|
this.fill = input(true, /* @ts-ignore */
|
|
26
30
|
...(ngDevMode ? [{ debugName: "fill" }] : /* istanbul ignore next */ []));
|
|
31
|
+
/** Number of grid rings. */
|
|
32
|
+
this.levels = input(/* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [undefined, { debugName: "levels" }] : /* istanbul ignore next */ []));
|
|
34
|
+
/** Dots on the vertices. */
|
|
35
|
+
this.markers = input(true, /* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [{ debugName: "markers" }] : /* istanbul ignore next */ []));
|
|
37
|
+
/** Marker radius in pixels. */
|
|
38
|
+
this.markerSize = input(/* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [undefined, { debugName: "markerSize" }] : /* istanbul ignore next */ []));
|
|
40
|
+
/** Write each value at its vertex. */
|
|
41
|
+
this.labels = input(false, /* @ts-ignore */
|
|
42
|
+
...(ngDevMode ? [{ debugName: "labels" }] : /* istanbul ignore next */ []));
|
|
43
|
+
/** Degrees clockwise from 12 o'clock of the first axis. */
|
|
44
|
+
this.startAngle = input(/* @ts-ignore */
|
|
45
|
+
...(ngDevMode ? [undefined, { debugName: "startAngle" }] : /* istanbul ignore next */ []));
|
|
46
|
+
/** Grid rings as polygons or circles. */
|
|
47
|
+
this.gridShape = input(/* @ts-ignore */
|
|
48
|
+
...(ngDevMode ? [undefined, { debugName: "gridShape" }] : /* istanbul ignore next */ []));
|
|
27
49
|
this.layout = computed(() => layoutRadarChart({
|
|
28
50
|
...this.sized(),
|
|
29
51
|
series: this.series(),
|
|
30
52
|
categories: this.categories(),
|
|
53
|
+
metrics: this.metrics(),
|
|
31
54
|
normalize: this.normalize(),
|
|
32
55
|
max: this.max(),
|
|
33
56
|
fill: this.fill(),
|
|
57
|
+
levels: this.levels(),
|
|
58
|
+
markers: this.markers(),
|
|
59
|
+
markerSize: this.markerSize(),
|
|
60
|
+
labels: this.labels(),
|
|
61
|
+
startAngle: this.startAngle(),
|
|
62
|
+
gridShape: this.gridShape(),
|
|
34
63
|
}), /* @ts-ignore */
|
|
35
64
|
...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
36
65
|
}
|
|
37
66
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxRadarChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxRadarChartComponent, isStandalone: true, selector: "skdx-radar-chart", inputs: { series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null }, categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: true, transformFunction: null }, normalize: { classPropertyName: "normalize", publicName: "normalize", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
67
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxRadarChartComponent, isStandalone: true, selector: "skdx-radar-chart", inputs: { series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null }, categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, metrics: { classPropertyName: "metrics", publicName: "metrics", isSignal: true, isRequired: false, transformFunction: null }, normalize: { classPropertyName: "normalize", publicName: "normalize", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, fill: { classPropertyName: "fill", publicName: "fill", isSignal: true, isRequired: false, transformFunction: null }, levels: { classPropertyName: "levels", publicName: "levels", isSignal: true, isRequired: false, transformFunction: null }, markers: { classPropertyName: "markers", publicName: "markers", isSignal: true, isRequired: false, transformFunction: null }, markerSize: { classPropertyName: "markerSize", publicName: "markerSize", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, startAngle: { classPropertyName: "startAngle", publicName: "startAngle", isSignal: true, isRequired: false, transformFunction: null }, gridShape: { classPropertyName: "gridShape", publicName: "gridShape", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
39
68
|
<skdx-chart-root
|
|
40
69
|
[layout]="layout()"
|
|
70
|
+
[options]="options()"
|
|
41
71
|
kind="radar"
|
|
42
72
|
[label]="label() ?? 'Radar chart'"
|
|
43
73
|
[zoomable]="zoomable()"
|
|
44
|
-
[
|
|
74
|
+
[selectionMode]="selectionMode()"
|
|
75
|
+
[editable]="editable()"
|
|
76
|
+
[syncId]="syncId()"
|
|
77
|
+
[crosshair]="syncedCrosshair()"
|
|
78
|
+
[responsive]="!!responsive()"
|
|
45
79
|
(itemClick)="itemClick.emit($event)"
|
|
80
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
81
|
+
(taskChange)="taskChange.emit($event)"
|
|
46
82
|
(hiddenSeriesChange)="toggle($event)"
|
|
47
83
|
(zoomChange)="zoom.set($event)"
|
|
84
|
+
(viewChange)="view.set($event)"
|
|
85
|
+
(selectedChange)="selected.set($event)"
|
|
86
|
+
(highlightedChange)="highlighted.set($event)"
|
|
87
|
+
(syncChange)="sync($event)"
|
|
48
88
|
(measured)="measuredWidth.set($event)"
|
|
49
89
|
></skdx-chart-root>
|
|
50
|
-
`, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label", "zoomable", "responsive"], outputs: ["itemClick", "hiddenSeriesChange", "zoomChange", "measured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
90
|
+
`, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "options", "kind", "label", "zoomable", "selectionMode", "editable", "syncId", "crosshair", "responsive"], outputs: ["itemClick", "hiddenSeriesChange", "zoomChange", "viewChange", "selectedChange", "highlightedChange", "dataIssue", "taskChange", "syncChange", "measured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
51
91
|
}
|
|
52
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxRadarChartComponent, decorators: [{
|
|
53
93
|
type: Component,
|
|
@@ -59,18 +99,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
59
99
|
template: `
|
|
60
100
|
<skdx-chart-root
|
|
61
101
|
[layout]="layout()"
|
|
102
|
+
[options]="options()"
|
|
62
103
|
kind="radar"
|
|
63
104
|
[label]="label() ?? 'Radar chart'"
|
|
64
105
|
[zoomable]="zoomable()"
|
|
65
|
-
[
|
|
106
|
+
[selectionMode]="selectionMode()"
|
|
107
|
+
[editable]="editable()"
|
|
108
|
+
[syncId]="syncId()"
|
|
109
|
+
[crosshair]="syncedCrosshair()"
|
|
110
|
+
[responsive]="!!responsive()"
|
|
66
111
|
(itemClick)="itemClick.emit($event)"
|
|
112
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
113
|
+
(taskChange)="taskChange.emit($event)"
|
|
67
114
|
(hiddenSeriesChange)="toggle($event)"
|
|
68
115
|
(zoomChange)="zoom.set($event)"
|
|
116
|
+
(viewChange)="view.set($event)"
|
|
117
|
+
(selectedChange)="selected.set($event)"
|
|
118
|
+
(highlightedChange)="highlighted.set($event)"
|
|
119
|
+
(syncChange)="sync($event)"
|
|
69
120
|
(measured)="measuredWidth.set($event)"
|
|
70
121
|
></skdx-chart-root>
|
|
71
122
|
`,
|
|
72
123
|
}]
|
|
73
|
-
}], propDecorators: { series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }], categories: [{ type: i0.Input, args: [{ isSignal: true, alias: "categories", required: true }] }], normalize: [{ type: i0.Input, args: [{ isSignal: true, alias: "normalize", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }] } });
|
|
124
|
+
}], propDecorators: { series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }], categories: [{ type: i0.Input, args: [{ isSignal: true, alias: "categories", required: false }] }], metrics: [{ type: i0.Input, args: [{ isSignal: true, alias: "metrics", required: false }] }], normalize: [{ type: i0.Input, args: [{ isSignal: true, alias: "normalize", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], fill: [{ type: i0.Input, args: [{ isSignal: true, alias: "fill", required: false }] }], levels: [{ type: i0.Input, args: [{ isSignal: true, alias: "levels", required: false }] }], markers: [{ type: i0.Input, args: [{ isSignal: true, alias: "markers", required: false }] }], markerSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "markerSize", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], startAngle: [{ type: i0.Input, args: [{ isSignal: true, alias: "startAngle", required: false }] }], gridShape: [{ type: i0.Input, args: [{ isSignal: true, alias: "gridShape", required: false }] }] } });
|
|
74
125
|
|
|
75
126
|
/**
|
|
76
127
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skdx-angular-charts-radar.mjs","sources":["../../src/radar/index.ts","../../src/radar/skdx-angular-charts-radar.ts"],"sourcesContent":["/*\n * Copyright (c) 2026 SkandaDX\n * This file is part of the SkandaDX organization.\n * Licensed under the MIT License. See LICENSE in the repository root.\n */\n\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nimport {\n layoutRadarChart,\n SkdxChartRootComponent,\n SkdxSizedBase,\n type Series,\n} from '@skdx/angular-charts/internal';\n\n/** One polygon per series over a spoke per category. */\n@Component({\n selector: 'skdx-radar-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"layout()\"\n kind=\"radar\"\n [label]=\"label() ?? 'Radar chart'\"\n [zoomable]=\"zoomable()\"\n [responsive]=\"responsive()\"\n (itemClick)=\"itemClick.emit($event)\"\n (hiddenSeriesChange)=\"toggle($event)\"\n (zoomChange)=\"zoom.set($event)\"\n (measured)=\"measuredWidth.set($event)\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxRadarChartComponent extends SkdxSizedBase {\n readonly series = input.required<Series[]>();\n readonly categories = input
|
|
1
|
+
{"version":3,"file":"skdx-angular-charts-radar.mjs","sources":["../../src/radar/index.ts","../../src/radar/skdx-angular-charts-radar.ts"],"sourcesContent":["/*\n * Copyright (c) 2026 SkandaDX\n * This file is part of the SkandaDX organization.\n * Licensed under the MIT License. See LICENSE in the repository root.\n */\n\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nimport {\n layoutRadarChart,\n SkdxChartRootComponent,\n SkdxSizedBase,\n type RadarMetric,\n type Series,\n} from '@skdx/angular-charts/internal';\n\n/** One polygon per series over a spoke per category. */\n@Component({\n selector: 'skdx-radar-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"layout()\"\n [options]=\"options()\"\n kind=\"radar\"\n [label]=\"label() ?? 'Radar chart'\"\n [zoomable]=\"zoomable()\"\n [selectionMode]=\"selectionMode()\"\n [editable]=\"editable()\"\n [syncId]=\"syncId()\"\n [crosshair]=\"syncedCrosshair()\"\n [responsive]=\"!!responsive()\"\n (itemClick)=\"itemClick.emit($event)\"\n (dataIssue)=\"dataIssue.emit($event)\"\n (taskChange)=\"taskChange.emit($event)\"\n (hiddenSeriesChange)=\"toggle($event)\"\n (zoomChange)=\"zoom.set($event)\"\n (viewChange)=\"view.set($event)\"\n (selectedChange)=\"selected.set($event)\"\n (highlightedChange)=\"highlighted.set($event)\"\n (syncChange)=\"sync($event)\"\n (measured)=\"measuredWidth.set($event)\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxRadarChartComponent extends SkdxSizedBase {\n readonly series = input.required<Series[]>();\n /** One axis per category. */\n readonly categories = input<string[]>();\n /** Axes with their own min/max scales. */\n readonly metrics = input<RadarMetric[]>();\n /** `metric` scales each axis by its own bounds; `series` (or `true`) scales each series to its own maximum; `none` shares one scale. */\n readonly normalize = input<boolean | 'metric' | 'series' | 'none'>();\n /** Outer ring value. */\n readonly max = input<number>();\n /** Fill the polygons. */\n readonly fill = input(true);\n /** Number of grid rings. */\n readonly levels = input<number>();\n /** Dots on the vertices. */\n readonly markers = input(true);\n /** Marker radius in pixels. */\n readonly markerSize = input<number>();\n /** Write each value at its vertex. */\n readonly labels = input(false);\n /** Degrees clockwise from 12 o'clock of the first axis. */\n readonly startAngle = input<number>();\n /** Grid rings as polygons or circles. */\n readonly gridShape = input<'polygon' | 'circle'>();\n\n protected readonly layout = computed(() =>\n layoutRadarChart({\n ...this.sized(),\n series: this.series(),\n categories: this.categories(),\n metrics: this.metrics(),\n normalize: this.normalize(),\n max: this.max(),\n fill: this.fill(),\n levels: this.levels(),\n markers: this.markers(),\n markerSize: this.markerSize(),\n labels: this.labels(),\n startAngle: this.startAngle(),\n gridShape: this.gridShape(),\n }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -66,16 +66,27 @@ class SkdxRadialBarChartComponent extends SkdxSizedBase {
|
|
|
66
66
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxRadialBarChartComponent, isStandalone: true, selector: "skdx-radial-bar-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, startAngle: { classPropertyName: "startAngle", publicName: "startAngle", isSignal: true, isRequired: false, transformFunction: null }, endAngle: { classPropertyName: "endAngle", publicName: "endAngle", isSignal: true, isRequired: false, transformFunction: null }, innerRadius: { classPropertyName: "innerRadius", publicName: "innerRadius", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, track: { classPropertyName: "track", publicName: "track", isSignal: true, isRequired: false, transformFunction: null }, rounded: { classPropertyName: "rounded", publicName: "rounded", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", isSignal: true, isRequired: false, transformFunction: null }, bands: { classPropertyName: "bands", publicName: "bands", isSignal: true, isRequired: false, transformFunction: null }, target: { classPropertyName: "target", publicName: "target", isSignal: true, isRequired: false, transformFunction: null }, centerLabel: { classPropertyName: "centerLabel", publicName: "centerLabel", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
67
67
|
<skdx-chart-root
|
|
68
68
|
[layout]="layout()"
|
|
69
|
+
[options]="options()"
|
|
69
70
|
kind="radial"
|
|
70
71
|
[label]="label() ?? 'Radial bar chart'"
|
|
71
72
|
[zoomable]="zoomable()"
|
|
72
|
-
[
|
|
73
|
+
[selectionMode]="selectionMode()"
|
|
74
|
+
[editable]="editable()"
|
|
75
|
+
[syncId]="syncId()"
|
|
76
|
+
[crosshair]="syncedCrosshair()"
|
|
77
|
+
[responsive]="!!responsive()"
|
|
73
78
|
(itemClick)="itemClick.emit($event)"
|
|
79
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
80
|
+
(taskChange)="taskChange.emit($event)"
|
|
74
81
|
(hiddenSeriesChange)="toggle($event)"
|
|
75
82
|
(zoomChange)="zoom.set($event)"
|
|
83
|
+
(viewChange)="view.set($event)"
|
|
84
|
+
(selectedChange)="selected.set($event)"
|
|
85
|
+
(highlightedChange)="highlighted.set($event)"
|
|
86
|
+
(syncChange)="sync($event)"
|
|
76
87
|
(measured)="measuredWidth.set($event)"
|
|
77
88
|
></skdx-chart-root>
|
|
78
|
-
`, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label", "zoomable", "responsive"], outputs: ["itemClick", "hiddenSeriesChange", "zoomChange", "measured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
89
|
+
`, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "options", "kind", "label", "zoomable", "selectionMode", "editable", "syncId", "crosshair", "responsive"], outputs: ["itemClick", "hiddenSeriesChange", "zoomChange", "viewChange", "selectedChange", "highlightedChange", "dataIssue", "taskChange", "syncChange", "measured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
79
90
|
}
|
|
80
91
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxRadialBarChartComponent, decorators: [{
|
|
81
92
|
type: Component,
|
|
@@ -87,13 +98,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
87
98
|
template: `
|
|
88
99
|
<skdx-chart-root
|
|
89
100
|
[layout]="layout()"
|
|
101
|
+
[options]="options()"
|
|
90
102
|
kind="radial"
|
|
91
103
|
[label]="label() ?? 'Radial bar chart'"
|
|
92
104
|
[zoomable]="zoomable()"
|
|
93
|
-
[
|
|
105
|
+
[selectionMode]="selectionMode()"
|
|
106
|
+
[editable]="editable()"
|
|
107
|
+
[syncId]="syncId()"
|
|
108
|
+
[crosshair]="syncedCrosshair()"
|
|
109
|
+
[responsive]="!!responsive()"
|
|
94
110
|
(itemClick)="itemClick.emit($event)"
|
|
111
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
112
|
+
(taskChange)="taskChange.emit($event)"
|
|
95
113
|
(hiddenSeriesChange)="toggle($event)"
|
|
96
114
|
(zoomChange)="zoom.set($event)"
|
|
115
|
+
(viewChange)="view.set($event)"
|
|
116
|
+
(selectedChange)="selected.set($event)"
|
|
117
|
+
(highlightedChange)="highlighted.set($event)"
|
|
118
|
+
(syncChange)="sync($event)"
|
|
97
119
|
(measured)="measuredWidth.set($event)"
|
|
98
120
|
></skdx-chart-root>
|
|
99
121
|
`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skdx-angular-charts-radial.mjs","sources":["../../src/radial/index.ts","../../src/radial/skdx-angular-charts-radial.ts"],"sourcesContent":["/*\n * Copyright (c) 2026 SkandaDX\n * This file is part of the SkandaDX organization.\n * Licensed under the MIT License. See LICENSE in the repository root.\n */\n\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nimport {\n layoutRadialBar,\n SkdxChartRootComponent,\n SkdxSizedBase,\n type Datum,\n type RadialBand,\n} from '@skdx/angular-charts/internal';\n\n/** Concentric arcs, one per datum, each a share of `max`: KPI completion, utilization, quota, health. */\n@Component({\n selector: 'skdx-radial-bar-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"layout()\"\n kind=\"radial\"\n [label]=\"label() ?? 'Radial bar chart'\"\n [zoomable]=\"zoomable()\"\n [responsive]=\"responsive()\"\n (itemClick)=\"itemClick.emit($event)\"\n (hiddenSeriesChange)=\"toggle($event)\"\n (zoomChange)=\"zoom.set($event)\"\n (measured)=\"measuredWidth.set($event)\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxRadialBarChartComponent extends SkdxSizedBase {\n readonly data = input.required<Datum[]>();\n /** The value a full arc represents. */\n readonly max = input<number>();\n /** Degrees clockwise from 12 o'clock. */\n readonly startAngle = input<number>();\n readonly endAngle = input<number>();\n /** Hole radius as a fraction of the outer radius. */\n readonly innerRadius = input<number>();\n /** Gap between arcs as a fraction of one arc's thickness. */\n readonly gap = input<number>();\n /** Draw the full-range track behind each arc. */\n readonly track = input(true);\n /** Round the arc ends. */\n readonly rounded = input(true);\n /** Write each name and value at the arc start. */\n readonly labels = input(false);\n /** Threshold sectors outside the arcs, in value units. */\n readonly bands = input<RadialBand[]>();\n /** A tick across every arc at this value. */\n readonly target = input<number>();\n /** Text in the middle, e.g. the headline value. */\n readonly centerLabel = input<string>();\n\n protected readonly layout = computed(() =>\n layoutRadialBar({\n ...this.sized(),\n data: this.data(),\n max: this.max(),\n startAngle: this.startAngle(),\n endAngle: this.endAngle(),\n innerRadius: this.innerRadius(),\n gap: this.gap(),\n track: this.track(),\n rounded: this.rounded(),\n labels: this.labels(),\n bands: this.bands(),\n target: this.target(),\n centerLabel: this.centerLabel(),\n }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAYH;
|
|
1
|
+
{"version":3,"file":"skdx-angular-charts-radial.mjs","sources":["../../src/radial/index.ts","../../src/radial/skdx-angular-charts-radial.ts"],"sourcesContent":["/*\n * Copyright (c) 2026 SkandaDX\n * This file is part of the SkandaDX organization.\n * Licensed under the MIT License. See LICENSE in the repository root.\n */\n\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nimport {\n layoutRadialBar,\n SkdxChartRootComponent,\n SkdxSizedBase,\n type Datum,\n type RadialBand,\n} from '@skdx/angular-charts/internal';\n\n/** Concentric arcs, one per datum, each a share of `max`: KPI completion, utilization, quota, health. */\n@Component({\n selector: 'skdx-radial-bar-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"layout()\"\n [options]=\"options()\"\n kind=\"radial\"\n [label]=\"label() ?? 'Radial bar chart'\"\n [zoomable]=\"zoomable()\"\n [selectionMode]=\"selectionMode()\"\n [editable]=\"editable()\"\n [syncId]=\"syncId()\"\n [crosshair]=\"syncedCrosshair()\"\n [responsive]=\"!!responsive()\"\n (itemClick)=\"itemClick.emit($event)\"\n (dataIssue)=\"dataIssue.emit($event)\"\n (taskChange)=\"taskChange.emit($event)\"\n (hiddenSeriesChange)=\"toggle($event)\"\n (zoomChange)=\"zoom.set($event)\"\n (viewChange)=\"view.set($event)\"\n (selectedChange)=\"selected.set($event)\"\n (highlightedChange)=\"highlighted.set($event)\"\n (syncChange)=\"sync($event)\"\n (measured)=\"measuredWidth.set($event)\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxRadialBarChartComponent extends SkdxSizedBase {\n readonly data = input.required<Datum[]>();\n /** The value a full arc represents. */\n readonly max = input<number>();\n /** Degrees clockwise from 12 o'clock. */\n readonly startAngle = input<number>();\n readonly endAngle = input<number>();\n /** Hole radius as a fraction of the outer radius. */\n readonly innerRadius = input<number>();\n /** Gap between arcs as a fraction of one arc's thickness. */\n readonly gap = input<number>();\n /** Draw the full-range track behind each arc. */\n readonly track = input(true);\n /** Round the arc ends. */\n readonly rounded = input(true);\n /** Write each name and value at the arc start. */\n readonly labels = input(false);\n /** Threshold sectors outside the arcs, in value units. */\n readonly bands = input<RadialBand[]>();\n /** A tick across every arc at this value. */\n readonly target = input<number>();\n /** Text in the middle, e.g. the headline value. */\n readonly centerLabel = input<string>();\n\n protected readonly layout = computed(() =>\n layoutRadialBar({\n ...this.sized(),\n data: this.data(),\n max: this.max(),\n startAngle: this.startAngle(),\n endAngle: this.endAngle(),\n innerRadius: this.innerRadius(),\n gap: this.gap(),\n track: this.track(),\n rounded: this.rounded(),\n labels: this.labels(),\n bands: this.bands(),\n target: this.target(),\n centerLabel: this.centerLabel(),\n }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { SkdxSizedBase, layoutRangeChart, SkdxChartRootComponent } from '@skdx/angular-charts/internal';
|
|
4
|
+
|
|
5
|
+
/*
|
|
6
|
+
* Copyright (c) 2026 SkandaDX
|
|
7
|
+
* This file is part of the SkandaDX organization.
|
|
8
|
+
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
9
|
+
*/
|
|
10
|
+
/** Low–high intervals per category: a shaded band, floating bars or two outlines. */
|
|
11
|
+
class SkdxRangeChartComponent extends SkdxSizedBase {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.series = input.required(/* @ts-ignore */
|
|
15
|
+
...(ngDevMode ? [{ debugName: "series" }] : /* istanbul ignore next */ []));
|
|
16
|
+
this.variant = input(/* @ts-ignore */
|
|
17
|
+
...(ngDevMode ? [undefined, { debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
18
|
+
this.categories = input(/* @ts-ignore */
|
|
19
|
+
...(ngDevMode ? [undefined, { debugName: "categories" }] : /* istanbul ignore next */ []));
|
|
20
|
+
this.xAxis = input(/* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [undefined, { debugName: "xAxis" }] : /* istanbul ignore next */ []));
|
|
22
|
+
this.yAxis = input(/* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [undefined, { debugName: "yAxis" }] : /* istanbul ignore next */ []));
|
|
24
|
+
this.rightAxis = input(/* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [undefined, { debugName: "rightAxis" }] : /* istanbul ignore next */ []));
|
|
26
|
+
this.references = input(/* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [undefined, { debugName: "references" }] : /* istanbul ignore next */ []));
|
|
28
|
+
this.annotations = input(/* @ts-ignore */
|
|
29
|
+
...(ngDevMode ? [undefined, { debugName: "annotations" }] : /* istanbul ignore next */ []));
|
|
30
|
+
this.curve = input(/* @ts-ignore */
|
|
31
|
+
...(ngDevMode ? [undefined, { debugName: "curve" }] : /* istanbul ignore next */ []));
|
|
32
|
+
this.connectNulls = input(false, /* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [{ debugName: "connectNulls" }] : /* istanbul ignore next */ []));
|
|
34
|
+
this.orientation = input(/* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [undefined, { debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
36
|
+
this.radius = input(/* @ts-ignore */
|
|
37
|
+
...(ngDevMode ? [undefined, { debugName: "radius" }] : /* istanbul ignore next */ []));
|
|
38
|
+
this.barGap = input(/* @ts-ignore */
|
|
39
|
+
...(ngDevMode ? [undefined, { debugName: "barGap" }] : /* istanbul ignore next */ []));
|
|
40
|
+
/** Largest bar thickness in pixels. */
|
|
41
|
+
this.barWidth = input(/* @ts-ignore */
|
|
42
|
+
...(ngDevMode ? [undefined, { debugName: "barWidth" }] : /* istanbul ignore next */ []));
|
|
43
|
+
this.brush = input(false, /* @ts-ignore */
|
|
44
|
+
...(ngDevMode ? [{ debugName: "brush" }] : /* istanbul ignore next */ []));
|
|
45
|
+
this.crosshair = input(false, /* @ts-ignore */
|
|
46
|
+
...(ngDevMode ? [{ debugName: "crosshair" }] : /* istanbul ignore next */ []));
|
|
47
|
+
this.layout = computed(() => layoutRangeChart({
|
|
48
|
+
...this.sized(),
|
|
49
|
+
series: this.series(),
|
|
50
|
+
variant: this.variant(),
|
|
51
|
+
categories: this.categories(),
|
|
52
|
+
xAxis: this.xAxis(),
|
|
53
|
+
yAxis: this.yAxis(),
|
|
54
|
+
rightAxis: this.rightAxis(),
|
|
55
|
+
references: this.references(),
|
|
56
|
+
annotations: this.annotations(),
|
|
57
|
+
curve: this.curve(),
|
|
58
|
+
connectNulls: this.connectNulls(),
|
|
59
|
+
orientation: this.orientation(),
|
|
60
|
+
radius: this.radius(),
|
|
61
|
+
barGap: this.barGap(),
|
|
62
|
+
barWidth: this.barWidth(),
|
|
63
|
+
brush: this.brush(),
|
|
64
|
+
crosshair: this.crosshair(),
|
|
65
|
+
}), /* @ts-ignore */
|
|
66
|
+
...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxRangeChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxRangeChartComponent, isStandalone: true, selector: "skdx-range-chart", inputs: { series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, xAxis: { classPropertyName: "xAxis", publicName: "xAxis", isSignal: true, isRequired: false, transformFunction: null }, yAxis: { classPropertyName: "yAxis", publicName: "yAxis", isSignal: true, isRequired: false, transformFunction: null }, rightAxis: { classPropertyName: "rightAxis", publicName: "rightAxis", isSignal: true, isRequired: false, transformFunction: null }, references: { classPropertyName: "references", publicName: "references", isSignal: true, isRequired: false, transformFunction: null }, annotations: { classPropertyName: "annotations", publicName: "annotations", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, connectNulls: { classPropertyName: "connectNulls", publicName: "connectNulls", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, barGap: { classPropertyName: "barGap", publicName: "barGap", isSignal: true, isRequired: false, transformFunction: null }, barWidth: { classPropertyName: "barWidth", publicName: "barWidth", isSignal: true, isRequired: false, transformFunction: null }, brush: { classPropertyName: "brush", publicName: "brush", isSignal: true, isRequired: false, transformFunction: null }, crosshair: { classPropertyName: "crosshair", publicName: "crosshair", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
70
|
+
<skdx-chart-root
|
|
71
|
+
[layout]="layout()"
|
|
72
|
+
[options]="options()"
|
|
73
|
+
kind="range"
|
|
74
|
+
[label]="label() ?? 'Range chart'"
|
|
75
|
+
[zoomable]="zoomable()"
|
|
76
|
+
[selectionMode]="selectionMode()"
|
|
77
|
+
[editable]="editable()"
|
|
78
|
+
[syncId]="syncId()"
|
|
79
|
+
[crosshair]="syncedCrosshair()"
|
|
80
|
+
[responsive]="!!responsive()"
|
|
81
|
+
(itemClick)="itemClick.emit($event)"
|
|
82
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
83
|
+
(taskChange)="taskChange.emit($event)"
|
|
84
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
85
|
+
(zoomChange)="zoom.set($event)"
|
|
86
|
+
(viewChange)="view.set($event)"
|
|
87
|
+
(selectedChange)="selected.set($event)"
|
|
88
|
+
(highlightedChange)="highlighted.set($event)"
|
|
89
|
+
(syncChange)="sync($event)"
|
|
90
|
+
(measured)="measuredWidth.set($event)"
|
|
91
|
+
></skdx-chart-root>
|
|
92
|
+
`, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "options", "kind", "label", "zoomable", "selectionMode", "editable", "syncId", "crosshair", "responsive"], outputs: ["itemClick", "hiddenSeriesChange", "zoomChange", "viewChange", "selectedChange", "highlightedChange", "dataIssue", "taskChange", "syncChange", "measured"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
93
|
+
}
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxRangeChartComponent, decorators: [{
|
|
95
|
+
type: Component,
|
|
96
|
+
args: [{
|
|
97
|
+
selector: 'skdx-range-chart',
|
|
98
|
+
standalone: true,
|
|
99
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
100
|
+
imports: [SkdxChartRootComponent],
|
|
101
|
+
template: `
|
|
102
|
+
<skdx-chart-root
|
|
103
|
+
[layout]="layout()"
|
|
104
|
+
[options]="options()"
|
|
105
|
+
kind="range"
|
|
106
|
+
[label]="label() ?? 'Range chart'"
|
|
107
|
+
[zoomable]="zoomable()"
|
|
108
|
+
[selectionMode]="selectionMode()"
|
|
109
|
+
[editable]="editable()"
|
|
110
|
+
[syncId]="syncId()"
|
|
111
|
+
[crosshair]="syncedCrosshair()"
|
|
112
|
+
[responsive]="!!responsive()"
|
|
113
|
+
(itemClick)="itemClick.emit($event)"
|
|
114
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
115
|
+
(taskChange)="taskChange.emit($event)"
|
|
116
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
117
|
+
(zoomChange)="zoom.set($event)"
|
|
118
|
+
(viewChange)="view.set($event)"
|
|
119
|
+
(selectedChange)="selected.set($event)"
|
|
120
|
+
(highlightedChange)="highlighted.set($event)"
|
|
121
|
+
(syncChange)="sync($event)"
|
|
122
|
+
(measured)="measuredWidth.set($event)"
|
|
123
|
+
></skdx-chart-root>
|
|
124
|
+
`,
|
|
125
|
+
}]
|
|
126
|
+
}], propDecorators: { series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], categories: [{ type: i0.Input, args: [{ isSignal: true, alias: "categories", required: false }] }], xAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "xAxis", required: false }] }], yAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "yAxis", required: false }] }], rightAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "rightAxis", required: false }] }], references: [{ type: i0.Input, args: [{ isSignal: true, alias: "references", required: false }] }], annotations: [{ type: i0.Input, args: [{ isSignal: true, alias: "annotations", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], connectNulls: [{ type: i0.Input, args: [{ isSignal: true, alias: "connectNulls", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], barGap: [{ type: i0.Input, args: [{ isSignal: true, alias: "barGap", required: false }] }], barWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "barWidth", required: false }] }], brush: [{ type: i0.Input, args: [{ isSignal: true, alias: "brush", required: false }] }], crosshair: [{ type: i0.Input, args: [{ isSignal: true, alias: "crosshair", required: false }] }] } });
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Generated bundle index. Do not edit.
|
|
130
|
+
*/
|
|
131
|
+
|
|
132
|
+
export { SkdxRangeChartComponent };
|
|
133
|
+
//# sourceMappingURL=skdx-angular-charts-range.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skdx-angular-charts-range.mjs","sources":["../../src/range/index.ts","../../src/range/skdx-angular-charts-range.ts"],"sourcesContent":["/*\n * Copyright (c) 2026 SkandaDX\n * This file is part of the SkandaDX organization.\n * Licensed under the MIT License. See LICENSE in the repository root.\n */\n\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nimport {\n layoutRangeChart,\n SkdxChartRootComponent,\n SkdxSizedBase,\n type Annotation,\n type AxisOptions,\n type Category,\n type Curve,\n type RangeChartSeries,\n type Reference,\n type XAxisOptions,\n} from '@skdx/angular-charts/internal';\n\n/** Low–high intervals per category: a shaded band, floating bars or two outlines. */\n@Component({\n selector: 'skdx-range-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"layout()\"\n [options]=\"options()\"\n kind=\"range\"\n [label]=\"label() ?? 'Range chart'\"\n [zoomable]=\"zoomable()\"\n [selectionMode]=\"selectionMode()\"\n [editable]=\"editable()\"\n [syncId]=\"syncId()\"\n [crosshair]=\"syncedCrosshair()\"\n [responsive]=\"!!responsive()\"\n (itemClick)=\"itemClick.emit($event)\"\n (dataIssue)=\"dataIssue.emit($event)\"\n (taskChange)=\"taskChange.emit($event)\"\n (hiddenSeriesChange)=\"toggle($event)\"\n (zoomChange)=\"zoom.set($event)\"\n (viewChange)=\"view.set($event)\"\n (selectedChange)=\"selected.set($event)\"\n (highlightedChange)=\"highlighted.set($event)\"\n (syncChange)=\"sync($event)\"\n (measured)=\"measuredWidth.set($event)\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxRangeChartComponent extends SkdxSizedBase {\n readonly series = input.required<RangeChartSeries[]>();\n readonly variant = input<'area' | 'bar' | 'line'>();\n readonly categories = input<Category[]>();\n readonly xAxis = input<XAxisOptions>();\n readonly yAxis = input<AxisOptions>();\n readonly rightAxis = input<AxisOptions>();\n readonly references = input<Reference[]>();\n readonly annotations = input<Annotation[]>();\n readonly curve = input<Curve>();\n readonly connectNulls = input(false);\n readonly orientation = input<'vertical' | 'horizontal'>();\n readonly radius = input<number>();\n readonly barGap = input<number>();\n /** Largest bar thickness in pixels. */\n readonly barWidth = input<number>();\n readonly brush = input(false);\n readonly crosshair = input(false);\n\n protected readonly layout = computed(() =>\n layoutRangeChart({\n ...this.sized(),\n series: this.series(),\n variant: this.variant(),\n categories: this.categories(),\n xAxis: this.xAxis(),\n yAxis: this.yAxis(),\n rightAxis: this.rightAxis(),\n references: this.references(),\n annotations: this.annotations(),\n curve: this.curve(),\n connectNulls: this.connectNulls(),\n orientation: this.orientation(),\n radius: this.radius(),\n barGap: this.barGap(),\n barWidth: this.barWidth(),\n brush: this.brush(),\n crosshair: this.crosshair(),\n }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|