@skdx/angular-charts 0.1.0

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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +57 -0
  3. package/fesm2022/skdx-angular-charts-area.mjs +48 -0
  4. package/fesm2022/skdx-angular-charts-area.mjs.map +1 -0
  5. package/fesm2022/skdx-angular-charts-bar.mjs +57 -0
  6. package/fesm2022/skdx-angular-charts-bar.mjs.map +1 -0
  7. package/fesm2022/skdx-angular-charts-boxplot.mjs +50 -0
  8. package/fesm2022/skdx-angular-charts-boxplot.mjs.map +1 -0
  9. package/fesm2022/skdx-angular-charts-candlestick.mjs +50 -0
  10. package/fesm2022/skdx-angular-charts-candlestick.mjs.map +1 -0
  11. package/fesm2022/skdx-angular-charts-chord.mjs +53 -0
  12. package/fesm2022/skdx-angular-charts-chord.mjs.map +1 -0
  13. package/fesm2022/skdx-angular-charts-funnel.mjs +50 -0
  14. package/fesm2022/skdx-angular-charts-funnel.mjs.map +1 -0
  15. package/fesm2022/skdx-angular-charts-gantt.mjs +53 -0
  16. package/fesm2022/skdx-angular-charts-gantt.mjs.map +1 -0
  17. package/fesm2022/skdx-angular-charts-heatmap.mjs +56 -0
  18. package/fesm2022/skdx-angular-charts-heatmap.mjs.map +1 -0
  19. package/fesm2022/skdx-angular-charts-internal.mjs +1779 -0
  20. package/fesm2022/skdx-angular-charts-internal.mjs.map +1 -0
  21. package/fesm2022/skdx-angular-charts-line.mjs +48 -0
  22. package/fesm2022/skdx-angular-charts-line.mjs.map +1 -0
  23. package/fesm2022/skdx-angular-charts-map.mjs +45 -0
  24. package/fesm2022/skdx-angular-charts-map.mjs.map +1 -0
  25. package/fesm2022/skdx-angular-charts-pie.mjs +53 -0
  26. package/fesm2022/skdx-angular-charts-pie.mjs.map +1 -0
  27. package/fesm2022/skdx-angular-charts-radar.mjs +53 -0
  28. package/fesm2022/skdx-angular-charts-radar.mjs.map +1 -0
  29. package/fesm2022/skdx-angular-charts-sankey.mjs +50 -0
  30. package/fesm2022/skdx-angular-charts-sankey.mjs.map +1 -0
  31. package/fesm2022/skdx-angular-charts-scatter.mjs +50 -0
  32. package/fesm2022/skdx-angular-charts-scatter.mjs.map +1 -0
  33. package/fesm2022/skdx-angular-charts-sparkline.mjs +52 -0
  34. package/fesm2022/skdx-angular-charts-sparkline.mjs.map +1 -0
  35. package/fesm2022/skdx-angular-charts-sunburst.mjs +50 -0
  36. package/fesm2022/skdx-angular-charts-sunburst.mjs.map +1 -0
  37. package/fesm2022/skdx-angular-charts-treemap.mjs +42 -0
  38. package/fesm2022/skdx-angular-charts-treemap.mjs.map +1 -0
  39. package/fesm2022/skdx-angular-charts-waterfall.mjs +53 -0
  40. package/fesm2022/skdx-angular-charts-waterfall.mjs.map +1 -0
  41. package/fesm2022/skdx-angular-charts.mjs +29 -0
  42. package/fesm2022/skdx-angular-charts.mjs.map +1 -0
  43. package/package.json +115 -0
  44. package/types/skdx-angular-charts-area.d.ts +12 -0
  45. package/types/skdx-angular-charts-bar.d.ts +20 -0
  46. package/types/skdx-angular-charts-boxplot.d.ts +13 -0
  47. package/types/skdx-angular-charts-candlestick.d.ts +13 -0
  48. package/types/skdx-angular-charts-chord.d.ts +15 -0
  49. package/types/skdx-angular-charts-funnel.d.ts +13 -0
  50. package/types/skdx-angular-charts-gantt.d.ts +15 -0
  51. package/types/skdx-angular-charts-heatmap.d.ts +18 -0
  52. package/types/skdx-angular-charts-internal.d.ts +358 -0
  53. package/types/skdx-angular-charts-line.d.ts +12 -0
  54. package/types/skdx-angular-charts-map.d.ts +15 -0
  55. package/types/skdx-angular-charts-pie.d.ts +15 -0
  56. package/types/skdx-angular-charts-radar.d.ts +15 -0
  57. package/types/skdx-angular-charts-sankey.d.ts +13 -0
  58. package/types/skdx-angular-charts-scatter.d.ts +13 -0
  59. package/types/skdx-angular-charts-sparkline.d.ts +14 -0
  60. package/types/skdx-angular-charts-sunburst.d.ts +13 -0
  61. package/types/skdx-angular-charts-treemap.d.ts +13 -0
  62. package/types/skdx-angular-charts-waterfall.d.ts +15 -0
  63. package/types/skdx-angular-charts.d.ts +19 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 SkandaDX
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,57 @@
1
+ # @skdx/angular-charts
2
+
3
+ Eighteen SVG charts for angular. Plain SVG colored by `@skdx/tokens`; load
4
+ `@skdx/tokens/css` once so the colors resolve.
5
+
6
+ ```sh
7
+ pnpm add @skdx/angular-charts @skdx/tokens
8
+ ```
9
+
10
+ ```ts
11
+ import { SkdxBarChartComponent } from '@skdx/angular-charts/bar';
12
+
13
+ @Component({
14
+ imports: [SkdxBarChartComponent],
15
+ template: `<skdx-bar-chart [series]="series" [categories]="['Q1', 'Q2', 'Q3']"></skdx-bar-chart>`,
16
+ })
17
+ export class Sales {
18
+ series = [{ name: 'Sales', data: [3, 5, 2] }];
19
+ }
20
+ ```
21
+
22
+ Every chart takes `width`, `height` and `label` (the accessible name). Bar, line, area and radar
23
+ take `series` (`{ name, data, color? }[]`) and `categories`; bar also takes `stacked`. Pie and
24
+ funnel take `data` (`{ name, value, color? }[]`); pie also takes `innerRadius` (0 to 0.95) for a
25
+ donut. Scatter takes `series` of `[x, y]` pairs. Sparkline takes `data` (`number[]`). Heatmap takes
26
+ `rows`, `columns` and `data` (`number[][]`).
27
+
28
+ Sankey takes `links` (`{ source, target, value }[]`). Treemap takes `data` like pie. Candlestick
29
+ takes `data` as `{ label, open, high, low, close }[]`. Waterfall takes signed `data` deltas and an
30
+ optional `total` label. Gantt takes `tasks` (`{ name, start, end }[]`) and an optional tick
31
+ `format`. Boxplot takes `series` of raw samples. Sunburst takes `data` as a tree of
32
+ `{ name, value?, children? }`. Chord takes `names` and a flow `matrix`. Map takes `features`
33
+ (`{ name, value, geometry }[]` with GeoJSON Polygon or MultiPolygon geometry) and an optional
34
+ `color`.
35
+ Each mark carries a native `<title>` tooltip and a `data-skdx-part` attribute for styling.
36
+
37
+ Every chart is also a secondary entry point (`@skdx/angular-charts/bar`, `/line`, … `/map`), so
38
+ an app bundles only what it imports.
39
+
40
+ ## Options
41
+
42
+ Every chart takes `legend` (a swatch row above the plot, off by default) and `tooltip` (a hover
43
+ tooltip for the mark under the pointer, on by default; the native `<title>` stays regardless).
44
+ Charts scale down with their container while keeping their aspect ratio.
45
+
46
+ | Chart | Option | Effect |
47
+ | --------------------- | ---------------------------- | ---------------------------------------------------------------- |
48
+ | line, area, sparkline | `curve: 'monotone'` | Smooth cubic segments that never overshoot the data |
49
+ | pie | `labels` | Name and share written on each slice |
50
+ | radar | `normalize` | Each series scaled to its own maximum; rings read as percentages |
51
+ | heatmap | `diverging`, `negativeColor` | Split around zero, opacity by distance from zero |
52
+ | waterfall | `total` | Label for a closing bar showing the running total |
53
+ | gantt | `format` | Formats the time ticks, e.g. a timestamp as a date |
54
+ | candlestick | `scale: 'log'` | Logarithmic price axis with ticks at powers of ten |
55
+ | treemap | nested `children` | Branches outlined, children tiled inside |
56
+ | sankey | (always) | Links that would close a cycle are dropped |
57
+ | map | `projection: 'mercator'` | Mercator instead of equirectangular |
@@ -0,0 +1,48 @@
1
+ import * as i0 from '@angular/core';
2
+ import { computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { SkdxChartBase, layoutAreaChart, 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 line chart with each series filled down to the zero baseline. */
11
+ class SkdxAreaChartComponent extends SkdxChartBase {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.layout = computed(() => layoutAreaChart(this.input()), /* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
16
+ }
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxAreaChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
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
+ <skdx-chart-root
20
+ [layout]="layout()"
21
+ kind="area"
22
+ [label]="label() ?? 'Area chart'"
23
+ ></skdx-chart-root>
24
+ `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
25
+ }
26
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxAreaChartComponent, decorators: [{
27
+ type: Component,
28
+ args: [{
29
+ selector: 'skdx-area-chart',
30
+ standalone: true,
31
+ changeDetection: ChangeDetectionStrategy.OnPush,
32
+ imports: [SkdxChartRootComponent],
33
+ template: `
34
+ <skdx-chart-root
35
+ [layout]="layout()"
36
+ kind="area"
37
+ [label]="label() ?? 'Area chart'"
38
+ ></skdx-chart-root>
39
+ `,
40
+ }]
41
+ }] });
42
+
43
+ /**
44
+ * Generated bundle index. Do not edit.
45
+ */
46
+
47
+ export { SkdxAreaChartComponent };
48
+ //# sourceMappingURL=skdx-angular-charts-area.mjs.map
@@ -0,0 +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/** A line chart with each series filled down to the zero baseline. */\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 kind=\"area\"\n [label]=\"label() ?? 'Area chart'\"\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;AAcM,MAAO,sBAAuB,SAAQ,aAAa,CAAA;AAbzD,IAAA,WAAA,GAAA;;AAcqB,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,EARvB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASrB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAblC,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;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;AC3BD;;AAEG;;"}
@@ -0,0 +1,57 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { SkdxChartBase, layoutBarChart, 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
+ /**
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
+ */
17
+ class SkdxBarChartComponent extends SkdxChartBase {
18
+ constructor() {
19
+ super(...arguments);
20
+ /** Stack series on top of each other instead of grouping them side by side. */
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 */
24
+ ...(ngDevMode ? [{ debugName: "layout" }] : /* istanbul ignore next */ []));
25
+ }
26
+ 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: "17.1.0", version: "22.1.4", type: SkdxBarChartComponent, isStandalone: true, selector: "skdx-bar-chart", inputs: { stacked: { classPropertyName: "stacked", publicName: "stacked", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
28
+ <skdx-chart-root
29
+ [layout]="layout()"
30
+ kind="bar"
31
+ [label]="label() ?? 'Bar chart'"
32
+ ></skdx-chart-root>
33
+ `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ }
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxBarChartComponent, decorators: [{
36
+ type: Component,
37
+ args: [{
38
+ selector: 'skdx-bar-chart',
39
+ standalone: true,
40
+ changeDetection: ChangeDetectionStrategy.OnPush,
41
+ imports: [SkdxChartRootComponent],
42
+ template: `
43
+ <skdx-chart-root
44
+ [layout]="layout()"
45
+ kind="bar"
46
+ [label]="label() ?? 'Bar chart'"
47
+ ></skdx-chart-root>
48
+ `,
49
+ }]
50
+ }], propDecorators: { stacked: [{ type: i0.Input, args: [{ isSignal: true, alias: "stacked", required: false }] }] } });
51
+
52
+ /**
53
+ * Generated bundle index. Do not edit.
54
+ */
55
+
56
+ export { SkdxBarChartComponent };
57
+ //# sourceMappingURL=skdx-angular-charts-bar.mjs.map
@@ -0,0 +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, input } from '@angular/core';\n\nimport {\n layoutBarChart,\n SkdxChartBase,\n SkdxChartRootComponent,\n} from '@skdx/angular-charts/internal';\n\n/**\n * Grouped or stacked vertical bars, one per value.\n *\n * ```html\n * <skdx-bar-chart [series]=\"[{ name: 'Sales', data: [3, 5, 2] }]\" [categories]=\"['Q1', 'Q2', 'Q3']\"></skdx-bar-chart>\n * ```\n */\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 kind=\"bar\"\n [label]=\"label() ?? 'Bar chart'\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxBarChartComponent extends SkdxChartBase {\n /** Stack series on top of each other instead of grouping them side by side. */\n readonly stacked = input(false);\n\n protected readonly layout = computed(() =>\n layoutBarChart({ ...this.input(), stacked: this.stacked() }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAUH;;;;;;AAMG;AAcG,MAAO,qBAAsB,SAAQ,aAAa,CAAA;AAbxD,IAAA,WAAA,GAAA;;;QAeW,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,KAAK;oFAAC;QAEZ,IAAA,CAAA,MAAM,GAAG,QAAQ,CAAC,MACnC,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;mFAC7D;AACF,IAAA;8GAPY,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,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARtB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASrB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAbjC,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;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;ACjCD;;AAEG;;"}
@@ -0,0 +1,50 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { SkdxSizedBase, layoutBoxplot, 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
+ /** Quartile boxes with Tukey whiskers and outliers, one per series. */
11
+ class SkdxBoxplotComponent extends SkdxSizedBase {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.series = input.required(/* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "series" }] : /* istanbul ignore next */ []));
16
+ this.l = computed(() => layoutBoxplot({ ...this.sized(), series: this.series() }), /* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "l" }] : /* istanbul ignore next */ []));
18
+ }
19
+ 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: `
21
+ <skdx-chart-root
22
+ [layout]="l()"
23
+ kind="boxplot"
24
+ [label]="label() ?? 'Box plot'"
25
+ ></skdx-chart-root>
26
+ `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxBoxplotComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'skdx-boxplot',
32
+ standalone: true,
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ imports: [SkdxChartRootComponent],
35
+ template: `
36
+ <skdx-chart-root
37
+ [layout]="l()"
38
+ kind="boxplot"
39
+ [label]="label() ?? 'Box plot'"
40
+ ></skdx-chart-root>
41
+ `,
42
+ }]
43
+ }], propDecorators: { series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }] } });
44
+
45
+ /**
46
+ * Generated bundle index. Do not edit.
47
+ */
48
+
49
+ export { SkdxBoxplotComponent };
50
+ //# sourceMappingURL=skdx-angular-charts-boxplot.mjs.map
@@ -0,0 +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 type Series,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** Quartile boxes with Tukey whiskers and outliers, one per series. */\n@Component({\n selector: 'skdx-boxplot',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"l()\"\n kind=\"boxplot\"\n [label]=\"label() ?? 'Box plot'\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxBoxplotComponent extends SkdxSizedBase {\n readonly series = input.required<Series[]>();\n\n protected readonly l = computed(() => layoutBoxplot({ ...this.sized(), series: this.series() }));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAWH;AAcM,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AAbvD,IAAA,WAAA,GAAA;;QAcW,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ;mFAAY;QAEzB,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;8EAAC;AACjG,IAAA;8GAJY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARrB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAbhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;AC5BD;;AAEG;;"}
@@ -0,0 +1,50 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { SkdxSizedBase, layoutCandlestick, 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
+ /** Open/high/low/close candles, green when closing higher. */
11
+ class SkdxCandlestickChartComponent extends SkdxSizedBase {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.data = input.required(/* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
16
+ this.l = computed(() => layoutCandlestick({ ...this.sized(), data: this.data() }), /* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "l" }] : /* istanbul ignore next */ []));
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxCandlestickChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxCandlestickChartComponent, isStandalone: true, selector: "skdx-candlestick-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
21
+ <skdx-chart-root
22
+ [layout]="l()"
23
+ kind="candlestick"
24
+ [label]="label() ?? 'Candlestick chart'"
25
+ ></skdx-chart-root>
26
+ `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxCandlestickChartComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'skdx-candlestick-chart',
32
+ standalone: true,
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ imports: [SkdxChartRootComponent],
35
+ template: `
36
+ <skdx-chart-root
37
+ [layout]="l()"
38
+ kind="candlestick"
39
+ [label]="label() ?? 'Candlestick chart'"
40
+ ></skdx-chart-root>
41
+ `,
42
+ }]
43
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }] } });
44
+
45
+ /**
46
+ * Generated bundle index. Do not edit.
47
+ */
48
+
49
+ export { SkdxCandlestickChartComponent };
50
+ //# sourceMappingURL=skdx-angular-charts-candlestick.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skdx-angular-charts-candlestick.mjs","sources":["../../src/candlestick/index.ts","../../src/candlestick/skdx-angular-charts-candlestick.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 type Candle,\n layoutCandlestick,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** Open/high/low/close candles, green when closing higher. */\n@Component({\n selector: 'skdx-candlestick-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"l()\"\n kind=\"candlestick\"\n [label]=\"label() ?? 'Candlestick chart'\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxCandlestickChartComponent extends SkdxSizedBase {\n readonly data = input.required<Candle[]>();\n\n protected readonly l = computed(() => layoutCandlestick({ ...this.sized(), data: this.data() }));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAWH;AAcM,MAAO,6BAA8B,SAAQ,aAAa,CAAA;AAbhE,IAAA,WAAA,GAAA;;QAcW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAY;QAEvB,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;8EAAC;AACjG,IAAA;8GAJY,6BAA6B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAR9B;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASrB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAbzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,wBAAwB;AAClC,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;AC5BD;;AAEG;;"}
@@ -0,0 +1,53 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { SkdxSizedBase, layoutChord, 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
+ /** Ribbons between groups sized by the flow matrix. */
11
+ class SkdxChordChartComponent extends SkdxSizedBase {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.names = input.required(/* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "names" }] : /* istanbul ignore next */ []));
16
+ /** `matrix[i][j]` is the flow from `i` to `j`. */
17
+ this.matrix = input.required(/* @ts-ignore */
18
+ ...(ngDevMode ? [{ debugName: "matrix" }] : /* istanbul ignore next */ []));
19
+ this.l = computed(() => layoutChord({ ...this.sized(), names: this.names(), matrix: this.matrix() }), /* @ts-ignore */
20
+ ...(ngDevMode ? [{ debugName: "l" }] : /* istanbul ignore next */ []));
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxChordChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxChordChartComponent, isStandalone: true, selector: "skdx-chord-chart", inputs: { names: { classPropertyName: "names", publicName: "names", isSignal: true, isRequired: true, transformFunction: null }, matrix: { classPropertyName: "matrix", publicName: "matrix", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
24
+ <skdx-chart-root
25
+ [layout]="l()"
26
+ kind="chord"
27
+ [label]="label() ?? 'Chord chart'"
28
+ ></skdx-chart-root>
29
+ `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxChordChartComponent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ selector: 'skdx-chord-chart',
35
+ standalone: true,
36
+ changeDetection: ChangeDetectionStrategy.OnPush,
37
+ imports: [SkdxChartRootComponent],
38
+ template: `
39
+ <skdx-chart-root
40
+ [layout]="l()"
41
+ kind="chord"
42
+ [label]="label() ?? 'Chord chart'"
43
+ ></skdx-chart-root>
44
+ `,
45
+ }]
46
+ }], propDecorators: { names: [{ type: i0.Input, args: [{ isSignal: true, alias: "names", required: true }] }], matrix: [{ type: i0.Input, args: [{ isSignal: true, alias: "matrix", required: true }] }] } });
47
+
48
+ /**
49
+ * Generated bundle index. Do not edit.
50
+ */
51
+
52
+ export { SkdxChordChartComponent };
53
+ //# sourceMappingURL=skdx-angular-charts-chord.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skdx-angular-charts-chord.mjs","sources":["../../src/chord/index.ts","../../src/chord/skdx-angular-charts-chord.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 { layoutChord, SkdxChartRootComponent, SkdxSizedBase } from '@skdx/angular-charts/internal';\n\n/** Ribbons between groups sized by the flow matrix. */\n@Component({\n selector: 'skdx-chord-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"l()\"\n kind=\"chord\"\n [label]=\"label() ?? 'Chord chart'\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxChordChartComponent extends SkdxSizedBase {\n readonly names = input.required<string[]>();\n /** `matrix[i][j]` is the flow from `i` to `j`. */\n readonly matrix = input.required<number[][]>();\n\n protected readonly l = computed(() =>\n layoutChord({ ...this.sized(), names: this.names(), matrix: this.matrix() }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAMH;AAcM,MAAO,uBAAwB,SAAQ,aAAa,CAAA;AAb1D,IAAA,WAAA,GAAA;;QAcW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAY;;QAElC,IAAA,CAAA,MAAM,GAAG,KAAK,CAAC,QAAQ;mFAAc;AAE3B,QAAA,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAC9B,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;8EAC7E;AACF,IAAA;8GARY,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARxB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASrB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAbnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;ACvBD;;AAEG;;"}
@@ -0,0 +1,50 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { SkdxSizedBase, layoutFunnelChart, 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
+ /** Centered stages, each narrowing toward the next, labelled in place. */
11
+ class SkdxFunnelChartComponent extends SkdxSizedBase {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.data = input.required(/* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
16
+ this.l = computed(() => layoutFunnelChart({ ...this.sized(), data: this.data() }), /* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "l" }] : /* istanbul ignore next */ []));
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxFunnelChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxFunnelChartComponent, isStandalone: true, selector: "skdx-funnel-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
21
+ <skdx-chart-root
22
+ [layout]="l()"
23
+ kind="funnel"
24
+ [label]="label() ?? 'Funnel chart'"
25
+ ></skdx-chart-root>
26
+ `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ }
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxFunnelChartComponent, decorators: [{
29
+ type: Component,
30
+ args: [{
31
+ selector: 'skdx-funnel-chart',
32
+ standalone: true,
33
+ changeDetection: ChangeDetectionStrategy.OnPush,
34
+ imports: [SkdxChartRootComponent],
35
+ template: `
36
+ <skdx-chart-root
37
+ [layout]="l()"
38
+ kind="funnel"
39
+ [label]="label() ?? 'Funnel chart'"
40
+ ></skdx-chart-root>
41
+ `,
42
+ }]
43
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }] } });
44
+
45
+ /**
46
+ * Generated bundle index. Do not edit.
47
+ */
48
+
49
+ export { SkdxFunnelChartComponent };
50
+ //# sourceMappingURL=skdx-angular-charts-funnel.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skdx-angular-charts-funnel.mjs","sources":["../../src/funnel/index.ts","../../src/funnel/skdx-angular-charts-funnel.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 type Datum,\n layoutFunnelChart,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** Centered stages, each narrowing toward the next, labelled in place. */\n@Component({\n selector: 'skdx-funnel-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"l()\"\n kind=\"funnel\"\n [label]=\"label() ?? 'Funnel chart'\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxFunnelChartComponent extends SkdxSizedBase {\n readonly data = input.required<Datum[]>();\n\n protected readonly l = computed(() => layoutFunnelChart({ ...this.sized(), data: this.data() }));\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAWH;AAcM,MAAO,wBAAyB,SAAQ,aAAa,CAAA;AAb3D,IAAA,WAAA,GAAA;;QAcW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAW;QAEtB,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAAM,iBAAiB,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;8EAAC;AACjG,IAAA;8GAJY,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARzB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASrB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;AC5BD;;AAEG;;"}
@@ -0,0 +1,53 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { SkdxSizedBase, layoutGantt, 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
+ /** One bar per task on a numeric time axis. */
11
+ class SkdxGanttChartComponent extends SkdxSizedBase {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.tasks = input.required(/* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "tasks" }] : /* istanbul ignore next */ []));
16
+ /** Formats the x-axis ticks, e.g. a timestamp as a date. */
17
+ this.format = input(/* @ts-ignore */
18
+ ...(ngDevMode ? [undefined, { debugName: "format" }] : /* istanbul ignore next */ []));
19
+ this.l = computed(() => layoutGantt({ ...this.sized(), tasks: this.tasks(), format: this.format() }), /* @ts-ignore */
20
+ ...(ngDevMode ? [{ debugName: "l" }] : /* istanbul ignore next */ []));
21
+ }
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxGanttChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
23
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxGanttChartComponent, isStandalone: true, selector: "skdx-gantt-chart", inputs: { tasks: { classPropertyName: "tasks", publicName: "tasks", isSignal: true, isRequired: true, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
24
+ <skdx-chart-root
25
+ [layout]="l()"
26
+ kind="gantt"
27
+ [label]="label() ?? 'Gantt chart'"
28
+ ></skdx-chart-root>
29
+ `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxGanttChartComponent, decorators: [{
32
+ type: Component,
33
+ args: [{
34
+ selector: 'skdx-gantt-chart',
35
+ standalone: true,
36
+ changeDetection: ChangeDetectionStrategy.OnPush,
37
+ imports: [SkdxChartRootComponent],
38
+ template: `
39
+ <skdx-chart-root
40
+ [layout]="l()"
41
+ kind="gantt"
42
+ [label]="label() ?? 'Gantt chart'"
43
+ ></skdx-chart-root>
44
+ `,
45
+ }]
46
+ }], propDecorators: { tasks: [{ type: i0.Input, args: [{ isSignal: true, alias: "tasks", required: true }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }] } });
47
+
48
+ /**
49
+ * Generated bundle index. Do not edit.
50
+ */
51
+
52
+ export { SkdxGanttChartComponent };
53
+ //# sourceMappingURL=skdx-angular-charts-gantt.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skdx-angular-charts-gantt.mjs","sources":["../../src/gantt/index.ts","../../src/gantt/skdx-angular-charts-gantt.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 type GanttTask,\n layoutGantt,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** One bar per task on a numeric time axis. */\n@Component({\n selector: 'skdx-gantt-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"l()\"\n kind=\"gantt\"\n [label]=\"label() ?? 'Gantt chart'\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxGanttChartComponent extends SkdxSizedBase {\n readonly tasks = input.required<GanttTask[]>();\n /** Formats the x-axis ticks, e.g. a timestamp as a date. */\n readonly format = input<(value: number) => string>();\n\n protected readonly l = computed(() =>\n layoutGantt({ ...this.sized(), tasks: this.tasks(), format: this.format() }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAWH;AAcM,MAAO,uBAAwB,SAAQ,aAAa,CAAA;AAb1D,IAAA,WAAA,GAAA;;QAcW,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,QAAQ;kFAAe;;AAErC,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK;8FAA6B;AAEjC,QAAA,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAC9B,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;8EAC7E;AACF,IAAA;8GARY,uBAAuB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EARxB;;;;;;AAMT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAPS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FASrB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAbnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;;;;;AAMT,EAAA,CAAA;AACF,iBAAA;;;AC5BD;;AAEG;;"}
@@ -0,0 +1,56 @@
1
+ import * as i0 from '@angular/core';
2
+ import { input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
3
+ import { SkdxSizedBase, layoutHeatmap, 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 grid of cells whose opacity follows the value. */
11
+ class SkdxHeatmapComponent extends SkdxSizedBase {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.rows = input.required(/* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "rows" }] : /* istanbul ignore next */ []));
16
+ this.columns = input.required(/* @ts-ignore */
17
+ ...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
18
+ /** `data[row][column]`. */
19
+ this.data = input.required(/* @ts-ignore */
20
+ ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
21
+ /** The cell color; each cell's opacity follows its value. */
22
+ this.color = input(/* @ts-ignore */
23
+ ...(ngDevMode ? [undefined, { debugName: "color" }] : /* istanbul ignore next */ []));
24
+ this.l = computed(() => layoutHeatmap({
25
+ ...this.sized(),
26
+ rows: this.rows(),
27
+ columns: this.columns(),
28
+ data: this.data(),
29
+ color: this.color(),
30
+ }), /* @ts-ignore */
31
+ ...(ngDevMode ? [{ debugName: "l" }] : /* istanbul ignore next */ []));
32
+ }
33
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxHeatmapComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
34
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxHeatmapComponent, isStandalone: true, selector: "skdx-heatmap", inputs: { rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: true, transformFunction: null }, columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
35
+ <skdx-chart-root [layout]="l()" kind="heatmap" [label]="label() ?? 'Heatmap'"></skdx-chart-root>
36
+ `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxHeatmapComponent, decorators: [{
39
+ type: Component,
40
+ args: [{
41
+ selector: 'skdx-heatmap',
42
+ standalone: true,
43
+ changeDetection: ChangeDetectionStrategy.OnPush,
44
+ imports: [SkdxChartRootComponent],
45
+ template: `
46
+ <skdx-chart-root [layout]="l()" kind="heatmap" [label]="label() ?? 'Heatmap'"></skdx-chart-root>
47
+ `,
48
+ }]
49
+ }], propDecorators: { rows: [{ type: i0.Input, args: [{ isSignal: true, alias: "rows", required: true }] }], columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: true }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }] } });
50
+
51
+ /**
52
+ * Generated bundle index. Do not edit.
53
+ */
54
+
55
+ export { SkdxHeatmapComponent };
56
+ //# sourceMappingURL=skdx-angular-charts-heatmap.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skdx-angular-charts-heatmap.mjs","sources":["../../src/heatmap/index.ts","../../src/heatmap/skdx-angular-charts-heatmap.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 layoutHeatmap,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** A grid of cells whose opacity follows the value. */\n@Component({\n selector: 'skdx-heatmap',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root [layout]=\"l()\" kind=\"heatmap\" [label]=\"label() ?? 'Heatmap'\"></skdx-chart-root>\n `,\n})\nexport class SkdxHeatmapComponent extends SkdxSizedBase {\n readonly rows = input.required<string[]>();\n readonly columns = input.required<string[]>();\n /** `data[row][column]`. */\n readonly data = input.required<number[][]>();\n /** The cell color; each cell's opacity follows its value. */\n readonly color = input<string>();\n\n protected readonly l = computed(() =>\n layoutHeatmap({\n ...this.sized(),\n rows: this.rows(),\n columns: this.columns(),\n data: this.data(),\n color: this.color(),\n }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAUH;AAUM,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AATvD,IAAA,WAAA,GAAA;;QAUW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAY;QACjC,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,QAAQ;oFAAY;;QAEpC,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAc;;AAEnC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;6FAAU;AAEb,QAAA,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAC9B,aAAa,CAAC;YACZ,GAAG,IAAI,CAAC,KAAK,EAAE;AACf,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;AACvB,YAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;AACjB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE;SACpB,CAAC;8EACH;AACF,IAAA;8GAjBY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAJrB;;AAET,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAHS,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAKrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAThC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;AAET,EAAA,CAAA;AACF,iBAAA;;;ACvBD;;AAEG;;"}