@besaitech/ng-design-system 0.0.70 → 0.0.72

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.
@@ -44,6 +44,42 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
44
44
  args: [{ selector: 'ng-template[sdsChartTooltip]' }]
45
45
  }] });
46
46
 
47
+ /**
48
+ * Replace the coloured swatch in front of each legend label with your own markup — an avatar, an icon, a
49
+ * logo. The template receives the entry as `$implicit` ({ key, label, color, hidden, row, other }); on a
50
+ * donut `row` is the slice's source row, so the swatch can show what the app knows about that category.
51
+ *
52
+ * Only the swatch is replaced: the chart keeps the label, the value/share, the toggle button, the hover
53
+ * emphasis and the keyboard behaviour, and fades the swatch while its entry is hidden. Keep it small
54
+ * (~20 px) and decorative — the label already names the entry. Return the default look for some entries
55
+ * (e.g. the "Other" slice) by drawing a dot in `entry.color`.
56
+ *
57
+ * Works on line, bar, scatter and donut charts.
58
+ *
59
+ * @example
60
+ * <sds-donut-chart [data]="spend" category="name" value="amount" color="color">
61
+ * <ng-template sdsChartLegendSwatch let-entry>
62
+ * @if (entry.row) {
63
+ * <app-category-avatar [icon]="entry.row.icon" [color]="entry.color" [size]="20" />
64
+ * } @else {
65
+ * <span class="h-2.5 w-2.5 rounded-full" [style.background]="entry.color"></span>
66
+ * }
67
+ * </ng-template>
68
+ * </sds-donut-chart>
69
+ */
70
+ class SdsChartLegendSwatch {
71
+ template = inject(TemplateRef);
72
+ static ngTemplateContextGuard(_dir, ctx) {
73
+ return true;
74
+ }
75
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsChartLegendSwatch, deps: [], target: i0.ɵɵFactoryTarget.Directive });
76
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.25", type: SdsChartLegendSwatch, isStandalone: true, selector: "ng-template[sdsChartLegendSwatch]", ngImport: i0 });
77
+ }
78
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsChartLegendSwatch, decorators: [{
79
+ type: Directive,
80
+ args: [{ selector: 'ng-template[sdsChartLegendSwatch]' }]
81
+ }] });
82
+
47
83
  /*
48
84
  * Internal engine shared by every chart. Nothing here is exported from the public API: the charts
49
85
  * delegate the maths to d3 (scales, shapes, layouts) and keep rendering, theming and interaction in
@@ -641,6 +677,8 @@ class SdsChartFrame {
641
677
  subtitle = input('', ...(ngDevMode ? [{ debugName: "subtitle" }] : []));
642
678
  items = input([], ...(ngDevMode ? [{ debugName: "items" }] : []));
643
679
  legend = input('top', ...(ngDevMode ? [{ debugName: "legend" }] : []));
680
+ /** A chart's projected `sdsChartLegendSwatch` template, drawn instead of the built-in swatch. */
681
+ swatchTpl = input(null, ...(ngDevMode ? [{ debugName: "swatchTpl" }] : []));
644
682
  hidden = input([], ...(ngDevMode ? [{ debugName: "hidden" }] : []));
