@designsystem-se/af 35.3.1 → 35.4.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/components/digi-bar-chart.js +126 -111
  2. package/components/digi-chart-line.js +1 -1
  3. package/components/digi-code-block.js +1 -1
  4. package/components/digi-code-example.js +1 -1
  5. package/components/digi-info-card.js +1 -1
  6. package/components/digi-link-button.js +3 -1
  7. package/components/p-472bc7d3.js +129 -0
  8. package/custom-elements.json +6 -2
  9. package/dist/cjs/digi-arbetsformedlingen.cjs.js +1 -1
  10. package/dist/cjs/{digi-button_24.cjs.entry.js → digi-bar-chart_27.cjs.entry.js} +1611 -47
  11. package/dist/cjs/digi-calendar-datepicker.cjs.entry.js +2 -2
  12. package/dist/cjs/digi-chart-line.cjs.entry.js +1 -1
  13. package/dist/cjs/digi-code-block_3.cjs.entry.js +3 -3
  14. package/dist/cjs/digi-dialog.cjs.entry.js +2 -2
  15. package/dist/cjs/digi-footer.cjs.entry.js +2 -2
  16. package/dist/cjs/digi-form-error-list.cjs.entry.js +2 -2
  17. package/dist/cjs/digi-form-receipt.cjs.entry.js +2 -2
  18. package/dist/cjs/digi-form-select-filter.cjs.entry.js +2 -2
  19. package/dist/cjs/digi-info-card.cjs.entry.js +1 -1
  20. package/dist/cjs/digi-link-button.cjs.entry.js +2 -1
  21. package/dist/cjs/digi-navigation-pagination.cjs.entry.js +2 -2
  22. package/dist/cjs/digi-notification-alert.cjs.entry.js +2 -2
  23. package/dist/cjs/digi-notification-error-page.cjs.entry.js +2 -2
  24. package/dist/cjs/digi-tools-feedback.cjs.entry.js +2 -2
  25. package/dist/cjs/digi-typography-heading-jumbo.cjs.entry.js +38 -0
  26. package/dist/cjs/digi-typography-preamble.cjs.entry.js +20 -0
  27. package/dist/cjs/index-7a477838.js +10 -14
  28. package/dist/cjs/index.cjs.js +20 -20
  29. package/dist/cjs/loader.cjs.js +1 -1
  30. package/dist/cjs/typography-heading-jumbo-variation.enum-8677e099.js +17 -0
  31. package/dist/cjs/{typography-variation.enum-9f56fd50.js → typography-variation.enum-8fd8bed4.js} +6 -16
  32. package/dist/collection/components/_chart/bar-chart/bar-chart.css +13 -19
  33. package/dist/collection/components/_chart/bar-chart/bar-chart.js +125 -110
  34. package/dist/collection/components/_chart/chart-line/chart-line.css +19 -23
  35. package/dist/collection/components/_code/code-block/code-block.css +2 -2
  36. package/dist/collection/components/_info-card/info-card/info-card.js +5 -5
  37. package/dist/collection/components/_link/link-button/link-button.js +24 -1
  38. package/dist/digi-arbetsformedlingen/digi-arbetsformedlingen.esm.js +1 -1
  39. package/dist/digi-arbetsformedlingen/index.esm.js +1 -1
  40. package/dist/digi-arbetsformedlingen/p-044b32d7.entry.js +1 -0
  41. package/dist/digi-arbetsformedlingen/{p-e2330d9c.entry.js → p-1241d74a.entry.js} +1 -1
  42. package/dist/digi-arbetsformedlingen/{p-e54f5b28.entry.js → p-222a2b41.entry.js} +1 -1
  43. package/dist/digi-arbetsformedlingen/p-37377041.entry.js +1 -0
  44. package/dist/digi-arbetsformedlingen/p-3ae60edc.entry.js +1 -0
  45. package/dist/digi-arbetsformedlingen/p-431baa4e.entry.js +1 -0
  46. package/dist/digi-arbetsformedlingen/{p-0d35dc92.entry.js → p-56ca6c5c.entry.js} +1 -1
  47. package/dist/digi-arbetsformedlingen/{p-6559910e.entry.js → p-58f76475.entry.js} +1 -1
  48. package/dist/digi-arbetsformedlingen/{p-092d0e3e.entry.js → p-5a08f170.entry.js} +1 -1
  49. package/dist/digi-arbetsformedlingen/p-5aae7437.entry.js +1 -0
  50. package/dist/digi-arbetsformedlingen/{p-c04b06a2.entry.js → p-5ac3d7a9.entry.js} +1 -1
  51. package/dist/digi-arbetsformedlingen/{p-e0db40e9.entry.js → p-69010d14.entry.js} +1 -1
  52. package/dist/digi-arbetsformedlingen/{p-f1a6524e.entry.js → p-83b3f053.entry.js} +1 -1
  53. package/dist/digi-arbetsformedlingen/p-86eddf30.js +1 -0
  54. package/dist/digi-arbetsformedlingen/p-9f03b573.entry.js +1 -0
  55. package/dist/digi-arbetsformedlingen/p-a884ccf8.entry.js +1 -0
  56. package/dist/digi-arbetsformedlingen/{p-01f5f243.entry.js → p-c4cf1215.entry.js} +1 -1
  57. package/dist/digi-arbetsformedlingen/p-d1886fff.js +1 -0
  58. package/dist/digi-arbetsformedlingen/{p-5c7acd45.entry.js → p-e3bdf65a.entry.js} +1 -1
  59. package/dist/esm/digi-arbetsformedlingen.js +1 -1
  60. package/dist/esm/{digi-button_24.entry.js → digi-bar-chart_27.entry.js} +1608 -47
  61. package/dist/esm/digi-calendar-datepicker.entry.js +2 -2
  62. package/dist/esm/digi-chart-line.entry.js +1 -1
  63. package/dist/esm/digi-code-block_3.entry.js +3 -3
  64. package/dist/esm/digi-dialog.entry.js +2 -2
  65. package/dist/esm/digi-footer.entry.js +2 -2
  66. package/dist/esm/digi-form-error-list.entry.js +2 -2
  67. package/dist/esm/digi-form-receipt.entry.js +2 -2
  68. package/dist/esm/digi-form-select-filter.entry.js +2 -2
  69. package/dist/esm/digi-info-card.entry.js +1 -1
  70. package/dist/esm/digi-link-button.entry.js +2 -1
  71. package/dist/esm/digi-navigation-pagination.entry.js +2 -2
  72. package/dist/esm/digi-notification-alert.entry.js +2 -2
  73. package/dist/esm/digi-notification-error-page.entry.js +2 -2
  74. package/dist/esm/digi-tools-feedback.entry.js +2 -2
  75. package/dist/esm/digi-typography-heading-jumbo.entry.js +34 -0
  76. package/dist/esm/digi-typography-preamble.entry.js +16 -0
  77. package/dist/esm/index-148a7577.js +10 -14
  78. package/dist/esm/index.js +2 -2
  79. package/dist/esm/loader.js +1 -1
  80. package/dist/esm/typography-heading-jumbo-variation.enum-eb737f1b.js +17 -0
  81. package/dist/esm/{typography-variation.enum-8ba40d15.js → typography-variation.enum-531cdf64.js} +7 -17
  82. package/dist/types/components/_chart/bar-chart/bar-chart.d.ts +9 -0
  83. package/dist/types/components/_info-card/info-card/info-card.d.ts +4 -4
  84. package/dist/types/components/_link/link-button/link-button.d.ts +5 -0
  85. package/dist/types/components.d.ts +18 -8
  86. package/hydrate/index.js +132 -115
  87. package/hydrate/index.mjs +132 -115
  88. package/package.json +1 -1
  89. package/components/p-2bc16106.js +0 -129
  90. package/dist/cjs/bar-chart-variation.enum-a4e866b6.js +0 -7
  91. package/dist/cjs/digi-bar-chart.cjs.entry.js +0 -1510
  92. package/dist/cjs/digi-icon-caret-down_2.cjs.entry.js +0 -53
  93. package/dist/cjs/digi-icon-chart_2.cjs.entry.js +0 -53
  94. package/dist/digi-arbetsformedlingen/p-0c271457.entry.js +0 -1
  95. package/dist/digi-arbetsformedlingen/p-2422b0d1.entry.js +0 -1
  96. package/dist/digi-arbetsformedlingen/p-54a797ed.entry.js +0 -1
  97. package/dist/digi-arbetsformedlingen/p-a5c6e42e.entry.js +0 -1
  98. package/dist/digi-arbetsformedlingen/p-b22f09f1.entry.js +0 -1
  99. package/dist/digi-arbetsformedlingen/p-bd6e0b22.entry.js +0 -1
  100. package/dist/digi-arbetsformedlingen/p-c1606b8a.entry.js +0 -1
  101. package/dist/digi-arbetsformedlingen/p-d2d0856f.js +0 -1
  102. package/dist/digi-arbetsformedlingen/p-d8b9b535.entry.js +0 -1
  103. package/dist/digi-arbetsformedlingen/p-dcdffb3c.js +0 -1
  104. package/dist/esm/bar-chart-variation.enum-97c0b47f.js +0 -7
  105. package/dist/esm/digi-bar-chart.entry.js +0 -1506
  106. package/dist/esm/digi-icon-caret-down_2.entry.js +0 -48
  107. package/dist/esm/digi-icon-chart_2.entry.js +0 -48
@@ -1,13 +1,14 @@
1
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement, F as Fragment } from './index-148a7577.js';
1
+ import { r as registerInstance, h, H as Host, g as getElement, c as createEvent, F as Fragment } from './index-148a7577.js';
2
+ import { o as ordinal, i as initRange, r as range, s as select, a as axisLeft, l as linear, b as axisBottom, p as polyInOut, c as interpolate, m as max, d as min, e as linear$1 } from './linear-0246aaea.js';
3
+ import { _ as _t } from './text-26e02c8d.js';
2
4
  import { r as randomIdGenerator } from './randomIdGenerator.util-56406f2e.js';
5
+ import { a as BarChartVariation, H as HeaderCenterContentWidth, L as LayoutBlockContainer, p as LayoutContainerVariation, q as LayoutContainerMaxWidth, r as NavigationVerticalMenuVariation, N as NavigationVerticalMenuActiveIndicatorSize, T as TitleLogoVariation } from './typography-variation.enum-531cdf64.js';
3
6
  import { B as ButtonSize } from './code-example-variation.enum-e656d235.js';
4
7
  import { B as ButtonType } from './form-input-search-variation.enum-6d8dc10a.js';
5
8
  import { B as ButtonVariation } from './button-variation.enum-94fffdd6.js';
6
9
  import './badge-notification-shape.enum-e15a6245.js';
7
- import { H as HeaderCenterContentWidth, L as LayoutBlockContainer, o as LayoutContainerVariation, p as LayoutContainerMaxWidth, q as NavigationVerticalMenuVariation, N as NavigationVerticalMenuActiveIndicatorSize, T as TitleLogoVariation, x as TypographyHeadingJumboLevel, y as TypographyHeadingJumboVariation } from './typography-variation.enum-8ba40d15.js';
8
10
  import './badge-status-variation.enum-8d6370ff.js';
9
11
  import './calendar-week-view-heading-level.enum-6774297c.js';
10
- import './bar-chart-variation.enum-97c0b47f.js';
11
12
  import './code-variation.enum-1eee7c7a.js';
12
13
  import './expandable-accordion-header-level.enum-85681e2f.js';
13
14
  import './expandable-faq-item-variation.enum-a8cb225b.js';
@@ -42,12 +43,1527 @@ import './tag-size.enum-403e0cd8.js';
42
43
  import './tools-feedback-banner-type.enum-74b4e580.js';
43
44
  import './tools-feedback-rating-variation.enum-29058ff2.js';
44
45
  import './tools-theme-provider.brand.enum-8c5a98c9.js';
46
+ import './typography-heading-jumbo-variation.enum-eb737f1b.js';
45
47
  import './typography-meta-variation.enum-1f7c2878.js';
46
48
  import './typography-time-variation.enum-34c830ef.js';
47
49
  import { U as UtilBreakpointObserverBreakpoints } from './util-breakpoint-observer-breakpoints.enum-6d004731.js';
48
50
  import { l as logger } from './logger.util-ede3c48a.js';
49
51
  import { K as KEY_CODE, k as keyboardHandler } from './keyboardHandler.util-383c0054.js';
50
52
 
