@skdx/angular-charts 0.32.0 → 0.33.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 (51) hide show
  1. package/fesm2022/skdx-angular-charts-area.mjs +14 -32
  2. package/fesm2022/skdx-angular-charts-area.mjs.map +1 -1
  3. package/fesm2022/skdx-angular-charts-bar.mjs +14 -38
  4. package/fesm2022/skdx-angular-charts-bar.mjs.map +1 -1
  5. package/fesm2022/skdx-angular-charts-boxplot.mjs +10 -10
  6. package/fesm2022/skdx-angular-charts-boxplot.mjs.map +1 -1
  7. package/fesm2022/skdx-angular-charts-candlestick.mjs +10 -10
  8. package/fesm2022/skdx-angular-charts-candlestick.mjs.map +1 -1
  9. package/fesm2022/skdx-angular-charts-chord.mjs +10 -10
  10. package/fesm2022/skdx-angular-charts-chord.mjs.map +1 -1
  11. package/fesm2022/skdx-angular-charts-funnel.mjs +11 -43
  12. package/fesm2022/skdx-angular-charts-funnel.mjs.map +1 -1
  13. package/fesm2022/skdx-angular-charts-gantt.mjs +10 -10
  14. package/fesm2022/skdx-angular-charts-gantt.mjs.map +1 -1
  15. package/fesm2022/skdx-angular-charts-heatmap.mjs +4 -69
  16. package/fesm2022/skdx-angular-charts-heatmap.mjs.map +1 -1
  17. package/fesm2022/skdx-angular-charts-internal.mjs +235 -411
  18. package/fesm2022/skdx-angular-charts-internal.mjs.map +1 -1
  19. package/fesm2022/skdx-angular-charts-line.mjs +13 -15
  20. package/fesm2022/skdx-angular-charts-line.mjs.map +1 -1
  21. package/fesm2022/skdx-angular-charts-map.mjs +2 -8
  22. package/fesm2022/skdx-angular-charts-map.mjs.map +1 -1
  23. package/fesm2022/skdx-angular-charts-pie.mjs +11 -21
  24. package/fesm2022/skdx-angular-charts-pie.mjs.map +1 -1
  25. package/fesm2022/skdx-angular-charts-radar.mjs +14 -77
  26. package/fesm2022/skdx-angular-charts-radar.mjs.map +1 -1
  27. package/fesm2022/skdx-angular-charts-sankey.mjs +10 -10
  28. package/fesm2022/skdx-angular-charts-sankey.mjs.map +1 -1
  29. package/fesm2022/skdx-angular-charts-scatter.mjs +13 -15
  30. package/fesm2022/skdx-angular-charts-scatter.mjs.map +1 -1
  31. package/fesm2022/skdx-angular-charts-sparkline.mjs +11 -55
  32. package/fesm2022/skdx-angular-charts-sparkline.mjs.map +1 -1
  33. package/fesm2022/skdx-angular-charts-sunburst.mjs +10 -10
  34. package/fesm2022/skdx-angular-charts-sunburst.mjs.map +1 -1
  35. package/fesm2022/skdx-angular-charts-treemap.mjs +2 -10
  36. package/fesm2022/skdx-angular-charts-treemap.mjs.map +1 -1
  37. package/fesm2022/skdx-angular-charts-waterfall.mjs +10 -10
  38. package/fesm2022/skdx-angular-charts-waterfall.mjs.map +1 -1
  39. package/fesm2022/skdx-angular-charts.mjs.map +1 -1
  40. package/package.json +2 -11
  41. package/types/skdx-angular-charts-area.d.ts +1 -1
  42. package/types/skdx-angular-charts-bar.d.ts +1 -1
  43. package/types/skdx-angular-charts-funnel.d.ts +1 -1
  44. package/types/skdx-angular-charts-heatmap.d.ts +1 -8
  45. package/types/skdx-angular-charts-internal.d.ts +26 -200
  46. package/types/skdx-angular-charts-line.d.ts +1 -1
  47. package/types/skdx-angular-charts-pie.d.ts +1 -1
  48. package/types/skdx-angular-charts-radar.d.ts +1 -8
  49. package/types/skdx-angular-charts-scatter.d.ts +1 -1
  50. package/types/skdx-angular-charts-sparkline.d.ts +1 -1
  51. package/types/skdx-angular-charts.d.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"skdx-angular-charts-sunburst.mjs","sources":["../../src/sunburst/sunburst-chart.component.ts","../../src/sunburst/index.ts","../../src/sunburst/skdx-angular-charts-sunburst.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 layoutSunburst,\n type TreeNode,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** Nested rings, one per tree depth, children within their parent span. */\n@Component({\n selector: 'skdx-sunburst-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root [layout]=\"l()\" kind=\"sunburst\" [label]=\"label() ?? 'Sunburst chart'\">\n </skdx-chart-root>\n `,\n})\nexport class SkdxSunburstChartComponent extends SkdxSizedBase {\n readonly data = input.required<TreeNode[]>();\n\n protected readonly l = computed(() => layoutSunburst({ ...this.sized(), data: this.data() }));\n}\n","/*\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\nexport { SkdxSunburstChartComponent } from './sunburst-chart.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAWH;AAWM,MAAO,0BAA2B,SAAQ,aAAa,CAAA;AAV7D,IAAA,WAAA,GAAA;;QAWW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAc;QAEzB,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;8EAAC;AAC9F,IAAA;8GAJY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,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,EAL3B;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAJS,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;;2FAMrB,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAVtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;;AAGT,EAAA,CAAA;AACF,iBAAA;;;ACzBD;;;;AAIG;;ACJH;;AAEG;;"}