645
683
  interactive = input(true, ...(ngDevMode ? [{ debugName: "interactive", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
646
684
  loading = input(false, ...(ngDevMode ? [{ debugName: "loading", transform: booleanAttribute }] : [{ transform: booleanAttribute }]));
@@ -657,6 +695,18 @@ class SdsChartFrame {
657
695
  focusKey = output();
658
696
  showTable = signal(false, ...(ngDevMode ? [{ debugName: "showTable" }] : []));
659
697
  hiddenSet = computed(() => new Set(this.hidden()), ...(ngDevMode ? [{ debugName: "hiddenSet" }] : []));
698
+ swatchContext(item) {
699
+ return {
700
+ $implicit: {
701
+ key: item.key,
702
+ label: item.label,
703
+ color: item.color,
704
+ hidden: this.isHidden(item.key),
705
+ row: item.row ?? null,
706
+ other: !!item.other,
707
+ },
708
+ };
709
+ }
660
710
  isHidden(key) {
661
711
  return this.hiddenSet().has(key);
662
712
  }
@@ -669,7 +719,7 @@ class SdsChartFrame {
669
719
  this.toggle.emit(key);
670
720
  }
671
721
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsChartFrame, deps: [], target: i0.ɵɵFactoryTarget.Component });
672
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsChartFrame, isStandalone: true, selector: "sds-chart-frame", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, empty: { classPropertyName: "empty", publicName: "empty", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, table: { classPropertyName: "table", publicName: "table", isSignal: true, isRequired: false, transformFunction: null }, tableCaption: { classPropertyName: "tableCaption", publicName: "tableCaption", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggle: "toggle", focusKey: "focusKey" }, host: { classAttribute: "block @container" }, ngImport: i0, template: `
722
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsChartFrame, isStandalone: true, selector: "sds-chart-frame", inputs: { heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, swatchTpl: { classPropertyName: "swatchTpl", publicName: "swatchTpl", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, empty: { classPropertyName: "empty", publicName: "empty", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, table: { classPropertyName: "table", publicName: "table", isSignal: true, isRequired: false, transformFunction: null }, tableCaption: { classPropertyName: "tableCaption", publicName: "tableCaption", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { toggle: "toggle", focusKey: "focusKey" }, host: { classAttribute: "block @container" }, ngImport: i0, template: `
673
723
  <figure class="m-0 flex flex-col gap-3" [attr.aria-busy]="loading() || null">
674
724
  @if (heading() || subtitle() || tableToggle()) {
675
725
  <figcaption class="flex items-start justify-between gap-3">
@@ -755,7 +805,14 @@ class SdsChartFrame {
755
805
  (focus)="onFocus(item.key)"
756
806
  (blur)="focusKey.emit(null)"
757
807
  >
758
- <ng-container [ngTemplateOutlet]="swatch" [ngTemplateOutletContext]="{ $implicit: item }" />
808
+ @if (swatchTpl(); as custom) {
809
+ <!-- A custom swatch (sdsChartLegendSwatch): the frame fades it while its entry is hidden. -->
810
+ <span class="inline-flex shrink-0 items-center transition-opacity motion-reduce:transition-none" [style.opacity]="isHidden(item.key) ? 0.4 : 1" aria-hidden="true">
811
+ <ng-container [ngTemplateOutlet]="custom" [ngTemplateOutletContext]="swatchContext(item)" />
812
+ </span>
813
+ } @else {
814
+ <ng-container [ngTemplateOutlet]="swatch" [ngTemplateOutletContext]="{ $implicit: item }" />
815
+ }
759
816
  <span class="truncate" [class.line-through]="isHidden(item.key)">{{ item.label }}</span>
760
817
  @if (item.detail) {
761
818
  <span class="ml-auto pl-2 font-semibold tabular-nums text-ink">{{ item.detail }}</span>
@@ -763,7 +820,14 @@ class SdsChartFrame {
763
820
  </button>
764
821
  } @else {
765
822
  <span class="inline-flex max-w-full items-center gap-2 px-1 py-0.5 text-xs text-ink-soft">
766
- <ng-container [ngTemplateOutlet]="swatch" [ngTemplateOutletContext]="{ $implicit: item }" />
823
+ @if (swatchTpl(); as custom) {
824
+ <!-- A custom swatch (sdsChartLegendSwatch): the frame fades it while its entry is hidden. -->
825
+ <span class="inline-flex shrink-0 items-center transition-opacity motion-reduce:transition-none" [style.opacity]="isHidden(item.key) ? 0.4 : 1" aria-hidden="true">
826
+ <ng-container [ngTemplateOutlet]="custom" [ngTemplateOutletContext]="swatchContext(item)" />
827
+ </span>
828
+ } @else {
829
+ <ng-container [ngTemplateOutlet]="swatch" [ngTemplateOutletContext]="{ $implicit: item }" />
830
+ }
767
831
  <span class="truncate">{{ item.label }}</span>
768
832
  @if (item.detail) {
769
833
  <span class="ml-auto pl-2 font-semibold tabular-nums text-ink">{{ item.detail }}</span>
@@ -919,7 +983,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
919
983
  (focus)="onFocus(item.key)"
920
984
  (blur)="focusKey.emit(null)"
921
985
  >
922
- <ng-container [ngTemplateOutlet]="swatch" [ngTemplateOutletContext]="{ $implicit: item }" />
986
+ @if (swatchTpl(); as custom) {
987
+ <!-- A custom swatch (sdsChartLegendSwatch): the frame fades it while its entry is hidden. -->
988
+ <span class="inline-flex shrink-0 items-center transition-opacity motion-reduce:transition-none" [style.opacity]="isHidden(item.key) ? 0.4 : 1" aria-hidden="true">
989
+ <ng-container [ngTemplateOutlet]="custom" [ngTemplateOutletContext]="swatchContext(item)" />
990
+ </span>
991
+ } @else {
992
+ <ng-container [ngTemplateOutlet]="swatch" [ngTemplateOutletContext]="{ $implicit: item }" />
993
+ }
923
994
  <span class="truncate" [class.line-through]="isHidden(item.key)">{{ item.label }}</span>
924
995
  @if (item.detail) {
925
996
  <span class="ml-auto pl-2 font-semibold tabular-nums text-ink">{{ item.detail }}</span>
@@ -927,7 +998,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
927
998
  </button>
928
999
  } @else {
929
1000
  <span class="inline-flex max-w-full items-center gap-2 px-1 py-0.5 text-xs text-ink-soft">
930
- <ng-container [ngTemplateOutlet]="swatch" [ngTemplateOutletContext]="{ $implicit: item }" />
1001
+ @if (swatchTpl(); as custom) {
1002
+ <!-- A custom swatch (sdsChartLegendSwatch): the frame fades it while its entry is hidden. -->
1003
+ <span class="inline-flex shrink-0 items-center transition-opacity motion-reduce:transition-none" [style.opacity]="isHidden(item.key) ? 0.4 : 1" aria-hidden="true">
1004
+ <ng-container [ngTemplateOutlet]="custom" [ngTemplateOutletContext]="swatchContext(item)" />
1005
+ </span>
1006
+ } @else {
1007
+ <ng-container [ngTemplateOutlet]="swatch" [ngTemplateOutletContext]="{ $implicit: item }" />
1008
+ }
931
1009
  <span class="truncate">{{ item.label }}</span>
932
1010
  @if (item.detail) {
933
1011
  <span class="ml-auto pl-2 font-semibold tabular-nums text-ink">{{ item.detail }}</span>
@@ -994,7 +1072,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
994
1072
  </table>
995
1073
  </ng-template>
996
1074
  `, styles: [".sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n"] }]
997
- }], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], empty: [{ type: i0.Input, args: [{ isSignal: true, alias: "empty", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], table: [{ type: i0.Input, args: [{ isSignal: true, alias: "table", required: false }] }], tableCaption: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableCaption", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }], focusKey: [{ type: i0.Output, args: ["focusKey"] }] } });
1075
+ }], propDecorators: { heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], swatchTpl: [{ type: i0.Input, args: [{ isSignal: true, alias: "swatchTpl", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], empty: [{ type: i0.Input, args: [{ isSignal: true, alias: "empty", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], table: [{ type: i0.Input, args: [{ isSignal: true, alias: "table", required: false }] }], tableCaption: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableCaption", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], toggle: [{ type: i0.Output, args: ["toggle"] }], focusKey: [{ type: i0.Output, args: ["focusKey"] }] } });
998
1076
  /** The floating tooltip: default rows, or the consumer's `sdsChartTooltip` template. */
999
1077
  class SdsChartTooltipBox {
1000
1078
  ctx = input(null, ...(ngDevMode ? [{ debugName: "ctx" }] : []));
@@ -1362,6 +1440,8 @@ class SdsLineChart {
1362
1440
  /** A point was clicked (the series nearest the pointer) or activated with Enter. */
1363
1441
  pointClick = output();
1364
1442
  customTooltip = contentChild(SdsChartTooltip, ...(ngDevMode ? [{ debugName: "customTooltip" }] : []));
1443
+ /** A projected `sdsChartLegendSwatch` template, drawn instead of each legend entry's swatch. */
1444
+ customSwatch = contentChild(SdsChartLegendSwatch, ...(ngDevMode ? [{ debugName: "customSwatch" }] : []));
1365
1445
  uid = chartUid('sds-line');
1366
1446
  legendFocus = signal(null, ...(ngDevMode ? [{ debugName: "legendFocus" }] : []));
1367
1447
  active = signal(null, ...(ngDevMode ? [{ debugName: "active" }] : []));
@@ -1983,8 +2063,9 @@ class SdsLineChart {
1983
2063
  };
1984
2064
  }, ...(ngDevMode ? [{ debugName: "table" }] : []));
1985
2065
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsLineChart, deps: [], target: i0.ɵɵFactoryTarget.Component });
1986
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsLineChart, isStandalone: true, selector: "sds-line-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, x: { classPropertyName: "x", publicName: "x", isSignal: true, isRequired: true, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null }, xType: { classPropertyName: "xType", publicName: "xType", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, area: { classPropertyName: "area", publicName: "area", isSignal: true, isRequired: false, transformFunction: null }, stack: { classPropertyName: "stack", publicName: "stack", isSignal: true, isRequired: false, transformFunction: null }, markers: { classPropertyName: "markers", publicName: "markers", isSignal: true, isRequired: false, transformFunction: null }, endLabels: { classPropertyName: "endLabels", publicName: "endLabels", isSignal: true, isRequired: false, transformFunction: null }, grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, annotations: { classPropertyName: "annotations", publicName: "annotations", isSignal: true, isRequired: false, transformFunction: null }, yScale: { classPropertyName: "yScale", publicName: "yScale", isSignal: true, isRequired: false, transformFunction: null }, yMin: { classPropertyName: "yMin", publicName: "yMin", isSignal: true, isRequired: false, transformFunction: null }, yMax: { classPropertyName: "yMax", publicName: "yMax", isSignal: true, isRequired: false, transformFunction: null }, includeZero: { classPropertyName: "includeZero", publicName: "includeZero", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, axisFormat: { classPropertyName: "axisFormat", publicName: "axisFormat", isSignal: true, isRequired: false, transformFunction: null }, xFormat: { classPropertyName: "xFormat", publicName: "xFormat", isSignal: true, isRequired: false, transformFunction: null }, xLabel: { classPropertyName: "xLabel", publicName: "xLabel", isSignal: true, isRequired: false, transformFunction: null }, yLabel: { classPropertyName: "yLabel", publicName: "yLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hidden: "hiddenChange", pointClick: "pointClick" }, host: { classAttribute: "block" }, queries: [{ propertyName: "customTooltip", first: true, predicate: SdsChartTooltip, descendants: true, isSignal: true }], ngImport: i0, template: `
2066
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsLineChart, isStandalone: true, selector: "sds-line-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, x: { classPropertyName: "x", publicName: "x", isSignal: true, isRequired: true, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null }, xType: { classPropertyName: "xType", publicName: "xType", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, area: { classPropertyName: "area", publicName: "area", isSignal: true, isRequired: false, transformFunction: null }, stack: { classPropertyName: "stack", publicName: "stack", isSignal: true, isRequired: false, transformFunction: null }, markers: { classPropertyName: "markers", publicName: "markers", isSignal: true, isRequired: false, transformFunction: null }, endLabels: { classPropertyName: "endLabels", publicName: "endLabels", isSignal: true, isRequired: false, transformFunction: null }, grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, highlight: { classPropertyName: "highlight", publicName: "highlight", isSignal: true, isRequired: false, transformFunction: null }, annotations: { classPropertyName: "annotations", publicName: "annotations", isSignal: true, isRequired: false, transformFunction: null }, yScale: { classPropertyName: "yScale", publicName: "yScale", isSignal: true, isRequired: false, transformFunction: null }, yMin: { classPropertyName: "yMin", publicName: "yMin", isSignal: true, isRequired: false, transformFunction: null }, yMax: { classPropertyName: "yMax", publicName: "yMax", isSignal: true, isRequired: false, transformFunction: null }, includeZero: { classPropertyName: "includeZero", publicName: "includeZero", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, axisFormat: { classPropertyName: "axisFormat", publicName: "axisFormat", isSignal: true, isRequired: false, transformFunction: null }, xFormat: { classPropertyName: "xFormat", publicName: "xFormat", isSignal: true, isRequired: false, transformFunction: null }, xLabel: { classPropertyName: "xLabel", publicName: "xLabel", isSignal: true, isRequired: false, transformFunction: null }, yLabel: { classPropertyName: "yLabel", publicName: "yLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hidden: "hiddenChange", pointClick: "pointClick" }, host: { classAttribute: "block" }, queries: [{ propertyName: "customTooltip", first: true, predicate: SdsChartTooltip, descendants: true, isSignal: true }, { propertyName: "customSwatch", first: true, predicate: SdsChartLegendSwatch, descendants: true, isSignal: true }], ngImport: i0, template: `
1987
2067
  <sds-chart-frame
2068
+ [swatchTpl]="customSwatch()?.template ?? null"
1988
2069
  [heading]="heading()"
1989
2070
  [subtitle]="subtitle()"
1990
2071
  [items]="legendItems()"
@@ -2127,12 +2208,13 @@ class SdsLineChart {
2127
2208
  <div class="sr-only" aria-live="polite" aria-atomic="true">{{ liveText() }}</div>
2128
2209
  </div>
2129
2210
  </sds-chart-frame>
2130
- `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartAxes, selector: "g[sdsChartAxes]", inputs: ["plot", "xTicks", "yTicks", "grid", "baselineY", "baselineX", "xTitle", "yTitle", "width"] }, { kind: "component", type: SdsChartAnnotations, selector: "g[sdsChartAnnotations]", inputs: ["items", "layer"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2211
+ `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "swatchTpl", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartAxes, selector: "g[sdsChartAxes]", inputs: ["plot", "xTicks", "yTicks", "grid", "baselineY", "baselineX", "xTitle", "yTitle", "width"] }, { kind: "component", type: SdsChartAnnotations, selector: "g[sdsChartAnnotations]", inputs: ["items", "layer"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2131
2212
  }
2132
2213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsLineChart, decorators: [{
2133
2214
  type: Component,
2134
2215
  args: [{ selector: 'sds-line-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdsChartFrame, SdsChartAxes, SdsChartAnnotations, SdsChartTooltipBox], host: { class: 'block' }, template: `
2135
2216
  <sds-chart-frame
2217
+ [swatchTpl]="customSwatch()?.template ?? null"
2136
2218
  [heading]="heading()"
2137
2219
  [subtitle]="subtitle()"
2138
2220
  [items]="legendItems()"
@@ -2276,7 +2358,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
2276
2358
  </div>
2277
2359
  </sds-chart-frame>
2278
2360
  `, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"] }]
2279
- }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], x: [{ type: i0.Input, args: [{ isSignal: true, alias: "x", required: true }] }], series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }], xType: [{ type: i0.Input, args: [{ isSignal: true, alias: "xType", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], area: [{ type: i0.Input, args: [{ isSignal: true, alias: "area", required: false }] }], stack: [{ type: i0.Input, args: [{ isSignal: true, alias: "stack", required: false }] }], markers: [{ type: i0.Input, args: [{ isSignal: true, alias: "markers", required: false }] }], endLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "endLabels", required: false }] }], grid: [{ type: i0.Input, args: [{ isSignal: true, alias: "grid", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], highlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlight", required: false }] }], annotations: [{ type: i0.Input, args: [{ isSignal: true, alias: "annotations", required: false }] }], yScale: [{ type: i0.Input, args: [{ isSignal: true, alias: "yScale", required: false }] }], yMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMin", required: false }] }], yMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMax", required: false }] }], includeZero: [{ type: i0.Input, args: [{ isSignal: true, alias: "includeZero", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], axisFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "axisFormat", required: false }] }], xFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "xFormat", required: false }] }], xLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "xLabel", required: false }] }], yLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "yLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], pointClick: [{ type: i0.Output, args: ["pointClick"] }], customTooltip: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartTooltip), { isSignal: true }] }] } });
2361
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], x: [{ type: i0.Input, args: [{ isSignal: true, alias: "x", required: true }] }], series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }], xType: [{ type: i0.Input, args: [{ isSignal: true, alias: "xType", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], area: [{ type: i0.Input, args: [{ isSignal: true, alias: "area", required: false }] }], stack: [{ type: i0.Input, args: [{ isSignal: true, alias: "stack", required: false }] }], markers: [{ type: i0.Input, args: [{ isSignal: true, alias: "markers", required: false }] }], endLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "endLabels", required: false }] }], grid: [{ type: i0.Input, args: [{ isSignal: true, alias: "grid", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], highlight: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlight", required: false }] }], annotations: [{ type: i0.Input, args: [{ isSignal: true, alias: "annotations", required: false }] }], yScale: [{ type: i0.Input, args: [{ isSignal: true, alias: "yScale", required: false }] }], yMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMin", required: false }] }], yMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMax", required: false }] }], includeZero: [{ type: i0.Input, args: [{ isSignal: true, alias: "includeZero", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], axisFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "axisFormat", required: false }] }], xFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "xFormat", required: false }] }], xLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "xLabel", required: false }] }], yLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "yLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], pointClick: [{ type: i0.Output, args: ["pointClick"] }], customTooltip: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartTooltip), { isSignal: true }] }], customSwatch: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartLegendSwatch), { isSignal: true }] }] } });
2280
2362
 
2281
2363
  const GAP$1 = 2;
2282
2364
  /**
@@ -2346,6 +2428,8 @@ class SdsBarChart {
2346
2428
  /** A bar (or a category, from the keyboard) was clicked. */
2347
2429
  pointClick = output();
2348
2430
  customTooltip = contentChild(SdsChartTooltip, ...(ngDevMode ? [{ debugName: "customTooltip" }] : []));
2431
+ /** A projected `sdsChartLegendSwatch` template, drawn instead of each legend entry's swatch. */
2432
+ customSwatch = contentChild(SdsChartLegendSwatch, ...(ngDevMode ? [{ debugName: "customSwatch" }] : []));
2349
2433
  legendFocus = signal(null, ...(ngDevMode ? [{ debugName: "legendFocus" }] : []));
2350
2434
  active = signal(null, ...(ngDevMode ? [{ debugName: "active" }] : []));
2351
2435
  keyboard = signal(false, ...(ngDevMode ? [{ debugName: "keyboard" }] : []));
@@ -3041,8 +3125,9 @@ class SdsBarChart {
3041
3125
  };
3042
3126
  }, ...(ngDevMode ? [{ debugName: "table" }] : []));
3043
3127
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsBarChart, deps: [], target: i0.ɵɵFactoryTarget.Component });
3044
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsBarChart, isStandalone: true, selector: "sds-bar-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, x: { classPropertyName: "x", publicName: "x", isSignal: true, isRequired: true, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, stack: { classPropertyName: "stack", publicName: "stack", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, maxBarSize: { classPropertyName: "maxBarSize", publicName: "maxBarSize", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, showValues: { classPropertyName: "showValues", publicName: "showValues", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, highlightCategories: { classPropertyName: "highlightCategories", publicName: "highlightCategories", isSignal: true, isRequired: false, transformFunction: null }, barColor: { classPropertyName: "barColor", publicName: "barColor", isSignal: true, isRequired: false, transformFunction: null }, grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, annotations: { classPropertyName: "annotations", publicName: "annotations", isSignal: true, isRequired: false, transformFunction: null }, yMin: { classPropertyName: "yMin", publicName: "yMin", isSignal: true, isRequired: false, transformFunction: null }, yMax: { classPropertyName: "yMax", publicName: "yMax", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, axisFormat: { classPropertyName: "axisFormat", publicName: "axisFormat", isSignal: true, isRequired: false, transformFunction: null }, xFormat: { classPropertyName: "xFormat", publicName: "xFormat", isSignal: true, isRequired: false, transformFunction: null }, xLabel: { classPropertyName: "xLabel", publicName: "xLabel", isSignal: true, isRequired: false, transformFunction: null }, yLabel: { classPropertyName: "yLabel", publicName: "yLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hidden: "hiddenChange", pointClick: "pointClick" }, host: { classAttribute: "block" }, queries: [{ propertyName: "customTooltip", first: true, predicate: SdsChartTooltip, descendants: true, isSignal: true }], ngImport: i0, template: `
3128
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsBarChart, isStandalone: true, selector: "sds-bar-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, x: { classPropertyName: "x", publicName: "x", isSignal: true, isRequired: true, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: true, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, stack: { classPropertyName: "stack", publicName: "stack", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, maxBarSize: { classPropertyName: "maxBarSize", publicName: "maxBarSize", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, showValues: { classPropertyName: "showValues", publicName: "showValues", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, highlightCategories: { classPropertyName: "highlightCategories", publicName: "highlightCategories", isSignal: true, isRequired: false, transformFunction: null }, barColor: { classPropertyName: "barColor", publicName: "barColor", isSignal: true, isRequired: false, transformFunction: null }, grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, annotations: { classPropertyName: "annotations", publicName: "annotations", isSignal: true, isRequired: false, transformFunction: null }, yMin: { classPropertyName: "yMin", publicName: "yMin", isSignal: true, isRequired: false, transformFunction: null }, yMax: { classPropertyName: "yMax", publicName: "yMax", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, axisFormat: { classPropertyName: "axisFormat", publicName: "axisFormat", isSignal: true, isRequired: false, transformFunction: null }, xFormat: { classPropertyName: "xFormat", publicName: "xFormat", isSignal: true, isRequired: false, transformFunction: null }, xLabel: { classPropertyName: "xLabel", publicName: "xLabel", isSignal: true, isRequired: false, transformFunction: null }, yLabel: { classPropertyName: "yLabel", publicName: "yLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hidden: "hiddenChange", pointClick: "pointClick" }, host: { classAttribute: "block" }, queries: [{ propertyName: "customTooltip", first: true, predicate: SdsChartTooltip, descendants: true, isSignal: true }, { propertyName: "customSwatch", first: true, predicate: SdsChartLegendSwatch, descendants: true, isSignal: true }], ngImport: i0, template: `
3045
3129
  <sds-chart-frame
3130
+ [swatchTpl]="customSwatch()?.template ?? null"
3046
3131
  [heading]="heading()"
3047
3132
  [subtitle]="subtitle()"
3048
3133
  [items]="legendItems()"
@@ -3143,12 +3228,13 @@ class SdsBarChart {
3143
3228
  <div class="sr-only" aria-live="polite" aria-atomic="true">{{ liveText() }}</div>
3144
3229
  </div>
3145
3230
  </sds-chart-frame>
3146
- `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartAxes, selector: "g[sdsChartAxes]", inputs: ["plot", "xTicks", "yTicks", "grid", "baselineY", "baselineX", "xTitle", "yTitle", "width"] }, { kind: "component", type: SdsChartAnnotations, selector: "g[sdsChartAnnotations]", inputs: ["items", "layer"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3231
+ `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "swatchTpl", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartAxes, selector: "g[sdsChartAxes]", inputs: ["plot", "xTicks", "yTicks", "grid", "baselineY", "baselineX", "xTitle", "yTitle", "width"] }, { kind: "component", type: SdsChartAnnotations, selector: "g[sdsChartAnnotations]", inputs: ["items", "layer"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3147
3232
  }
3148
3233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsBarChart, decorators: [{
3149
3234
  type: Component,
3150
3235
  args: [{ selector: 'sds-bar-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdsChartFrame, SdsChartAxes, SdsChartAnnotations, SdsChartTooltipBox], host: { class: 'block' }, template: `
3151
3236
  <sds-chart-frame
3237
+ [swatchTpl]="customSwatch()?.template ?? null"
3152
3238
  [heading]="heading()"
3153
3239
  [subtitle]="subtitle()"
3154
3240
  [items]="legendItems()"
@@ -3250,7 +3336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
3250
3336
  </div>
3251
3337
  </sds-chart-frame>
3252
3338
  `, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"] }]
3253
- }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], x: [{ type: i0.Input, args: [{ isSignal: true, alias: "x", required: true }] }], series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], stack: [{ type: i0.Input, args: [{ isSignal: true, alias: "stack", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], maxBarSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxBarSize", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], showValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValues", required: false }] }], sort: [{ type: i0.Input, args: [{ isSignal: true, alias: "sort", required: false }] }], highlightCategories: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlightCategories", required: false }] }], barColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "barColor", required: false }] }], grid: [{ type: i0.Input, args: [{ isSignal: true, alias: "grid", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], annotations: [{ type: i0.Input, args: [{ isSignal: true, alias: "annotations", required: false }] }], yMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMin", required: false }] }], yMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMax", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], axisFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "axisFormat", required: false }] }], xFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "xFormat", required: false }] }], xLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "xLabel", required: false }] }], yLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "yLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], pointClick: [{ type: i0.Output, args: ["pointClick"] }], customTooltip: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartTooltip), { isSignal: true }] }] } });
3339
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], x: [{ type: i0.Input, args: [{ isSignal: true, alias: "x", required: true }] }], series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: true }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], orientation: [{ type: i0.Input, args: [{ isSignal: true, alias: "orientation", required: false }] }], stack: [{ type: i0.Input, args: [{ isSignal: true, alias: "stack", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], maxBarSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxBarSize", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], showValues: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValues", required: false }] }], sort: [{ type: i0.Input, args: [{ isSignal: true, alias: "sort", required: false }] }], highlightCategories: [{ type: i0.Input, args: [{ isSignal: true, alias: "highlightCategories", required: false }] }], barColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "barColor", required: false }] }], grid: [{ type: i0.Input, args: [{ isSignal: true, alias: "grid", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], annotations: [{ type: i0.Input, args: [{ isSignal: true, alias: "annotations", required: false }] }], yMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMin", required: false }] }], yMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMax", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], axisFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "axisFormat", required: false }] }], xFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "xFormat", required: false }] }], xLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "xLabel", required: false }] }], yLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "yLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], pointClick: [{ type: i0.Output, args: ["pointClick"] }], customTooltip: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartTooltip), { isSignal: true }] }], customSwatch: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartLegendSwatch), { isSignal: true }] }] } });
3254
3340
 
3255
3341
  /**
3256
3342
  * Scatter and bubble chart for relationships between two measures — with an optional third measure
@@ -3330,6 +3416,8 @@ class SdsScatterChart {
3330
3416
  hidden = model([], ...(ngDevMode ? [{ debugName: "hidden" }] : []));
3331
3417
  pointClick = output();
3332
3418
  customTooltip = contentChild(SdsChartTooltip, ...(ngDevMode ? [{ debugName: "customTooltip" }] : []));
3419
+ /** A projected `sdsChartLegendSwatch` template, drawn instead of each legend entry's swatch. */
3420
+ customSwatch = contentChild(SdsChartLegendSwatch, ...(ngDevMode ? [{ debugName: "customSwatch" }] : []));
3333
3421
  uid = chartUid('sds-scatter');
3334
3422
  legendFocus = signal(null, ...(ngDevMode ? [{ debugName: "legendFocus" }] : []));
3335
3423
  active = signal(null, ...(ngDevMode ? [{ debugName: "active" }] : []));
@@ -3761,8 +3849,9 @@ class SdsScatterChart {
3761
3849
  };
3762
3850
  }, ...(ngDevMode ? [{ debugName: "table" }] : []));
3763
3851
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsScatterChart, deps: [], target: i0.ɵɵFactoryTarget.Component });
3764
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsScatterChart, isStandalone: true, selector: "sds-scatter-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, x: { classPropertyName: "x", publicName: "x", isSignal: true, isRequired: true, transformFunction: null }, y: { classPropertyName: "y", publicName: "y", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: false, transformFunction: null }, pointLabel: { classPropertyName: "pointLabel", publicName: "pointLabel", isSignal: true, isRequired: false, transformFunction: null }, groupOrder: { classPropertyName: "groupOrder", publicName: "groupOrder", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, maxRadius: { classPropertyName: "maxRadius", publicName: "maxRadius", isSignal: true, isRequired: false, transformFunction: null }, trendline: { classPropertyName: "trendline", publicName: "trendline", isSignal: true, isRequired: false, transformFunction: null }, grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, annotations: { classPropertyName: "annotations", publicName: "annotations", isSignal: true, isRequired: false, transformFunction: null }, xScale: { classPropertyName: "xScale", publicName: "xScale", isSignal: true, isRequired: false, transformFunction: null }, yScale: { classPropertyName: "yScale", publicName: "yScale", isSignal: true, isRequired: false, transformFunction: null }, xMin: { classPropertyName: "xMin", publicName: "xMin", isSignal: true, isRequired: false, transformFunction: null }, xMax: { classPropertyName: "xMax", publicName: "xMax", isSignal: true, isRequired: false, transformFunction: null }, yMin: { classPropertyName: "yMin", publicName: "yMin", isSignal: true, isRequired: false, transformFunction: null }, yMax: { classPropertyName: "yMax", publicName: "yMax", isSignal: true, isRequired: false, transformFunction: null }, includeZero: { classPropertyName: "includeZero", publicName: "includeZero", isSignal: true, isRequired: false, transformFunction: null }, xFormat: { classPropertyName: "xFormat", publicName: "xFormat", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, axisFormat: { classPropertyName: "axisFormat", publicName: "axisFormat", isSignal: true, isRequired: false, transformFunction: null }, sizeFormat: { classPropertyName: "sizeFormat", publicName: "sizeFormat", isSignal: true, isRequired: false, transformFunction: null }, xLabel: { classPropertyName: "xLabel", publicName: "xLabel", isSignal: true, isRequired: false, transformFunction: null }, yLabel: { classPropertyName: "yLabel", publicName: "yLabel", isSignal: true, isRequired: false, transformFunction: null }, sizeLabel: { classPropertyName: "sizeLabel", publicName: "sizeLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hidden: "hiddenChange", pointClick: "pointClick" }, host: { classAttribute: "block" }, queries: [{ propertyName: "customTooltip", first: true, predicate: SdsChartTooltip, descendants: true, isSignal: true }], ngImport: i0, template: `
3852
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsScatterChart, isStandalone: true, selector: "sds-scatter-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, x: { classPropertyName: "x", publicName: "x", isSignal: true, isRequired: true, transformFunction: null }, y: { classPropertyName: "y", publicName: "y", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, group: { classPropertyName: "group", publicName: "group", isSignal: true, isRequired: false, transformFunction: null }, pointLabel: { classPropertyName: "pointLabel", publicName: "pointLabel", isSignal: true, isRequired: false, transformFunction: null }, groupOrder: { classPropertyName: "groupOrder", publicName: "groupOrder", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, maxRadius: { classPropertyName: "maxRadius", publicName: "maxRadius", isSignal: true, isRequired: false, transformFunction: null }, trendline: { classPropertyName: "trendline", publicName: "trendline", isSignal: true, isRequired: false, transformFunction: null }, grid: { classPropertyName: "grid", publicName: "grid", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, annotations: { classPropertyName: "annotations", publicName: "annotations", isSignal: true, isRequired: false, transformFunction: null }, xScale: { classPropertyName: "xScale", publicName: "xScale", isSignal: true, isRequired: false, transformFunction: null }, yScale: { classPropertyName: "yScale", publicName: "yScale", isSignal: true, isRequired: false, transformFunction: null }, xMin: { classPropertyName: "xMin", publicName: "xMin", isSignal: true, isRequired: false, transformFunction: null }, xMax: { classPropertyName: "xMax", publicName: "xMax", isSignal: true, isRequired: false, transformFunction: null }, yMin: { classPropertyName: "yMin", publicName: "yMin", isSignal: true, isRequired: false, transformFunction: null }, yMax: { classPropertyName: "yMax", publicName: "yMax", isSignal: true, isRequired: false, transformFunction: null }, includeZero: { classPropertyName: "includeZero", publicName: "includeZero", isSignal: true, isRequired: false, transformFunction: null }, xFormat: { classPropertyName: "xFormat", publicName: "xFormat", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, axisFormat: { classPropertyName: "axisFormat", publicName: "axisFormat", isSignal: true, isRequired: false, transformFunction: null }, sizeFormat: { classPropertyName: "sizeFormat", publicName: "sizeFormat", isSignal: true, isRequired: false, transformFunction: null }, xLabel: { classPropertyName: "xLabel", publicName: "xLabel", isSignal: true, isRequired: false, transformFunction: null }, yLabel: { classPropertyName: "yLabel", publicName: "yLabel", isSignal: true, isRequired: false, transformFunction: null }, sizeLabel: { classPropertyName: "sizeLabel", publicName: "sizeLabel", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hidden: "hiddenChange", pointClick: "pointClick" }, host: { classAttribute: "block" }, queries: [{ propertyName: "customTooltip", first: true, predicate: SdsChartTooltip, descendants: true, isSignal: true }, { propertyName: "customSwatch", first: true, predicate: SdsChartLegendSwatch, descendants: true, isSignal: true }], ngImport: i0, template: `
3765
3853
  <sds-chart-frame
3854
+ [swatchTpl]="customSwatch()?.template ?? null"
3766
3855
  [heading]="heading()"
3767
3856
  [subtitle]="subtitle()"
3768
3857
  [items]="legendItems()"
@@ -3878,12 +3967,13 @@ class SdsScatterChart {
3878
3967
  <div class="sr-only" aria-live="polite" aria-atomic="true">{{ liveText() }}</div>
3879
3968
  </div>
3880
3969
  </sds-chart-frame>
3881
- `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartAxes, selector: "g[sdsChartAxes]", inputs: ["plot", "xTicks", "yTicks", "grid", "baselineY", "baselineX", "xTitle", "yTitle", "width"] }, { kind: "component", type: SdsChartAnnotations, selector: "g[sdsChartAnnotations]", inputs: ["items", "layer"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3970
+ `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "swatchTpl", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartAxes, selector: "g[sdsChartAxes]", inputs: ["plot", "xTicks", "yTicks", "grid", "baselineY", "baselineX", "xTitle", "yTitle", "width"] }, { kind: "component", type: SdsChartAnnotations, selector: "g[sdsChartAnnotations]", inputs: ["items", "layer"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
3882
3971
  }
3883
3972
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsScatterChart, decorators: [{
3884
3973
  type: Component,
3885
3974
  args: [{ selector: 'sds-scatter-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdsChartFrame, SdsChartAxes, SdsChartAnnotations, SdsChartTooltipBox], host: { class: 'block' }, template: `
3886
3975
  <sds-chart-frame
3976
+ [swatchTpl]="customSwatch()?.template ?? null"
3887
3977
  [heading]="heading()"
3888
3978
  [subtitle]="subtitle()"
3889
3979
  [items]="legendItems()"
@@ -4000,7 +4090,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4000
4090
  </div>
4001
4091
  </sds-chart-frame>
4002
4092
  `, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"] }]
4003
- }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], x: [{ type: i0.Input, args: [{ isSignal: true, alias: "x", required: true }] }], y: [{ type: i0.Input, args: [{ isSignal: true, alias: "y", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], group: [{ type: i0.Input, args: [{ isSignal: true, alias: "group", required: false }] }], pointLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "pointLabel", required: false }] }], groupOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupOrder", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], maxRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxRadius", required: false }] }], trendline: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendline", required: false }] }], grid: [{ type: i0.Input, args: [{ isSignal: true, alias: "grid", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], annotations: [{ type: i0.Input, args: [{ isSignal: true, alias: "annotations", required: false }] }], xScale: [{ type: i0.Input, args: [{ isSignal: true, alias: "xScale", required: false }] }], yScale: [{ type: i0.Input, args: [{ isSignal: true, alias: "yScale", required: false }] }], xMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "xMin", required: false }] }], xMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "xMax", required: false }] }], yMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMin", required: false }] }], yMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMax", required: false }] }], includeZero: [{ type: i0.Input, args: [{ isSignal: true, alias: "includeZero", required: false }] }], xFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "xFormat", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], axisFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "axisFormat", required: false }] }], sizeFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "sizeFormat", required: false }] }], xLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "xLabel", required: false }] }], yLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "yLabel", required: false }] }], sizeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sizeLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], pointClick: [{ type: i0.Output, args: ["pointClick"] }], customTooltip: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartTooltip), { isSignal: true }] }] } });
4093
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], x: [{ type: i0.Input, args: [{ isSignal: true, alias: "x", required: true }] }], y: [{ type: i0.Input, args: [{ isSignal: true, alias: "y", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], group: [{ type: i0.Input, args: [{ isSignal: true, alias: "group", required: false }] }], pointLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "pointLabel", required: false }] }], groupOrder: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupOrder", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], maxRadius: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxRadius", required: false }] }], trendline: [{ type: i0.Input, args: [{ isSignal: true, alias: "trendline", required: false }] }], grid: [{ type: i0.Input, args: [{ isSignal: true, alias: "grid", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], annotations: [{ type: i0.Input, args: [{ isSignal: true, alias: "annotations", required: false }] }], xScale: [{ type: i0.Input, args: [{ isSignal: true, alias: "xScale", required: false }] }], yScale: [{ type: i0.Input, args: [{ isSignal: true, alias: "yScale", required: false }] }], xMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "xMin", required: false }] }], xMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "xMax", required: false }] }], yMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMin", required: false }] }], yMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMax", required: false }] }], includeZero: [{ type: i0.Input, args: [{ isSignal: true, alias: "includeZero", required: false }] }], xFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "xFormat", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], axisFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "axisFormat", required: false }] }], sizeFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "sizeFormat", required: false }] }], xLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "xLabel", required: false }] }], yLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "yLabel", required: false }] }], sizeLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "sizeLabel", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], pointClick: [{ type: i0.Output, args: ["pointClick"] }], customTooltip: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartTooltip), { isSignal: true }] }], customSwatch: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartLegendSwatch), { isSignal: true }] }] } });
4004
4094
 
4005
4095
  /** Key of the folded "Other" slice — in `hidden` and in `pointClick.key`. */
4006
4096
  const SDS_DONUT_OTHER_KEY = '__sds_other__';
@@ -4062,6 +4152,8 @@ class SdsDonutChart {
4062
4152
  hidden = model([], ...(ngDevMode ? [{ debugName: "hidden" }] : []));
4063
4153
  pointClick = output();
4064
4154
  customTooltip = contentChild(SdsChartTooltip, ...(ngDevMode ? [{ debugName: "customTooltip" }] : []));
4155
+ /** A projected `sdsChartLegendSwatch` template, drawn instead of each legend entry's swatch. */
4156
+ customSwatch = contentChild(SdsChartLegendSwatch, ...(ngDevMode ? [{ debugName: "customSwatch" }] : []));
4065
4157
  focus = signal(null, ...(ngDevMode ? [{ debugName: "focus" }] : []));
4066
4158
  active = signal(null, ...(ngDevMode ? [{ debugName: "active" }] : []));
4067
4159
  keyboard = signal(false, ...(ngDevMode ? [{ debugName: "keyboard" }] : []));
@@ -4349,7 +4441,7 @@ class SdsDonutChart {
4349
4441
  const share = total && !hidden.has(s.key) ? this.pct()(s.value / total) : '';
4350
4442
  const value = this.fmt()(s.value);
4351
4443
  const detail = mode === 'none' ? undefined : mode === 'percent' ? share : mode === 'value' ? value : share ? `${value} · ${share}` : value;
4352
- return { key: s.key, label: s.label, color: s.color, shape: 'rect', detail };
4444
+ return { key: s.key, label: s.label, color: s.color, shape: 'rect', detail, row: s.other ? null : (s.rows[0] ?? null), other: s.other };
4353
4445
  });
4354
4446
  }, ...(ngDevMode ? [{ debugName: "legendItems" }] : []));
4355
4447
  label = computed(() => {
@@ -4365,8 +4457,9 @@ class SdsDonutChart {
4365
4457
  };
4366
4458
  }, ...(ngDevMode ? [{ debugName: "table" }] : []));
4367
4459
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsDonutChart, deps: [], target: i0.ɵɵFactoryTarget.Component });
4368
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsDonutChart, isStandalone: true, selector: "sds-donut-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, category: { classPropertyName: "category", publicName: "category", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, half: { classPropertyName: "half", publicName: "half", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, maxSlices: { classPropertyName: "maxSlices", publicName: "maxSlices", isSignal: true, isRequired: false, transformFunction: null }, otherLabel: { classPropertyName: "otherLabel", publicName: "otherLabel", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, legendValue: { classPropertyName: "legendValue", publicName: "legendValue", isSignal: true, isRequired: false, transformFunction: null }, centerLabel: { classPropertyName: "centerLabel", publicName: "centerLabel", isSignal: true, isRequired: false, transformFunction: null }, centerValue: { classPropertyName: "centerValue", publicName: "centerValue", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hidden: "hiddenChange", pointClick: "pointClick" }, host: { classAttribute: "block" }, queries: [{ propertyName: "customTooltip", first: true, predicate: SdsChartTooltip, descendants: true, isSignal: true }], ngImport: i0, template: `
4460
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.25", type: SdsDonutChart, isStandalone: true, selector: "sds-donut-chart", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, category: { classPropertyName: "category", publicName: "category", isSignal: true, isRequired: true, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, heading: { classPropertyName: "heading", publicName: "heading", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, half: { classPropertyName: "half", publicName: "half", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, thickness: { classPropertyName: "thickness", publicName: "thickness", isSignal: true, isRequired: false, transformFunction: null }, maxSlices: { classPropertyName: "maxSlices", publicName: "maxSlices", isSignal: true, isRequired: false, transformFunction: null }, otherLabel: { classPropertyName: "otherLabel", publicName: "otherLabel", isSignal: true, isRequired: false, transformFunction: null }, sort: { classPropertyName: "sort", publicName: "sort", isSignal: true, isRequired: false, transformFunction: null }, legend: { classPropertyName: "legend", publicName: "legend", isSignal: true, isRequired: false, transformFunction: null }, legendValue: { classPropertyName: "legendValue", publicName: "legendValue", isSignal: true, isRequired: false, transformFunction: null }, centerLabel: { classPropertyName: "centerLabel", publicName: "centerLabel", isSignal: true, isRequired: false, transformFunction: null }, centerValue: { classPropertyName: "centerValue", publicName: "centerValue", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, locale: { classPropertyName: "locale", publicName: "locale", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyText: { classPropertyName: "emptyText", publicName: "emptyText", isSignal: true, isRequired: false, transformFunction: null }, tableToggle: { classPropertyName: "tableToggle", publicName: "tableToggle", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, hidden: { classPropertyName: "hidden", publicName: "hidden", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { hidden: "hiddenChange", pointClick: "pointClick" }, host: { classAttribute: "block" }, queries: [{ propertyName: "customTooltip", first: true, predicate: SdsChartTooltip, descendants: true, isSignal: true }, { propertyName: "customSwatch", first: true, predicate: SdsChartLegendSwatch, descendants: true, isSignal: true }], ngImport: i0, template: `
4369
4461
  <sds-chart-frame
4462
+ [swatchTpl]="customSwatch()?.template ?? null"
4370
4463
  [heading]="heading()"
4371
4464
  [subtitle]="subtitle()"
4372
4465
  [items]="legendItems()"
@@ -4432,12 +4525,13 @@ class SdsDonutChart {
4432
4525
  <div class="sr-only" aria-live="polite" aria-atomic="true">{{ liveText() }}</div>
4433
4526
  </div>
4434
4527
  </sds-chart-frame>
4435
- `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4528
+ `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "swatchTpl", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4436
4529
  }
4437
4530
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsDonutChart, decorators: [{
4438
4531
  type: Component,
4439
4532
  args: [{ selector: 'sds-donut-chart', changeDetection: ChangeDetectionStrategy.OnPush, imports: [SdsChartFrame, SdsChartTooltipBox], host: { class: 'block' }, template: `
4440
4533
  <sds-chart-frame
4534
+ [swatchTpl]="customSwatch()?.template ?? null"
4441
4535
  [heading]="heading()"
4442
4536
  [subtitle]="subtitle()"
4443
4537
  [items]="legendItems()"
@@ -4504,7 +4598,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
4504
4598
  </div>
4505
4599
  </sds-chart-frame>
4506
4600
  `, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"] }]
4507
- }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], category: [{ type: i0.Input, args: [{ isSignal: true, alias: "category", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], half: [{ type: i0.Input, args: [{ isSignal: true, alias: "half", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], thickness: [{ type: i0.Input, args: [{ isSignal: true, alias: "thickness", required: false }] }], maxSlices: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSlices", required: false }] }], otherLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "otherLabel", required: false }] }], sort: [{ type: i0.Input, args: [{ isSignal: true, alias: "sort", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], legendValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendValue", required: false }] }], centerLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerLabel", required: false }] }], centerValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerValue", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], pointClick: [{ type: i0.Output, args: ["pointClick"] }], customTooltip: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartTooltip), { isSignal: true }] }] } });
4601
+ }], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], category: [{ type: i0.Input, args: [{ isSignal: true, alias: "category", required: true }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], color: [{ type: i0.Input, args: [{ isSignal: true, alias: "color", required: false }] }], heading: [{ type: i0.Input, args: [{ isSignal: true, alias: "heading", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], half: [{ type: i0.Input, args: [{ isSignal: true, alias: "half", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], thickness: [{ type: i0.Input, args: [{ isSignal: true, alias: "thickness", required: false }] }], maxSlices: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxSlices", required: false }] }], otherLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "otherLabel", required: false }] }], sort: [{ type: i0.Input, args: [{ isSignal: true, alias: "sort", required: false }] }], legend: [{ type: i0.Input, args: [{ isSignal: true, alias: "legend", required: false }] }], legendValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "legendValue", required: false }] }], centerLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerLabel", required: false }] }], centerValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "centerValue", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], locale: [{ type: i0.Input, args: [{ isSignal: true, alias: "locale", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyText: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyText", required: false }] }], tableToggle: [{ type: i0.Input, args: [{ isSignal: true, alias: "tableToggle", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], hidden: [{ type: i0.Input, args: [{ isSignal: true, alias: "hidden", required: false }] }, { type: i0.Output, args: ["hiddenChange"] }], pointClick: [{ type: i0.Output, args: ["pointClick"] }], customTooltip: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartTooltip), { isSignal: true }] }], customSwatch: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SdsChartLegendSwatch), { isSignal: true }] }] } });
4508
4602
 
4509
4603
  const GAP = 2;
4510
4604
  /**
@@ -4933,7 +5027,7 @@ class SdsHeatmap {
4933
5027
  </div>
4934
5028
  }
4935
5029
  </sds-chart-frame>
4936
- `, isInline: true, styles: [".heat-cell{cursor:pointer}.heat-anim{transition:fill .3s ease}@media(prefers-reduced-motion:reduce){.heat-anim{transition:none}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5030
+ `, isInline: true, styles: [".heat-cell{cursor:pointer}.heat-anim{transition:fill .3s ease}@media(prefers-reduced-motion:reduce){.heat-anim{transition:none}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "swatchTpl", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4937
5031
  }
4938
5032
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsHeatmap, decorators: [{
4939
5033
  type: Component,
@@ -5444,7 +5538,7 @@ class SdsTreemap {
5444
5538
  <div class="sr-only" aria-live="polite" aria-atomic="true">{{ liveText() }}</div>
5445
5539
  </div>
5446
5540
  </sds-chart-frame>
5447
- `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }, { kind: "component", type: SdsIcon, selector: "sds-icon", inputs: ["name", "size", "strokeWidth", "filled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5541
+ `, isInline: true, styles: [".sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}\n"], dependencies: [{ kind: "component", type: SdsChartFrame, selector: "sds-chart-frame", inputs: ["heading", "subtitle", "items", "legend", "swatchTpl", "hidden", "interactive", "loading", "empty", "emptyText", "height", "table", "tableCaption", "tableToggle"], outputs: ["toggle", "focusKey"] }, { kind: "component", type: SdsChartTooltipBox, selector: "sds-chart-tooltip-box", inputs: ["ctx", "template", "x", "y", "containerWidth", "containerHeight"] }, { kind: "component", type: SdsIcon, selector: "sds-icon", inputs: ["name", "size", "strokeWidth", "filled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
5448
5542
  }
5449
5543
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImport: i0, type: SdsTreemap, decorators: [{
5450
5544
  type: Component,
@@ -6145,5 +6239,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.25", ngImpo
6145
6239
  * Generated bundle index. Do not edit.
6146
6240
  */
6147
6241
 
6148
- export { SDS_DONUT_OTHER_KEY, SdsBarChart, SdsChartTooltip, SdsDonutChart, SdsHeatmap, SdsKpi, SdsLineChart, SdsScatterChart, SdsSparkline, SdsTreemap };
6242
+ export { SDS_DONUT_OTHER_KEY, SdsBarChart, SdsChartLegendSwatch, SdsChartTooltip, SdsDonutChart, SdsHeatmap, SdsKpi, SdsLineChart, SdsScatterChart, SdsSparkline, SdsTreemap };
6149
6243
  //# sourceMappingURL=besaitech-ng-design-system-charts.mjs.map