@skdx/angular-charts 0.33.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 +104 -41
- package/fesm2022/skdx-angular-charts-area.mjs +36 -2
- package/fesm2022/skdx-angular-charts-area.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-bar.mjs +40 -15
- package/fesm2022/skdx-angular-charts-bar.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-boxplot.mjs +76 -8
- 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 +76 -8
- package/fesm2022/skdx-angular-charts-candlestick.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-chord.mjs +63 -12
- 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 +63 -8
- package/fesm2022/skdx-angular-charts-funnel.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-gantt.mjs +64 -11
- 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 +111 -15
- 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 +10134 -1106
- package/fesm2022/skdx-angular-charts-internal.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-line.mjs +36 -2
- 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 +81 -8
- 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 +79 -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 +87 -9
- package/fesm2022/skdx-angular-charts-radar.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-radial.mjs +130 -0
- package/fesm2022/skdx-angular-charts-radial.mjs.map +1 -0
- 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 +81 -8
- package/fesm2022/skdx-angular-charts-sankey.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-scatter.mjs +74 -5
- package/fesm2022/skdx-angular-charts-scatter.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-sparkline.mjs +76 -8
- package/fesm2022/skdx-angular-charts-sparkline.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts-sunburst.mjs +88 -8
- 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 +85 -8
- 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 +76 -8
- package/fesm2022/skdx-angular-charts-waterfall.mjs.map +1 -1
- package/fesm2022/skdx-angular-charts.mjs +23 -0
- package/fesm2022/skdx-angular-charts.mjs.map +1 -1
- package/package.json +91 -3
- package/types/skdx-angular-charts-area.d.ts +1 -1
- package/types/skdx-angular-charts-bar.d.ts +5 -13
- package/types/skdx-angular-charts-boxplot.d.ts +20 -5
- 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 +15 -4
- package/types/skdx-angular-charts-chord.d.ts +13 -6
- 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 +11 -3
- package/types/skdx-angular-charts-gantt.d.ts +13 -6
- package/types/skdx-angular-charts-gauge.d.ts +36 -0
- package/types/skdx-angular-charts-heatmap.d.ts +34 -8
- 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 +2477 -77
- package/types/skdx-angular-charts-line.d.ts +1 -1
- package/types/skdx-angular-charts-linear-gauge.d.ts +29 -0
- package/types/skdx-angular-charts-map.d.ts +17 -4
- 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 +20 -2
- package/types/skdx-angular-charts-polar-area.d.ts +28 -0
- package/types/skdx-angular-charts-radar.d.ts +24 -4
- package/types/skdx-angular-charts-radial.d.ts +34 -0
- package/types/skdx-angular-charts-range.d.ts +29 -0
- package/types/skdx-angular-charts-sankey.d.ts +22 -4
- package/types/skdx-angular-charts-scatter.d.ts +17 -3
- package/types/skdx-angular-charts-sparkline.d.ts +19 -5
- package/types/skdx-angular-charts-sunburst.d.ts +25 -4
- 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 +21 -5
- package/types/skdx-angular-charts-waffle.d.ts +25 -0
- package/types/skdx-angular-charts-waterfall.d.ts +19 -5
- package/types/skdx-angular-charts.d.ts +23 -1
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @skdx/angular-charts
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
Forty SVG charts for Angular. Plain SVG colored by `@skdx/tokens`; load `@skdx/tokens/css` once
|
|
4
|
+
so the colors resolve.
|
|
5
5
|
|
|
6
6
|
```sh
|
|
7
7
|
pnpm add @skdx/angular-charts @skdx/tokens
|
|
@@ -12,46 +12,109 @@ import { SkdxBarChartComponent } from '@skdx/angular-charts/bar';
|
|
|
12
12
|
|
|
13
13
|
@Component({
|
|
14
14
|
imports: [SkdxBarChartComponent],
|
|
15
|
-
template:
|
|
15
|
+
template: `
|
|
16
|
+
<skdx-bar-chart
|
|
17
|
+
[series]="series"
|
|
18
|
+
[categories]="['Jan', 'Feb', 'Mar']"
|
|
19
|
+
[format]="{ style: 'currency', currency: 'USD', digits: 0 }"
|
|
20
|
+
></skdx-bar-chart>
|
|
21
|
+
`,
|
|
16
22
|
})
|
|
17
|
-
export class
|
|
18
|
-
series = [{ name: '
|
|
23
|
+
export class Revenue {
|
|
24
|
+
series = [{ name: 'MRR', data: [118_000, 124_500, 131_200] }];
|
|
19
25
|
}
|
|
20
26
|
```
|
|
21
27
|
|
|
22
|
-
Every chart takes `width`, `height
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
`{ name, value?, children? }`.
|
|
33
|
-
|
|
34
|
-
`
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
28
|
+
Every chart takes `width`, `height`, `label` (the accessible name), `description`, `decorative`,
|
|
29
|
+
`legend`, `tooltip`, `format`, `palette`, `hiddenSeries`, `loading`, `error` and `emptyMessage`.
|
|
30
|
+
Bar, line and area take `series` (`{ name, data, type?, axis?, curve?, dash?, markers?, stack? }[]`,
|
|
31
|
+
or `{ type: 'range', name, low, high }`) and `categories` (strings, numbers or dates). Pie, funnel
|
|
32
|
+
and radial take `data` (`{ name, value, color? }[]`). Scatter takes `series` of `[x, y]` pairs or
|
|
33
|
+
`[x, y, size]` triples. Sparkline takes `data` (`(number | null)[]`). Heatmap takes `rows`, `columns`
|
|
34
|
+
and `data` (`(number | null)[][]`), or `calendar` (`{ date, value }[]`). Radar takes `series` and
|
|
35
|
+
`categories`.
|
|
36
|
+
|
|
37
|
+
Sankey takes `links` (`{ source, target, value }[]`). Treemap and sunburst take `data` as a tree of
|
|
38
|
+
`{ name, value?, children? }`. Candlestick takes `data` as `{ label, open, high, low, close, volume? }[]`.
|
|
39
|
+
Waterfall takes signed `data` deltas and an optional `total` label. Gantt takes `tasks`
|
|
40
|
+
(`{ name, start, end, group? }[]`). Boxplot takes `series` of raw samples. Chord takes `names` and a
|
|
41
|
+
flow `matrix`. Map takes `features` (`{ name, value, geometry }[]` with GeoJSON Polygon or
|
|
42
|
+
MultiPolygon geometry). `null` and `NaN` values are gaps; an empty chart renders "No data available".
|
|
43
|
+
|
|
44
|
+
Gauge takes one `value` with `min`/`max`, `bands` and a `target`. Bullet takes `data`
|
|
45
|
+
(`{ name, value, target?, ranges? }[]`). Histogram takes `data` as a raw sample and bins it.
|
|
46
|
+
Bubble takes `series` of `{ x, y, z, label? }`. Combo takes the cartesian `series` with a required
|
|
47
|
+
`type` per series. Range takes `series` of `{ name, low, high }` and a `variant`. Network takes
|
|
48
|
+
`nodes` (`{ id, label?, value?, group? }[]`) and `edges` (`{ source, target, value? }[]`). Timeline
|
|
49
|
+
takes `events` (`{ date, label, description?, group? }[]`). One reference page per chart is in
|
|
50
|
+
[docs/charts](../../docs/charts/README.md).
|
|
51
|
+
|
|
52
|
+
Every chart also takes `animate` (fade in and transition on change; `true` is 300 ms, a number sets
|
|
53
|
+
the duration, off under `prefers-reduced-motion` and above 1500 shapes) and `responsive` (lay out
|
|
54
|
+
at the container's width so text keeps its size). Cartesian charts take `xAxis.type: 'time' |
|
|
55
|
+
'linear'` to place numeric or date categories proportionally.
|
|
56
|
+
|
|
57
|
+
Every mark carries a native `<title>` tooltip and a `data-skdx-part` attribute for styling. The
|
|
58
|
+
full option reference, the mixed-series (bar + line + range) cartesian model, references, zoom,
|
|
59
|
+
brush, crosshair, histogram, formatting and the accessibility contract are documented once in the
|
|
60
|
+
[repository README](../../README.md); the decisions behind them in [CHARTS.md](../../CHARTS.md).
|
|
61
|
+
|
|
62
|
+
## Interaction
|
|
63
|
+
|
|
64
|
+
Every chart is keyboard accessible: it takes focus, arrow keys step through the marks with a focus
|
|
65
|
+
ring and tooltip, Home/End jump, Escape clears and Enter/Space clicks. Clicking a legend entry hides
|
|
66
|
+
its series while colors stay stable. Bar, line, area and candlestick charts also zoom (wheel around
|
|
67
|
+
the pointer, drag to pan, double-click to reset), brush (a range strip under the plot) and snap a
|
|
68
|
+
shared tooltip to the nearest category (`crosshair`). Two fingers pinch-zoom on touch screens.
|
|
69
|
+
|
|
70
|
+
| Capability | Angular spelling |
|
|
71
|
+
| ------------------- | ------------------------------------------------------- |
|
|
72
|
+
| item click | `(itemClick)="onItem($event)"` |
|
|
73
|
+
| legend toggles | uncontrolled by default, or `[(hiddenSeries)]="hidden"` |
|
|
74
|
+
| zoom | `[zoomable]="true"`; `[(zoom)]="zoom"` for control |
|
|
75
|
+
| brush and crosshair | `[brush]="true"`, `[crosshair]="true"` |
|
|
76
|
+
| motion and sizing | `[animate]="true"`, `[responsive]="true"` |
|
|
77
|
+
|
|
78
|
+
## Example: an observability panel
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
import { Component, signal } from '@angular/core';
|
|
82
|
+
|
|
83
|
+
import type { ChartItem, Zoom } from '@skdx/angular-charts';
|
|
84
|
+
import { SkdxLineChartComponent } from '@skdx/angular-charts/line';
|
|
85
|
+
|
|
86
|
+
@Component({
|
|
87
|
+
imports: [SkdxLineChartComponent],
|
|
88
|
+
template: `
|
|
89
|
+
<skdx-line-chart
|
|
90
|
+
label="p95 latency, last 24 hours"
|
|
91
|
+
[categories]="timestamps"
|
|
92
|
+
[xAxis]="{ format: { style: 'time' } }"
|
|
93
|
+
[format]="{ style: 'integer', unit: ' ms' }"
|
|
94
|
+
[series]="series"
|
|
95
|
+
[rightAxis]="{ format: { style: 'percent' }, max: 0.05 }"
|
|
96
|
+
[references]="[{ y: 300, label: 'SLA', variant: 'warning' }]"
|
|
97
|
+
[crosshair]="true"
|
|
98
|
+
[zoomable]="true"
|
|
99
|
+
[brush]="true"
|
|
100
|
+
[legend]="true"
|
|
101
|
+
[(zoom)]="zoom"
|
|
102
|
+
[(hiddenSeries)]="hidden"
|
|
103
|
+
(itemClick)="onItem($event)"
|
|
104
|
+
></skdx-line-chart>
|
|
105
|
+
`,
|
|
106
|
+
})
|
|
107
|
+
export class LatencyPanel {
|
|
108
|
+
timestamps = timestamps;
|
|
109
|
+
series = [
|
|
110
|
+
{ name: 'p95', data: points.p95 },
|
|
111
|
+
{ name: 'p50', data: points.p50, dash: '4 3' },
|
|
112
|
+
{ name: 'Error rate', type: 'bar' as const, data: points.errors, axis: 'right' as const },
|
|
113
|
+
];
|
|
114
|
+
zoom = signal<Zoom | undefined>(undefined);
|
|
115
|
+
hidden = signal<string[] | undefined>(undefined);
|
|
116
|
+
onItem(item: ChartItem) {
|
|
117
|
+
console.log(item.series, item.category, item.value);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
@@ -7,7 +7,7 @@ import { SkdxChartBase, layoutAreaChart, SkdxChartRootComponent } from '@skdx/an
|
|
|
7
7
|
* This file is part of the SkandaDX organization.
|
|
8
8
|
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
9
9
|
*/
|
|
10
|
-
/**
|
|
10
|
+
/** Filled, optionally stacked, areas down to zero; series may also be bars, lines or ranges. */
|
|
11
11
|
class SkdxAreaChartComponent extends SkdxChartBase {
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments);
|
|
@@ -18,10 +18,27 @@ class SkdxAreaChartComponent extends SkdxChartBase {
|
|
|
18
18
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: SkdxAreaChartComponent, isStandalone: true, selector: "skdx-area-chart", usesInheritance: true, ngImport: i0, template: `
|
|
19
19
|
<skdx-chart-root
|
|
20
20
|
[layout]="layout()"
|
|
21
|
+
[options]="options()"
|
|
21
22
|
kind="area"
|
|
22
23
|
[label]="label() ?? 'Area chart'"
|
|
24
|
+
[zoomable]="zoomable()"
|
|
25
|
+
[selectionMode]="selectionMode()"
|
|
26
|
+
[editable]="editable()"
|
|
27
|
+
[syncId]="syncId()"
|
|
28
|
+
[crosshair]="syncedCrosshair()"
|
|
29
|
+
[responsive]="!!responsive()"
|
|
30
|
+
(itemClick)="itemClick.emit($event)"
|
|
31
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
32
|
+
(taskChange)="taskChange.emit($event)"
|
|
33
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
34
|
+
(zoomChange)="zoom.set($event)"
|
|
35
|
+
(viewChange)="view.set($event)"
|
|
36
|
+
(selectedChange)="selected.set($event)"
|
|
37
|
+
(highlightedChange)="highlighted.set($event)"
|
|
38
|
+
(syncChange)="sync($event)"
|
|
39
|
+
(measured)="measuredWidth.set($event)"
|
|
23
40
|
></skdx-chart-root>
|
|
24
|
-
`, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
41
|
+
`, 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 }); }
|
|
25
42
|
}
|
|
26
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxAreaChartComponent, decorators: [{
|
|
27
44
|
type: Component,
|
|
@@ -33,8 +50,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
33
50
|
template: `
|
|
34
51
|
<skdx-chart-root
|
|
35
52
|
[layout]="layout()"
|
|
53
|
+
[options]="options()"
|
|
36
54
|
kind="area"
|
|
37
55
|
[label]="label() ?? 'Area chart'"
|
|
56
|
+
[zoomable]="zoomable()"
|
|
57
|
+
[selectionMode]="selectionMode()"
|
|
58
|
+
[editable]="editable()"
|
|
59
|
+
[syncId]="syncId()"
|
|
60
|
+
[crosshair]="syncedCrosshair()"
|
|
61
|
+
[responsive]="!!responsive()"
|
|
62
|
+
(itemClick)="itemClick.emit($event)"
|
|
63
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
64
|
+
(taskChange)="taskChange.emit($event)"
|
|
65
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
66
|
+
(zoomChange)="zoom.set($event)"
|
|
67
|
+
(viewChange)="view.set($event)"
|
|
68
|
+
(selectedChange)="selected.set($event)"
|
|
69
|
+
(highlightedChange)="highlighted.set($event)"
|
|
70
|
+
(syncChange)="sync($event)"
|
|
71
|
+
(measured)="measuredWidth.set($event)"
|
|
38
72
|
></skdx-chart-root>
|
|
39
73
|
`,
|
|
40
74
|
}]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skdx-angular-charts-area.mjs","sources":["../../src/area/index.ts","../../src/area/skdx-angular-charts-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 } from '@angular/core';\n\nimport {\n layoutAreaChart,\n SkdxChartBase,\n SkdxChartRootComponent,\n} from '@skdx/angular-charts/internal';\n\n/**
|
|
1
|
+
{"version":3,"file":"skdx-angular-charts-area.mjs","sources":["../../src/area/index.ts","../../src/area/skdx-angular-charts-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 } from '@angular/core';\n\nimport {\n layoutAreaChart,\n SkdxChartBase,\n SkdxChartRootComponent,\n} from '@skdx/angular-charts/internal';\n\n/** Filled, optionally stacked, areas down to zero; series may also be bars, lines or ranges. */\n@Component({\n selector: 'skdx-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=\"area\"\n [label]=\"label() ?? '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 SkdxAreaChartComponent extends SkdxChartBase {\n protected readonly layout = computed(() => layoutAreaChart(this.input()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAUH;AA+BM,MAAO,sBAAuB,SAAQ,aAAa,CAAA;AA9BzD,IAAA,WAAA,GAAA;;AA+BqB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;mFAAC;AAC1E,IAAA;8GAFY,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzBvB;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAxBS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,QAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FA0BrB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA9BlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA;AACF,iBAAA;;;AC5CD;;AAEG;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
3
|
import { SkdxChartBase, layoutBarChart, SkdxChartRootComponent } from '@skdx/angular-charts/internal';
|
|
4
4
|
|
|
5
5
|
/*
|
|
@@ -7,30 +7,38 @@ import { SkdxChartBase, layoutBarChart, SkdxChartRootComponent } from '@skdx/ang
|
|
|
7
7
|
* This file is part of the SkandaDX organization.
|
|
8
8
|
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
9
9
|
*/
|
|
10
|
-
/**
|
|
11
|
-
* Grouped or stacked vertical bars, one per value.
|
|
12
|
-
*
|
|
13
|
-
* ```html
|
|
14
|
-
* <skdx-bar-chart [series]="[{ name: 'Sales', data: [3, 5, 2] }]" [categories]="['Q1', 'Q2', 'Q3']"></skdx-bar-chart>
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
10
|
+
/** Grouped, stacked, horizontal or histogram bars; series may also be lines, areas or ranges. */
|
|
17
11
|
class SkdxBarChartComponent extends SkdxChartBase {
|
|
18
12
|
constructor() {
|
|
19
13
|
super(...arguments);
|
|
20
|
-
|
|
21
|
-
this.stacked = input(false, /* @ts-ignore */
|
|
22
|
-
...(ngDevMode ? [{ debugName: "stacked" }] : /* istanbul ignore next */ []));
|
|
23
|
-
this.layout = computed(() => layoutBarChart({ ...this.input(), stacked: this.stacked() }), /* @ts-ignore */
|
|
14
|
+
this.layout = computed(() => layoutBarChart(this.input()), /* @ts-ignore */
|
|
24
15
|
...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
25
16
|
}
|
|
26
17
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxBarChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: SkdxBarChartComponent, isStandalone: true, selector: "skdx-bar-chart", usesInheritance: true, ngImport: i0, template: `
|
|
28
19
|
<skdx-chart-root
|
|
29
20
|
[layout]="layout()"
|
|
21
|
+
[options]="options()"
|
|
30
22
|
kind="bar"
|
|
31
23
|
[label]="label() ?? 'Bar chart'"
|
|
24
|
+
[zoomable]="zoomable()"
|
|
25
|
+
[selectionMode]="selectionMode()"
|
|
26
|
+
[editable]="editable()"
|
|
27
|
+
[syncId]="syncId()"
|
|
28
|
+
[crosshair]="syncedCrosshair()"
|
|
29
|
+
[responsive]="!!responsive()"
|
|
30
|
+
(itemClick)="itemClick.emit($event)"
|
|
31
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
32
|
+
(taskChange)="taskChange.emit($event)"
|
|
33
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
34
|
+
(zoomChange)="zoom.set($event)"
|
|
35
|
+
(viewChange)="view.set($event)"
|
|
36
|
+
(selectedChange)="selected.set($event)"
|
|
37
|
+
(highlightedChange)="highlighted.set($event)"
|
|
38
|
+
(syncChange)="sync($event)"
|
|
39
|
+
(measured)="measuredWidth.set($event)"
|
|
32
40
|
></skdx-chart-root>
|
|
33
|
-
`, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
41
|
+
`, 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 }); }
|
|
34
42
|
}
|
|
35
43
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxBarChartComponent, decorators: [{
|
|
36
44
|
type: Component,
|
|
@@ -42,12 +50,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
42
50
|
template: `
|
|
43
51
|
<skdx-chart-root
|
|
44
52
|
[layout]="layout()"
|
|
53
|
+
[options]="options()"
|
|
45
54
|
kind="bar"
|
|
46
55
|
[label]="label() ?? 'Bar chart'"
|
|
56
|
+
[zoomable]="zoomable()"
|
|
57
|
+
[selectionMode]="selectionMode()"
|
|
58
|
+
[editable]="editable()"
|
|
59
|
+
[syncId]="syncId()"
|
|
60
|
+
[crosshair]="syncedCrosshair()"
|
|
61
|
+
[responsive]="!!responsive()"
|
|
62
|
+
(itemClick)="itemClick.emit($event)"
|
|
63
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
64
|
+
(taskChange)="taskChange.emit($event)"
|
|
65
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
66
|
+
(zoomChange)="zoom.set($event)"
|
|
67
|
+
(viewChange)="view.set($event)"
|
|
68
|
+
(selectedChange)="selected.set($event)"
|
|
69
|
+
(highlightedChange)="highlighted.set($event)"
|
|
70
|
+
(syncChange)="sync($event)"
|
|
71
|
+
(measured)="measuredWidth.set($event)"
|
|
47
72
|
></skdx-chart-root>
|
|
48
73
|
`,
|
|
49
74
|
}]
|
|
50
|
-
}]
|
|
75
|
+
}] });
|
|
51
76
|
|
|
52
77
|
/**
|
|
53
78
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skdx-angular-charts-bar.mjs","sources":["../../src/bar/index.ts","../../src/bar/skdx-angular-charts-bar.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
|
|
1
|
+
{"version":3,"file":"skdx-angular-charts-bar.mjs","sources":["../../src/bar/index.ts","../../src/bar/skdx-angular-charts-bar.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 } from '@angular/core';\n\nimport {\n layoutBarChart,\n SkdxChartBase,\n SkdxChartRootComponent,\n} from '@skdx/angular-charts/internal';\n\n/** Grouped, stacked, horizontal or histogram bars; series may also be lines, areas or ranges. */\n@Component({\n selector: 'skdx-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=\"bar\"\n [label]=\"label() ?? '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 SkdxBarChartComponent extends SkdxChartBase {\n protected readonly layout = computed(() => layoutBarChart(this.input()));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAUH;AA+BM,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AA9BxD,IAAA,WAAA,GAAA;;AA+BqB,QAAA,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;mFAAC;AACzE,IAAA;8GAFY,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAzBtB;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAxBS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,QAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FA0BrB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBA9BjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,gBAAgB;AAC1B,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;;;;;;;;;;;;;;;;;;;;;;AAuBT,EAAA,CAAA;AACF,iBAAA;;;AC5CD;;AAEG;;"}
|
|
@@ -7,23 +7,74 @@ import { SkdxSizedBase, layoutBoxplot, SkdxChartRootComponent } from '@skdx/angu
|
|
|
7
7
|
* This file is part of the SkandaDX organization.
|
|
8
8
|
* Licensed under the MIT License. See LICENSE in the repository root.
|
|
9
9
|
*/
|
|
10
|
-
/**
|
|
10
|
+
/** One Tukey box per series over its raw samples. */
|
|
11
11
|
class SkdxBoxplotComponent extends SkdxSizedBase {
|
|
12
12
|
constructor() {
|
|
13
13
|
super(...arguments);
|
|
14
|
+
/** Raw samples, or precomputed summaries. */
|
|
14
15
|
this.series = input.required(/* @ts-ignore */
|
|
15
16
|
...(ngDevMode ? [{ debugName: "series" }] : /* istanbul ignore next */ []));
|
|
16
|
-
this.
|
|
17
|
-
...(ngDevMode ? [{ debugName: "
|
|
17
|
+
this.orientation = input(/* @ts-ignore */
|
|
18
|
+
...(ngDevMode ? [undefined, { debugName: "orientation" }] : /* istanbul ignore next */ []));
|
|
19
|
+
/** How quartiles are taken from a sample. */
|
|
20
|
+
this.quartileMethod = input(/* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [undefined, { debugName: "quartileMethod" }] : /* istanbul ignore next */ []));
|
|
22
|
+
/** Whisker reach as a multiple of the IQR. */
|
|
23
|
+
this.whisker = input(/* @ts-ignore */
|
|
24
|
+
...(ngDevMode ? [undefined, { debugName: "whisker" }] : /* istanbul ignore next */ []));
|
|
25
|
+
/** Mark the mean with a diamond. */
|
|
26
|
+
this.mean = input(false, /* @ts-ignore */
|
|
27
|
+
...(ngDevMode ? [{ debugName: "mean" }] : /* istanbul ignore next */ []));
|
|
28
|
+
/** Draw every observation, jittered. */
|
|
29
|
+
this.points = input(false, /* @ts-ignore */
|
|
30
|
+
...(ngDevMode ? [{ debugName: "points" }] : /* istanbul ignore next */ []));
|
|
31
|
+
/** Notch the box around the median. */
|
|
32
|
+
this.notched = input(false, /* @ts-ignore */
|
|
33
|
+
...(ngDevMode ? [{ debugName: "notched" }] : /* istanbul ignore next */ []));
|
|
34
|
+
/** Groups: one box per series inside each category. */
|
|
35
|
+
this.categories = input(/* @ts-ignore */
|
|
36
|
+
...(ngDevMode ? [undefined, { debugName: "categories" }] : /* istanbul ignore next */ []));
|
|
37
|
+
this.yAxis = input(/* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [undefined, { debugName: "yAxis" }] : /* istanbul ignore next */ []));
|
|
39
|
+
this.layout = computed(() => layoutBoxplot({
|
|
40
|
+
...this.sized(),
|
|
41
|
+
series: this.series(),
|
|
42
|
+
orientation: this.orientation(),
|
|
43
|
+
quartileMethod: this.quartileMethod(),
|
|
44
|
+
whisker: this.whisker(),
|
|
45
|
+
mean: this.mean(),
|
|
46
|
+
points: this.points(),
|
|
47
|
+
notched: this.notched(),
|
|
48
|
+
categories: this.categories(),
|
|
49
|
+
yAxis: this.yAxis(),
|
|
50
|
+
}), /* @ts-ignore */
|
|
51
|
+
...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
18
52
|
}
|
|
19
53
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxBoxplotComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxBoxplotComponent, isStandalone: true, selector: "skdx-boxplot", inputs: { series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
54
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxBoxplotComponent, isStandalone: true, selector: "skdx-boxplot", inputs: { series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, quartileMethod: { classPropertyName: "quartileMethod", publicName: "quartileMethod", isSignal: true, isRequired: false, transformFunction: null }, whisker: { classPropertyName: "whisker", publicName: "whisker", isSignal: true, isRequired: false, transformFunction: null }, mean: { classPropertyName: "mean", publicName: "mean", isSignal: true, isRequired: false, transformFunction: null }, points: { classPropertyName: "points", publicName: "points", isSignal: true, isRequired: false, transformFunction: null }, notched: { classPropertyName: "notched", publicName: "notched", isSignal: true, isRequired: false, transformFunction: null }, categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, yAxis: { classPropertyName: "yAxis", publicName: "yAxis", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
21
55
|
<skdx-chart-root
|
|
22
|
-
[layout]="
|
|
56
|
+
[layout]="layout()"
|
|
57
|
+
[options]="options()"
|
|
23
58
|
kind="boxplot"
|
|
24
59
|
[label]="label() ?? 'Box plot'"
|
|
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)"
|
|
25
76
|
></skdx-chart-root>
|
|
26
|
-
`, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
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 }); }
|
|
27
78
|
}
|
|
28
79
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxBoxplotComponent, decorators: [{
|
|
29
80
|
type: Component,
|
|
@@ -34,13 +85,30 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
|
|
|
34
85
|
imports: [SkdxChartRootComponent],
|
|
35
86
|
template: `
|
|
36
87
|
<skdx-chart-root
|
|
37
|
-
[layout]="
|
|
88
|
+
[layout]="layout()"
|
|
89
|
+
[options]="options()"
|
|
38
90
|
kind="boxplot"
|
|
39
91
|
[label]="label() ?? 'Box plot'"
|
|
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)"
|
|
40
108
|
></skdx-chart-root>
|
|
41
109
|
`,
|
|
42
110
|
}]
|
|
43
|
-
}], propDecorators: { series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }] } });
|
|
111
|
+
}], propDecorators: { series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], quartileMethod: [{ type: i0.Input, args: [{ isSignal: true, alias: "quartileMethod", required: false }] }], whisker: [{ type: i0.Input, args: [{ isSignal: true, alias: "whisker", required: false }] }], mean: [{ type: i0.Input, args: [{ isSignal: true, alias: "mean", required: false }] }], points: [{ type: i0.Input, args: [{ isSignal: true, alias: "points", required: false }] }], notched: [{ type: i0.Input, args: [{ isSignal: true, alias: "notched", required: false }] }], categories: [{ type: i0.Input, args: [{ isSignal: true, alias: "categories", required: false }] }], yAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "yAxis", required: false }] }] } });
|
|
44
112
|
|
|
45
113
|
/**
|
|
46
114
|
* Generated bundle index. Do not edit.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skdx-angular-charts-boxplot.mjs","sources":["../../src/boxplot/index.ts","../../src/boxplot/skdx-angular-charts-boxplot.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 layoutBoxplot,\n
|
|
1
|
+
{"version":3,"file":"skdx-angular-charts-boxplot.mjs","sources":["../../src/boxplot/index.ts","../../src/boxplot/skdx-angular-charts-boxplot.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 layoutBoxplot,\n SkdxChartRootComponent,\n SkdxSizedBase,\n type AxisOptions,\n type BoxplotSeries,\n} from '@skdx/angular-charts/internal';\n\n/** One Tukey box per series over its raw samples. */\n@Component({\n selector: 'skdx-boxplot',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"layout()\"\n [options]=\"options()\"\n kind=\"boxplot\"\n [label]=\"label() ?? 'Box plot'\"\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 SkdxBoxplotComponent extends SkdxSizedBase {\n /** Raw samples, or precomputed summaries. */\n readonly series = input.required<BoxplotSeries[]>();\n readonly orientation = input<'vertical' | 'horizontal'>();\n /** How quartiles are taken from a sample. */\n readonly quartileMethod = input<'linear' | 'exclusive' | 'tukey'>();\n /** Whisker reach as a multiple of the IQR. */\n readonly whisker = input<number>();\n /** Mark the mean with a diamond. */\n readonly mean = input(false);\n /** Draw every observation, jittered. */\n readonly points = input(false);\n /** Notch the box around the median. */\n readonly notched = input(false);\n /** Groups: one box per series inside each category. */\n readonly categories = input<string[]>();\n readonly yAxis = input<AxisOptions>();\n\n protected readonly layout = computed(() =>\n layoutBoxplot({\n ...this.sized(),\n series: this.series(),\n orientation: this.orientation(),\n quartileMethod: this.quartileMethod(),\n whisker: this.whisker(),\n mean: this.mean(),\n points: this.points(),\n notched: this.notched(),\n categories: this.categories(),\n yAxis: this.yAxis(),\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,119 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { SkdxSizedBase, layoutBubbleChart, 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
|
+
/** Three quantities per mark: x, y and a magnitude the bubble's area follows. */
|
|
11
|
+
class SkdxBubbleChartComponent extends SkdxSizedBase {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.series = input.required(/* @ts-ignore */
|
|
15
|
+
...(ngDevMode ? [{ debugName: "series" }] : /* istanbul ignore next */ []));
|
|
16
|
+
/** Smallest and largest bubble radius in pixels. */
|
|
17
|
+
this.sizeRange = input(/* @ts-ignore */
|
|
18
|
+
...(ngDevMode ? [undefined, { debugName: "sizeRange" }] : /* istanbul ignore next */ []));
|
|
19
|
+
/** Write each bubble's label on it. */
|
|
20
|
+
this.labels = input(false, /* @ts-ignore */
|
|
21
|
+
...(ngDevMode ? [{ debugName: "labels" }] : /* istanbul ignore next */ []));
|
|
22
|
+
this.xAxis = input(/* @ts-ignore */
|
|
23
|
+
...(ngDevMode ? [undefined, { debugName: "xAxis" }] : /* istanbul ignore next */ []));
|
|
24
|
+
this.yAxis = input(/* @ts-ignore */
|
|
25
|
+
...(ngDevMode ? [undefined, { debugName: "yAxis" }] : /* istanbul ignore next */ []));
|
|
26
|
+
/** How the magnitude is named and written. */
|
|
27
|
+
this.zAxis = input(/* @ts-ignore */
|
|
28
|
+
...(ngDevMode ? [undefined, { debugName: "zAxis" }] : /* istanbul ignore next */ []));
|
|
29
|
+
this.references = input(/* @ts-ignore */
|
|
30
|
+
...(ngDevMode ? [undefined, { debugName: "references" }] : /* istanbul ignore next */ []));
|
|
31
|
+
this.annotations = input(/* @ts-ignore */
|
|
32
|
+
...(ngDevMode ? [undefined, { debugName: "annotations" }] : /* istanbul ignore next */ []));
|
|
33
|
+
/** Colors bubbles by their `value` (or `z`). */
|
|
34
|
+
this.colorScale = input(/* @ts-ignore */
|
|
35
|
+
...(ngDevMode ? [undefined, { debugName: "colorScale" }] : /* istanbul ignore next */ []));
|
|
36
|
+
/** Draw the color scale under the plot. */
|
|
37
|
+
this.colorLegend = input(false, /* @ts-ignore */
|
|
38
|
+
...(ngDevMode ? [{ debugName: "colorLegend" }] : /* istanbul ignore next */ []));
|
|
39
|
+
this.layout = computed(() => layoutBubbleChart({
|
|
40
|
+
...this.sized(),
|
|
41
|
+
series: this.series(),
|
|
42
|
+
sizeRange: this.sizeRange(),
|
|
43
|
+
labels: this.labels(),
|
|
44
|
+
xAxis: this.xAxis(),
|
|
45
|
+
yAxis: this.yAxis(),
|
|
46
|
+
zAxis: this.zAxis(),
|
|
47
|
+
references: this.references(),
|
|
48
|
+
annotations: this.annotations(),
|
|
49
|
+
colorScale: this.colorScale(),
|
|
50
|
+
colorLegend: this.colorLegend(),
|
|
51
|
+
}), /* @ts-ignore */
|
|
52
|
+
...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
|
|
53
|
+
}
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxBubbleChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxBubbleChartComponent, isStandalone: true, selector: "skdx-bubble-chart", inputs: { series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null }, sizeRange: { classPropertyName: "sizeRange", publicName: "sizeRange", isSignal: true, isRequired: false, transformFunction: null }, labels: { classPropertyName: "labels", publicName: "labels", 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 }, zAxis: { classPropertyName: "zAxis", publicName: "zAxis", 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 }, colorScale: { classPropertyName: "colorScale", publicName: "colorScale", isSignal: true, isRequired: false, transformFunction: null }, colorLegend: { classPropertyName: "colorLegend", publicName: "colorLegend", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
|
|
56
|
+
<skdx-chart-root
|
|
57
|
+
[layout]="layout()"
|
|
58
|
+
[options]="options()"
|
|
59
|
+
kind="bubble"
|
|
60
|
+
[label]="label() ?? 'Bubble chart'"
|
|
61
|
+
[zoomable]="zoomable()"
|
|
62
|
+
[selectionMode]="selectionMode()"
|
|
63
|
+
[editable]="editable()"
|
|
64
|
+
[syncId]="syncId()"
|
|
65
|
+
[crosshair]="syncedCrosshair()"
|
|
66
|
+
[responsive]="!!responsive()"
|
|
67
|
+
(itemClick)="itemClick.emit($event)"
|
|
68
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
69
|
+
(taskChange)="taskChange.emit($event)"
|
|
70
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
71
|
+
(zoomChange)="zoom.set($event)"
|
|
72
|
+
(viewChange)="view.set($event)"
|
|
73
|
+
(selectedChange)="selected.set($event)"
|
|
74
|
+
(highlightedChange)="highlighted.set($event)"
|
|
75
|
+
(syncChange)="sync($event)"
|
|
76
|
+
(measured)="measuredWidth.set($event)"
|
|
77
|
+
></skdx-chart-root>
|
|
78
|
+
`, 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
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxBubbleChartComponent, decorators: [{
|
|
81
|
+
type: Component,
|
|
82
|
+
args: [{
|
|
83
|
+
selector: 'skdx-bubble-chart',
|
|
84
|
+
standalone: true,
|
|
85
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
86
|
+
imports: [SkdxChartRootComponent],
|
|
87
|
+
template: `
|
|
88
|
+
<skdx-chart-root
|
|
89
|
+
[layout]="layout()"
|
|
90
|
+
[options]="options()"
|
|
91
|
+
kind="bubble"
|
|
92
|
+
[label]="label() ?? 'Bubble chart'"
|
|
93
|
+
[zoomable]="zoomable()"
|
|
94
|
+
[selectionMode]="selectionMode()"
|
|
95
|
+
[editable]="editable()"
|
|
96
|
+
[syncId]="syncId()"
|
|
97
|
+
[crosshair]="syncedCrosshair()"
|
|
98
|
+
[responsive]="!!responsive()"
|
|
99
|
+
(itemClick)="itemClick.emit($event)"
|
|
100
|
+
(dataIssue)="dataIssue.emit($event)"
|
|
101
|
+
(taskChange)="taskChange.emit($event)"
|
|
102
|
+
(hiddenSeriesChange)="toggle($event)"
|
|
103
|
+
(zoomChange)="zoom.set($event)"
|
|
104
|
+
(viewChange)="view.set($event)"
|
|
105
|
+
(selectedChange)="selected.set($event)"
|
|
106
|
+
(highlightedChange)="highlighted.set($event)"
|
|
107
|
+
(syncChange)="sync($event)"
|
|
108
|
+
(measured)="measuredWidth.set($event)"
|
|
109
|
+
></skdx-chart-root>
|
|
110
|
+
`,
|
|
111
|
+
}]
|
|
112
|
+
}], propDecorators: { series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }], sizeRange: [{ type: i0.Input, args: [{ isSignal: true, alias: "sizeRange", required: false }] }], labels: [{ type: i0.Input, args: [{ isSignal: true, alias: "labels", required: false }] }], xAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "xAxis", required: false }] }], yAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "yAxis", required: false }] }], zAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "zAxis", required: false }] }], references: [{ type: i0.Input, args: [{ isSignal: true, alias: "references", required: false }] }], annotations: [{ type: i0.Input, args: [{ isSignal: true, alias: "annotations", required: false }] }], colorScale: [{ type: i0.Input, args: [{ isSignal: true, alias: "colorScale", required: false }] }], colorLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "colorLegend", required: false }] }] } });
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Generated bundle index. Do not edit.
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
export { SkdxBubbleChartComponent };
|
|
119
|
+
//# sourceMappingURL=skdx-angular-charts-bubble.mjs.map
|