1
+ {"version":3,"file":"skdx-angular-charts-sunburst.mjs","sources":["../../src/sunburst/index.ts","../../src/sunburst/skdx-angular-charts-sunburst.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 layoutSunburst,\n SkdxChartRootComponent,\n SkdxSizedBase,\n type TreeNode,\n} from '@skdx/angular-charts/internal';\n\n/** Nested rings, one per tree depth, children within their parent span. */\n@Component({\n selector: 'skdx-sunburst-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"l()\"\n kind=\"sunburst\"\n [label]=\"label() ?? 'Sunburst chart'\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxSunburstChartComponent extends SkdxSizedBase {\n readonly data = input.required<TreeNode[]>();\n\n protected readonly l = computed(() => layoutSunburst({ ...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,0BAA2B,SAAQ,aAAa,CAAA;AAb7D,IAAA,WAAA,GAAA;;QAcW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAc;QAEzB,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAAM,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;8EAAC;AAC9F,IAAA;8GAJY,0BAA0B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,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,EAR3B;;;;;;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,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAbtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,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;;"}
@@ -18,8 +18,7 @@ class SkdxTreemapComponent extends SkdxSizedBase {
18
18
  }
19
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxTreemapComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
20
20
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxTreemapComponent, isStandalone: true, selector: "skdx-treemap", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
21
- <skdx-chart-root [layout]="l()" kind="treemap" [label]="label() ?? 'Treemap'">
22
- </skdx-chart-root>
21
+ <skdx-chart-root [layout]="l()" kind="treemap" [label]="label() ?? 'Treemap'"></skdx-chart-root>
23
22
  `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
23
  }
25
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxTreemapComponent, decorators: [{
@@ -30,18 +29,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
30
29
  changeDetection: ChangeDetectionStrategy.OnPush,
31
30
  imports: [SkdxChartRootComponent],
32
31
  template: `
33
- <skdx-chart-root [layout]="l()" kind="treemap" [label]="label() ?? 'Treemap'">
34
- </skdx-chart-root>
32
+ <skdx-chart-root [layout]="l()" kind="treemap" [label]="label() ?? 'Treemap'"></skdx-chart-root>
35
33
  `,
36
34
  }]
37
35
  }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }] } });
38
36
 
39
- /*
40
- * Copyright (c) 2026 SkandaDX
41
- * This file is part of the SkandaDX organization.
42
- * Licensed under the MIT License. See LICENSE in the repository root.
43
- */
44
-
45
37
  /**
46
38
  * Generated bundle index. Do not edit.
47
39
  */
@@ -1 +1 @@
1
- {"version":3,"file":"skdx-angular-charts-treemap.mjs","sources":["../../src/treemap/treemap.component.ts","../../src/treemap/index.ts","../../src/treemap/skdx-angular-charts-treemap.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 layoutTreemap,\n type Datum,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** Squarified tiles, one per datum, sized by value. */\n@Component({\n selector: 'skdx-treemap',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root [layout]=\"l()\" kind=\"treemap\" [label]=\"label() ?? 'Treemap'\">\n </skdx-chart-root>\n `,\n})\nexport class SkdxTreemapComponent extends SkdxSizedBase {\n readonly data = input.required<Datum[]>();\n\n protected readonly l = computed(() => layoutTreemap({ ...this.sized(), data: this.data() }));\n}\n","/*\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\nexport { SkdxTreemapComponent } from './treemap.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAWH;AAWM,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AAVvD,IAAA,WAAA,GAAA;;QAWW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAW;QAEtB,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;8EAAC;AAC7F,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,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,EALrB;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAJS,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;;2FAMrB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAVhC,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;;;AAGT,EAAA,CAAA;AACF,iBAAA;;;ACzBD;;;;AAIG;;ACJH;;AAEG;;"}
1
+ {"version":3,"file":"skdx-angular-charts-treemap.mjs","sources":["../../src/treemap/index.ts","../../src/treemap/skdx-angular-charts-treemap.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 layoutTreemap,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** Squarified tiles, one per datum, sized by value. */\n@Component({\n selector: 'skdx-treemap',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root [layout]=\"l()\" kind=\"treemap\" [label]=\"label() ?? 'Treemap'\"></skdx-chart-root>\n `,\n})\nexport class SkdxTreemapComponent extends SkdxSizedBase {\n readonly data = input.required<Datum[]>();\n\n protected readonly l = computed(() => layoutTreemap({ ...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;AAUM,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AATvD,IAAA,WAAA,GAAA;;QAUW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAW;QAEtB,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAAM,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;8EAAC;AAC7F,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,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,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;;;ACxBD;;AAEG;;"}
@@ -21,8 +21,11 @@ class SkdxWaterfallChartComponent extends SkdxSizedBase {
21
21
  }
22
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxWaterfallChartComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
23
23
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.4", type: SkdxWaterfallChartComponent, isStandalone: true, selector: "skdx-waterfall-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, total: { classPropertyName: "total", publicName: "total", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `
24
- <skdx-chart-root [layout]="l()" kind="waterfall" [label]="label() ?? 'Waterfall chart'">
25
- </skdx-chart-root>
24
+ <skdx-chart-root
25
+ [layout]="l()"
26
+ kind="waterfall"
27
+ [label]="label() ?? 'Waterfall chart'"
28
+ ></skdx-chart-root>
26
29
  `, isInline: true, dependencies: [{ kind: "component", type: SkdxChartRootComponent, selector: "skdx-chart-root", inputs: ["layout", "kind", "label"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
30
  }
28
31
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: SkdxWaterfallChartComponent, decorators: [{
@@ -33,18 +36,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImpor
33
36
  changeDetection: ChangeDetectionStrategy.OnPush,
34
37
  imports: [SkdxChartRootComponent],
35
38
  template: `
36
- <skdx-chart-root [layout]="l()" kind="waterfall" [label]="label() ?? 'Waterfall chart'">
37
- </skdx-chart-root>
39
+ <skdx-chart-root
40
+ [layout]="l()"
41
+ kind="waterfall"
42
+ [label]="label() ?? 'Waterfall chart'"
43
+ ></skdx-chart-root>
38
44
  `,
39
45
  }]
40
46
  }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], total: [{ type: i0.Input, args: [{ isSignal: true, alias: "total", required: false }] }] } });