53
+ function band() {
54
+ var scale = ordinal().unknown(undefined),
55
+ domain = scale.domain,
56
+ ordinalRange = scale.range,
57
+ r0 = 0,
58
+ r1 = 1,
59
+ step,
60
+ bandwidth,
61
+ round = false,
62
+ paddingInner = 0,
63
+ paddingOuter = 0,
64
+ align = 0.5;
65
+
66
+ delete scale.unknown;
67
+
68
+ function rescale() {
69
+ var n = domain().length,
70
+ reverse = r1 < r0,
71
+ start = reverse ? r1 : r0,
72
+ stop = reverse ? r0 : r1;
73
+ step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);
74
+ if (round) step = Math.floor(step);
75
+ start += (stop - start - step * (n - paddingInner)) * align;
76
+ bandwidth = step * (1 - paddingInner);
77
+ if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);
78
+ var values = range(n).map(function(i) { return start + step * i; });
79
+ return ordinalRange(reverse ? values.reverse() : values);
80
+ }
81
+
82
+ scale.domain = function(_) {
83
+ return arguments.length ? (domain(_), rescale()) : domain();
84
+ };
85
+
86
+ scale.range = function(_) {
87
+ return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];
88
+ };
89
+
90
+ scale.rangeRound = function(_) {
91
+ return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();
92
+ };
93
+
94
+ scale.bandwidth = function() {
95
+ return bandwidth;
96
+ };
97
+
98
+ scale.step = function() {
99
+ return step;
100
+ };
101
+
102
+ scale.round = function(_) {
103
+ return arguments.length ? (round = !!_, rescale()) : round;
104
+ };
105
+
106
+ scale.padding = function(_) {
107
+ return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;
108
+ };
109
+
110
+ scale.paddingInner = function(_) {
111
+ return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;
112
+ };
113
+
114
+ scale.paddingOuter = function(_) {
115
+ return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;
116
+ };
117
+
118
+ scale.align = function(_) {
119
+ return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;
120
+ };
121
+
122
+ scale.copy = function() {
123
+ return band(domain(), [r0, r1])
124
+ .round(round)
125
+ .paddingInner(paddingInner)
126
+ .paddingOuter(paddingOuter)
127
+ .align(align);
128
+ };
129
+
130
+ return initRange.apply(rescale(), arguments);
131
+ }
132
+
133
+ const barChartCss = ".sc-digi-bar-chart-h .digi-bar-chart.sc-digi-bar-chart{font-family:var(--digi--global--typography--font-family--default)}.sc-digi-bar-chart-h .topWrapper.sc-digi-bar-chart,.sc-digi-bar-chart-h .chartTitle.sc-digi-bar-chart .digi-typography.sc-digi-bar-chart{display:flex;flex-direction:column;gap:0.75rem}.sc-digi-bar-chart-h .topWrapper.sc-digi-bar-chart{margin-bottom:0.75rem}.sc-digi-bar-chart-h .chartTitle.sc-digi-bar-chart{--MARGIN--HEADING-2:0;--MARGIN--HEADING-3:0;--MARGIN--HEADING-4:0;--MARGIN--HEADING-5:0;--MARGIN--HEADING-6:0}.sc-digi-bar-chart-h .buttonWrapper.sc-digi-bar-chart{--digi--button--padding--medium:4px 4px 0.8125rem 0}.sc-digi-bar-chart-h .chartTooltip.sc-digi-bar-chart{box-sizing:border-box;position:absolute;background-color:rgba(250, 250, 250, 0.98);color:black;padding:5px 10px;padding-right:5px;border-radius:4px;display:flex;flex-direction:row;align-items:flex-start;box-shadow:rgba(60, 64, 67, 0.4) 0px 1px 2px 0px, rgba(60, 64, 67, 0.2) 0px 2px 6px 2px;font-size:0.875rem;display:none}.sc-digi-bar-chart-h .close.sc-digi-bar-chart{--digi--icon--color:black;cursor:pointer;margin-top:-5px}.sc-digi-bar-chart-h .legend.sc-digi-bar-chart::-webkit-scrollbar,.sc-digi-bar-chart-h .table.sc-digi-bar-chart::-webkit-scrollbar{height:10px;width:10px}.sc-digi-bar-chart-h .legend.sc-digi-bar-chart::-webkit-scrollbar-track,.sc-digi-bar-chart-h .table.sc-digi-bar-chart::-webkit-scrollbar-track{background:whitesmoke;border-radius:4px}.sc-digi-bar-chart-h .legend.sc-digi-bar-chart::-webkit-scrollbar-thumb,.sc-digi-bar-chart-h .table.sc-digi-bar-chart::-webkit-scrollbar-thumb{background-color:lightgray;border-radius:4px;border:0}.sc-digi-bar-chart-h .scChartStatus.sc-digi-bar-chart{border:0;clip:rect(1px, 1px, 1px, 1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}.sc-digi-bar-chart-h .table.sc-digi-bar-chart{display:none;overflow-y:scroll;height:fit-content;border-radius:4px;padding:0.25rem;background:linear-gradient(white 30%, rgba(255, 255, 255, 0)) center top, linear-gradient(rgba(255, 255, 255, 0), white 70%) center bottom, radial-gradient(farthest-side at 50% 0, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) center top, radial-gradient(farthest-side at 50% 100%, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0)) center bottom;background-repeat:no-repeat;background-size:100% 40px, 100% 40px, 100% 14px, 100% 14px;background-attachment:local, local, scroll, scroll}";
134
+ const DigiBarChartStyle0 = barChartCss;
135
+
136
+ const barChart = class {
137
+ constructor(hostRef) {
138
+ registerInstance(this, hostRef);
139
+ // States
140
+ this._loading = false;
141
+ this._placeholderTicks = ['0', '1', '2', '3', '4', '5', '6', '7'];
142
+ // Width of data at each tick, if we have two data series that have values att same tick, this will be 2 for example. defaults to 1;
143
+ this.dataWidth = 1;
144
+ this.barGap = 0;
145
+ this._dims = {};
146
+ this._margin = {
147
+ bottom: 0,
148
+ top: 6,
149
+ left: 5,
150
+ right: 15,
151
+ ellipsis: false
152
+ };
153
+ this.tickPadding = 8;
154
+ this.yTickSize = 0;
155
+ this.xTickSize = 5;
156
+ // Width of the largets X-tick-value
157
+ this._tickWidth = 1;
158
+ // Transition
159
+ this.defaultDuration = 400;
160
+ // Text and formats
161
+ this.fontSize = '0.875rem';
162
+ this.colorPalettes = ['--digi--color--background--brand-primary', '--digi--color--infographic--brand--primary', '--digi--color--background--sentiment--beta--primary', '--digi--color--text--interactive--visited', '--digi--color--icon--validation--error'];
163
+ // Observer for watching size changes when in line chart mode
164
+ this.barChartObserver = new ResizeObserver((entries) => {
165
+ entries.forEach(() => {
166
+ if (this._loading)
167
+ return this.loadingResize();
168
+ this.resize();
169
+ });
170
+ });
171
+ // Observer for watching size changes when in table mode
172
+ this.tableObserver = new ResizeObserver((entries) => {
173
+ entries.forEach(() => {
174
+ select(this._legendDiv).style('width', this._dims.width + 'px');
175
+ this.resizeTable();
176
+ });
177
+ });
178
+ // Resizing chart while loading
179
+ this.loadingResize = () => {
180
+ const newHeight = this.setDims();
181
+ this.setMargins(true);
182
+ this._svg.attr('width', this._dims.width).attr('height', this._dims.height);
183
+ this._barChartContainer.attr('transform', `translate(${this._margin.left + this.tickPadding + this.yTickSize},0)`);
184
+ this._margin.right =
185
+ this.getTextSize(this._xScale.domain()[1].toLocaleString()) / 2 +
186
+ this.yTickSize +
187
+ this.tickPadding;
188
+ // If there is a new height
189
+ if (newHeight) {
190
+ // Update y-axis with potentially new height (might want to do a check here)
191
+ this.afVariation === BarChartVariation.Horizontal
192
+ ? this._yScale.range([
193
+ this._margin.top,
194
+ this._dims.height - this._margin.bottom
195
+ ])
196
+ : this._yScale.range([
197
+ this._dims.height - this._margin.bottom,
198
+ this._margin.top
199
+ ]);
200
+ this._xAxisHandle.attr('transform', `translate(0,${this._dims.height - this._margin.bottom})`);
201
+ }
202
+ // Update x-axis with new width
203
+ this._xScale.range([
204
+ 0,
205
+ this._dims.width - this._margin.right - this._margin.left
206
+ ]);
207
+ this._barSelection
208
+ .attr('x', this.xFunction)
209
+ .attr('width', this.widthFunction);
210
+ this.setValueTicks();
211
+ };
212
+ // Adding click listener for tool tip text
213
+ this.setTickInteraction = () => {
214
+ if (this.afVariation === BarChartVariation.Horizontal) {
215
+ this._yAxisHandle
216
+ .selectAll('text')
217
+ .style('cursor', 'pointer')
218
+ .on('click', this.openTooltip)
219
+ .on('mouseenter', this.hover)
220
+ .on('mouseleave', this.hoverOut);
221
+ }
222
+ else {
223
+ this._xAxisHandle
224
+ .selectAll('text')
225
+ .style('cursor', 'pointer')
226
+ .on('click', this.openTooltip)
227
+ .on('mouseenter', this.hover)
228
+ .on('mouseleave', this.hoverOut);
229
+ }
230
+ };
231
+ // Setting Y-scale
232
+ this.setYScale = (empty) => {
233
+ var _a, _b, _c;
234
+ if (this.afVariation == BarChartVariation.Horizontal) {
235
+ this._yScale = band(empty
236
+ ? ['0', '1', '2', '3', '4', '5', '6', '7']
237
+ : this._chartData.data.xValueNames, [this._margin.top, this._dims.height - this._margin.bottom])
238
+ .paddingOuter(0.1)
239
+ .paddingInner(0.1);
240
+ this._yAxis = axisLeft(this._yScale);
241
+ }
242
+ else {
243
+ this._yScale = linear()
244
+ .domain(empty ? [0, 10] : [this._minVal, this._maxVal])
245
+ .nice(((_b = (_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.numberOfReferenceLines)
246
+ ? (_c = this._chartData) === null || _c === void 0 ? void 0 : _c.meta.numberOfReferenceLines
247
+ : 3);
248
+ this._yScale.range([
249
+ this._dims.height - this._margin.bottom,
250
+ this._margin.top
251
+ ]);
252
+ this._yAxis = axisLeft(this._yScale);
253
+ }
254
+ };
255
+ // Setting X-Scale
256
+ this.setXScale = (empty) => {
257
+ // Horizontal
258
+ if (this.afVariation == BarChartVariation.Horizontal) {
259
+ this._xScale = linear()
260
+ .domain(empty ? [0, 10] : [this._minVal, this._maxVal])
261
+ .nice(3);
262
+ this._margin.right =
263
+ this.getTextSize(this._xScale.domain()[1].toLocaleString()) / 2 +
264
+ this.yTickSize +
265
+ this.tickPadding;
266
+ this._xScale.range([
267
+ 0,
268
+ this._dims.width - this._margin.right - this._margin.left
269
+ ]);
270
+ // Initializing actual axis
271
+ this._xAxis = axisBottom(this._xScale);
272
+ this._tickWidth = this.getLargestText(this._xScale.ticks().map((tick) => tick.toLocaleString()));
273
+ }
274
+ else {
275
+ // Vertical
276
+ this._xScale = band()
277
+ .domain(empty ? this._placeholderTicks : this._chartData.data.xValueNames)
278
+ .range([0, this._dims.width - this._margin.right - this._margin.left])
279
+ .paddingOuter(0.1)
280
+ .paddingInner(0.1);
281
+ this._xAxis = axisBottom(this._xScale);
282
+ }
283
+ };
284
+ // Stores all tick text sizes in an indexable array
285
+ this.tickSizes = () => {
286
+ // Initializing tick size array
287
+ this._namedTickSizes = [];
288
+ this._ellipsisSize = this.getTextSize('...');
289
+ if (this._chartData && this._chartData.data) {
290
+ for (let i = 0; i < this._chartData.data.xValueNames.length; i++) {
291
+ this._namedTickSizes.push(Math.ceil(this.getTextSize(this._chartData.data.xValueNames[i])));
292
+ }
293
+ }
294
+ };
295
+ this.updateBars = (fromLoading) => {
296
+ this._barChartContainer
297
+ .selectAll('.barGroup')
298
+ .data(this.mappedData)
299
+ .join((enter) => {
300
+ var _a, _b;
301
+ const tempSelection = enter
302
+ .append('g')
303
+ .attr('class', 'barGroup')
304
+ .attr('id', (d) => 'barGroup' + d.key.replace(/[^A-Z0-9]+/gi, '_'));
305
+ tempSelection
306
+ .append('rect')
307
+ .attr('class', 'bar')
308
+ .style('cursor', 'pointer')
309
+ .attr('ry', 4)
310
+ .attr('rx', 4)
311
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
312
+ ? this._yScale(d.key)
313
+ : this._dims.height - this._margin.bottom)
314
+ .attr('x', (d) => this.afVariation === BarChartVariation.Horizontal
315
+ ? 2
316
+ : this._xScale(d.key))
317
+ .attr('width', () => this.afVariation === BarChartVariation.Horizontal
318
+ ? 0
319
+ : this._xScale.bandwidth())
320
+ .attr('height', () => this.afVariation === BarChartVariation.Horizontal
321
+ ? this._yScale.bandwidth()
322
+ : 0)
323
+ .on('mouseenter', this.hover)
324
+ .on('mouseleave', this.hoverOut)
325
+ .on('click', this.openTooltip)
326
+ .transition()
327
+ .duration(this.defaultDuration)
328
+ .ease(polyInOut)
329
+ .attr('width', this.widthFunction)
330
+ .attr('y', this.yFunction)
331
+ .attr('height', this.heightFunction)
332
+ .attr('fill', '#00005a');
333
+ if (!((_b = (_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.valueLabels))
334
+ return tempSelection;
335
+ tempSelection
336
+ .append('text')
337
+ .text((d) => d.value.toLocaleString())
338
+ .attr('class', 'barText')
339
+ .attr('font-size', this.fontSize)
340
+ .attr('font-weight', '600')
341
+ .attr('text-anchor', 'end')
342
+ .style('pointer-events', 'none')
343
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
344
+ ? this._yScale(d.key) + this._yScale.bandwidth() / 2
345
+ : this._dims.height - this._margin.bottom)
346
+ .attr('x', (d) => this.afVariation === BarChartVariation.Horizontal
347
+ ? 2
348
+ : this._xScale(d.key) + this._xScale.bandwidth() / 2)
349
+ .transition()
350
+ .duration(this.defaultDuration)
351
+ .ease(polyInOut)
352
+ .attr('font-size', this.fontSize)
353
+ .attr('font-weight', '600')
354
+ .attr('x', (d) => this.afVariation === BarChartVariation.Horizontal
355
+ ? this._xScale(d.value)
356
+ : this._xScale(d.key) + this._xScale.bandwidth() / 2)
357
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
358
+ ? this._yScale(d.key) + this._yScale.bandwidth() / 2
359
+ : this._yScale(d.value))
360
+ .attr('text-anchor', (d) => {
361
+ if (this.afVariation === BarChartVariation.Vertical)
362
+ return 'middle';
363
+ return this._xScale(d.value) < d.len + this.tickPadding * 2
364
+ ? 'start'
365
+ : 'end';
366
+ })
367
+ .attr('dx', (d) => {
368
+ if (this.afVariation === BarChartVariation.Horizontal)
369
+ return this._xScale(d.value) < d.len + this.tickPadding * 2
370
+ ? this.tickPadding
371
+ : -this.tickPadding;
372
+ return 0;
373
+ })
374
+ .attr('fill', (d) => {
375
+ if (this.afVariation === BarChartVariation.Vertical)
376
+ return 'black';
377
+ return this._xScale(d.value) < d.len + this.tickPadding * 2
378
+ ? 'black'
379
+ : 'white';
380
+ })
381
+ .attr('dy', () => this.afVariation == BarChartVariation.Horizontal
382
+ ? '0.35em'
383
+ : '-0.25em')
384
+ .style('pointer-events', 'none')
385
+ .attrTween('text', (d, i, nodelist) => {
386
+ const oldnum = parseFloat(nodelist[i].textContent.replace(/\s/g, ''))
387
+ ? parseFloat(nodelist[i].textContent.replace(/\s/g, ''))
388
+ : 0;
389
+ const interpolatedValue = interpolate(oldnum, d.value);
390
+ return (t) => (nodelist[i].textContent = parseInt(interpolatedValue(t)).toLocaleString(undefined, this._numberFormat));
391
+ });
392
+ return tempSelection;
393
+ }, (update) => {
394
+ // Update ids to bars
395
+ update.attr('id', (d) => 'barGroup' + d.key.replace(/[^A-Z0-9]+/gi, '_'));
396
+ // Mouse interaction to updated loading bars
397
+ if (fromLoading) {
398
+ update
399
+ .select('rect')
400
+ .on('mouseenter', this.hover)
401
+ .on('mouseleave', this.hoverOut)
402
+ .on('click', this.openTooltip)
403
+ .attr('x', this.xFunction)
404
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
405
+ ? this._yScale(d.key)
406
+ : this._dims.height - this._margin.bottom)
407
+ .attr('width', this.widthFunction)
408
+ .attr('height', () => this.afVariation === BarChartVariation.Horizontal
409
+ ? this._yScale.bandwidth()
410
+ : 0)
411
+ .attr('fill', '#00005a')
412
+ .transition()
413
+ .duration(this.defaultDuration)
414
+ .ease(polyInOut)
415
+ .attr('y', this.yFunction)
416
+ .attr('height', this.heightFunction)
417
+ .on('end', () => this.barChartObserver.observe(this._chartDiv)); // Reset barchartObserver
418
+ }
419
+ else {
420
+ update
421
+ .select('rect')
422
+ .transition()
423
+ .duration(this.defaultDuration)
424
+ .ease(polyInOut)
425
+ .attr('x', this.xFunction)
426
+ .attr('y', this.yFunction)
427
+ .attr('width', this.widthFunction)
428
+ .attr('height', this.heightFunction)
429
+ .attr('fill', '#00005a');
430
+ }
431
+ return update
432
+ .select('text')
433
+ .style('display', () => { var _a, _b; return ((_b = (_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.valueLabels) ? null : 'none'; })
434
+ .transition()
435
+ .duration(this.defaultDuration)
436
+ .ease(polyInOut)
437
+ .attr('font-size', this.fontSize)
438
+ .attr('font-weight', '600')
439
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
440
+ ? this._yScale(d.key) + this._yScale.bandwidth() / 2
441
+ : this._yScale(d.value))
442
+ .attr('x', (d) => this.afVariation === BarChartVariation.Horizontal
443
+ ? this._xScale(d.value)
444
+ : this._xScale(d.key) + this._xScale.bandwidth() / 2)
445
+ .attr('text-anchor', (d) => {
446
+ if (this.afVariation === BarChartVariation.Vertical)
447
+ return 'middle';
448
+ return this._xScale(d.value) < d.len + this.tickPadding * 2
449
+ ? 'start'
450
+ : 'end';
451
+ })
452
+ .attr('dx', (d) => {
453
+ if (this.afVariation === BarChartVariation.Horizontal)
454
+ return this._xScale(d.value) < d.len + this.tickPadding * 2
455
+ ? this.tickPadding
456
+ : -this.tickPadding;
457
+ return 0;
458
+ })
459
+ .attr('fill', (d) => {
460
+ if (this.afVariation === BarChartVariation.Vertical)
461
+ return 'black';
462
+ return this._xScale(d.value) < d.len + this.tickPadding * 2
463
+ ? 'black'
464
+ : 'white';
465
+ })
466
+ .attr('dy', () => this.afVariation == BarChartVariation.Horizontal
467
+ ? '0.35em'
468
+ : '-0.25em')
469
+ .style('pointer-events', 'none')
470
+ .attrTween('text', (d, i, nodelist) => {
471
+ const oldnum = parseFloat(nodelist[i].textContent.replace(/\s/g, ''))
472
+ ? parseFloat(nodelist[i].textContent.replace(/\s/g, ''))
473
+ : 0;
474
+ const interpolatedValue = interpolate(oldnum, d.value);
475
+ return (t) => (nodelist[i].textContent = parseInt(interpolatedValue(t)).toLocaleString(undefined, this._numberFormat));
476
+ });
477
+ }, (exit) => exit.remove());
478
+ this._barSelection = this._barChartContainer.selectAll('rect');
479
+ this._textSelection = this._barChartContainer.selectAll('.barText');
480
+ };
481
+ // Setting position of text according to bar size
482
+ this.adjustBarText = () => {
483
+ var _a, _b;
484
+ if (!((_b = (_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.valueLabels))
485
+ return;
486
+ this._textSelection
487
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
488
+ ? this._yScale(d.key) + this._yScale.bandwidth() / 2
489
+ : this._yScale(d.value))
490
+ .attr('x', (d) => this.afVariation === BarChartVariation.Horizontal
491
+ ? this._xScale(d.value)
492
+ : this._xScale(d.key) + this._xScale.bandwidth() / 2)
493
+ .attr('dx', (d) => {
494
+ if (this.afVariation === BarChartVariation.Horizontal)
495
+ return this._xScale(d.value) < d.len + this.tickPadding * 2
496
+ ? this.tickPadding
497
+ : -this.tickPadding;
498
+ return 0;
499
+ })
500
+ .attr('fill', (d) => {
501
+ if (this.afVariation === BarChartVariation.Vertical)
502
+ return 'black';
503
+ return this._xScale(d.value) < d.len + this.tickPadding * 2
504
+ ? 'black'
505
+ : 'white';
506
+ })
507
+ .attr('text-anchor', (d) => {
508
+ if (this.afVariation === BarChartVariation.Vertical)
509
+ return 'middle';
510
+ return this._xScale(d.value) < d.len + this.tickPadding * 2
511
+ ? 'start'
512
+ : 'end';
513
+ });
514
+ };
515
+ this.reshapeData = () => {
516
+ const toReturn = [];
517
+ if (this._loading) {
518
+ this._placeholderTicks.forEach((key) => {
519
+ const tick = { key: key, series: [] };
520
+ tick.series.push({
521
+ key: key,
522
+ serie: '',
523
+ value: Math.floor(Math.random() * (9 - 2 + 1) + 2),
524
+ len: 0
525
+ });
526
+ toReturn.push(tick);
527
+ });
528
+ return toReturn;
529
+ }
530
+ this._chartData.data.xValueNames.forEach((key, index) => {
531
+ const tick = { key: key, series: [] };
532
+ this._chartData.data.series.forEach((serie) => {
533
+ if (serie.yValues[index]) {
534
+ tick.series.push({
535
+ key: key,
536
+ serie: serie.title,
537
+ value: serie.yValues[index],
538
+ len: serie.yValues[index] ? this.getTextSize(serie.yValues[index].toLocaleString()) : 0
539
+ });
540
+ }
541
+ });
542
+ toReturn.push(tick);
543
+ });
544
+ return toReturn;
545
+ };
546
+ this.adjustBarSize = () => {
547
+ this._barSelection.selectAll('.bar')
548
+ .attr('x', this.xFunction)
549
+ .attr('y', this.yFunction)
550
+ .attr('width', this.widthFunction)
551
+ .attr('height', this.heightFunction);
552
+ };
553
+ // Handling x positioning of bars
554
+ this.xFunction = (d, i) => {
555
+ return this.afVariation === BarChartVariation.Horizontal
556
+ ? (d.value > 0 ? this._xScale(0) : this._xScale(d.value))
557
+ : this._xScale(d.key) + ((this._xScale.bandwidth() / this.dataWidth) * i + (this.barGap * i));
558
+ };
559
+ // Handling y positioning of bars
560
+ this.yFunction = (d, i) => {
561
+ if (!d.value)
562
+ return 0;
563
+ return this.afVariation === BarChartVariation.Horizontal
564
+ ? this._yScale(d.key) + ((this._yScale.bandwidth() / this.dataWidth) * i + (this.barGap * i))
565
+ : (d.value < 0 ? this._yScale(0) : this._yScale(d.value));
566
+ };
567
+ // Handling height for bars
568
+ this.heightFunction = (d) => {
569
+ if (!d.value)
570
+ return 0;
571
+ return this.afVariation === BarChartVariation.Horizontal
572
+ ? this._yScale.bandwidth() / this.dataWidth - (this.barGap)
573
+ : (d.value < 0 ? this._yScale(d.value) - this._yScale(0) : this._yScale(0) - this._yScale(d.value));
574
+ };
575
+ // Handling width for bars
576
+ this.widthFunction = (d) => {
577
+ return this.afVariation === BarChartVariation.Horizontal
578
+ ? Math.abs(this._xScale(0) - this._xScale(d.value))
579
+ : this._xScale.bandwidth() / this.dataWidth - (this.barGap);
580
+ };
581
+ // Resize table
582
+ this.resizeTable = () => {
583
+ this.setDims();
584
+ this.setTableDimensions();
585
+ };
586
+ // Setting dimension variable
587
+ this.setDims = (onlyHeight = false) => {
588
+ // Get title dimensions
589
+ const tempTitle = select(this._titleDiv).node().getBoundingClientRect(), tempLegend = select(this._legendDiv).node().getBoundingClientRect();
590
+ const prevHeight = this._dims.height;
591
+ if (!onlyHeight)
592
+ this._dims = select(this._chartDiv).node().getBoundingClientRect();
593
+ this._dims.height =
594
+ this._maxHeight - tempLegend.height - tempTitle.height - 1.75 * this._rem;
595
+ return prevHeight != this._dims.height;
596
+ };
597
+ // Setting margins given text size
598
+ this.setMargins = (fromLoading) => {
599
+ var _a;
600
+ this._pixelSize =
601
+ Number(window
602
+ .getComputedStyle(document.body)
603
+ .getPropertyValue('font-size')
604
+ .match(/\d+/)[0]) * Number(this.fontSize.replace(/[^\d.]|\.(?=.*\.)/g, ''));
605
+ // Getting the longest word, assuming it will also be the widest in terms of pixels
606
+ if (this.afVariation === BarChartVariation.Horizontal) {
607
+ const left = ((_a = this._chartData) === null || _a === void 0 ? void 0 : _a.data) &&
608
+ this.getLargestText(this._chartData.data.xValueNames)
609
+ ? this.getLargestText(this._chartData.data.xValueNames)
610
+ : 0;
611
+ this._margin.left = left;
612
+ }
613
+ else
614
+ this._margin.left = this.getLargestText(fromLoading
615
+ ? ['0', '10']
616
+ : [
617
+ this._minVal ? this._tempScale[0].toLocaleString() : '0',
618
+ this._maxVal ? this._tempScale[1].toLocaleString() : '10'
619
+ ]);
620
+ if (this._margin.left > this._dims.width / 4) {
621
+ this._margin.left = Math.floor(this._dims.width / 4);
622
+ this._margin.ellipsis = true;
623
+ }
624
+ else
625
+ this._margin.ellipsis = false;
626
+ this._margin.bottom = this._pixelSize + this.tickPadding + this.xTickSize;
627
+ };
628
+ // Adjusting y-ticks
629
+ this.setNamedTicks = (transition = false) => {
630
+ if (this.afVariation == BarChartVariation.Horizontal) {
631
+ if (!transition) {
632
+ this._yAxisHandle
633
+ .style('font-size', this.fontSize)
634
+ .style('font-family', 'Open Sans')
635
+ .call(this._yAxis
636
+ .tickPadding(this.tickPadding)
637
+ .tickSize(this.yTickSize)
638
+ .tickSizeOuter(0)
639
+ .tickFormat((d, i) => {
640
+ if (!this._margin.ellipsis)
641
+ return d.toLocaleString();
642
+ // Adding ellipsis to text
643
+ const size = this._namedTickSizes[i] + this.tickPadding + this.yTickSize;
644
+ const mSize = this._margin.left;
645
+ if (size < mSize)
646
+ return d.toLocaleString();
647
+ const newSize = this.getTextSize(d.slice(0, Math.max(Math.floor((mSize / (size + this._ellipsisSize)) * d.length), 3)) + '...');
648
+ let adjustment = 0;
649
+ if (newSize > mSize) {
650
+ adjustment = Math.ceil((newSize - mSize) / (size / d.length));
651
+ }
652
+ // Slicing the text up, saving atleast 3 characters
653
+ return (d
654
+ .slice(0, Math.max(Math.floor((mSize / (size + this._ellipsisSize)) * d.length) - adjustment, 3))
655
+ .trim() + '...');
656
+ }));
657
+ }
658
+ else {
659
+ this._yAxisHandle
660
+ .style('font-size', this.fontSize)
661
+ .style('font-family', 'Open Sans')
662
+ .transition()
663
+ .duration(this.defaultDuration)
664
+ .call(this._yAxis
665
+ .tickPadding(this.tickPadding)
666
+ .tickSize(this.yTickSize)
667
+ .tickSizeOuter(0)
668
+ .tickFormat((d, i) => {
669
+ if (!this._margin.ellipsis)
670
+ return d;
671
+ // Adding ellipsis to text
672
+ const size = this._namedTickSizes[i] + this.tickPadding + this.yTickSize;
673
+ const mSize = this._margin.left;
674
+ if (size < mSize)
675
+ return d;
676
+ const newSize = this.getTextSize(d
677
+ .slice(0, Math.max(Math.floor((mSize / (size + this._ellipsisSize)) * d.length), 3))
678
+ .trim() + '...');
679
+ let adjustment = 0;
680
+ if (newSize > mSize) {
681
+ adjustment = Math.ceil((newSize - mSize) / (size / d.length));
682
+ }
683
+ // Slicing the text up, saving atleast 3 characters
684
+ return (d
685
+ .slice(0, Math.max(Math.floor((mSize / (size + this._ellipsisSize)) * d.length) - adjustment, 3))
686
+ .trim() + '...');
687
+ }));
688
+ }
689
+ }
690
+ else {
691
+ //Calculating every n:th text to show
692
+ let nTh = Math.round(this._chartData.data.xValues.length /
693
+ ((this._dims.width - this._margin.left - this._margin.right) / 90 - 1));
694
+ if (Math.floor(this._chartData.data.xValues.length / nTh) < 4) {
695
+ nTh = Math.round(this._chartData.data.xValues.length / 4);
696
+ }
697
+ const allowedWidth = (this._dims.width - this._margin.left - this._margin.right) /
698
+ Math.floor(this._chartData.data.xValues.length / nTh + 1);
699
+ if (!transition) {
700
+ this._xAxisHandle
701
+ .style('font-size', this.fontSize)
702
+ .style('font-family', 'Open Sans')
703
+ .call(this._xAxis
704
+ .tickValues(this._xScale.domain().filter((...[, i]) => {
705
+ if (i == 0)
706
+ return true;
707
+ else {
708
+ return i % nTh == 0;
709
+ }
710
+ }))
711
+ .tickPadding(this.tickPadding)
712
+ .tickSize(this.xTickSize)
713
+ .tickSizeOuter(0)
714
+ .tickFormat((d, i) => {
715
+ const index = i * nTh;
716
+ if (this._namedTickSizes[index] < allowedWidth)
717
+ return d;
718
+ return (d.slice(0, Math.max(Math.floor((allowedWidth /
719
+ (this._namedTickSizes[index] +
720
+ this._ellipsisSize +
721
+ 5)) *
722
+ d.length), 3)) + '...');
723
+ }));
724
+ }
725
+ else {
726
+ this._xAxisHandle
727
+ .style('font-size', this.fontSize)
728
+ .style('font-family', 'Open Sans')
729
+ .transition()
730
+ .duration(this.defaultDuration)
731
+ .call(this._xAxis
732
+ .tickValues(this._xScale.domain().filter((...[, i]) => {
733
+ if (i == 0)
734
+ return true;
735
+ else {
736
+ return i % nTh == 0;
737
+ }
738
+ }))
739
+ .tickPadding(this.tickPadding)
740
+ .tickSize(this.xTickSize)
741
+ .tickSizeOuter(0)
742
+ .tickFormat((d, i) => {
743
+ const index = i * nTh;
744
+ if (this._namedTickSizes[index] < allowedWidth)
745
+ return d;
746
+ return (d.slice(0, Math.max(Math.floor((allowedWidth /
747
+ (this._namedTickSizes[index] +
748
+ this._ellipsisSize +
749
+ 5)) *
750
+ d.length), 3)) + '...');
751
+ }));
752
+ }
753
+ }
754
+ };
755
+ // Positioning the ticks of the value bearing axis
756
+ this.setValueTicks = (transition = false) => {
757
+ var _a, _b;
758
+ if (((_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) && ((_b = this._chartData) === null || _b === void 0 ? void 0 : _b.meta.hideXAxis)) {
759
+ this.afVariation === BarChartVariation.Horizontal
760
+ ? this._xAxisHandle.attr('display', 'none')
761
+ : this._yAxisHandle.attr('display', 'none');
762
+ return;
763
+ }
764
+ let toCall, tickSize, handle;
765
+ if (this.afVariation === BarChartVariation.Horizontal) {
766
+ this._xAxisHandle.attr('display', null);
767
+ toCall = this._xAxis;
768
+ tickSize = -(this._dims.height - this._margin.top - this._margin.bottom);
769
+ handle = this._xAxisHandle;
770
+ }
771
+ else {
772
+ this._yAxisHandle.attr('display', null);
773
+ toCall = this._yAxis;
774
+ tickSize = -(this._dims.width - this._margin.left - this._margin.right);
775
+ handle = this._yAxisHandle;
776
+ }
777
+ // Computing the amount of ticks to show
778
+ const ticks = Math.min(Math.floor((this._dims.width - this._margin.left - this._margin.right) /
779
+ (this._tickWidth + this.xTickSize)) - 2, this.afVariation == BarChartVariation.Horizontal
780
+ ? this._xScale.ticks().length
781
+ : this._yScale.ticks().length);
782
+ if (!transition) {
783
+ handle
784
+ .style('font-size', this.fontSize)
785
+ .style('font-family', 'Open Sans')
786
+ .call(toCall
787
+ .ticks(this.afVariation === BarChartVariation.Horizontal
788
+ ? Math.max(2, Math.min(ticks, 9))
789
+ : 5) // Clamping value between 2 and 10
790
+ .tickPadding(this.tickPadding)
791
+ .tickSize(tickSize)
792
+ .tickSizeOuter(0)
793
+ .tickFormat((d) => d.toLocaleString()));
794
+ }
795
+ else {
796
+ handle
797
+ .style('font-size', this.fontSize)
798
+ .style('font-family', 'Open Sans')
799
+ .transition('newScale')
800
+ .duration(this.defaultDuration)
801
+ .call(toCall
802
+ .ticks(this.afVariation === BarChartVariation.Horizontal
803
+ ? Math.max(2, Math.min(ticks, 9))
804
+ : 5) // Clamping value between 2 and 10
805
+ .tickPadding(this.tickPadding)
806
+ .tickSize(tickSize)
807
+ .tickSizeOuter(0)
808
+ .tickFormat((d) => d.toLocaleString()));
809
+ }
810
+ handle.selectAll('line').attr('stroke', 'lightgray');
811
+ if (this.afVariation === BarChartVariation.Vertical)
812
+ this._yAxisHandle.select('.domain').attr('display', 'none');
813
+ };
814
+ // Highlight bar
815
+ this.hover = (event) => {
816
+ select(event.target)
817
+ .transition('hover')
818
+ .duration(20)
819
+ .attr('fill', (d) => event.target.tagName === 'rect'
820
+ ? `hsl(from ${this.colorFunction(d.serie)} h s calc(l + 10))`
821
+ : 'var(--digi--color--background--interactive--hover--tertiary)');
822
+ };
823
+ // Removing highlight from bar
824
+ this.hoverOut = (event) => {
825
+ select(event.target)
826
+ .transition('hover')
827
+ .duration(this.defaultDuration)
828
+ .attr('fill', (d) => event.target.tagName === 'rect' ? this.colorFunction(d.serie) : '#333333');
829
+ };
830
+ this.openTooltip = (...[, d]) => {
831
+ // If type is string, the user has clicked on a y-axis tick
832
+ if (typeof d === 'string') {
833
+ this._tooltipData = this._barChartContainer
834
+ .select(`#barGroup${d.replace(/[^A-Z0-9]+/gi, '_')}`)
835
+ .datum();
836
+ }
837
+ else
838
+ this._tooltipData = d;
839
+ const tooltipBody = this._tooltip.select('.tooltipBody');
840
+ tooltipBody
841
+ .select(this._tooltipHeading)
842
+ .style('margin', '0 0.75rem 0 0 ')
843
+ .style('font-weight', 500)
844
+ .html(this._tooltipData.key);
845
+ tooltipBody
846
+ .selectAll('div')
847
+ .data([this._tooltipData])
848
+ .join('div')
849
+ .style('display', 'flex')
850
+ .style('flex-direction', 'row')
851
+ .style('flex-wrap', 'nowrap')
852
+ .style('white-space', 'nowrap')
853
+ .style('justify-content', 'space-between')
854
+ .html((d) => d.value.toLocaleString());
855
+ this._tooltip.style('display', 'flex');
856
+ this.positionTooltip(this._tooltipData);
857
+ };
858
+ this.closeTooltip = () => {
859
+ this._tooltip.style('display', 'none');
860
+ };
861
+ // Positions tooltip in horizontal mode
862
+ this.positionTooltip = (data) => {
863
+ const width = this._tooltip.node().getBoundingClientRect().width;
864
+ const height = this._tooltip.node().getBoundingClientRect().height + 8;
865
+ const diff = this._xScale(data.value) / 2 - width / 2;
866
+ if (this.afVariation === BarChartVariation.Horizontal) {
867
+ this._tooltip
868
+ .style('transform', `translate(${this._margin.left + this.tickPadding + Math.max(diff, -4)}px, ${this._yScale(data.key) + this._yScale.bandwidth() + this._yScale.paddingInner() * this._yScale.bandwidth()}px )`)
869
+ .style('max-width', this._xScale.range()[1] + 'px');
870
+ this._tooltip
871
+ .select('digi-icon-caret-up')
872
+ .style('position', 'absolute')
873
+ .style('--digi--icon--color', 'white')
874
+ .style('top', '-11px')
875
+ .style('left', '0')
876
+ .style('transform', `translate(${diff > 0 ? width / 2 - 10 : this._xScale(data.value) / 2}px,0)`);
877
+ }
878
+ else {
879
+ this._tooltip
880
+ .style('transform', `translate(${this._margin.left + this.tickPadding + this._xScale(data.key) + this._xScale.bandwidth() / 2 - width / 2}px, ${this._yScale(data.value) - height}px )`)
881
+ .style('max-width', this._xScale.range()[1] + 'px');
882
+ this._tooltip
883
+ .select('digi-icon-caret-down')
884
+ .style('position', 'absolute')
885
+ .style('--digi--icon--color', 'white')
886
+ .style('left', '0')
887
+ .style('bottom', '-11px')
888
+ .style('transform', `translate(${width / 2 - 6}px,0)`);
889
+ }
890
+ };
891
+ // Once texts has fully loaded, we can recompute some sizes
892
+ this.recomputeTextSize = () => {
893
+ var _a, _b;
894
+ if (this.afVariation == BarChartVariation.Horizontal)
895
+ this._tickWidth = this.getLargestText(this._xScale.ticks().map((tick) => tick.toLocaleString()));
896
+ this.tickSizes();
897
+ this._barChartContainer.selectAll('.barGroup').data(this.mappedData);
898
+ if ((_b = (_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.valueLabels)
899
+ this._textSelection.remove();
900
+ this.initBarText();
901
+ };
902
+ // Removes resize observer for chart and inits table
903
+ this.activateTable = (event) => {
904
+ this.closeTooltip();
905
+ this.barChartObserver.disconnect();
906
+ this.tableObserver.observe(this._chartDiv);
907
+ this._status.innerHTML = '<p>Visas som tabell</p>';
908
+ select(this._host).select('.tableButton').style('display', 'none');
909
+ select(this._host).select('.chartButton').style('display', null);
910
+ event.target.nextSibling.lastChild.focus();
911
+ const duration = 150;
912
+ this._svg
913
+ .attr('opacity', 1)
914
+ .transition('fadeout')
915
+ .duration(duration)
916
+ .attr('opacity', 0)
917
+ .on('end', () => {
918
+ this._svg.remove();
919
+ this._legendDiv.style['display'] = 'none';
920
+ this._tableDiv.style['display'] = 'block';
921
+ this.setTableContent();
922
+ this.setTableDimensions();
923
+ select(this._tableDiv)
924
+ .style('opacity', 0)
925
+ .transition('fadein')
926
+ .duration(duration)
927
+ .style('opacity', 1);
928
+ });
929
+ select(this._legendDiv)
930
+ .style('opacity', 1)
931
+ .transition('fadeout')
932
+ .duration(duration)
933
+ .style('opacity', 0);
934
+ };
935
+ // Removes observer and calls init functions for line chart
936
+ this.reInitChart = (event) => {
937
+ this.tableObserver.disconnect();
938
+ this._status.innerHTML = '<p>Visas som diagram</p>';
939
+ select(this._host).select('.tableButton').style('display', null);
940
+ select(this._host).select('.chartButton').style('display', 'none');
941
+ event.target.previousSibling.lastChild.focus();
942
+ const table = select(this._tableDiv);
943
+ table
944
+ .style('opacity', 1)
945
+ .transition()
946
+ .duration(150)
947
+ .style('opacity', 0)
948
+ .on('end', () => {
949
+ table.style('display', 'none');
950
+ this.initChain();
951
+ this._svg
952
+ .attr('opacity', 0)
953
+ .transition()
954
+ .duration(150)
955
+ .attr('opacity', 1);
956
+ });
957
+ };
958
+ this.afVariation = BarChartVariation.Vertical;
959
+ this.afHeadingLevel = 'h3';
960
+ this.afId = randomIdGenerator('tooltip');
961
+ this.afChartData = undefined;
962
+ }
963
+ afChartDataUpdate(data) {
964
+ if (typeof data != 'string')
965
+ this._chartData = data;
966
+ else
967
+ this._chartData = JSON.parse(data);
968
+ this.mappedData = this.reshapeData();
969
+ // checking for width of each tick
970
+ this.mappedData.forEach((elem) => {
971
+ if (elem.series.length > this.dataWidth)
972
+ this.dataWidth = elem.series.length;
973
+ });
974
+ if (this.dataWidth > 1)
975
+ this.barGap = 1;
976
+ }
977
+ initSvg() {
978
+ var _a, _b, _c, _d, _e, _f, _g;
979
+ // Fetch number formatting
980
+ this._numberFormat = {
981
+ maximumSignificantDigits: (_c = (_b = (_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.labelProperties) === null || _c === void 0 ? void 0 : _c.significantDigits,
982
+ notation: ((_f = (_e = (_d = this._chartData) === null || _d === void 0 ? void 0 : _d.meta) === null || _e === void 0 ? void 0 : _e.labelProperties) === null || _f === void 0 ? void 0 : _f.shortHand)
983
+ ? 'compact'
984
+ : 'standard'
985
+ };
986
+ select(this._chartDiv).select('svg').remove();
987
+ this._maxHeight = (_g = select(this._host)
988
+ .node()
989
+ .parentNode) === null || _g === void 0 ? void 0 : _g.getBoundingClientRect().height;
990
+ this.barChartObserver.observe(this._chartDiv);
991
+ // Getting rem-size
992
+ this._rem = parseFloat(getComputedStyle(document.documentElement).fontSize);
993
+ this.setMinMax();
994
+ this.setDims();
995
+ this.setMargins();
996
+ // Appending svg
997
+ this._svg = select(this._chartDiv)
998
+ .append('svg')
999
+ .attr('aria-hidden', true)
1000
+ .attr('role', 'img')
1001
+ .attr('aria-label', this._chartData && this._chartData.title
1002
+ ? 'Stapeldiagram om ' + this._chartData.title.toLowerCase()
1003
+ : 'Stapeldiagram');
1004
+ this._svg.attr('width', this._dims.width).attr('height', this._dims.height);
1005
+ }
1006
+ initToolTip() {
1007
+ // Getting handle for tooltip
1008
+ this._tooltip = select('#' + this.afId);
1009
+ this._tooltip.select('.close').on('click', this.closeTooltip);
1010
+ this._tooltipHeading =
1011
+ 'h' + (parseInt(this.afHeadingLevel.replace(/\D/g, '')) + 1); // increment heading level by one
1012
+ // Add heading placeholder for heading
1013
+ this._tooltip
1014
+ .selectAll('.tooltipBody')
1015
+ .append(this._tooltipHeading)
1016
+ .attr('class', 'tooltipHeading') // Adding class to try to dodge global css classes
1017
+ .style('font-size', '1rem')
1018
+ .style('margin', '0 0.75rem')
1019
+ .style('font-weight', '500');
1020
+ }
1021
+ initEmpty() {
1022
+ select(this._chartDiv).select('svg').remove();
1023
+ this._maxHeight = select(this._host)
1024
+ .node()
1025
+ .parentNode.getBoundingClientRect().height;
1026
+ this.barChartObserver.observe(this._chartDiv);
1027
+ // Getting rem-size
1028
+ this._rem = parseFloat(getComputedStyle(document.documentElement).fontSize);
1029
+ //this.setMinMax();
1030
+ this.setDims();
1031
+ this.setMargins();
1032
+ // Appending svg
1033
+ this._svg = select(this._chartDiv)
1034
+ .append('svg')
1035
+ .attr('aria-hidden', true)
1036
+ .attr('role', 'img')
1037
+ .attr('aria-label', this._chartData && this._chartData.title
1038
+ ? 'Stapeldiagram om ' + this._chartData.title.toLowerCase()
1039
+ : 'Stapeldiagram');
1040
+ this._svg.attr('width', this._dims.width).attr('height', this._dims.height);
1041
+ // Hide unusable components
1042
+ select(this._titleDiv)
1043
+ .select(this.afHeadingLevel)
1044
+ .html(`${_t.loading}...`);
1045
+ this.initYAxis(true);
1046
+ this.initXAxis(true);
1047
+ this.loadingState(true);
1048
+ }
1049
+ loadingState(empty) {
1050
+ this._loading = true;
1051
+ // close potentially open tooltip
1052
+ if (this._tooltip)
1053
+ this.closeTooltip();
1054
+ select(this._host).select('.tableButton').style('display', 'none');
1055
+ const newHeight = this.setDims();
1056
+ this.transitionTitle();
1057
+ this._xAxisHandle.selectAll('.tick').remove();
1058
+ this._xAxisHandle.select('path').remove();
1059
+ this._svg
1060
+ .transition()
1061
+ .duration(400)
1062
+ .attr('width', this._dims.width)
1063
+ .attr('height', this._dims.height)
1064
+ .attr('aria-label', this._chartData && this._chartData.title
1065
+ ? 'Stapeldiagram om ' + this._chartData.title.toLowerCase()
1066
+ : 'Stapeldiagram');
1067
+ this.setMargins(true);
1068
+ select(this._titleDiv)
1069
+ .select(this.afHeadingLevel)
1070
+ .html(`${_t.loading}...`);
1071
+ // Waiting with observing for changes until transition to regular bars is complete
1072
+ this._barChartContainer
1073
+ .transition('position')
1074
+ .duration(this.defaultDuration)
1075
+ .ease(polyInOut)
1076
+ .attr('transform', `translate(${this._margin.left + this.tickPadding + this.yTickSize},0)`);
1077
+ // If there is a new height
1078
+ if (newHeight) {
1079
+ // Update y-axis with potentially new height (might want to do a check here)
1080
+ this.afVariation === BarChartVariation.Horizontal
1081
+ ? this._yScale.range([
1082
+ this._margin.top,
1083
+ this._dims.height - this._margin.bottom
1084
+ ])
1085
+ : this._yScale.range([
1086
+ this._dims.height - this._margin.bottom,
1087
+ this._margin.top
1088
+ ]);
1089
+ this._xAxisHandle.attr('transform', `translate(0,${this._dims.height - this._margin.bottom})`);
1090
+ }
1091
+ const animateBars = () => {
1092
+ this._barChartContainer.selectAll('.barGroup').remove();
1093
+ this._barSelection = this._barChartContainer
1094
+ .selectAll('barGroup')
1095
+ .data(this.mappedData)
1096
+ .join('g')
1097
+ .attr('class', 'barGroup')
1098
+ .attr('id', (d) => 'barGroup' + d.key.replace(/[^A-Z0-9]+/gi, '_'))
1099
+ .append('rect')
1100
+ .attr('class', 'bar')
1101
+ .style('cursor', 'pointer');
1102
+ this._barSelection
1103
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
1104
+ ? this._yScale(d.key)
1105
+ : this._dims.height - this._margin.bottom)
1106
+ .attr('x', this.xFunction)
1107
+ .attr('ry', 4)
1108
+ .attr('rx', 4)
1109
+ .attr('width', this.widthFunction)
1110
+ .attr('height', () => 0)
1111
+ .attr('fill', 'gray')
1112
+ .transition()
1113
+ .duration(400)
1114
+ .delay((...[, i]) => i * 150)
1115
+ .attr('y', this.yFunction)
1116
+ .attr('height', this.heightFunction);
1117
+ this._barSelection
1118
+ .transition()
1119
+ .duration(400)
1120
+ .ease(linear$1)
1121
+ .delay((...[, i]) => i * 150 + 400)
1122
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
1123
+ ? this._yScale(d.key)
1124
+ : this._dims.height - this._margin.bottom)
1125
+ .attr('height', () => 0)
1126
+ .on('end', (...[, i]) => {
1127
+ if (i === this._placeholderTicks.length - 1)
1128
+ animateBars();
1129
+ });
1130
+ };
1131
+ const flattenBars = () => {
1132
+ this._barChartContainer
1133
+ .selectAll('rect')
1134
+ .transition()
1135
+ .duration(200)
1136
+ .ease(linear$1)
1137
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
1138
+ ? this._yScale(d.key)
1139
+ : this._dims.height - this._margin.bottom)
1140
+ .attr('height', () => 0)
1141
+ .on('end', (...[, i]) => {
1142
+ if (i != 0)
1143
+ return;
1144
+ this.setYScale(true);
1145
+ this.setValueTicks();
1146
+ this.setXScale(true);
1147
+ this.barChartObserver.observe(this._chartDiv);
1148
+ animateBars();
1149
+ });
1150
+ };
1151
+ if (empty)
1152
+ animateBars();
1153
+ else
1154
+ flattenBars();
1155
+ }
1156
+ transitionTitle() {
1157
+ const height = select(this._titleDiv).style('height');
1158
+ select(this._titleDiv)
1159
+ .style('height', this._prevHeight)
1160
+ .transition('adjust')
1161
+ .duration(400)
1162
+ .style('height', height)
1163
+ .on('end', () => select(this._titleDiv).style('height', null));
1164
+ }
1165
+ initYAxis(empty) {
1166
+ this.setYScale(empty);
1167
+ this._barChartContainer = this._svg
1168
+ .append('g')
1169
+ .attr('transform', `translate(${this._margin.left + this.tickPadding + this.yTickSize},0)`);
1170
+ this._yAxisHandle = this._barChartContainer.append('g');
1171
+ if (this.afVariation === BarChartVariation.Horizontal) {
1172
+ this.tickSizes();
1173
+ this.setNamedTicks();
1174
+ this.setTickInteraction();
1175
+ }
1176
+ else
1177
+ this.setValueTicks();
1178
+ }
1179
+ // Sets the largest and smallest value from series 0, Should only be used when not loading
1180
+ setMinMax() {
1181
+ var _a, _b, _c, _d, _e, _f, _g;
1182
+ const max$1 = max((_a = this._chartData) === null || _a === void 0 ? void 0 : _a.data.series[0].yValues)
1183
+ ? max((_b = this._chartData) === null || _b === void 0 ? void 0 : _b.data.series[0].yValues)
1184
+ : 0;
1185
+ const min$1 = min([0, min((_c = this._chartData) === null || _c === void 0 ? void 0 : _c.data.series[0].yValues)])
1186
+ ? min([0, min((_d = this._chartData) === null || _d === void 0 ? void 0 : _d.data.series[0].yValues)])
1187
+ : 0;
1188
+ this._maxVal = max$1;
1189
+ this._minVal = min$1;
1190
+ this._tempScale = linear()
1191
+ .domain([this._minVal, this._maxVal])
1192
+ .nice(((_f = (_e = this._chartData) === null || _e === void 0 ? void 0 : _e.meta) === null || _f === void 0 ? void 0 : _f.numberOfReferenceLines)
1193
+ ? (_g = this._chartData) === null || _g === void 0 ? void 0 : _g.meta.numberOfReferenceLines
1194
+ : 3)
1195
+ .domain();
1196
+ }
1197
+ // Setting up x-axis, getting margin.right in this function
1198
+ initXAxis(empty) {
1199
+ this.setXScale(empty);
1200
+ this._xAxisHandle = this._barChartContainer
1201
+ .append('g')
1202
+ .attr('transform', `translate(0,${this._dims.height - this._margin.bottom})`);
1203
+ if (this.afVariation === BarChartVariation.Horizontal) {
1204
+ this.setValueTicks();
1205
+ // Removing first tick, because it aligns with y-axis domain
1206
+ //this._xAxisHandle.select('.tick').select('line').remove();
1207
+ }
1208
+ else {
1209
+ if (!empty) {
1210
+ this.tickSizes();
1211
+ this.setNamedTicks();
1212
+ this.setTickInteraction();
1213
+ }
1214
+ }
1215
+ }
1216
+ // Initializing bars, can only handle one series of bars for now
1217
+ initBars() {
1218
+ this._barSelection = this._barChartContainer
1219
+ .selectAll('barGroup')
1220
+ .data(this.mappedData)
1221
+ .join('g')
1222
+ .attr('class', 'barGroup')
1223
+ .attr('id', (d) => {
1224
+ return 'barGroup' + d.key.replace(/[^A-Z0-9]+/gi, '_');
1225
+ });
1226
+ this._barSelection.selectAll('.barGroup')
1227
+ .data((d) => {
1228
+ return d.series;
1229
+ })
1230
+ .join('rect')
1231
+ .attr('class', 'bar')
1232
+ .style('cursor', 'pointer')
1233
+ .attr('x', this.xFunction)
1234
+ .attr('y', this.yFunction)
1235
+ .attr('ry', 4)
1236
+ .attr('rx', 4)
1237
+ .attr('width', this.widthFunction)
1238
+ .attr('height', this.heightFunction)
1239
+ .attr('fill', (d) => this.colorFunction(d.serie))
1240
+ .on('mouseenter', this.hover)
1241
+ .on('mouseleave', this.hoverOut)
1242
+ .on('click', this.openTooltip);
1243
+ }
1244
+ initBarText() {
1245
+ var _a, _b;
1246
+ if (!((_b = (_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.valueLabels))
1247
+ return;
1248
+ this._textSelection = this._barChartContainer
1249
+ .selectAll('.barGroup')
1250
+ .append('text');
1251
+ this._textSelection
1252
+ .text((d) => {
1253
+ return d.value ? d.value.toLocaleString(undefined, this._numberFormat) : undefined;
1254
+ })
1255
+ .attr('class', 'barText')
1256
+ .attr('font-size', this.fontSize)
1257
+ .attr('font-weight', '600')
1258
+ .attr('text-anchor', 'end')
1259
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
1260
+ ? this._yScale(d.key) + this._yScale.bandwidth() / 2
1261
+ : this._yScale(d.value))
1262
+ .attr('x', (d) => this.afVariation === BarChartVariation.Horizontal
1263
+ ? this._xScale(d)
1264
+ : this._xScale(d.key) + this._xScale.bandwidth())
1265
+ .attr('dy', () => this.afVariation == BarChartVariation.Horizontal ? '0.35em' : '-0.25em')
1266
+ .style('pointer-events', 'none')
1267
+ .style('display', () => { var _a, _b; return ((_b = (_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.valueLabels) ? null : 'none'; });
1268
+ this.adjustBarText();
1269
+ }
1270
+ initChain() {
1271
+ this.initSvg();
1272
+ this.initToolTip();
1273
+ this.initYAxis();
1274
+ this.initXAxis();
1275
+ this.initBars();
1276
+ this.initBarText();
1277
+ }
1278
+ async updateChain() {
1279
+ var _a, _b, _c, _d, _e, _f;
1280
+ // Fetch number formatting
1281
+ this._numberFormat = {
1282
+ maximumSignificantDigits: (_c = (_b = (_a = this._chartData) === null || _a === void 0 ? void 0 : _a.meta) === null || _b === void 0 ? void 0 : _b.labelProperties) === null || _c === void 0 ? void 0 : _c.significantDigits,
1283
+ notation: ((_f = (_e = (_d = this._chartData) === null || _d === void 0 ? void 0 : _d.meta) === null || _e === void 0 ? void 0 : _e.labelProperties) === null || _f === void 0 ? void 0 : _f.shortHand)
1284
+ ? 'compact'
1285
+ : 'standard'
1286
+ };
1287
+ if (this._tooltip)
1288
+ this.closeTooltip();
1289
+ // Check whether we are in table mode or not
1290
+ if (this._tableDiv.style['display'] == 'block') {
1291
+ if (!this._chartData.title) {
1292
+ select(this._titleDiv)
1293
+ .select(this.afHeadingLevel)
1294
+ .html(`${_t.loading}...`);
1295
+ }
1296
+ else {
1297
+ this.setTableContent();
1298
+ this.setTableDimensions();
1299
+ }
1300
+ this.transitionTitle();
1301
+ }
1302
+ else {
1303
+ // displaying legend again
1304
+ if (this._loading) {
1305
+ select(this._host).select('.tableButton').style('display', null);
1306
+ select(this._legendDiv).style('display', null);
1307
+ this.initToolTip();
1308
+ }
1309
+ // Disconnect resize observer while adjusting things
1310
+ this.barChartObserver.disconnect();
1311
+ this.setMinMax();
1312
+ const newHeight = this.setDims();
1313
+ this.transitionTitle();
1314
+ this._svg
1315
+ .transition()
1316
+ .duration(400)
1317
+ .attr('width', this._dims.width)
1318
+ .attr('height', this._dims.height)
1319
+ .attr('aria-label', this._chartData && this._chartData.title
1320
+ ? 'Stapeldiagram om ' + this._chartData.title.toLowerCase()
1321
+ : 'Stapeldiagram');
1322
+ this.setMargins();
1323
+ // Waiting with observing for changes until transition to regular bars is complete
1324
+ this._barChartContainer
1325
+ .transition('position')
1326
+ .duration(this.defaultDuration)
1327
+ .ease(polyInOut)
1328
+ .attr('transform', `translate(${this._margin.left + this.tickPadding + this.yTickSize},0)`);
1329
+ if (!this._loading)
1330
+ this._barChartContainer.on('end', () => this.barChartObserver.observe(this._chartDiv));
1331
+ // If there is a new height
1332
+ if (newHeight) {
1333
+ // Update y-axis with potentially new height (might want to do a check here)
1334
+ this.afVariation === BarChartVariation.Horizontal
1335
+ ? this._yScale.range([
1336
+ this._margin.top,
1337
+ this._dims.height - this._margin.bottom
1338
+ ])
1339
+ : this._yScale.range([
1340
+ this._dims.height - this._margin.bottom,
1341
+ this._margin.top
1342
+ ]);
1343
+ this._xAxisHandle.attr('transform', `translate(0,${this._dims.height - this._margin.bottom})`);
1344
+ }
1345
+ this.tickSizes();
1346
+ this.setYScale();
1347
+ this.setXScale();
1348
+ this.setTickInteraction();
1349
+ this._tickWidth = this.getLargestText(this.afVariation == BarChartVariation.Horizontal
1350
+ ? this._xScale.ticks().map((tick) => tick.toLocaleString())
1351
+ : this._yScale.ticks().map((tick) => tick.toLocaleString()));
1352
+ this.setValueTicks(true);
1353
+ if (this._loading) {
1354
+ select(this._legendDiv)
1355
+ .style('opacity', 0)
1356
+ .transition()
1357
+ .duration(400)
1358
+ .ease(polyInOut)
1359
+ .style('opacity', 1);
1360
+ this._margin.right =
1361
+ this.getTextSize(this._xScale.domain()[1].toLocaleString()) / 2 +
1362
+ this.yTickSize +
1363
+ this.tickPadding;
1364
+ // Update x-axis with new width
1365
+ this._xScale.range([
1366
+ 0,
1367
+ this._dims.width - this._margin.right - this._margin.left
1368
+ ]);
1369
+ this.setNamedTicks(true);
1370
+ // Stop animation
1371
+ this._barSelection.selectAll('.barGroup').on('end', null);
1372
+ this._loading = false;
1373
+ this._barSelection
1374
+ .transition()
1375
+ .duration(this.defaultDuration)
1376
+ .attr('y', (d) => this.afVariation === BarChartVariation.Horizontal
1377
+ ? this._yScale(d.key)
1378
+ : this._dims.height - this._margin.bottom)
1379
+ .attr('height', () => 0)
1380
+ .on('end', (...[, i]) => i === this._placeholderTicks.length - 1
1381
+ ? this.updateBars(true)
1382
+ : null);
1383
+ this.setTickInteraction();
1384
+ }
1385
+ else {
1386
+ this.setNamedTicks(true);
1387
+ // Removing first tick, because it aligns with y-axis domain
1388
+ this.updateBars();
1389
+ }
1390
+ }
1391
+ }
1392
+ // Getting correct color given index or name of data serie
1393
+ colorFunction(input) {
1394
+ if (typeof input === 'number')
1395
+ return `var(${this.colorPalettes[input]})`;
1396
+ else {
1397
+ const index = this._chartData.data.series.findIndex((serie) => serie.title === input);
1398
+ if (index > 0)
1399
+ return `var(${this.colorPalettes[index]})`;
1400
+ else
1401
+ return `var(${this.colorPalettes[0]})`;
1402
+ }
1403
+ }
1404
+ // Resizing bar chart
1405
+ resize() {
1406
+ var _a;
1407
+ const newHeight = this.setDims();
1408
+ this.setMargins();
1409
+ (_a = this._svg) === null || _a === void 0 ? void 0 : _a.attr('width', this._dims.width).attr('height', this._dims.height);
1410
+ this._barChartContainer.attr('transform', `translate(${this._margin.left + this.tickPadding + this.yTickSize},0)`);
1411
+ this._margin.right =
1412
+ this.getTextSize(this._xScale.domain()[1].toLocaleString()) / 2 +
1413
+ this.yTickSize +
1414
+ this.tickPadding;
1415
+ // If there is a new height
1416
+ if (newHeight) {
1417
+ // Update y-axis with potentially new height (might want to do a check here)
1418
+ this.afVariation === BarChartVariation.Horizontal
1419
+ ? this._yScale.range([
1420
+ this._margin.top,
1421
+ this._dims.height - this._margin.bottom
1422
+ ])
1423
+ : this._yScale.range([
1424
+ this._dims.height - this._margin.bottom,
1425
+ this._margin.top
1426
+ ]);
1427
+ this._xAxisHandle.attr('transform', `translate(0,${this._dims.height - this._margin.bottom})`);
1428
+ }
1429
+ // Update x-axis with new width
1430
+ this._xScale.range([
1431
+ 0,
1432
+ this._dims.width - this._margin.right - this._margin.left
1433
+ ]);
1434
+ this.setNamedTicks();
1435
+ this.setValueTicks();
1436
+ this.adjustBarSize();
1437
+ this.adjustBarText();
1438
+ if (this._tooltipData)
1439
+ this.positionTooltip(this._tooltipData);
1440
+ }
1441
+ // Returns the longest text from an array of strings
1442
+ getLargestText(array) {
1443
+ let width = 0;
1444
+ array.forEach((elem) => {
1445
+ const temp = this.getTextSize(elem);
1446
+ if (temp > width) {
1447
+ width = temp;
1448
+ }
1449
+ });
1450
+ return width;
1451
+ }
1452
+ componentWillLoad() {
1453
+ this.afChartDataUpdate(this.afChartData);
1454
+ }
1455
+ componentDidLoad() {
1456
+ if (!this._chartData || Object.keys(this._chartData).length === 0) {
1457
+ this._loading = true;
1458
+ return this.initEmpty();
1459
+ }
1460
+ this.initChain();
1461
+ document.fonts.ready.then(() => {
1462
+ this.recomputeTextSize();
1463
+ this.setNamedTicks();
1464
+ this._barChartContainer.attr('transform', `translate(${this._margin.left + this.tickPadding + this.yTickSize},0)`);
1465
+ });
1466
+ }
1467
+ disconnectedCallback() {
1468
+ this.barChartObserver.disconnect();
1469
+ }
1470
+ componentWillUpdate() {
1471
+ this._prevHeight = select(this._titleDiv).style('height');
1472
+ }
1473
+ componentDidUpdate() {
1474
+ if (this._tableDiv.style['display'] != 'block' &&
1475
+ Object.keys(this._chartData).length === 0) {
1476
+ // Disconnect old barchartobserver while doing resizing
1477
+ this.barChartObserver.disconnect();
1478
+ return this.loadingState();
1479
+ }
1480
+ this.updateChain();
1481
+ }
1482
+ // Not currently used
1483
+ /*get cssModifiers() {
1484
+ return {
1485
+ 'digi-bar-chart--vertical': this.afVariation == 'vertical',
1486
+ 'digi-bar-chart--horizontal': this.afVariation == 'horizontal'
1487
+ };
1488
+ }*/
1489
+ // Returns pixelwidth of text given the current fontSize (costly function using .each)
1490
+ getTextSize(text) {
1491
+ const textWidth = [];
1492
+ const svg = select(this._chartDiv).append('svg');
1493
+ svg
1494
+ .selectAll('dummyText')
1495
+ .data([text])
1496
+ .join('text')
1497
+ .attr('font-size', this.fontSize) // <- using 1rem here whereas default is 0.875rem
1498
+ .text((d) => d)
1499
+ .each((...[, i, nodelist]) => {
1500
+ const thisWidth = nodelist[i].getComputedTextLength();
1501
+ textWidth.push(thisWidth);
1502
+ nodelist[i].remove();
1503
+ });
1504
+ svg.remove().exit();
1505
+ return textWidth[0];
1506
+ }
1507
+ // Setting table content from this._chartData
1508
+ setTableContent() {
1509
+ this._tableDiv.innerHTML = `<digi-table af-size="small" af-variation="primary"> <table><caption>${this._chartData.title}</caption><thead><tr>${this.headings()}</tr></thead><tbody>${this.tableBody()}</tbody></table></digi-table>`;
1510
+ }
1511
+ setTableDimensions() {
1512
+ const table = select(this._tableDiv);
1513
+ table
1514
+ // The last value is for compensating the padding set on the table element, changing padding in css, will need change in these two lines
1515
+ .style('height', this._dims.height + 'px');
1516
+ table.style('width', this._dims.width - this._rem * 0.65 + 'px');
1517
+ }
1518
+ // Extracting all headings from data and returning a string with <th>-elements with headings
1519
+ headings() {
1520
+ let headingsString = `<th scope="col">${this._chartData.x}</th>`;
1521
+ this._chartData.data.series.forEach((elem) => {
1522
+ headingsString = headingsString.concat(`<th scope="col">${elem.title}</th>`);
1523
+ });
1524
+ return headingsString;
1525
+ }
1526
+ // Building the table body
1527
+ tableBody() {
1528
+ let body = '';
1529
+ if (this._chartData && this._chartData.data) {
1530
+ const loopable = this._chartData.data.xValueNames
1531
+ ? this._chartData.data.xValueNames
1532
+ : this._chartData.data.xValues;
1533
+ loopable.forEach((elem, index) => {
1534
+ let cells = '';
1535
+ this._chartData.data.series.forEach((serie) => {
1536
+ cells = cells.concat(`<td>${serie.yValues[index] != null ? serie.yValues[index].toLocaleString() : '-'}</td>`);
1537
+ });
1538
+ body = body.concat(`<tr><th scope='row'>${elem}${cells}</th></tr>`);
1539
+ });
1540
+ }
1541
+ return body;
1542
+ }
1543
+ render() {
1544
+ var _a, _b, _c, _d, _e;
1545
+ // Setting header
1546
+ let heading = '';
1547
+ if (this._chartData) {
1548
+ if (!this._chartData.subTitle)
1549
+ heading = `<${this.afHeadingLevel}>${this._chartData.title}</${this.afHeadingLevel}>`;
1550
+ else {
1551
+ if (!this._chartData.infoText)
1552
+ heading = `<${this.afHeadingLevel}>${this._chartData.title}</${this.afHeadingLevel}><p>${this._chartData.subTitle}</p>`;
1553
+ else
1554
+ heading = `<${this.afHeadingLevel}>${this._chartData.title}</${this.afHeadingLevel}><p>${(_a = this._chartData) === null || _a === void 0 ? void 0 : _a.subTitle}
1555
+ <span style="display:block;margin-top:0.25rem;font-size:0.875rem;color:var(--digi--global--color--neutral--grayscale--darkest-3)">${this._chartData.infoText}</span></p>`;
1556
+ }
1557
+ }
1558
+ return (h(Host, { key: 'a1e4aaa788766d54c691e95b7e70932b0e7d2b05', ref: (el) => (this._host = el) }, h("div", { key: '2fac926d196acaa20ab5f438968e3c98c08dd104', class: "topWrapper", ref: (el) => (this._titleDiv = el) }, h("digi-typography", { key: '16d8cbd0f03a2a2d24d3366ab1b3eaed797dd361', class: "chartTitle", innerHTML: heading }), h("digi-button", { key: '22a93add4a7f1ea3965ce496f2b5cbf488b01314', class: "buttonWrapper tableButton", "af-size": "medium", "af-variation": "function", "af-full-width": "false", onAfOnClick: this.activateTable, afAriaLabel: `Visa tabell ${((_b = this._chartData) === null || _b === void 0 ? void 0 : _b.title) ? (_c = this._chartData) === null || _c === void 0 ? void 0 : _c.title.toLowerCase() : ''}` }, h("digi-icon-table", { key: '152938d206dc00e2fb88b52d332960cbeda2c045', slot: "icon" }), "Visa tabell"), h("digi-button", { key: '66db213ee1c4cb169c7c257853a15a468bf2a83e', style: { display: 'none' }, class: "buttonWrapper chartButton", "af-size": "medium", "af-variation": "function", "af-full-width": "false", onAfOnClick: this.reInitChart, afAriaLabel: `Visa diagram ${((_d = this._chartData) === null || _d === void 0 ? void 0 : _d.title) ? (_e = this._chartData) === null || _e === void 0 ? void 0 : _e.title.toLowerCase() : ''}` }, h("digi-icon-chart", { key: 'ac4b8adad6ace97f50591cd39b8b0082d067f069', slot: "icon" }), "Visa diagram"), h("div", { key: 'b28e00a40b5c1a2919146ec4815f23a14fdfac50', class: "scChartStatus", role: "status", ref: (el) => (this._status = el) })), h("div", { key: '63f80744faa1d4b3d7d62bece3b5c446eda3ae7b', class: "chartTooltip", id: this.afId }, h("div", { key: '8c9fa9388b9bfc071c4a594275159eb36a8ec43b', class: "tooltipBody" }), h("digi-icon-x", { key: '252d12a937e5276381fa40ec3bb4e77c259da9c1', class: "close" }), this.afVariation === BarChartVariation.Horizontal ? (h("digi-icon-caret-up", null)) : (h("digi-icon-caret-down", null))), h("div", { key: '9b70433c310882bd0a06784ca1fa21c5b2dd9e52', ref: (el) => (this._chartDiv = el) }, " "), h("div", { key: '459e38448e29eea1fa7a10de7f3f1f06b6404eab', class: "legend", ref: (el) => (this._legendDiv = el) }), h("div", { key: 'cc655054cb3c3688c75060ebbdf6c3f8ea4ad712', class: "table", ref: (el) => (this._tableDiv = el) }, ' ')));
1559
+ }
1560
+ get hostElement() { return getElement(this); }
1561
+ static get watchers() { return {
1562
+ "afChartData": ["afChartDataUpdate"]
1563
+ }; }
1564
+ };
1565
+ barChart.style = DigiBarChartStyle0;
1566
+
51
1567
  const buttonCss = ".sc-digi-button-h{--digi--button--color--background--primary--default:var(--digi--color--background--interactive--default--primary);--digi--button--color--background--primary--hover:var(--digi--color--background--interactive--hover--primary);--digi--button--color--background--primary--focus:var(--digi--color--background--interactive--hover--primary);--digi--button--color--background--primary--active:var(--digi--color--background--interactive--hover--primary);--digi--button--color--background--secondary--default:var(--digi--color--background--interactive--default--secondary);--digi--button--color--background--secondary--hover:var(--digi--color--background--interactive--hover--secondary);--digi--button--color--background--secondary--focus:var(--digi--color--background--interactive--hover--secondary);--digi--button--color--background--secondary--active:var(--digi--color--background--interactive--hover--secondary);--digi--button--color--background--function--default:transparent;--digi--button--color--background--function--hover:transparent;--digi--button--color--background--function--focus:transparent;--digi--button--color--background--function--active:transparent;--digi--button--color--text--primary--default:var(--digi--color--text--interactive--secondary);--digi--button--color--text--primary--hover:var(--digi--color--text--interactive--secondary);--digi--button--color--text--primary--focus:var(--digi--color--text--interactive--secondary);--digi--button--color--text--primary--active:var(--digi--color--text--interactive--secondary);--digi--button--color--text--secondary--default:var(--digi--color--text--interactive--brand-primary);--digi--button--color--text--secondary--hover:var(--digi--color--text--interactive--brand-primary);--digi--button--color--text--secondary--focus:var(--digi--color--text--interactive--brand-primary);--digi--button--color--text--secondary--active:var(--digi--color--text--interactive--brand-primary);--digi--button--color--text--function--default:var(--digi--color--text--interactive--primary);--digi--button--color--text--function--hover:var(--digi--color--text--interactive--primary);--digi--button--color--text--function--focus:var(--digi--color--text--interactive--primary);--digi--button--color--text--function--active:var(--digi--color--text--interactive--primary);--digi--button--color--border--primary--default:var(--digi--color--background--interactive--default--primary);--digi--button--color--border--primary--hover:var(--digi--color--background--interactive--hover--primary);--digi--button--color--border--primary--focus:var(--digi--color--background--interactive--default--primary);--digi--button--color--border--primary--active:var(--digi--color--background--interactive--default--primary);--digi--button--color--border--secondary--default:var(--digi--color--border--interactive--default--primary);--digi--button--color--border--secondary--hover:var(--digi--color--border--interactive--hover--secondary);--digi--button--color--border--secondary--focus:var(--digi--color--border--interactive--default--primary);--digi--button--color--border--secondary--active:var(--digi--color--border--interactive--default--primary);--digi--button--color--border--function--default:initial;--digi--button--color--border--function--hover:initial;--digi--button--color--border--function--focus:initial;--digi--button--color--border--function--active:initial;--digi--button--color--icon--primary--default:var(--digi--color--icon--secondary);--digi--button--color--icon--primary--hover:var(--digi--color--icon--secondary);--digi--button--color--icon--primary--focus:var(--digi--color--icon--secondary);--digi--button--color--icon--primary--active:var(--digi--color--icon--secondary);--digi--button--color--icon--secondary--default:var(--digi--color--icon--brand-primary);--digi--button--color--icon--secondary--hover:var(--digi--color--icon--brand-primary);--digi--button--color--icon--secondary--focus:var(--digi--color--icon--brand-primary);--digi--button--color--icon--secondary--active:var(--digi--color--icon--brand-primary);--digi--button--color--icon--function--default:var(--digi--color--icon--cta);--digi--button--color--icon--function--hover:var(--digi--color--icon--cta);--digi--button--color--icon--function--focus:var(--digi--color--icon--cta);--digi--button--color--icon--function--active:var(--digi--color--icon--cta);--digi--button--border-width--primary--default:var(--digi--border-width--primary);--digi--button--border-width--primary--hover:var(--digi--border-width--primary);--digi--button--border-width--secondary--default:var(--digi--border-width--primary);--digi--button--border-width--secondary--hover:var(--digi--border-width--primary);--digi--button--border-width--function--default:initial;--digi--button--border-width--function--hover:initial;--digi--button--border-style--primary--default:var(--digi--border-style--primary);--digi--button--border-style--primary--hover:var(--digi--border-style--primary);--digi--button--border-style--primary--focus:var(--digi--border-style--primary);--digi--button--border-style--primary--active:var(--digi--border-style--primary);--digi--button--border-style--secondary--default:var(--digi--border-style--primary);--digi--button--border-style--secondary--hover:var(--digi--border-style--primary);--digi--button--border-style--secondary--focus:var(--digi--border-style--primary);--digi--button--border-style--secondary--active:var(--digi--border-style--primary);--digi--button--border-style--function--default:var(--digi--border-style--secondary);--digi--button--border-style--function--hover:var(--digi--border-style--secondary);--digi--button--border-style--function--focus:var(--digi--border-style--secondary);--digi--button--border-style--function--active:var(--digi--border-style--secondary);--digi--button--border-radius--primary--default:var(--digi--border-radius--secondary);--digi--button--border-radius--primary--hover:var(--digi--border-radius--secondary);--digi--button--border-radius--primary--focus:var(--digi--border-radius--secondary);--digi--button--border-radius--primary--active:var(--digi--border-radius--secondary);--digi--button--border-radius--secondary--default:var(--digi--border-radius--secondary);--digi--button--border-radius--secondary--hover:var(--digi--border-radius--secondary);--digi--button--border-radius--secondary--focus:var(--digi--border-radius--secondary);--digi--button--border-radius--secondary--active:var(--digi--border-radius--secondary);--digi--button--border-radius--function--default:initial;--digi--button--border-radius--function--hover:initial;--digi--button--border-radius--function--focus:initial;--digi--button--border-radius--function--active:initial;--digi--button--padding--small:var(--digi--gutter--button-block-small) var(--digi--gutter--button-inline-small);--digi--button--padding--medium:var(--digi--gutter--button-block-medium) var(--digi--gutter--button-inline-medium);--digi--button--font-size--small:var(--digi--global--typography--font-size--interaction-small);--digi--button--font-size--medium:var(--digi--global--typography--font-size--interaction-medium);--digi--button--font-family:var(--digi--global--typography--font-family--default);--digi--button--font-weight--default:var(--digi--typography--button--font-weight--desktop);--digi--button--font-weight--function:var(--digi--typography--label--font-weight--desktop);--digi--button--width:initial;--digi--button--display:initial;--digi--button--justify-content--default:initial;--digi--button--justify-content--full-width:center;--digi--button--align-items:center;--digi--button--text-align--default:initial;--digi--button--text-align--full-width:center;--digi--button--outline--default:initial;--digi--button--outline--focus:initial;--digi--button--cursor:pointer;--digi--button--icon--spacing:var(--digi--gutter--large);--digi--button--min-height--small:unset}.sc-digi-button-h .digi-button.sc-digi-button{font-family:var(--digi--button--font-family);background:var(--COLOR--BACKGROUND--DEFAULT);color:var(--COLOR--TEXT--DEFAULT);padding:var(--PADDING);border-radius:var(--BORDER-RADIUS--DEFAULT);border-width:var(--BORDER-WIDTH--DEFAULT);border-style:var(--BORDER-STYLE--DEFAULT);border-color:var(--COLOR--BORDER--DEFAULT);font-weight:var(--FONT-WEIGHT);font-size:var(--FONT-SIZE);outline:var(--digi--button--outline--default);text-align:var(--digi--button--text-align--default);width:var(--digi--button--width);display:var(--digi--button--display);justify-content:var(--digi--button--justify-content--default);cursor:var(--digi--button--cursor);min-height:var(--MIN-HEIGHT);align-items:var(--digi--button--align-items);white-space:nowrap}.sc-digi-button-h .digi-button--variation-primary.sc-digi-button{--COLOR--BACKGROUND--DEFAULT:var(--digi--button--color--background--primary--default);--COLOR--BACKGROUND--HOVER:var(--digi--button--color--background--primary--hover);--COLOR--BACKGROUND--FOCUS:var(--digi--button--color--background--primary--focus);--COLOR--BACKGROUND--ACTIVE:var(--digi--button--color--background--primary--active);--COLOR--TEXT--DEFAULT:var(--digi--button--color--text--primary--default);--COLOR--TEXT--HOVER:var(--digi--button--color--text--primary--hover);--COLOR--TEXT--FOCUS:var(--digi--button--color--text--primary--focus);--COLOR--TEXT--ACTIVE:var(--digi--button--color--text--primary--active);--COLOR--ICON--DEFAULT:var(--digi--button--color--icon--primary--default);--COLOR--ICON--HOVER:var(--digi--button--color--icon--primary--hover);--COLOR--ICON--FOCUS:var(--digi--button--color--icon--primary--focus);--COLOR--ICON--ACTIVE:var(--digi--button--color--icon--primary--active);--COLOR--BORDER--DEFAULT:var(--digi--button--color--border--primary--default);--COLOR--BORDER--HOVER:var(--digi--button--color--border--primary--hover);--COLOR--BORDER--FOCUS:var(--digi--button--color--border--primary--focus);--COLOR--BORDER--ACTIVE:var(--digi--button--color--border--primary--active);--BORDER-RADIUS--DEFAULT:var(--digi--button--border-radius--primary--default);--BORDER-RADIUS--HOVER:var(--digi--button--border-radius--primary--hover);--BORDER-RADIUS--FOCUS:var(--digi--button--border-radius--primary--focus);--BORDER-RADIUS--ACTIVE:var(--digi--button--border-radius--primary--active);--BORDER-WIDTH--DEFAULT:var(--digi--button--border-width--primary--default);--BORDER-WIDTH--HOVER:var(--digi--button--border-width--primary--hover);--BORDER-WIDTH--FOCUS:var(--digi--button--border-width--primary--focus);--BORDER-WIDTH--ACTIVE:var(--digi--button--border-width--primary--active);--BORDER-STYLE--DEFAULT:var(--digi--button--border-style--primary--default);--BORDER-STYLE--HOVER:var(--digi--button--border-style--primary--hover);--BORDER-STYLE--FOCUS:var(--digi--button--border-style--primary--focus);--BORDER-STYLE--ACTIVE:var(--digi--button--border-style--primary--active);--FONT-WEIGHT:var(--digi--button--font-weight--default)}.sc-digi-button-h .digi-button--variation-secondary.sc-digi-button{--COLOR--BACKGROUND--DEFAULT:var(--digi--button--color--background--secondary--default);--COLOR--BACKGROUND--HOVER:var(--digi--button--color--background--secondary--hover);--COLOR--BACKGROUND--FOCUS:var(--digi--button--color--background--secondary--focus);--COLOR--BACKGROUND--ACTIVE:var(--digi--button--color--background--secondary--active);--COLOR--TEXT--DEFAULT:var(--digi--button--color--text--secondary--default);--COLOR--TEXT--HOVER:var(--digi--button--color--text--secondary--hover);--COLOR--TEXT--FOCUS:var(--digi--button--color--text--secondary--focus);--COLOR--TEXT--ACTIVE:var(--digi--button--color--text--secondary--active);--COLOR--ICON--DEFAULT:var(--digi--button--color--icon--secondary--default);--COLOR--ICON--HOVER:var(--digi--button--color--icon--secondary--hover);--COLOR--ICON--FOCUS:var(--digi--button--color--icon--secondary--focus);--COLOR--ICON--ACTIVE:var(--digi--button--color--icon--secondary--active);--COLOR--BORDER--DEFAULT:var(--digi--button--color--border--secondary--default);--COLOR--BORDER--HOVER:var(--digi--button--color--border--secondary--hover);--COLOR--BORDER--FOCUS:var(--digi--button--color--border--secondary--focus);--COLOR--BORDER--ACTIVE:var(--digi--button--color--border--secondary--active);--BORDER-RADIUS--DEFAULT:var(--digi--button--border-radius--secondary--default);--BORDER-RADIUS--HOVER:var(--digi--button--border-radius--secondary--hover);--BORDER-RADIUS--FOCUS:var(--digi--button--border-radius--secondary--focus);--BORDER-RADIUS--ACTIVE:var(--digi--button--border-radius--secondary--active);--BORDER-WIDTH--DEFAULT:var(--digi--button--border-width--secondary--default);--BORDER-WIDTH--HOVER:var(--digi--button--border-width--secondary--hover);--BORDER-WIDTH--FOCUS:var(--digi--button--border-width--secondary--focus);--BORDER-WIDTH--ACTIVE:var(--digi--button--border-width--secondary--active);--BORDER-STYLE--DEFAULT:var(--digi--button--border-style--secondary--default);--BORDER-STYLE--HOVER:var(--digi--button--border-style--secondary--hover);--BORDER-STYLE--FOCUS:var(--digi--button--border-style--secondary--focus);--BORDER-STYLE--ACTIVE:var(--digi--button--border-style--secondary--active);--FONT-WEIGHT:var(--digi--button--font-weight--default)}.sc-digi-button-h .digi-button--variation-function.sc-digi-button{--COLOR--BACKGROUND--DEFAULT:var(--digi--button--color--background--function--default);--COLOR--BACKGROUND--HOVER:var(--digi--button--color--background--function--hover);--COLOR--BACKGROUND--FOCUS:var(--digi--button--color--background--function--focus);--COLOR--BACKGROUND--ACTIVE:var(--digi--button--color--background--function--active);--COLOR--TEXT--DEFAULT:var(--digi--button--color--text--function--default);--COLOR--TEXT--HOVER:var(--digi--button--color--text--function--hover);--COLOR--TEXT--FOCUS:var(--digi--button--color--text--function--focus);--COLOR--TEXT--ACTIVE:var(--digi--button--color--text--function--active);--COLOR--ICON--DEFAULT:var(--digi--button--color--icon--function--default);--COLOR--ICON--HOVER:var(--digi--button--color--icon--function--hover);--COLOR--ICON--FOCUS:var(--digi--button--color--icon--function--focus);--COLOR--ICON--ACTIVE:var(--digi--button--color--icon--function--active);--COLOR--BORDER--DEFAULT:var(--digi--button--color--border--function--default);--COLOR--BORDER--HOVER:var(--digi--button--color--border--function--hover);--COLOR--BORDER--FOCUS:var(--digi--button--color--border--function--focus);--COLOR--BORDER--ACTIVE:var(--digi--button--color--border--function--active);--BORDER-RADIUS--DEFAULT:var(--digi--button--border-radius--function--default);--BORDER-RADIUS--HOVER:var(--digi--button--border-radius--function--hover);--BORDER-RADIUS--FOCUS:var(--digi--button--border-radius--function--focus);--BORDER-RADIUS--ACTIVE:var(--digi--button--border-radius--function--active);--BORDER-WIDTH--DEFAULT:var(--digi--button--border-width--function--default);--BORDER-WIDTH--HOVER:var(--digi--button--border-width--function--hover);--BORDER-WIDTH--FOCUS:var(--digi--button--border-width--function--focus);--BORDER-WIDTH--ACTIVE:var(--digi--button--border-width--function--active);--BORDER-STYLE--DEFAULT:var(--digi--button--border-style--function--default);--BORDER-STYLE--HOVER:var(--digi--button--border-style--function--hover);--BORDER-STYLE--FOCUS:var(--digi--button--border-style--function--focus);--BORDER-STYLE--ACTIVE:var(--digi--button--border-style--function--active);--FONT-WEIGHT:var(--digi--button--font-weight--function)}.sc-digi-button-h .digi-button--variation-function.sc-digi-button:hover,.sc-digi-button-h .digi-button--variation-function.sc-digi-button:focus{text-decoration:underline}.sc-digi-button-h .digi-button--size-small.sc-digi-button{--FONT-SIZE:var(--digi--button--font-size--small);--PADDING:var(--digi--button--padding--small);--MIN-HEIGHT:var(--digi--button--min-height--small)}.sc-digi-button-h .digi-button--size-medium.sc-digi-button{--FONT-SIZE:var(--digi--button--font-size--medium);--PADDING:var(--digi--button--padding--medium);--MIN-HEIGHT:var(--digi--button--min-height--small)}.sc-digi-button-h .digi-button.sc-digi-button-s>[slot^=icon],.sc-digi-button-h .digi-button .sc-digi-button-s>[slot^=icon]{--digi--icon--height:1em;--digi--icon--width:1em;--digi--icon--color:var(--COLOR--ICON--DEFAULT);min-height:0}@media (any-hover: hover){.sc-digi-button-h .digi-button.sc-digi-button:hover{background:var(--COLOR--BACKGROUND--HOVER);border-radius:var(--BORDER-RADIUS--HOVER);border-width:var(--BORDER-WIDTH--HOVER);border-style:var(--BORDER-STYLE--HOVER);border-color:var(--COLOR--BORDER--HOVER);color:var(--COLOR--TEXT--HOVER)}.sc-digi-button-h .digi-button:hover.sc-digi-button-s>[slot^=icon],.sc-digi-button-h .digi-button:hover .sc-digi-button-s>[slot^=icon]{--digi--icon--color:var(--COLOR--ICON--HOVER)}}.sc-digi-button-h .digi-button.sc-digi-button:focus-visible{background:var(--COLOR--BACKGROUND--FOCUS);color:var(--COLOR--TEXT--FOCUS);border-style:var(--BORDER-STYLE--FOCUS);border-color:var(--COLOR--BORDER--FOCUS);outline:2px solid black;outline-offset:2px;box-shadow:0px 0px 0px 5px white}.sc-digi-button-h .digi-button:focus-visible.sc-digi-button-s>[slot^=icon],.sc-digi-button-h .digi-button:focus-visible .sc-digi-button-s>[slot^=icon]{--digi--icon--color:var(--COLOR--ICON--FOCUS)}.sc-digi-button-h .digi-button.sc-digi-button:active{background:var(--COLOR--BACKGROUND--ACTIVE);color:var(--COLOR--TEXT--ACTIVE)}.sc-digi-button-h .digi-button:active.sc-digi-button-s>[slot^=icon],.sc-digi-button-h .digi-button:active .sc-digi-button-s>[slot^=icon]{--digi--icon--color:var(--COLOR--ICON--ACTIVE)}.sc-digi-button-h .digi-button--icon.sc-digi-button,.sc-digi-button-h .digi-button--icon-secondary.sc-digi-button{--digi--button--display:flex;align-items:center;justify-content:var(--digi--button--justify-content--default);gap:var(--digi--button--icon--spacing)}.sc-digi-button-h .digi-button--full-width.sc-digi-button{--digi--button--width:100%;--digi--button--text-align--default:var(--digi--button--text-align--full-width);--digi--button--justify-content--default:var(--digi--button--justify-content--full-width)}";
52
1568
  const DigiButtonStyle0 = buttonCss;
53
1569
 
@@ -618,6 +2134,72 @@ const IconBellFilled = class {
618
2134
  };
619
2135
  IconBellFilled.style = DigiIconBellFilledStyle0;
620
2136
 
2137
+ const iconCaretDownCss = ".sc-digi-icon-caret-down-h{--digi--icon--color:var(--digi--color--icon--primary);--digi--icon--width:initial;--digi--icon--height:auto;display:flex;min-height:1.4em;align-items:center}.sc-digi-icon-caret-down-h svg.sc-digi-icon-caret-down{color:var(--digi--icon--color);max-width:var(--digi--icon--width);max-height:var(--digi--icon--height);width:var(--digi--icon--width, auto);height:var(--digi--icon--height, auto)}";
2138
+ const DigiIconCaretDownStyle0 = iconCaretDownCss;
2139
+
2140
+ const IconCaretDown = class {
2141
+ constructor(hostRef) {
2142
+ registerInstance(this, hostRef);
2143
+ this.afTitle = undefined;
2144
+ this.afDesc = undefined;
2145
+ this.afSvgAriaHidden = true;
2146
+ this.afSvgAriaLabelledby = undefined;
2147
+ this.titleId = randomIdGenerator('icontitle');
2148
+ }
2149
+ render() {
2150
+ return (h("svg", { key: '076122c58ff6050a1e284cfe4459c526e5b6bb94', class: "digi-icon-caret-down", width: "12", height: "6", viewBox: "0 0 12 6", "aria-hidden": this.afSvgAriaHidden ? 'true' : 'false', "aria-labelledby": this.afSvgAriaLabelledby
2151
+ ? this.afSvgAriaLabelledby
2152
+ : this.afTitle
2153
+ ? this.titleId
2154
+ : undefined, xmlns: "http://www.w3.org/2000/svg" }, this.afTitle && h("title", { key: 'c11d1fbca067166db12a18b35fa9d36c7131e34e', id: this.titleId }, this.afTitle), this.afDesc && h("desc", { key: 'eec49821572ad40f84afcee5650877c8338d3812' }, this.afDesc), h("path", { key: 'e4473f7f7152ff2263f80768dadc5ad6ac330a6c', class: "digi-icon-caret-down__shape", d: "M11.777.198A.608.608 0 0112 .667c0 .18-.074.336-.223.468l-5.25 4.667A.768.768 0 016 6a.768.768 0 01-.527-.198L.223 1.135A.608.608 0 010 .667C0 .487.074.33.223.197A.768.768 0 01.75 0h10.5c.203 0 .379.066.527.198z", fill: "currentColor", "fill-rule": "evenodd" })));
2155
+ }
2156
+ };
2157
+ IconCaretDown.style = DigiIconCaretDownStyle0;
2158
+
2159
+ const iconCaretUpCss = ".sc-digi-icon-caret-up-h{--digi--icon--color:var(--digi--color--icon--primary);--digi--icon--width:initial;--digi--icon--height:auto;display:flex;min-height:1.4em;align-items:center}.sc-digi-icon-caret-up-h svg.sc-digi-icon-caret-up{color:var(--digi--icon--color);max-width:var(--digi--icon--width);max-height:var(--digi--icon--height);width:var(--digi--icon--width, auto);height:var(--digi--icon--height, auto)}";
2160
+ const DigiIconCaretUpStyle0 = iconCaretUpCss;
2161
+
2162
+ const IconCaretUp = class {
2163
+ constructor(hostRef) {
2164
+ registerInstance(this, hostRef);
2165
+ this.afTitle = undefined;
2166
+ this.afDesc = undefined;
2167
+ this.afSvgAriaHidden = true;
2168
+ this.afSvgAriaLabelledby = undefined;
2169
+ this.titleId = randomIdGenerator('icontitle');
2170
+ }
2171
+ render() {
2172
+ return (h("svg", { key: 'e9ace2c9103fdaf105f3b827d963f37c7a0da692', class: "digi-icon-caret-up", width: "12", height: "7", viewBox: "0 0 12 7", "aria-hidden": this.afSvgAriaHidden ? 'true' : 'false', "aria-labelledby": this.afSvgAriaLabelledby
2173
+ ? this.afSvgAriaLabelledby
2174
+ : this.afTitle
2175
+ ? this.titleId
2176
+ : undefined, xmlns: "http://www.w3.org/2000/svg" }, this.afTitle && h("title", { key: '06f4956a61d900ac2ecd6f3d7e73364e084286c6', id: this.titleId }, this.afTitle), this.afDesc && h("desc", { key: 'bb69acfc464160dc580771ad56724b5cda76f6f3' }, this.afDesc), h("path", { key: '918ba79b8ef4a7ad38da77411b12c2a4a074d977', class: "digi-icon-caret-up__shape", d: "M11.777 5.65A.608.608 0 0112 6.12c0 .18-.074.337-.223.469a.768.768 0 01-.527.198H.75a.768.768 0 01-.527-.198A.608.608 0 010 6.119c0-.18.074-.337.223-.469L5.473.984A.768.768 0 016 .786c.203 0 .379.066.527.198l5.25 4.666z", fill: "currentColor", "fill-rule": "evenodd" })));
2177
+ }
2178
+ };
2179
+ IconCaretUp.style = DigiIconCaretUpStyle0;
2180
+
2181
+ const iconChartCss = ".sc-digi-icon-chart-h{--digi--icon--color:var(--digi--color--icon--primary);--digi--icon--width:initial;--digi--icon--height:auto;display:flex;min-height:1.4em;align-items:center}.sc-digi-icon-chart-h svg.sc-digi-icon-chart{color:var(--digi--icon--color);max-width:var(--digi--icon--width);max-height:var(--digi--icon--height);width:var(--digi--icon--width, auto);height:var(--digi--icon--height, auto)}";
2182
+ const DigiIconChartStyle0 = iconChartCss;
2183
+
2184
+ const IconChart = class {
2185
+ constructor(hostRef) {
2186
+ registerInstance(this, hostRef);
2187
+ this.afTitle = undefined;
2188
+ this.afDesc = undefined;
2189
+ this.afSvgAriaHidden = true;
2190
+ this.afSvgAriaLabelledby = undefined;
2191
+ this.titleId = randomIdGenerator('icontitle');
2192
+ }
2193
+ render() {
2194
+ return (h("svg", { key: '6607ae220e7df0da4e33d6e26989b0a081c9b36c', width: "56", height: "62", viewBox: "0 0 56 62", version: "1.1", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": this.afSvgAriaHidden ? 'true' : 'false', "aria-labelledby": this.afSvgAriaLabelledby
2195
+ ? this.afSvgAriaLabelledby
2196
+ : this.afTitle
2197
+ ? this.titleId
2198
+ : undefined }, h("title", { key: 'a5a9ef19879689bc5d73b96a8e4d5e3e3648d6a5' }, "Chart"), this.afTitle && h("title", { key: 'e6e5af46d4d34bb3b0dcdc2c8704d483a9ed46c9', id: this.titleId }, this.afTitle), this.afDesc && h("desc", { key: '6ff565844d5a595fd83767019670556bc453544a' }, this.afDesc), h("defs", { key: 'a1e2c022806ba193089e6f0d9f5af8767a7d228c' }, h("polygon", { key: '2b0d108004fc3f5aabbcf9336cfc570a9c1f0bb3', id: "path-1", points: "19.8389256 11.2318841 34.4403749 11.2318841 34.4403749 42.2318841 19.8389256 42.2318841" }), h("polygon", { key: '5399f0ed9826b3b6d9d456dbb642e1a1567d092e', id: "path-3", points: "-0.846460828 -19.7681159 53.908974 -19.7681159 53.908974 -0.393115942 -0.846460828 -0.393115942" })), h("g", { key: 'ed893c950447790359d41eb049fa27d3072e4550', id: "Ikonguide", stroke: "none", "stroke-width": "1", fill: "none", "fill-rule": "evenodd" }, h("g", { key: '4b5f626b6fd84c24288d4ca2282bb4f77cc66f09', transform: "translate(-1012.000000, -804.000000)", id: "Chart" }, h("g", { key: 'd80584e04fc9647d5f3754c3c0f110d8159ae81a', transform: "translate(1013.063248, 823.768116)" }, h("g", { key: '865b38e62f958368b9b0c8bee661f8ad65d937d5', id: "Group", transform: "translate(-0.000000, 0.000000)" }, h("path", { key: 'de78d7a368a954e05a35f86279ebe64dd7e6bb5f', d: "M11.2871933,17.0724638 L3.19179715,17.0724638 C1.47642907,17.0724638 0.0891563449,18.5157634 0.0891563449,20.3004089 L0,39.003939 C0,40.7885845 1.38727273,42.2318841 3.1026408,42.2318841 L11.1980369,42.2318841 C12.913405,42.2318841 14.3006777,40.7885845 14.3006777,39.003939 L14.3898341,20.3004089 C14.3898341,18.5157634 12.9989951,17.0724638 11.2871933,17.0724638", id: "Fill-1", fill: "currentColor" }), h("path", { key: '9becb04f53bc8e2204057bcc91011748e91d7f49', d: "M31.292107,11.2318841 L23.077661,11.2318841 C21.3370669,11.2318841 19.9293931,12.6247 19.9293931,14.3469222 L19.8389256,39.1168459 C19.8389256,40.8354877 21.2465994,42.2318841 22.9871935,42.2318841 L31.2016396,42.2318841 C32.9422337,42.2318841 34.3499075,40.8354877 34.3499075,39.1168459 L34.4403749,14.3469222 C34.4403749,12.6247 33.0290824,11.2318841 31.292107,11.2318841", id: "Fill-3", fill: "currentColor" }), h("path", { key: '630d629de95cab01e5c6c12fcdf6db1370cfbcbb', d: "M51.0899571,0 L43.0444095,0 C41.339604,0 39.9608736,1.42791855 39.9608736,3.19354534 L39.7836589,39.0420095 C39.7836589,40.8039655 41.1659336,42.2318841 42.8671948,42.2318841 L50.9162867,42.2318841 C52.6175479,42.2318841 53.9962783,40.8039655 53.9962783,39.0420095 L54.173493,3.19354534 C54.173493,1.42791855 52.7912183,0 51.0899571,0", id: "Fill-6", fill: "currentColor" }), h("polygon", { key: 'f4840f517fa75e69552904a8a745af9685f8ef48', id: "path-1", points: "19.8389256 11.2318841 34.4403749 11.2318841 34.4403749 42.2318841 19.8389256 42.2318841" }), h("g", { key: '0c3ddc574e29a0933b9927ccbbccaf7896346181', id: "Clip-4" }), h("polygon", { key: '6003bdc26f9a47f8907ad2483067eb97fa47125a', id: "path-3", points: "-0.846460828 -19.7681159 53.908974 -19.7681159 53.908974 -0.393115942 -0.846460828 -0.393115942" }), h("g", { key: '58b7a6de68a0a2e9b513434c02ef2ceb9746f708', id: "Clip-9" }), h("path", { key: '17cc4e34e2e1c2d4065d65665c2cd2de4d1cac7c', d: "M2.64246183,-0.393115942 L24.287738,-0.393115942 C24.783165,-0.393115942 25.2716142,-0.501190406 25.7216852,-0.713736852 L51.853716,-12.8829215 C53.6086441,-13.6970825 54.3936517,-15.8297519 53.5981773,-17.6454029 C52.8027029,-19.4610539 50.7372607,-20.2680099 48.9858215,-19.4466439 L23.5376196,-7.59808021 L2.64246183,-7.59808021 C0.716576525,-7.59808021 -0.846460828,-5.98777069 -0.846460828,-3.99559807 C-0.846460828,-2.00342546 0.716576525,-0.393115942 2.64246183,-0.393115942", id: "Fill-8", fill: "currentColor", mask: "url(#mask-4)" })))))));
2199
+ }
2200
+ };
2201
+ IconChart.style = DigiIconChartStyle0;
2202
+
621
2203
  const iconMinusCss = ".sc-digi-icon-minus-h{--digi--icon--color:var(--digi--color--icon--primary);--digi--icon--width:initial;--digi--icon--height:auto;display:flex;min-height:1.4em;align-items:center}.sc-digi-icon-minus-h svg.sc-digi-icon-minus{color:var(--digi--icon--color);max-width:var(--digi--icon--width);max-height:var(--digi--icon--height);width:var(--digi--icon--width, auto);height:var(--digi--icon--height, auto)}";
622
2204
  const DigiIconMinusStyle0 = iconMinusCss;
623
2205
 
@@ -662,6 +2244,28 @@ const IconPlus = class {
662
2244
  };
663
2245
  IconPlus.style = DigiIconPlusStyle0;
664
2246
 
2247
+ const iconTableCss = ".sc-digi-icon-table-h{--digi--icon--color:var(--digi--color--icon--primary);--digi--icon--width:initial;--digi--icon--height:auto;display:flex;min-height:1.4em;align-items:center}.sc-digi-icon-table-h svg.sc-digi-icon-table{color:var(--digi--icon--color);max-width:var(--digi--icon--width);max-height:var(--digi--icon--height);width:var(--digi--icon--width, auto);height:var(--digi--icon--height, auto)}";
2248
+ const DigiIconTableStyle0 = iconTableCss;
2249
+
2250
+ const IconTable = class {
2251
+ constructor(hostRef) {
2252
+ registerInstance(this, hostRef);
2253
+ this.afTitle = undefined;
2254
+ this.afDesc = undefined;
2255
+ this.afSvgAriaHidden = true;
2256
+ this.afSvgAriaLabelledby = undefined;
2257
+ this.titleId = randomIdGenerator('icontitle');
2258
+ }
2259
+ render() {
2260
+ return (h("svg", { key: '2b15475968f010d4d9b38757d76310a0da35f9aa', class: "digi-icon-table", width: "62px", height: "62px", viewBox: "0 0 62 62", "aria-hidden": this.afSvgAriaHidden ? 'true' : 'false', "aria-labelledby": this.afSvgAriaLabelledby
2261
+ ? this.afSvgAriaLabelledby
2262
+ : this.afTitle
2263
+ ? this.titleId
2264
+ : undefined, xmlns: "http://www.w3.org/2000/svg", fill: "currentColor" }, this.afTitle && h("title", { key: '4d6f0e438a5e0815b93ae7d3c78108bfec3f5f06', id: this.titleId }, this.afTitle), this.afDesc && h("desc", { key: 'e61d74161f5c064226f0024eee36d8873f79fe20' }, this.afDesc), h("defs", { key: '0cec891b39f0d976d433b03cbb67827bfe5b079b' }, h("polygon", { key: '519dc3fcc3c88f79639f4de0ff9cfa4ad859c377', points: "0 62 62 62 62 0 0 0" })), h("g", { key: '71db465acf6cb6e9584f681d734582875a92b78f', stroke: "none", "stroke-width": "1", fill: "none", "fill-rule": "evenodd" }, h("g", { key: '33b2c9ac1ec24ea5c99e473e803376b84fa8a697', transform: "translate(-302, -975)" }, h("g", { key: '84aad1a7cbfb1e00b9fe6d09d6f391c6d9e3a253', transform: "translate(302, 975)" }, h("polygon", { key: 'fdaea81b52a89b1569ab4fe419bfce0bf63149cc', fill: "currentColor", points: "29.6502083 9.05264249 32.3497917 9.05264249 32.3497917 6.36704663 29.6502083 6.36704663" }), h("g", { key: 'c702ec7d878464f96670a7bf5c648ae03046432f' }, h("path", { key: 'fdf06acb2a51a798edd82c8fe4ddb05e89ffd72a', d: "M35.3073208,0 L26.6931958,0 C24.7918625,0 23.2496125,1.53297409 23.2496125,3.42574093 L23.2496125,11.9939482 C23.2496125,13.886715 24.7918625,15.4196891 26.6931958,15.4196891 L35.3073208,15.4196891 C37.2086542,15.4196891 38.7496125,13.886715 38.7496125,11.9939482 L38.7496125,3.42574093 C38.7496125,1.53297409 37.2086542,0 35.3073208,0", fill: "currentColor" }), h("polygon", { key: 'f32aeb62af7d6f2f555cdb6400b15acab99a526f', fill: "currentColor", points: "6.40020833 9.05264249 9.09979167 9.05264249 9.09979167 6.36704663 6.40020833 6.36704663" }), h("path", { key: 'b719764d7969126f69e5ffe8d66c6604f3678666', d: "M12.0573208,0 L3.44319583,0 C1.5418625,0 -0.0003875,1.53297409 -0.0003875,3.42574093 L-0.0003875,11.9939482 C-0.0003875,13.886715 1.5418625,15.4196891 3.44319583,15.4196891 L12.0573208,15.4196891 C13.9586542,15.4196891 15.4996125,13.886715 15.4996125,11.9939482 L15.4996125,3.42574093 C15.4996125,1.53297409 13.9586542,0 12.0573208,0", fill: "currentColor" }), h("polygon", { key: 'f478c28306a90a3a20ec5d165ae61c528144f5cf', fill: "currentColor", points: "52.9002083 9.05264249 55.5997917 9.05264249 55.5997917 6.36704663 52.9002083 6.36704663" }), h("path", { key: '32ecd42b5a7bac68784083a536a13eb8432142d6', d: "M58.5573208,0 L49.9431958,0 C48.0418625,0 46.4996125,1.53297409 46.4996125,3.42574093 L46.4996125,11.9939482 C46.4996125,13.886715 48.0418625,15.4196891 49.9431958,15.4196891 L58.5573208,15.4196891 C60.4586542,15.4196891 61.9996125,13.886715 61.9996125,11.9939482 L61.9996125,3.42574093 C61.9996125,1.53297409 60.4586542,0 58.5573208,0", fill: "currentColor" }), h("polygon", { key: '4adc770bd26975b7f26853960784938d22aa22de', fill: "currentColor", points: "29.6502083 55.6329534 32.3497917 55.6329534 32.3497917 52.9473575 29.6502083 52.9473575" }), h("path", { key: '0fea261e3e830db49452ea4f8c1d51de61baa3e5', d: "M35.3073208,46.5803109 L26.6931958,46.5803109 C24.7918625,46.5803109 23.2496125,48.113285 23.2496125,50.0060518 L23.2496125,58.5742591 C23.2496125,60.4670259 24.7918625,62 26.6931958,62 L35.3073208,62 C37.2086542,62 38.7496125,60.4670259 38.7496125,58.5742591 L38.7496125,50.0060518 C38.7496125,48.113285 37.2086542,46.5803109 35.3073208,46.5803109", fill: "currentColor" }), h("polygon", { key: 'aefe51986871cdcca194a2aab635c2d10a4b0df9', fill: "currentColor", points: "6.40020833 55.6329534 9.09979167 55.6329534 9.09979167 52.9473575 6.40020833 52.9473575" }), h("path", { key: 'b301aca5e4016a8f2576ccf4d35d820042297d3b', d: "M12.0573208,46.5803109 L3.44319583,46.5803109 C1.5418625,46.5803109 -0.0003875,48.113285 -0.0003875,50.0060518 L-0.0003875,58.5742591 C-0.0003875,60.4670259 1.5418625,62 3.44319583,62 L12.0573208,62 C13.9586542,62 15.4996125,60.4670259 15.4996125,58.5742591 L15.4996125,50.0060518 C15.4996125,48.113285 13.9586542,46.5803109 12.0573208,46.5803109", fill: "currentColor" }), h("polygon", { key: 'f7c37e92ce4923c69f18f9ee7bfcf024f6edca68', fill: "currentColor", points: "52.9002083 55.6329534 55.5997917 55.6329534 55.5997917 52.9473575 52.9002083 52.9473575" }), h("path", { key: '92b5ade4dcfee263d5c6705f0e61d497de95b127', d: "M58.5573208,46.5803109 L49.9431958,46.5803109 C48.0418625,46.5803109 46.4996125,48.113285 46.4996125,50.0060518 L46.4996125,58.5742591 C46.4996125,60.4670259 48.0418625,62 49.9431958,62 L58.5573208,62 C60.4586542,62 61.9996125,60.4670259 61.9996125,58.5742591 L61.9996125,50.0060518 C61.9996125,48.113285 60.4586542,46.5803109 58.5573208,46.5803109", fill: "currentColor" }), h("polygon", { key: '18efdfef14982ce32fa049ed6f4291547d69d57f', fill: "currentColor", points: "29.6502083 32.3427979 32.3497917 32.3427979 32.3497917 29.6572021 29.6502083 29.6572021" }), h("path", { key: 'd9650db05e8113d593266abd6b6ca24ec3d47c53', d: "M35.3073208,23.2901554 L26.6931958,23.2901554 C24.7918625,23.2901554 23.2496125,24.8231295 23.2496125,26.7158964 L23.2496125,35.2841036 C23.2496125,37.1768705 24.7918625,38.7098446 26.6931958,38.7098446 L35.3073208,38.7098446 C37.2086542,38.7098446 38.7496125,37.1768705 38.7496125,35.2841036 L38.7496125,26.7158964 C38.7496125,24.8231295 37.2086542,23.2901554 35.3073208,23.2901554", fill: "currentColor" }), h("polygon", { key: 'a867951d8eb353eb1e0b71914d90c835a7a09062', fill: "currentColor", points: "6.40020833 32.3427979 9.09979167 32.3427979 9.09979167 29.6572021 6.40020833 29.6572021" }), h("path", { key: 'e8bbdaf46e54616c09c59183e1d54a6a47d17532', d: "M12.0573208,23.2901554 L3.44319583,23.2901554 C1.5418625,23.2901554 -0.0003875,24.8231295 -0.0003875,26.7158964 L-0.0003875,35.2841036 C-0.0003875,37.1768705 1.5418625,38.7098446 3.44319583,38.7098446 L12.0573208,38.7098446 C13.9586542,38.7098446 15.4996125,37.1768705 15.4996125,35.2841036 L15.4996125,26.7158964 C15.4996125,24.8231295 13.9586542,23.2901554 12.0573208,23.2901554", fill: "currentColor" }), h("polygon", { key: 'e726b28b6c68eef9436a978b653e04815248c269', fill: "currentColor", points: "52.9002083 32.3427979 55.5997917 32.3427979 55.5997917 29.6572021 52.9002083 29.6572021" }), h("path", { key: '3664a2121e9bbf427652fa17e81c7f5e3f34f422', d: "M58.5573208,23.2901554 L49.9431958,23.2901554 C48.0418625,23.2901554 46.4996125,24.8231295 46.4996125,26.7158964 L46.4996125,35.2841036 C46.4996125,37.1768705 48.0418625,38.7098446 49.9431958,38.7098446 L58.5573208,38.7098446 C60.4586542,38.7098446 61.9996125,37.1768705 61.9996125,35.2841036 L61.9996125,26.7158964 C61.9996125,24.8231295 60.4586542,23.2901554 58.5573208,23.2901554", fill: "currentColor" })))))));
2265
+ }
2266
+ };
2267
+ IconTable.style = DigiIconTableStyle0;
2268
+
665
2269
  const iconXCss = ".sc-digi-icon-x-h{--digi--icon--color:var(--digi--color--icon--primary);--digi--icon--width:initial;--digi--icon--height:auto;display:flex;min-height:1.4em;align-items:center}.sc-digi-icon-x-h svg.sc-digi-icon-x{color:var(--digi--icon--color);max-width:var(--digi--icon--width);max-height:var(--digi--icon--height);width:var(--digi--icon--width, auto);height:var(--digi--icon--height, auto)}";
666
2270
  const DigiIconXStyle0 = iconXCss;
667
2271
 
@@ -1286,49 +2890,6 @@ const Typography = class {
1286
2890
  };
1287
2891
  Typography.style = DigiTypographyStyle0;
1288
2892
 
1289
- const typographyHeadingJumboCss = ".sc-digi-typography-heading-jumbo-h{display:block}.sc-digi-typography-heading-jumbo-h .digi-typography-heading-jumbo.sc-digi-typography-heading-jumbo{font-size:var(--digi--typography--heading-jumbo--font-size--desktop);font-family:var(--digi--global--typography--font-family--default);color:var(--digi--color--text--primary);font-weight:var(--digi--typography--heading-jumbo--font-weight--desktop)}@media (min-width: 61.9375rem){.sc-digi-typography-heading-jumbo-h .digi-typography-heading-jumbo.sc-digi-typography-heading-jumbo{font-size:var(--digi--typography--heading-jumbo--font-size--desktop-large)}}.sc-digi-typography-heading-jumbo-h .digi-typography-heading-jumbo--secondary.sc-digi-typography-heading-jumbo{color:var(--digi--grayscale--0)}.sc-digi-typography-heading-jumbo-h .digi-typography-heading-jumbo.sc-digi-typography-heading-jumbo::after{content:\"\";width:11.875rem;height:0.4375rem;background:var(--digi--color--border--accent--primary);display:block;margin-top:var(--digi--padding--small)}@media (min-width: 61.9375rem){.sc-digi-typography-heading-jumbo-h .digi-typography-heading-jumbo.sc-digi-typography-heading-jumbo::after{width:13.75rem;margin-top:var(--digi--margin--h2-large);height:0.625rem}}.sc-digi-typography-heading-jumbo-h .digi-typography-heading-jumbo--secondary.sc-digi-typography-heading-jumbo::after{background:var(--digi--color--border--accent--secondary)}digi-typography .sc-digi-typography-heading-jumbo-h .digi-typography-heading-jumbo.sc-digi-typography-heading-jumbo{margin-bottom:var(--digi--margin--medium)}";
1290
- const DigiTypographyHeadingJumboStyle0 = typographyHeadingJumboCss;
1291
-
1292
- const TypographyHeadingJumbo = class {
1293
- constructor(hostRef) {
1294
- registerInstance(this, hostRef);
1295
- this.afText = '';
1296
- this.afVariation = undefined;
1297
- this.afLevel = TypographyHeadingJumboLevel.H1;
1298
- this.afLang = 'sv';
1299
- }
1300
- /**
1301
- * Lyssnar på om fokus sätts på custom-elementet och propagerar ner det till själva rubrik-elementet.
1302
- * @en Listens for when focus is set on the custom element and propagates it down to the actual heading element.
1303
- */
1304
- focusOnHeading() {
1305
- this.headingElement.focus();
1306
- }
1307
- get cssModifiers() {
1308
- return {
1309
- 'digi-typography-heading-jumbo--primary': this.afVariation === TypographyHeadingJumboVariation.PRIMARY,
1310
- 'digi-typography-heading-jumbo--secondary': this.afVariation === TypographyHeadingJumboVariation.SECONDARY
1311
- };
1312
- }
1313
- render() {
1314
- return (h(this.afLevel, { key: '3e7dd74258d680d423a0d3f0ebd7cdd4eaa312ff', ref: (el) => (this.headingElement = el), class: Object.assign({ 'digi-typography-heading-jumbo': true }, this.cssModifiers), lang: this.afLang, tabindex: -1 }, this.afText));
1315
- }
1316
- };
1317
- TypographyHeadingJumbo.style = DigiTypographyHeadingJumboStyle0;
1318
-
1319
- const typographyPreambleCss = ".sc-digi-typography-preamble-h .digi-typography-preamble.sc-digi-typography-preamble{font-family:var(--digi--global--typography--font-family--default);font-size:var(--digi--typography--preamble--font-size--mobile);font-weight:var(--digi--typography--preamble--font-weight--desktop);line-height:var(--digi--typography--preamble--line-height--mobile);color:var(--digi--color--text--primary);max-width:var(--digi--paragraph-width--medium)}@media (min-width: 61.9375rem){.sc-digi-typography-preamble-h .digi-typography-preamble.sc-digi-typography-preamble{font-size:var(--digi--typography--preamble--font-size--desktop);line-height:var(--digi--typography--preamble--line-height--desktop)}}";
1320
- const DigiTypographyPreambleStyle0 = typographyPreambleCss;
1321
-
1322
- const TypographyPreamble = class {
1323
- constructor(hostRef) {
1324
- registerInstance(this, hostRef);
1325
- }
1326
- render() {
1327
- return (h("p", { key: '0b6395ace6b7679213689fa37fd41c5e8c4f5b30', class: "digi-typography-preamble" }, h("slot", { key: 'cc20315940fae3c5fe81ff0d8fc76d545e3de817' })));
1328
- }
1329
- };
1330
- TypographyPreamble.style = DigiTypographyPreambleStyle0;
1331
-
1332
2893
  const utilBreakpointObserverCss = ".sc-digi-util-breakpoint-observer-h .digi-util-breakpoint-observer.sc-digi-util-breakpoint-observer{--SMALL:small;--MEDIUM:medium;--LARGE:large;--XLARGE:xlarge}.sc-digi-util-breakpoint-observer-h .digi-util-breakpoint-observer__observer.sc-digi-util-breakpoint-observer{--digi--util-breakpoint-observer--breakpoint:var(--SMALL);border:0;clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;pointer-events:none;transition:transform 0.01s;transform:rotate(0deg)}@media (min-width: 48rem){.sc-digi-util-breakpoint-observer-h .digi-util-breakpoint-observer__observer.sc-digi-util-breakpoint-observer{--digi--util-breakpoint-observer--breakpoint:var(--MEDIUM);transform:rotate(10deg)}}@media (min-width: 61.9375rem){.sc-digi-util-breakpoint-observer-h .digi-util-breakpoint-observer__observer.sc-digi-util-breakpoint-observer{--digi--util-breakpoint-observer--breakpoint:var(--LARGE);transform:rotate(20deg)}}@media (min-width: 75rem){.sc-digi-util-breakpoint-observer-h .digi-util-breakpoint-observer__observer.sc-digi-util-breakpoint-observer{--digi--util-breakpoint-observer--breakpoint:var(--XLARGE);transform:rotate(30deg)}}";
1333
2894
  const DigiUtilBreakpointObserverStyle0 = utilBreakpointObserverCss;
1334
2895
 
@@ -1510,4 +3071,4 @@ const UtilKeydownHandler = class {
1510
3071
  }
1511
3072
  };
1512
3073
 
1513
- export { Button as digi_button, Header as digi_header, NavigationAvatar as digi_header_avatar, HeaderNavigation as digi_header_navigation, HeaderNavigationItem as digi_header_navigation_item, HeaderNotification as digi_header_notification, IconBars as digi_icon_bars, IconBellFilled as digi_icon_bell_filled, IconMinus as digi_icon_minus, IconPlus as digi_icon_plus, IconX as digi_icon_x, LayoutBlock as digi_layout_block, LayoutContainer as digi_layout_container, MediaImage as digi_media_image, NavigationSidebarButton as digi_navigation_sidebar_button, NavigationVerticalMenu as digi_navigation_vertical_menu, NavigationVerticalMenuItem as digi_navigation_vertical_menu_item, TitleLogo as digi_title_logo, Typography as digi_typography, TypographyHeadingJumbo as digi_typography_heading_jumbo, TypographyPreamble as digi_typography_preamble, UtilBreakpointObserver as digi_util_breakpoint_observer, UtilIntersectionObserver as digi_util_intersection_observer, UtilKeydownHandler as digi_util_keydown_handler };
3074
+ export { barChart as digi_bar_chart, Button as digi_button, Header as digi_header, NavigationAvatar as digi_header_avatar, HeaderNavigation as digi_header_navigation, HeaderNavigationItem as digi_header_navigation_item, HeaderNotification as digi_header_notification, IconBars as digi_icon_bars, IconBellFilled as digi_icon_bell_filled, IconCaretDown as digi_icon_caret_down, IconCaretUp as digi_icon_caret_up, IconChart as digi_icon_chart, IconMinus as digi_icon_minus, IconPlus as digi_icon_plus, IconTable as digi_icon_table, IconX as digi_icon_x, LayoutBlock as digi_layout_block, LayoutContainer as digi_layout_container, MediaImage as digi_media_image, NavigationSidebarButton as digi_navigation_sidebar_button, NavigationVerticalMenu as digi_navigation_vertical_menu, NavigationVerticalMenuItem as digi_navigation_vertical_menu_item, TitleLogo as digi_title_logo, Typography as digi_typography, UtilBreakpointObserver as digi_util_breakpoint_observer, UtilIntersectionObserver as digi_util_intersection_observer, UtilKeydownHandler as digi_util_keydown_handler };