41
47
 
42
- /*
43
- * Copyright (c) 2026 SkandaDX
44
- * This file is part of the SkandaDX organization.
45
- * Licensed under the MIT License. See LICENSE in the repository root.
46
- */
47
-
48
48
  /**
49
49
  * Generated bundle index. Do not edit.
50
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"skdx-angular-charts-waterfall.mjs","sources":["../../src/waterfall/waterfall-chart.component.ts","../../src/waterfall/index.ts","../../src/waterfall/skdx-angular-charts-waterfall.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 layoutWaterfall,\n type Datum,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** Signed deltas stacked on a running total. */\n@Component({\n selector: 'skdx-waterfall-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root [layout]=\"l()\" kind=\"waterfall\" [label]=\"label() ?? 'Waterfall chart'\">\n </skdx-chart-root>\n `,\n})\nexport class SkdxWaterfallChartComponent extends SkdxSizedBase {\n readonly data = input.required<Datum[]>();\n /** Label of a final bar showing the running total. */\n readonly total = input<string>();\n\n protected readonly l = computed(() =>\n layoutWaterfall({ ...this.sized(), data: this.data(), total: this.total() }),\n );\n}\n","/*\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\nexport { SkdxWaterfallChartComponent } from './waterfall-chart.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAWH;AAWM,MAAO,2BAA4B,SAAQ,aAAa,CAAA;AAV9D,IAAA,WAAA,GAAA;;QAWW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAW;;AAEhC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;6FAAU;AAEb,QAAA,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAC9B,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;8EAC7E;AACF,IAAA;8GARY,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,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,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,EAL5B;;;AAGT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAJS,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;;2FAMrB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAVvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,UAAU,EAAE,IAAI;oBAChB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACjC,oBAAA,QAAQ,EAAE;;;AAGT,EAAA,CAAA;AACF,iBAAA;;;ACzBD;;;;AAIG;;ACJH;;AAEG;;"}
1
+ {"version":3,"file":"skdx-angular-charts-waterfall.mjs","sources":["../../src/waterfall/index.ts","../../src/waterfall/skdx-angular-charts-waterfall.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 layoutWaterfall,\n SkdxChartRootComponent,\n SkdxSizedBase,\n} from '@skdx/angular-charts/internal';\n\n/** Signed deltas stacked on a running total. */\n@Component({\n selector: 'skdx-waterfall-chart',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkdxChartRootComponent],\n template: `\n <skdx-chart-root\n [layout]=\"l()\"\n kind=\"waterfall\"\n [label]=\"label() ?? 'Waterfall chart'\"\n ></skdx-chart-root>\n `,\n})\nexport class SkdxWaterfallChartComponent extends SkdxSizedBase {\n readonly data = input.required<Datum[]>();\n /** Label of a final bar showing the running total. */\n readonly total = input<string>();\n\n protected readonly l = computed(() =>\n layoutWaterfall({ ...this.sized(), data: this.data(), total: this.total() }),\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;AAIG;AAWH;AAcM,MAAO,2BAA4B,SAAQ,aAAa,CAAA;AAb9D,IAAA,WAAA,GAAA;;QAcW,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ;iFAAW;;AAEhC,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;6FAAU;AAEb,QAAA,IAAA,CAAA,CAAC,GAAG,QAAQ,CAAC,MAC9B,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;8EAC7E;AACF,IAAA;8GARY,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,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,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,EAR5B;;;;;;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,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAbvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,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;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"skdx-angular-charts.mjs","sources":["../../src/public-api.ts","../../src/skdx-angular-charts.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\nexport { SkdxBarChartComponent } from '@skdx/angular-charts/bar';\nexport { SkdxLineChartComponent } from '@skdx/angular-charts/line';\nexport { SkdxAreaChartComponent } from '@skdx/angular-charts/area';\nexport { SkdxPieChartComponent } from '@skdx/angular-charts/pie';\nexport { SkdxScatterChartComponent } from '@skdx/angular-charts/scatter';\nexport { SkdxSparklineComponent } from '@skdx/angular-charts/sparkline';\nexport { SkdxRadarChartComponent } from '@skdx/angular-charts/radar';\nexport { SkdxHeatmapComponent } from '@skdx/angular-charts/heatmap';\nexport { SkdxFunnelChartComponent } from '@skdx/angular-charts/funnel';\nexport { SkdxSankeyChartComponent } from '@skdx/angular-charts/sankey';\nexport { SkdxTreemapComponent } from '@skdx/angular-charts/treemap';\nexport { SkdxCandlestickChartComponent } from '@skdx/angular-charts/candlestick';\nexport { SkdxWaterfallChartComponent } from '@skdx/angular-charts/waterfall';\nexport { SkdxGanttChartComponent } from '@skdx/angular-charts/gantt';\nexport { SkdxBoxplotComponent } from '@skdx/angular-charts/boxplot';\nexport { SkdxSunburstChartComponent } from '@skdx/angular-charts/sunburst';\nexport { SkdxChordChartComponent } from '@skdx/angular-charts/chord';\nexport { SkdxMapChartComponent } from '@skdx/angular-charts/map';\nexport type {\n Candle,\n Datum,\n GanttTask,\n GeoMultiPolygon,\n GeoPolygon,\n MapFeature,\n SankeyLink,\n ScatterSeries,\n Series,\n Shape,\n TreeNode,\n} from '@skdx/angular-charts/internal';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;AAIG;;ACJH;;AAEG"}
1
+ {"version":3,"file":"skdx-angular-charts.mjs","sources":["../../src/public-api.ts","../../src/skdx-angular-charts.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\nexport { SkdxBarChartComponent } from '@skdx/angular-charts/bar';\nexport { SkdxLineChartComponent } from '@skdx/angular-charts/line';\nexport { SkdxAreaChartComponent } from '@skdx/angular-charts/area';\nexport { SkdxPieChartComponent } from '@skdx/angular-charts/pie';\nexport { SkdxScatterChartComponent } from '@skdx/angular-charts/scatter';\nexport { SkdxSparklineComponent } from '@skdx/angular-charts/sparkline';\nexport { SkdxRadarChartComponent } from '@skdx/angular-charts/radar';\nexport { SkdxHeatmapComponent } from '@skdx/angular-charts/heatmap';\nexport { SkdxFunnelChartComponent } from '@skdx/angular-charts/funnel';\nexport { SkdxSankeyChartComponent } from '@skdx/angular-charts/sankey';\nexport { SkdxTreemapComponent } from '@skdx/angular-charts/treemap';\nexport { SkdxCandlestickChartComponent } from '@skdx/angular-charts/candlestick';\nexport { SkdxWaterfallChartComponent } from '@skdx/angular-charts/waterfall';\nexport { SkdxGanttChartComponent } from '@skdx/angular-charts/gantt';\nexport { SkdxBoxplotComponent } from '@skdx/angular-charts/boxplot';\nexport { SkdxSunburstChartComponent } from '@skdx/angular-charts/sunburst';\nexport { SkdxChordChartComponent } from '@skdx/angular-charts/chord';\nexport { SkdxMapChartComponent } from '@skdx/angular-charts/map';\nexport type {\n Candle,\n Datum,\n GanttTask,\n GeoMultiPolygon,\n GeoPolygon,\n MapFeature,\n SankeyLink,\n ScatterSeries,\n Series,\n TreeNode,\n} from '@skdx/angular-charts/internal';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;AAIG;;ACJH;;AAEG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skdx/angular-charts",
3
- "version": "0.32.0",
3
+ "version": "0.33.0",
4
4
  "description": "Eighteen SVG charts as standalone Angular components, from bar and line to sankey, sunburst and choropleth map — colored by @skdx/tokens",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -20,20 +20,11 @@
20
20
  "peerDependencies": {
21
21
  "@angular/common": "^22.0.0",
22
22
  "@angular/core": "^22.0.0",
23
- "@skdx/tokens": "^0.32.0"
23
+ "@skdx/tokens": "^0.33.0"
24
24
  },
25
25
  "dependencies": {
26
26
  "tslib": "^2.3.0"
27
27
  },
28
- "nx": {
29
- "targets": {
30
- "sync": {
31
- "outputs": [
32
- "{projectRoot}/src/internal/core"
33
- ]
34
- }
35
- }
36
- },
37
28
  "module": "fesm2022/skdx-angular-charts.mjs",
38
29
  "typings": "types/skdx-angular-charts.d.ts",
39
30
  "exports": {
@@ -4,7 +4,7 @@ import { SkdxChartBase } from '@skdx/angular-charts/internal';
4
4
 
5
5
  /** A line chart with each series filled down to the zero baseline. */
6
6
  declare class SkdxAreaChartComponent extends SkdxChartBase {
7
- protected readonly layout: i0.Signal<_skdx_angular_charts_internal.AreaChartLayout>;
7
+ protected readonly layout: i0.Signal<_skdx_angular_charts_internal.Canvas>;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<SkdxAreaChartComponent, never>;
9
9
  static ɵcmp: i0.ɵɵComponentDeclaration<SkdxAreaChartComponent, "skdx-area-chart", never, {}, {}, never, never, true, never>;
10
10
  }
@@ -12,7 +12,7 @@ import * as _angular_core from '@angular/core';
12
12
  declare class SkdxBarChartComponent extends SkdxChartBase {
13
13
  /** Stack series on top of each other instead of grouping them side by side. */
14
14
  readonly stacked: _angular_core.InputSignal<boolean>;
15
- protected readonly layout: _angular_core.Signal<_skdx_angular_charts_internal.BarChartLayout>;
15
+ protected readonly layout: _angular_core.Signal<_skdx_angular_charts_internal.Canvas>;
16
16
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxBarChartComponent, never>;
17
17
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxBarChartComponent, "skdx-bar-chart", never, { "stacked": { "alias": "stacked"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
18
  }
@@ -5,7 +5,7 @@ import * as _angular_core from '@angular/core';
5
5
  /** Centered stages, each narrowing toward the next, labelled in place. */
6
6
  declare class SkdxFunnelChartComponent extends SkdxSizedBase {
7
7
  readonly data: _angular_core.InputSignal<Datum[]>;
8
- protected readonly l: _angular_core.Signal<_skdx_angular_charts_internal.FunnelChartLayout>;
8
+ protected readonly l: _angular_core.Signal<_skdx_angular_charts_internal.Canvas>;
9
9
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxFunnelChartComponent, never>;
10
10
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxFunnelChartComponent, "skdx-funnel-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
11
  }
@@ -10,14 +10,7 @@ declare class SkdxHeatmapComponent extends SkdxSizedBase {
10
10
  readonly data: _angular_core.InputSignal<number[][]>;
11
11
  /** The cell color; each cell's opacity follows its value. */
12
12
  readonly color: _angular_core.InputSignal<string | undefined>;
13
- protected readonly colors: {
14
- readonly axis: "var(--skdx-color-border-strong)";
15
- readonly grid: "var(--skdx-color-border-subtle)";
16
- readonly label: "var(--skdx-color-text-muted)";
17
- readonly fontFamily: "var(--skdx-font-family)";
18
- readonly fontSize: "var(--skdx-font-size-xs)";
19
- };
20
- protected readonly l: _angular_core.Signal<_skdx_angular_charts_internal.HeatmapLayout>;
13
+ protected readonly l: _angular_core.Signal<_skdx_angular_charts_internal.Canvas>;
21
14
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxHeatmapComponent, never>;
22
15
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxHeatmapComponent, "skdx-heatmap", never, { "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
23
16
  }
@@ -1,4 +1,3 @@
1
- import * as _skdx_angular_charts_internal from '@skdx/angular-charts/internal';
2
1
  import * as _angular_core from '@angular/core';
3
2
 
4
3
  /** One plotted series: a name for the legend/title and a value per category. */
@@ -94,11 +93,6 @@ interface Box {
94
93
  width: number;
95
94
  height: number;
96
95
  }
97
- interface Label {
98
- x: number;
99
- y: number;
100
- label: string;
101
- }
102
96
  /** What every axis chart shares: the outer size, the plot box and the axis ticks. */
103
97
  interface Frame extends Canvas {
104
98
  plot: Box;
@@ -107,100 +101,6 @@ interface Frame extends Canvas {
107
101
  /** Pixel y of value 0 (clamped into the plot): where bars and areas start and the x axis is drawn. */
108
102
  baseline: number;
109
103
  }
110
- interface Mark {
111
- series: string;
112
- color: string;
113
- /** Native tooltip text, e.g. `Sales, Q1: 1,234`. */
114
- title: string;
115
- }
116
- interface BarMark extends Mark, Box {
117
- category: string;
118
- value: number;
119
- }
120
- interface PointMark extends Mark {
121
- x: number;
122
- y: number;
123
- }
124
- interface PathMark {
125
- series: string;
126
- color: string;
127
- /** SVG path data. */
128
- d: string;
129
- }
130
- interface SliceMark extends Mark {
131
- name: string;
132
- value: number;
133
- /** 0..1 share of the total. */
134
- percent: number;
135
- d: string;
136
- }
137
- interface CellMark extends Mark, Box {
138
- row: string;
139
- column: string;
140
- value: number;
141
- /** 0.15..1, the value's place between the smallest and largest cell. */
142
- opacity: number;
143
- }
144
- interface StageMark extends Mark, Label {
145
- name: string;
146
- value: number;
147
- /** 0..1 share of the first stage. */
148
- percent: number;
149
- d: string;
150
- }
151
- interface BarChartLayout extends Frame {
152
- bars: BarMark[];
153
- }
154
- interface LineChartLayout extends Frame {
155
- lines: PathMark[];
156
- points: PointMark[];
157
- }
158
- interface AreaChartLayout extends LineChartLayout {
159
- areas: PathMark[];
160
- }
161
- interface ScatterChartLayout extends Frame {
162
- points: PointMark[];
163
- }
164
- interface PieChartLayout extends Canvas {
165
- slices: SliceMark[];
166
- }
167
- interface SparklineLayout extends Canvas {
168
- color: string;
169
- line: string;
170
- area: string;
171
- /** The most recent point, drawn as a dot. */
172
- last: {
173
- x: number;
174
- y: number;
175
- } | undefined;
176
- }
177
- interface RadarChartLayout extends Canvas {
178
- /** Concentric grid polygons, one per tick, innermost first. */
179
- rings: {
180
- d: string;
181
- label: Label;
182
- }[];
183
- spokes: {
184
- x1: number;
185
- y1: number;
186
- x2: number;
187
- y2: number;
188
- }[];
189
- axisLabels: (Label & {
190
- anchor: 'start' | 'middle' | 'end';
191
- })[];
192
- polygons: PathMark[];
193
- points: PointMark[];
194
- }
195
- interface HeatmapLayout extends Canvas {
196
- plot: Box;
197
- cells: CellMark[];
198
- rowLabels: Label[];
199
- columnLabels: Label[];
200
- }
201
- interface FunnelChartLayout extends Canvas {
202
- stages: StageMark[];
203
- }
204
104
  interface SankeyLink {
205
105
  source: string;
206
106
  target: string;
@@ -296,7 +196,10 @@ type Shape = (ShapeBase & {
296
196
  fill?: string | undefined;
297
197
  stroke?: string | undefined;
298
198
  strokeWidth?: number | undefined;
199
+ strokeLinecap?: 'round' | undefined;
200
+ strokeLinejoin?: 'round' | undefined;
299
201
  opacity?: number | undefined;
202
+ fillOpacity?: number | undefined;
300
203
  }) | (ShapeBase & {
301
204
  kind: 'rect';
302
205
  x: number;
@@ -329,78 +232,42 @@ type Shape = (ShapeBase & {
329
232
  baseline?: 'middle' | 'hanging' | undefined;
330
233
  fill?: string | undefined;
331
234
  });
332
- /** What every layout returns: the outer size, decorations (legend, labels) and the tooltip switch. */
235
+ /** What every layout returns: the outer size, the whole chart as shapes and the tooltip switch. */
333
236
  interface Canvas {
334
237
  width: number;
335
238
  height: number;
336
- /** Decorations drawn after the marks, back to front: the legend, slice labels, or the whole chart. */
239
+ /** Everything drawn, back to front: grid, marks, legend and labels. */
337
240
  shapes: Shape[];
338
241
  tooltip: boolean;
339
242
  }
340
- /** A chart described entirely as an ordered list of shapes. */
341
- type ShapeLayout = Canvas;
342
243
  interface LegendItem {
343
244
  name: string;
344
245
  color: string;
345
246
  }
346
247
 
347
- declare function layoutBarChart(input: BarChartInput): BarChartLayout;
348
-
349
- declare function layoutLineChart(input: LineChartInput): LineChartLayout;
350
- declare function layoutAreaChart(input: AreaChartInput): AreaChartLayout;
248
+ declare function layoutBarChart(input: BarChartInput): Canvas;
351
249
 
352
- declare function layoutScatterChart(input: ScatterChartInput): ScatterChartLayout;
250
+ declare function layoutLineChart(input: LineChartInput): Canvas;
251
+ declare function layoutAreaChart(input: AreaChartInput): Canvas;
353
252
 
354
- declare function layoutPieChart(input: PieChartInput): PieChartLayout;
253
+ declare function layoutScatterChart(input: ScatterChartInput): Canvas;
355
254
 
356
- declare function layoutSparkline(input: SparklineInput): SparklineLayout;
255
+ declare function layoutPieChart(input: PieChartInput): Canvas;
357
256
 
358
- declare function layoutRadarChart(input: RadarChartInput): RadarChartLayout;
257
+ declare function layoutSparkline(input: SparklineInput): Canvas;
359
258
 
360
- declare function layoutHeatmap(input: HeatmapInput): HeatmapLayout;
259
+ declare function layoutRadarChart(input: RadarChartInput): Canvas;
361
260
 
362
- declare function layoutFunnelChart(input: FunnelChartInput): FunnelChartLayout;
261
+ declare function layoutHeatmap(input: HeatmapInput): Canvas;
363
262
 
364
- /** Maps `[d0, d1]` onto `[r0, r1]` linearly; a zero-width domain maps to `r0`. */
365
- declare function linearScale([d0, d1]: readonly [number, number], [r0, r1]: readonly [number, number]): (value: number) => number;
366
- /** Round tick values covering `[min, max]` with a 1/2/5 step, about `count` of them. */
367
- declare function niceTicks(min: number, max: number, count?: number): number[];
368
- declare const formatValue: (v: number) => string;
369
- /** SVG path through the points: straight segments, or a monotone cubic (Fritsch–Carlson) that never overshoots. */
370
- declare function pathThrough(points: {
371
- x: number;
372
- y: number;
373
- }[], curve?: 'linear' | 'monotone'): string;
374
- /** Ticks at powers of ten covering `[min, max]` (both > 0), with 2× and 5× steps when a decade or less. */
375
- declare function logTicks(min: number, max: number): number[];
263
+ declare function layoutFunnelChart(input: FunnelChartInput): Canvas;
376
264
 
377
- /** A tooltip box next to the pointer, kept inside the canvas. */
378
- declare function tooltipShapes(x: number, y: number, text: string, width: number, height: number): Shape[];
379
- /** Attributes for the `<svg>` root every framework renders. */
380
- declare function svgAttrs(frame: {
381
- width: number;
382
- height: number;
383
- }, kind: string, label: string): {
384
- readonly viewBox: `0 0 ${number} ${number}`;
385
- readonly width: number;
386
- readonly height: number;
387
- readonly role: "img";
388
- readonly 'aria-label': string;
389
- readonly 'data-skdx-chart': string;
390
- readonly 'font-family': "var(--skdx-font-family)";
391
- readonly 'font-size': "var(--skdx-font-size-xs)";
392
- };
393
265
  /**
394
266
  * Tooltip shapes for the mark under the pointer, or none. Reads the mark's
395
267
  * `<title>` and converts the pointer position into viewBox units.
396
268
  */
397
269
  declare function hoverTooltip(target: EventTarget | null, svg: Element, clientX: number, clientY: number, width: number, height: number): Shape[];
398
270
 
399
- /**
400
- * Series colors, cycling through the `@skdx/tokens` scales so charts follow the
401
- * active theme. Load `@skdx/tokens/css` (or any theme) for these to resolve.
402
- */
403
- declare const SERIES_COLORS: readonly string[];
404
271
  declare const CHART_COLORS: {
405
272
  readonly axis: "var(--skdx-color-border-strong)";
406
273
  readonly grid: "var(--skdx-color-border-subtle)";
@@ -408,35 +275,25 @@ declare const CHART_COLORS: {
408
275
  readonly fontFamily: "var(--skdx-font-family)";
409
276
  readonly fontSize: "var(--skdx-font-size-xs)";
410
277
  };
411
- declare const seriesColor: (index: number, override?: string | undefined) => string;
412
278
 
413
- declare function layoutSankey(input: SankeyInput): ShapeLayout;
279
+ declare function layoutSankey(input: SankeyInput): Canvas;
414
280
 
415
- declare function layoutTreemap(input: TreemapInput): ShapeLayout;
281
+ declare function layoutTreemap(input: TreemapInput): Canvas;
416
282
 
417
- declare function layoutCandlestick(input: CandlestickInput): ShapeLayout;
283
+ declare function layoutCandlestick(input: CandlestickInput): Canvas;
418
284
 
419
- declare function layoutWaterfall(input: WaterfallInput): ShapeLayout;
285
+ declare function layoutWaterfall(input: WaterfallInput): Canvas;
420
286
 
421
- declare function layoutGantt(input: GanttInput): ShapeLayout;
287
+ declare function layoutGantt(input: GanttInput): Canvas;
422
288
 
423
- /** Five-number summary with Tukey fences: whiskers reach the last sample within 1.5 IQR. */
424
- declare function boxStats(data: number[]): {
425
- q1: number;
426
- median: number;
427
- q3: number;
428
- low: number;
429
- high: number;
430
- outliers: number[];
431
- };
432
- declare function layoutBoxplot(input: BoxplotInput): ShapeLayout;
289
+ declare function layoutBoxplot(input: BoxplotInput): Canvas;
433
290
 
434
- declare function layoutSunburst(input: SunburstInput): ShapeLayout;
291
+ declare function layoutSunburst(input: SunburstInput): Canvas;
435
292
 
436
- declare function layoutChord(input: ChordInput): ShapeLayout;
293
+ declare function layoutChord(input: ChordInput): Canvas;
437
294
 
438
295
  /** Projection fitted to the features' bounds (equirectangular by default, or Mercator); opacity follows the value. */
439
- declare function layoutMap(input: MapInput): ShapeLayout;
296
+ declare function layoutMap(input: MapInput): Canvas;
440
297
 
441
298
  /** The accessible `<svg>` root every chart renders into: projected marks, then decorations, then the hover tooltip. */
442
299
  declare class SkdxChartRootComponent {
@@ -453,32 +310,9 @@ declare class SkdxChartRootComponent {
453
310
  protected readonly tip: _angular_core.WritableSignal<Shape[]>;
454
311
  protected onPointerMove(e: PointerEvent): void;
455
312
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxChartRootComponent, never>;
456
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxChartRootComponent, "skdx-chart-root", never, { "layout": { "alias": "layout"; "required": true; "isSignal": true; }; "kind": { "alias": "kind"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
313
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxChartRootComponent, "skdx-chart-root", never, { "layout": { "alias": "layout"; "required": true; "isSignal": true; }; "kind": { "alias": "kind"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
457
314
  }
458
315
  /** The `<svg>` root, grid, axis and tick labels every axis chart shares; marks are projected. */
459
- declare class SkdxChartFrameComponent {
460
- readonly layout: _angular_core.InputSignal<Frame>;
461
- readonly kind: _angular_core.InputSignal<string>;
462
- readonly label: _angular_core.InputSignal<string>;
463
- protected readonly colors: {
464
- readonly axis: "var(--skdx-color-border-strong)";
465
- readonly grid: "var(--skdx-color-border-subtle)";
466
- readonly label: "var(--skdx-color-text-muted)";
467
- readonly fontFamily: "var(--skdx-font-family)";
468
- readonly fontSize: "var(--skdx-font-size-xs)";
469
- };
470
- protected readonly plot: _angular_core.Signal<_skdx_angular_charts_internal.Box>;
471
- protected readonly right: _angular_core.Signal<number>;
472
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxChartFrameComponent, never>;
473
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxChartFrameComponent, "skdx-chart-frame", never, { "layout": { "alias": "layout"; "required": true; "isSignal": true; }; "kind": { "alias": "kind"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>;
474
- }
475
- /** A dot per value with its native tooltip. */
476
- declare class SkdxChartPointsComponent {
477
- readonly points: _angular_core.InputSignal<PointMark[]>;
478
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxChartPointsComponent, never>;
479
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxChartPointsComponent, "g[skdxChartPoints]", never, { "points": { "alias": "points"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
480
- }
481
- /** Size and label inputs every chart takes. */
482
316
  declare abstract class SkdxSizedBase {
483
317
  readonly width: _angular_core.InputSignal<number | undefined>;
484
318
  readonly height: _angular_core.InputSignal<number | undefined>;
@@ -513,14 +347,6 @@ declare abstract class SkdxChartBase extends SkdxSizedBase {
513
347
  static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SkdxChartBase, never, never, { "series": { "alias": "series"; "required": true; "isSignal": true; }; "categories": { "alias": "categories"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
514
348
  }
515
349
 
516
- /** Line strokes plus a dot per value, shared by the line and area charts. */
517
- declare class SkdxChartLinesComponent {
518
- readonly lines: _angular_core.InputSignal<PathMark[]>;
519
- readonly points: _angular_core.InputSignal<PointMark[]>;
520
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxChartLinesComponent, never>;
521
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxChartLinesComponent, "g[skdxChartLines]", never, { "lines": { "alias": "lines"; "required": true; "isSignal": true; }; "points": { "alias": "points"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
522
- }
523
-
524
350
  /** Draws a core shape list back to front. */
525
351
  declare class SkdxChartShapesComponent {
526
352
  readonly shapes: _angular_core.InputSignal<Shape[]>;
@@ -528,5 +354,5 @@ declare class SkdxChartShapesComponent {
528
354
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxChartShapesComponent, "g[skdxChartShapes]", never, { "shapes": { "alias": "shapes"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
529
355
  }
530
356
 
531
- export { CHART_COLORS, SERIES_COLORS, SkdxChartBase, SkdxChartFrameComponent, SkdxChartLinesComponent, SkdxChartPointsComponent, SkdxChartRootComponent, SkdxChartShapesComponent, SkdxSizedBase, boxStats, formatValue, hoverTooltip, layoutAreaChart, layoutBarChart, layoutBoxplot, layoutCandlestick, layoutChord, layoutFunnelChart, layoutGantt, layoutHeatmap, layoutLineChart, layoutMap, layoutPieChart, layoutRadarChart, layoutSankey, layoutScatterChart, layoutSparkline, layoutSunburst, layoutTreemap, layoutWaterfall, linearScale, logTicks, niceTicks, pathThrough, seriesColor, svgAttrs, tooltipShapes };
532
- export type { AreaChartInput, AreaChartLayout, BarChartInput, BarChartLayout, BarMark, Box, BoxplotInput, Candle, CandlestickInput, Canvas, CellMark, ChartInput, ChordInput, Curve, Datum, Frame, FunnelChartInput, FunnelChartLayout, GanttInput, GanttTask, GeoMultiPolygon, GeoPolygon, HeatmapInput, HeatmapLayout, Label, LegendItem, LineChartInput, LineChartLayout, MapFeature, MapInput, Mark, PathMark, PieChartInput, PieChartLayout, PointMark, RadarChartInput, RadarChartLayout, SankeyInput, SankeyLink, ScatterChartInput, ScatterChartLayout, ScatterSeries, Series, Shape, ShapeLayout, Sized, SliceMark, SparklineInput, SparklineLayout, StageMark, SunburstInput, Tick, TreeNode, TreemapInput, WaterfallInput };
357
+ export { CHART_COLORS, SkdxChartBase, SkdxChartRootComponent, SkdxChartShapesComponent, SkdxSizedBase, hoverTooltip, layoutAreaChart, layoutBarChart, layoutBoxplot, layoutCandlestick, layoutChord, layoutFunnelChart, layoutGantt, layoutHeatmap, layoutLineChart, layoutMap, layoutPieChart, layoutRadarChart, layoutSankey, layoutScatterChart, layoutSparkline, layoutSunburst, layoutTreemap, layoutWaterfall };
358
+ export type { AreaChartInput, BarChartInput, Box, BoxplotInput, Candle, CandlestickInput, Canvas, ChartInput, ChordInput, Curve, Datum, Frame, FunnelChartInput, GanttInput, GanttTask, GeoMultiPolygon, GeoPolygon, HeatmapInput, LegendItem, LineChartInput, MapFeature, MapInput, PieChartInput, RadarChartInput, SankeyInput, SankeyLink, ScatterChartInput, ScatterSeries, Series, Shape, Sized, SparklineInput, SunburstInput, Tick, TreeNode, TreemapInput, WaterfallInput };
@@ -4,7 +4,7 @@ import { SkdxChartBase } from '@skdx/angular-charts/internal';
4
4
 
5
5
  /** One polyline per series with a dot per value. */
6
6
  declare class SkdxLineChartComponent extends SkdxChartBase {
7
- protected readonly layout: i0.Signal<_skdx_angular_charts_internal.LineChartLayout>;
7
+ protected readonly layout: i0.Signal<_skdx_angular_charts_internal.Canvas>;
8
8
  static ɵfac: i0.ɵɵFactoryDeclaration<SkdxLineChartComponent, never>;
9
9
  static ɵcmp: i0.ɵɵComponentDeclaration<SkdxLineChartComponent, "skdx-line-chart", never, {}, {}, never, never, true, never>;
10
10
  }
@@ -7,7 +7,7 @@ declare class SkdxPieChartComponent extends SkdxSizedBase {
7
7
  readonly data: _angular_core.InputSignal<Datum[]>;
8
8
  /** Hole radius as a fraction of the outer radius: 0 is a pie, 0.6 a donut. */
9
9
  readonly innerRadius: _angular_core.InputSignal<number | undefined>;
10
- protected readonly layout: _angular_core.Signal<_skdx_angular_charts_internal.PieChartLayout>;
10
+ protected readonly layout: _angular_core.Signal<_skdx_angular_charts_internal.Canvas>;
11
11
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxPieChartComponent, never>;
12
12
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxPieChartComponent, "skdx-pie-chart", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "innerRadius": { "alias": "innerRadius"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
13
  }
@@ -7,14 +7,7 @@ declare class SkdxRadarChartComponent extends SkdxSizedBase {
7
7
  readonly series: _angular_core.InputSignal<Series[]>;
8
8
  /** One axis per category. */
9
9
  readonly categories: _angular_core.InputSignal<string[]>;
10
- protected readonly colors: {
11
- readonly axis: "var(--skdx-color-border-strong)";
12
- readonly grid: "var(--skdx-color-border-subtle)";
13
- readonly label: "var(--skdx-color-text-muted)";
14
- readonly fontFamily: "var(--skdx-font-family)";
15
- readonly fontSize: "var(--skdx-font-size-xs)";
16
- };
17
- protected readonly l: _angular_core.Signal<_skdx_angular_charts_internal.RadarChartLayout>;
10
+ protected readonly l: _angular_core.Signal<_skdx_angular_charts_internal.Canvas>;
18
11
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxRadarChartComponent, never>;
19
12
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxRadarChartComponent, "skdx-radar-chart", never, { "series": { "alias": "series"; "required": true; "isSignal": true; }; "categories": { "alias": "categories"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
20
13
  }
@@ -5,7 +5,7 @@ import * as _angular_core from '@angular/core';
5
5
  /** One dot per `[x, y]` pair on two linear axes. */
6
6
  declare class SkdxScatterChartComponent extends SkdxSizedBase {
7
7
  readonly series: _angular_core.InputSignal<ScatterSeries[]>;
8
- protected readonly layout: _angular_core.Signal<_skdx_angular_charts_internal.ScatterChartLayout>;
8
+ protected readonly layout: _angular_core.Signal<_skdx_angular_charts_internal.Canvas>;
9
9
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxScatterChartComponent, never>;
10
10
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxScatterChartComponent, "skdx-scatter-chart", never, { "series": { "alias": "series"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
11
11
  }
@@ -6,7 +6,7 @@ import * as _angular_core from '@angular/core';
6
6
  declare class SkdxSparklineComponent extends SkdxSizedBase {
7
7
  readonly data: _angular_core.InputSignal<number[]>;
8
8
  readonly color: _angular_core.InputSignal<string | undefined>;
9
- protected readonly l: _angular_core.Signal<_skdx_angular_charts_internal.SparklineLayout>;
9
+ protected readonly l: _angular_core.Signal<_skdx_angular_charts_internal.Canvas>;
10
10
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkdxSparklineComponent, never>;
11
11
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkdxSparklineComponent, "skdx-sparkline", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
12
  }
@@ -16,4 +16,4 @@ export { SkdxBoxplotComponent } from '@skdx/angular-charts/boxplot';
16
16
  export { SkdxSunburstChartComponent } from '@skdx/angular-charts/sunburst';
17
17
  export { SkdxChordChartComponent } from '@skdx/angular-charts/chord';
18
18
  export { SkdxMapChartComponent } from '@skdx/angular-charts/map';
19
- export { Candle, Datum, GanttTask, GeoMultiPolygon, GeoPolygon, MapFeature, SankeyLink, ScatterSeries, Series, Shape, TreeNode } from '@skdx/angular-charts/internal';
19
+ export { Candle, Datum, GanttTask, GeoMultiPolygon, GeoPolygon, MapFeature, SankeyLink, ScatterSeries, Series, TreeNode } from '@skdx/angular-charts/internal';