@servicetitan/anvil2-ext-charts 0.1.5 → 0.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @servicetitan/anvil2-ext-common
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1899](https://github.com/servicetitan/hammer/pull/1899) [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5) Thanks [@tounsoo](https://github.com/tounsoo)! - 3.0 Pre-release.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [[`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5), [`6ea319a`](https://github.com/servicetitan/hammer/commit/6ea319a282209312485756bfd37f1e2102f8c7e5)]:
12
+ - @servicetitan/hammer-token@3.0.0
13
+
14
+ ## 0.1.6
15
+
16
+ ### Patch Changes
17
+
18
+ - [#2081](https://github.com/servicetitan/hammer/pull/2081) [`4cb0e5a`](https://github.com/servicetitan/hammer/commit/4cb0e5a9aa4ea300f9021b4b79d6a8885d751d61) Thanks [@rgdelato](https://github.com/rgdelato)! - [Charts] Bugfix for Monochrome stacked bar chart theme color order
19
+
3
20
  ## 0.1.5
4
21
 
5
22
  ### Patch Changes
@@ -0,0 +1,359 @@
1
+ import { core } from '@servicetitan/hammer-token';
2
+ import * as am5 from '@amcharts/amcharts5';
3
+ import * as am5xy from '@amcharts/amcharts5/xy';
4
+
5
+ const initAmCharts = (secret) => {
6
+ am5.addLicense(`AM5CH2${parseInt(secret, secret.length ^ 30)}`);
7
+ };
8
+
9
+ initAmCharts("5C176KN48");
10
+ const createTheme = ({
11
+ fills: fillValues,
12
+ strokes: strokeValues,
13
+ fillPatterns: fillPatternTypes,
14
+ colorOrder
15
+ }) => {
16
+ class ThemeCustom extends am5.Theme {
17
+ constructor(root, isReal) {
18
+ super(root, isReal);
19
+ }
20
+ setupDefaultRules() {
21
+ super.setupDefaultRules();
22
+ const fills = fillValues.map((fill) => am5.color(fill));
23
+ const strokes = strokeValues.map(
24
+ (stroke, i2) => stroke == null || stroke === "transparent" ? am5.color(fillValues[i2]) : am5.color(stroke)
25
+ );
26
+ const fillPatterns = fillPatternTypes.map(
27
+ (fillPatternType, i2) => fillPatternType === "solid" ? void 0 : am5.LinePattern.new(this._root, {
28
+ rotation: -45,
29
+ color: am5.color(strokeValues[i2] ?? fillValues[i2]),
30
+ width: 99,
31
+ height: 99
32
+ })
33
+ );
34
+ this.rule("ColorSet").setAll({
35
+ colors: [...fills],
36
+ // this mutates the array if we don't clone it o.o
37
+ reuse: true
38
+ });
39
+ const tempEl = document.createElement("div");
40
+ tempEl.style.color = "var(--foreground-color, #141414)";
41
+ this._root.dom.appendChild(tempEl);
42
+ const computedColor = getComputedStyle(tempEl).color;
43
+ tempEl.remove();
44
+ const rgbMatch = computedColor.match(/\d+/g);
45
+ const foregroundColor = rgbMatch && rgbMatch.length >= 3 ? "#" + rgbMatch.slice(0, 3).map((n) => parseInt(n).toString(16).padStart(2, "0")).join("") : "#141414";
46
+ this.rule("Label").setAll({
47
+ fontFamily: "Nunito Sans",
48
+ fill: am5.color(foregroundColor)
49
+ });
50
+ this.rule("Grid").setAll({
51
+ stroke: am5.color(foregroundColor),
52
+ strokeOpacity: 0.15
53
+ });
54
+ this.rule("Legend").setAll({
55
+ clickTarget: "none"
56
+ });
57
+ const createTooltip = () => {
58
+ const tooltip = am5.Tooltip.new(this._root, {
59
+ getFillFromSprite: false,
60
+ autoTextColor: false
61
+ });
62
+ tooltip.get("background")?.setAll({
63
+ fill: am5.color("#141414"),
64
+ fillOpacity: 1,
65
+ strokeOpacity: 0
66
+ });
67
+ tooltip.label.setAll({
68
+ fill: am5.color("#FFFFFF"),
69
+ fontWeight: "600"
70
+ });
71
+ return tooltip;
72
+ };
73
+ this.rule("PieChart").setup = (target) => {
74
+ target.set("tooltip", createTooltip());
75
+ };
76
+ this.rule("PieSeries").setup = (target) => {
77
+ target.set("alignLabels", false);
78
+ target.ticks.template.set("visible", false);
79
+ };
80
+ this.rule("RadialLabel", ["pie", "series"]).setup = (target) => {
81
+ target.set("fill", am5.color("#141414"));
82
+ target.set("fontWeight", "600");
83
+ target.set("baseRadius", am5.percent(65));
84
+ target.set("x", am5.p50);
85
+ target.set("centerX", am5.p50);
86
+ target.set("y", am5.p50);
87
+ target.set("centerY", am5.p50);
88
+ target.set("inside", true);
89
+ target.set(
90
+ "background",
91
+ am5.RoundedRectangle.new(this._root, {
92
+ fill: am5.color("#FFFFFF"),
93
+ fillOpacity: 0.8,
94
+ cornerRadiusTL: 100,
95
+ cornerRadiusTR: 100,
96
+ cornerRadiusBL: 100,
97
+ cornerRadiusBR: 100
98
+ })
99
+ );
100
+ };
101
+ let i = 0;
102
+ this.rule("Slice").setup = (target) => {
103
+ target.set("shiftRadius", 4);
104
+ target.set("stroke", strokes[i] ?? fills[i]);
105
+ target.set("fillPattern", fillPatterns[i]);
106
+ target.set("cursorOverStyle", "pointer");
107
+ i += 1;
108
+ if (i == fills.length) i = 0;
109
+ };
110
+ this.rule("Slice").events.on("pointerover", ({ target: slice }) => {
111
+ const parent = slice?.parent;
112
+ parent?.eachChildren((child) => {
113
+ if (child !== slice && child instanceof am5.Slice) {
114
+ child.set("opacity", 0.2);
115
+ }
116
+ });
117
+ });
118
+ this.rule("Slice").events.on("pointerout", ({ target: slice }) => {
119
+ const parent = slice?.parent;
120
+ parent?.eachChildren((child) => {
121
+ if (child !== slice && child instanceof am5.Slice) {
122
+ child.set("opacity", 1);
123
+ }
124
+ });
125
+ });
126
+ const getReorderedColorIndex = colorOrder ? (idx) => colorOrder[idx % colorOrder.length] : void 0;
127
+ const getSeriesReorderIndex = getReorderedColorIndex ? (target) => {
128
+ const chart = target.chart;
129
+ if (!chart) return void 0;
130
+ const allColumnSeries = chart.series.values.filter(
131
+ (s) => s instanceof am5xy.ColumnSeries
132
+ );
133
+ if (allColumnSeries.length < 4) return void 0;
134
+ const idx = allColumnSeries.indexOf(target);
135
+ return idx >= 0 ? getReorderedColorIndex(idx) : void 0;
136
+ } : void 0;
137
+ if (colorOrder && getReorderedColorIndex && getSeriesReorderIndex) {
138
+ const getSliceReorderIndex = (target) => {
139
+ const series = target.dataItem?.component;
140
+ if (!series || series.dataItems.length < 4) return void 0;
141
+ const idx = target.dataItem ? series.dataItems.indexOf(target.dataItem) : -1;
142
+ return idx >= 0 ? getReorderedColorIndex(idx) : void 0;
143
+ };
144
+ this.rule("Slice").adapters.add("fill", (fill, target) => {
145
+ const ci = getSliceReorderIndex(target);
146
+ return ci != null ? fills[ci] : fill;
147
+ });
148
+ this.rule("Slice").adapters.add("stroke", (stroke, target) => {
149
+ const ci = getSliceReorderIndex(target);
150
+ return ci != null ? strokes[ci] ?? fills[ci] : stroke;
151
+ });
152
+ this.rule("Slice").adapters.add("fillPattern", (pattern, target) => {
153
+ const ci = getSliceReorderIndex(target);
154
+ return ci != null ? fillPatterns[ci] : pattern;
155
+ });
156
+ this.rule("ColumnSeries").adapters.add("fill", (fill, target) => {
157
+ const ci = getSeriesReorderIndex(target);
158
+ return ci != null ? fills[ci] : fill;
159
+ });
160
+ this.rule("ColumnSeries").adapters.add("stroke", (stroke, target) => {
161
+ const ci = getSeriesReorderIndex(target);
162
+ return ci != null ? strokes[ci] ?? fills[ci] : stroke;
163
+ });
164
+ this.rule("ColumnSeries").adapters.add(
165
+ "fillPattern",
166
+ (pattern, target) => {
167
+ const ci = getSeriesReorderIndex(target);
168
+ return ci != null ? fillPatterns[ci] : pattern;
169
+ }
170
+ );
171
+ }
172
+ this.rule("AxisRendererX").setup = (target) => {
173
+ target.setAll({
174
+ stroke: am5.color(foregroundColor)
175
+ });
176
+ target.labels.template.setAll({
177
+ centerY: am5.p100,
178
+ centerX: am5.p50,
179
+ paddingTop: 16,
180
+ paddingBottom: 16
181
+ });
182
+ };
183
+ this.rule("AxisRendererY").setup = (target) => {
184
+ target.setAll({
185
+ stroke: am5.color(foregroundColor)
186
+ });
187
+ target.labels.template.setAll({
188
+ centerY: am5.p50,
189
+ centerX: am5.p100,
190
+ paddingLeft: 16,
191
+ paddingRight: 16
192
+ });
193
+ };
194
+ let j = 0;
195
+ this.rule("ColumnSeries").setup = (target) => {
196
+ target.set("fill", fills[j]);
197
+ target.set("stroke", strokes[j] ?? fills[j]);
198
+ target.set("fillPattern", fillPatterns[j]);
199
+ if (getSeriesReorderIndex) {
200
+ target.columns.template.adapters.add("fill", (fill) => {
201
+ const ci = getSeriesReorderIndex(target);
202
+ return ci != null ? fills[ci] : fill;
203
+ });
204
+ target.columns.template.adapters.add("stroke", (stroke) => {
205
+ const ci = getSeriesReorderIndex(target);
206
+ return ci != null ? strokes[ci] ?? fills[ci] : stroke;
207
+ });
208
+ target.columns.template.adapters.add("fillPattern", (pattern) => {
209
+ const ci = getSeriesReorderIndex(target);
210
+ return ci != null ? fillPatterns[ci] : pattern;
211
+ });
212
+ }
213
+ const isHorizontal = target.get("categoryYField") || target.get("valueXField");
214
+ if (isHorizontal) {
215
+ target.columns.template.setAll({
216
+ cursorOverStyle: "pointer",
217
+ maxHeight: 32,
218
+ cornerRadiusTR: 4,
219
+ cornerRadiusBR: 4
220
+ });
221
+ } else {
222
+ target.columns.template.setAll({
223
+ cursorOverStyle: "pointer",
224
+ maxWidth: 32,
225
+ cornerRadiusTL: 4,
226
+ cornerRadiusTR: 4
227
+ });
228
+ }
229
+ if (target.get("stacked")) {
230
+ const parent = target?.parent;
231
+ parent?.eachChildren((child) => {
232
+ if (target !== child && child instanceof am5xy.ColumnSeries) {
233
+ child.columns.template.setAll({
234
+ cornerRadiusTL: 0,
235
+ cornerRadiusTR: 0,
236
+ cornerRadiusBR: 0
237
+ });
238
+ }
239
+ });
240
+ if (j !== 0) {
241
+ let timeout;
242
+ target.columns.template.onPrivate("height", () => {
243
+ if (timeout) clearTimeout(timeout);
244
+ timeout = setTimeout(function() {
245
+ target.columns.each((column) => {
246
+ const height = column.getPrivate("height");
247
+ if (height && height >= 5) {
248
+ column.set("maxHeight", height - 4);
249
+ } else {
250
+ column.set("maxHeight", void 0);
251
+ }
252
+ });
253
+ }, 50);
254
+ });
255
+ }
256
+ }
257
+ target.set("tooltip", createTooltip());
258
+ target.columns.template.events.on(
259
+ "pointerover",
260
+ ({ target: column }) => {
261
+ const series = column.dataItem?.component;
262
+ const chart = series?.chart;
263
+ if (!chart) return;
264
+ chart.series.each((s) => {
265
+ if (s instanceof am5xy.ColumnSeries) {
266
+ s.columns.each((col) => {
267
+ if (col !== column) {
268
+ col.set("opacity", 0.2);
269
+ }
270
+ });
271
+ }
272
+ });
273
+ }
274
+ );
275
+ target.columns.template.events.on(
276
+ "pointerout",
277
+ ({ target: column }) => {
278
+ const series = column.dataItem?.component;
279
+ const chart = series?.chart;
280
+ if (!chart) return;
281
+ chart.series.each((s) => {
282
+ if (s instanceof am5xy.ColumnSeries) {
283
+ s.columns.each((col) => {
284
+ if (col !== column) {
285
+ col.set("opacity", 1);
286
+ }
287
+ });
288
+ }
289
+ });
290
+ }
291
+ );
292
+ j += 1;
293
+ if (j == fills.length) j = 0;
294
+ };
295
+ }
296
+ }
297
+ return ThemeCustom;
298
+ };
299
+
300
+ const allMonochromeChartTokens = Object.keys(core.semantic).filter(
301
+ (key) => key.indexOf("ChartMonochrome") !== -1
302
+ );
303
+ const colors$2 = allMonochromeChartTokens.filter((key) => key.indexOf("Color") !== -1).map((key) => core.semantic[key].value);
304
+ const strokes$2 = allMonochromeChartTokens.filter((key) => key.indexOf("StrokeColor") !== -1).map((key) => core.semantic[key].value);
305
+ const patterns$2 = allMonochromeChartTokens.filter((key) => key.indexOf("Pattern") !== -1).map((key) => core.semantic[key].value);
306
+ const ThemeMonochrome = createTheme({
307
+ fills: colors$2,
308
+ strokes: strokes$2,
309
+ fillPatterns: patterns$2,
310
+ colorOrder: [3, 0, 1, 2]
311
+ });
312
+
313
+ const allCategoricalChartTokens = Object.keys(core.semantic).filter(
314
+ (key) => key.indexOf("ChartCategorical") !== -1
315
+ );
316
+ const colors$1 = allCategoricalChartTokens.filter((key) => key.indexOf("Color") !== -1).map((key) => core.semantic[key].value);
317
+ const strokes$1 = allCategoricalChartTokens.filter((key) => key.indexOf("StrokeColor") !== -1).map((key) => core.semantic[key].value);
318
+ const patterns$1 = allCategoricalChartTokens.filter((key) => key.indexOf("Pattern") !== -1).map((key) => core.semantic[key].value);
319
+ const ThemeCategorical = createTheme({
320
+ fills: colors$1,
321
+ strokes: strokes$1,
322
+ fillPatterns: patterns$1
323
+ });
324
+
325
+ const allSemanticChartTokens = Object.keys(core.semantic).filter(
326
+ (key) => key.indexOf("ChartStatus") !== -1
327
+ );
328
+ allSemanticChartTokens.sort((a, b) => {
329
+ if (a.indexOf("Success") !== -1) {
330
+ return -1;
331
+ }
332
+ if (b.indexOf("Success") !== -1) {
333
+ return 1;
334
+ }
335
+ if (a.indexOf("Neutral") !== -1) {
336
+ return -1;
337
+ }
338
+ if (b.indexOf("Neutral") !== -1) {
339
+ return 1;
340
+ }
341
+ if (a.indexOf("Warning") !== -1) {
342
+ return -1;
343
+ }
344
+ if (b.indexOf("Warning") !== -1) {
345
+ return 1;
346
+ }
347
+ return 0;
348
+ });
349
+ const colors = allSemanticChartTokens.filter((key) => key.indexOf("Color") !== -1).map((key) => core.semantic[key].value);
350
+ const strokes = allSemanticChartTokens.filter((key) => key.indexOf("StrokeColor") !== -1).map((key) => core.semantic[key].value);
351
+ const patterns = allSemanticChartTokens.filter((key) => key.indexOf("Pattern") !== -1).map((key) => core.semantic[key].value);
352
+ const ThemeSemantic = createTheme({
353
+ fills: colors,
354
+ strokes,
355
+ fillPatterns: patterns
356
+ });
357
+
358
+ export { ThemeMonochrome as T, ThemeCategorical as a, ThemeSemantic as b };
359
+ //# sourceMappingURL=ThemeSemantic-CgWUtNzV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeSemantic-CgWUtNzV.js","sources":["../src/am5/themes/internal/initAmCharts.ts","../src/am5/themes/internal/createTheme.ts","../src/am5/themes/ThemeMonochrome.ts","../src/am5/themes/ThemeCategorical.ts","../src/am5/themes/ThemeSemantic.ts"],"sourcesContent":["import * as am5 from \"@amcharts/amcharts5\";\n\nexport const initAmCharts = (secret: string) => {\n am5.addLicense(`AM5CH2${parseInt(secret, secret.length ^ 0x1e)}`); // just not plain text (not secure)\n};\n","import * as am5 from \"@amcharts/amcharts5\";\nimport * as am5xy from \"@amcharts/amcharts5/xy\";\nimport { initAmCharts } from \"./initAmCharts\";\n\ninitAmCharts(\"5C176KN48\");\n\nexport const createTheme = ({\n fills: fillValues,\n strokes: strokeValues,\n fillPatterns: fillPatternTypes,\n colorOrder,\n}: {\n fills: string[];\n strokes: (string | undefined)[];\n fillPatterns: (string | undefined)[];\n colorOrder?: number[];\n}) => {\n class ThemeCustom extends am5.Theme {\n constructor(root: am5.Root, isReal: boolean) {\n super(root, isReal);\n }\n\n setupDefaultRules() {\n super.setupDefaultRules();\n\n const fills = fillValues.map((fill) => am5.color(fill));\n\n const strokes = strokeValues.map((stroke, i) =>\n stroke == null || stroke === \"transparent\"\n ? am5.color(fillValues[i])\n : am5.color(stroke),\n );\n\n const fillPatterns = fillPatternTypes.map((fillPatternType, i) =>\n fillPatternType === \"solid\"\n ? undefined\n : am5.LinePattern.new(this._root, {\n rotation: -45,\n color: am5.color(strokeValues[i] ?? fillValues[i]),\n width: 99,\n height: 99,\n }),\n );\n\n this.rule(\"ColorSet\").setAll({\n colors: [...fills], // this mutates the array if we don't clone it o.o\n reuse: true,\n });\n\n // Resolve foreground color from CSS custom property.\n // CSS vars may contain functions like light-dark() that am5.color() can't\n // parse directly, so we resolve through a temp element's computed style.\n const tempEl = document.createElement(\"div\");\n tempEl.style.color = \"var(--foreground-color, #141414)\";\n this._root.dom.appendChild(tempEl);\n const computedColor = getComputedStyle(tempEl).color;\n tempEl.remove();\n\n const rgbMatch = computedColor.match(/\\d+/g);\n const foregroundColor =\n rgbMatch && rgbMatch.length >= 3\n ? \"#\" +\n rgbMatch\n .slice(0, 3)\n .map((n) => parseInt(n).toString(16).padStart(2, \"0\"))\n .join(\"\")\n : \"#141414\";\n\n this.rule(\"Label\").setAll({\n fontFamily: \"Nunito Sans\",\n fill: am5.color(foregroundColor),\n });\n\n this.rule(\"Grid\").setAll({\n stroke: am5.color(foregroundColor),\n strokeOpacity: 0.15,\n });\n\n this.rule(\"Legend\").setAll({\n clickTarget: \"none\",\n });\n\n const createTooltip = () => {\n const tooltip = am5.Tooltip.new(this._root, {\n getFillFromSprite: false,\n autoTextColor: false,\n });\n\n tooltip.get(\"background\")?.setAll({\n fill: am5.color(\"#141414\"),\n fillOpacity: 1,\n strokeOpacity: 0,\n });\n\n tooltip.label.setAll({\n fill: am5.color(\"#FFFFFF\"),\n fontWeight: \"600\",\n });\n\n return tooltip;\n };\n\n /**\n * Pie charts\n */\n\n this.rule(\"PieChart\").setup = (target) => {\n target.set(\"tooltip\", createTooltip());\n };\n\n this.rule(\"PieSeries\").setup = (target) => {\n target.set(\"alignLabels\", false);\n target.ticks.template.set(\"visible\", false);\n };\n\n this.rule(\"RadialLabel\", [\"pie\", \"series\"]).setup = (target) => {\n target.set(\"fill\", am5.color(\"#141414\"));\n target.set(\"fontWeight\", \"600\");\n target.set(\"baseRadius\", am5.percent(65));\n target.set(\"x\", am5.p50);\n target.set(\"centerX\", am5.p50);\n target.set(\"y\", am5.p50);\n target.set(\"centerY\", am5.p50);\n target.set(\"inside\", true);\n target.set(\n \"background\",\n am5.RoundedRectangle.new(this._root, {\n fill: am5.color(\"#FFFFFF\"),\n fillOpacity: 0.8,\n cornerRadiusTL: 100,\n cornerRadiusTR: 100,\n cornerRadiusBL: 100,\n cornerRadiusBR: 100,\n }),\n );\n };\n\n let i = 0;\n this.rule(\"Slice\").setup = (target) => {\n target.set(\"shiftRadius\", 4);\n target.set(\"stroke\", strokes[i] ?? fills[i]);\n target.set(\"fillPattern\", fillPatterns[i]);\n target.set(\"cursorOverStyle\", \"pointer\");\n\n i += 1;\n if (i == fills.length) i = 0;\n };\n\n // pie slices should dim all other slices on hover\n this.rule(\"Slice\").events.on(\"pointerover\", ({ target: slice }) => {\n const parent = slice?.parent;\n parent?.eachChildren((child) => {\n if (child !== slice && child instanceof am5.Slice) {\n child.set(\"opacity\", 0.2);\n }\n });\n });\n\n this.rule(\"Slice\").events.on(\"pointerout\", ({ target: slice }) => {\n const parent = slice?.parent;\n parent?.eachChildren((child) => {\n if (child !== slice && child instanceof am5.Slice) {\n child.set(\"opacity\", 1);\n }\n });\n });\n\n /**\n * Reorder colors when 4 or more categories are used.\n * Uses adapters instead of events to avoid timing issues with\n * datavalidated firing before slices/columns exist.\n * For indices beyond the colorOrder length, cycles through the order.\n */\n\n const getReorderedColorIndex = colorOrder\n ? (idx: number): number => colorOrder[idx % colorOrder.length]\n : undefined;\n\n const getSeriesReorderIndex = getReorderedColorIndex\n ? (target: am5xy.ColumnSeries): number | undefined => {\n const chart = target.chart;\n if (!chart) return undefined;\n const allColumnSeries = chart.series.values.filter(\n (s) => s instanceof am5xy.ColumnSeries,\n );\n if (allColumnSeries.length < 4) return undefined;\n const idx = allColumnSeries.indexOf(target);\n return idx >= 0 ? getReorderedColorIndex(idx) : undefined;\n }\n : undefined;\n\n if (colorOrder && getReorderedColorIndex && getSeriesReorderIndex) {\n const getSliceReorderIndex = (\n target: am5.Sprite,\n ): number | undefined => {\n const series = target.dataItem?.component;\n if (!series || series.dataItems.length < 4) return undefined;\n const idx = target.dataItem\n ? series.dataItems.indexOf(target.dataItem)\n : -1;\n return idx >= 0 ? getReorderedColorIndex(idx) : undefined;\n };\n\n this.rule(\"Slice\").adapters.add(\"fill\", (fill, target) => {\n const ci = getSliceReorderIndex(target);\n return ci != null ? fills[ci] : fill;\n });\n\n this.rule(\"Slice\").adapters.add(\"stroke\", (stroke, target) => {\n const ci = getSliceReorderIndex(target);\n return ci != null ? (strokes[ci] ?? fills[ci]) : stroke;\n });\n\n this.rule(\"Slice\").adapters.add(\"fillPattern\", (pattern, target) => {\n const ci = getSliceReorderIndex(target);\n return ci != null ? fillPatterns[ci] : pattern;\n });\n\n this.rule(\"ColumnSeries\").adapters.add(\"fill\", (fill, target) => {\n const ci = getSeriesReorderIndex(target);\n return ci != null ? fills[ci] : fill;\n });\n\n this.rule(\"ColumnSeries\").adapters.add(\"stroke\", (stroke, target) => {\n const ci = getSeriesReorderIndex(target);\n return ci != null ? (strokes[ci] ?? fills[ci]) : stroke;\n });\n\n this.rule(\"ColumnSeries\").adapters.add(\n \"fillPattern\",\n (pattern, target) => {\n const ci = getSeriesReorderIndex(target);\n return ci != null ? fillPatterns[ci] : pattern;\n },\n );\n }\n\n /**\n * Bar charts\n */\n\n this.rule(\"AxisRendererX\").setup = (target) => {\n target.setAll({\n stroke: am5.color(foregroundColor),\n });\n target.labels.template.setAll({\n centerY: am5.p100,\n centerX: am5.p50,\n paddingTop: 16,\n paddingBottom: 16,\n });\n };\n\n this.rule(\"AxisRendererY\").setup = (target) => {\n target.setAll({\n stroke: am5.color(foregroundColor),\n });\n target.labels.template.setAll({\n centerY: am5.p50,\n centerX: am5.p100,\n paddingLeft: 16,\n paddingRight: 16,\n });\n };\n\n let j = 0;\n this.rule(\"ColumnSeries\").setup = (target) => {\n target.set(\"fill\", fills[j]);\n target.set(\"stroke\", strokes[j] ?? fills[j]);\n target.set(\"fillPattern\", fillPatterns[j]);\n\n if (getSeriesReorderIndex) {\n target.columns.template.adapters.add(\"fill\", (fill) => {\n const ci = getSeriesReorderIndex(target);\n return ci != null ? fills[ci] : fill;\n });\n target.columns.template.adapters.add(\"stroke\", (stroke) => {\n const ci = getSeriesReorderIndex(target);\n return ci != null ? (strokes[ci] ?? fills[ci]) : stroke;\n });\n target.columns.template.adapters.add(\"fillPattern\", (pattern) => {\n const ci = getSeriesReorderIndex(target);\n return ci != null ? fillPatterns[ci] : pattern;\n });\n }\n\n const isHorizontal =\n target.get(\"categoryYField\") || target.get(\"valueXField\");\n\n if (isHorizontal) {\n target.columns.template.setAll({\n cursorOverStyle: \"pointer\",\n maxHeight: 32,\n cornerRadiusTR: 4,\n cornerRadiusBR: 4,\n });\n } else {\n target.columns.template.setAll({\n cursorOverStyle: \"pointer\",\n maxWidth: 32,\n cornerRadiusTL: 4,\n cornerRadiusTR: 4,\n });\n }\n\n if (target.get(\"stacked\")) {\n // Only round the corners of the last series when stacked\n const parent = target?.parent;\n parent?.eachChildren((child) => {\n if (target !== child && child instanceof am5xy.ColumnSeries) {\n child.columns.template.setAll({\n cornerRadiusTL: 0,\n cornerRadiusTR: 0,\n cornerRadiusBR: 0,\n });\n }\n });\n\n // TODO: Figure out a better way to add space between the stacked bars\n if (j !== 0) {\n let timeout: ReturnType<typeof setTimeout>;\n target.columns.template.onPrivate(\"height\", () => {\n if (timeout) clearTimeout(timeout);\n\n timeout = setTimeout(function () {\n target.columns.each((column) => {\n const height = column.getPrivate(\"height\");\n if (height && height >= 5) {\n column.set(\"maxHeight\", height - 4);\n } else {\n column.set(\"maxHeight\", undefined);\n }\n });\n }, 50);\n });\n }\n }\n\n target.set(\"tooltip\", createTooltip());\n\n // bar columns should dim all other columns across all series on hover\n target.columns.template.events.on(\n \"pointerover\",\n ({ target: column }) => {\n const series = column.dataItem?.component as\n | am5xy.ColumnSeries\n | undefined;\n const chart = series?.chart;\n if (!chart) return;\n\n chart.series.each((s) => {\n if (s instanceof am5xy.ColumnSeries) {\n s.columns.each((col) => {\n if (col !== column) {\n col.set(\"opacity\", 0.2);\n }\n });\n }\n });\n },\n );\n\n target.columns.template.events.on(\n \"pointerout\",\n ({ target: column }) => {\n const series = column.dataItem?.component as\n | am5xy.ColumnSeries\n | undefined;\n const chart = series?.chart;\n if (!chart) return;\n\n chart.series.each((s) => {\n if (s instanceof am5xy.ColumnSeries) {\n s.columns.each((col) => {\n if (col !== column) {\n col.set(\"opacity\", 1);\n }\n });\n }\n });\n },\n );\n\n j += 1;\n if (j == fills.length) j = 0;\n };\n }\n }\n\n return ThemeCustom as typeof am5.Theme;\n};\n","import { core } from \"@servicetitan/hammer-token\";\nimport { createTheme } from \"./internal/createTheme\";\n\nconst allMonochromeChartTokens = Object.keys(core.semantic).filter(\n (key) => key.indexOf(\"ChartMonochrome\") !== -1,\n) as (keyof typeof core.semantic)[];\n\nconst colors = allMonochromeChartTokens\n .filter((key) => key.indexOf(\"Color\") !== -1)\n .map((key) => core.semantic[key].value);\n\nconst strokes = allMonochromeChartTokens\n .filter((key) => key.indexOf(\"StrokeColor\") !== -1)\n .map((key) => core.semantic[key].value);\n\nconst patterns = allMonochromeChartTokens\n .filter((key) => key.indexOf(\"Pattern\") !== -1)\n .map((key) => core.semantic[key].value);\n\nconst ThemeMonochrome = createTheme({\n fills: colors,\n strokes,\n fillPatterns: patterns,\n colorOrder: [3, 0, 1, 2],\n});\n\nexport { ThemeMonochrome };\n","import { core } from \"@servicetitan/hammer-token\";\nimport { createTheme } from \"./internal/createTheme\";\n\nconst allCategoricalChartTokens = Object.keys(core.semantic).filter(\n (key) => key.indexOf(\"ChartCategorical\") !== -1,\n) as (keyof typeof core.semantic)[];\n\nconst colors = allCategoricalChartTokens\n .filter((key) => key.indexOf(\"Color\") !== -1)\n .map((key) => core.semantic[key].value);\n\nconst strokes = allCategoricalChartTokens\n .filter((key) => key.indexOf(\"StrokeColor\") !== -1)\n .map((key) => core.semantic[key].value);\n\nconst patterns = allCategoricalChartTokens\n .filter((key) => key.indexOf(\"Pattern\") !== -1)\n .map((key) => core.semantic[key].value);\n\nconst ThemeCategorical = createTheme({\n fills: colors,\n strokes,\n fillPatterns: patterns,\n});\n\nexport { ThemeCategorical };\n","import { core } from \"@servicetitan/hammer-token\";\nimport { createTheme } from \"./internal/createTheme\";\n\nconst allSemanticChartTokens = Object.keys(core.semantic).filter(\n (key) => key.indexOf(\"ChartStatus\") !== -1,\n) as (keyof typeof core.semantic)[];\n\n// \"d\" is alphabetically first which was causing \"danger\" to be first in order\n// instead of last\nallSemanticChartTokens.sort((a, b) => {\n if (a.indexOf(\"Success\") !== -1) {\n return -1;\n }\n if (b.indexOf(\"Success\") !== -1) {\n return 1;\n }\n if (a.indexOf(\"Neutral\") !== -1) {\n return -1;\n }\n if (b.indexOf(\"Neutral\") !== -1) {\n return 1;\n }\n if (a.indexOf(\"Warning\") !== -1) {\n return -1;\n }\n if (b.indexOf(\"Warning\") !== -1) {\n return 1;\n }\n return 0;\n});\n\nconst colors = allSemanticChartTokens\n .filter((key) => key.indexOf(\"Color\") !== -1)\n .map((key) => core.semantic[key].value);\n\nconst strokes = allSemanticChartTokens\n .filter((key) => key.indexOf(\"StrokeColor\") !== -1)\n .map((key) => core.semantic[key].value);\n\nconst patterns = allSemanticChartTokens\n .filter((key) => key.indexOf(\"Pattern\") !== -1)\n .map((key) => core.semantic[key].value);\n\nconst ThemeSemantic = createTheme({\n fills: colors,\n strokes,\n fillPatterns: patterns,\n});\n\nexport { ThemeSemantic };\n"],"names":["i","colors","strokes","patterns"],"mappings":"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"}
package/dist/am5.js CHANGED
@@ -1,2 +1,2 @@
1
- export { a as ThemeCategorical, T as ThemeMonochrome, b as ThemeSemantic } from './ThemeSemantic-CaFj4ckO.js';
1
+ export { a as ThemeCategorical, T as ThemeMonochrome, b as ThemeSemantic } from './ThemeSemantic-CgWUtNzV.js';
2
2
  //# sourceMappingURL=am5.js.map
package/dist/themes.js CHANGED
@@ -1,2 +1,2 @@
1
- export { a as ThemeCategorical, T as ThemeMonochrome, b as ThemeSemantic } from './ThemeSemantic-CaFj4ckO.js';
1
+ export { a as ThemeCategorical, T as ThemeMonochrome, b as ThemeSemantic } from './ThemeSemantic-CgWUtNzV.js';
2
2
  //# sourceMappingURL=themes.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/anvil2-ext-charts",
3
- "version": "0.1.5",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.js",
@@ -35,7 +35,7 @@
35
35
  "tabbable": "^6.2.0",
36
36
  "tinycolor2": "^1.6.0",
37
37
  "uuid": "^10.0.0",
38
- "@servicetitan/hammer-token": "2.5.1"
38
+ "@servicetitan/hammer-token": "3.0.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "@amcharts/amcharts5": "^5",
@@ -46,11 +46,11 @@
46
46
  },
47
47
  "devDependencies": {
48
48
  "@chromatic-com/storybook": "^5.0.1",
49
- "@storybook/addon-a11y": "10.2.9",
50
- "@storybook/addon-docs": "10.2.9",
51
- "@storybook/addon-links": "10.2.9",
52
- "@storybook/addon-vitest": "10.2.9",
53
- "@storybook/react-vite": "10.2.9",
49
+ "@storybook/addon-a11y": "10.3.3",
50
+ "@storybook/addon-docs": "10.3.3",
51
+ "@storybook/addon-links": "10.3.3",
52
+ "@storybook/addon-vitest": "10.3.3",
53
+ "@storybook/react-vite": "10.3.3",
54
54
  "@testing-library/jest-dom": "^5.17.0",
55
55
  "@testing-library/react": "^16.1.0",
56
56
  "@testing-library/user-event": "^14.5.2",
@@ -78,14 +78,14 @@
78
78
  "remark-parse": "^11.0.0",
79
79
  "remark-stringify": "^11.0.0",
80
80
  "sass": "1.87.0",
81
- "storybook": "10.2.9",
81
+ "storybook": "10.3.3",
82
82
  "svgo": "^3.3.2",
83
83
  "typescript": "~5.7.2",
84
84
  "unified": "^11.0.5",
85
- "vite": "6.4.1",
85
+ "vite": "6.4.2",
86
86
  "vitest": "^3.2.4",
87
87
  "vitest-axe": "^0.1.0",
88
- "@servicetitan/anvil2": "2.3.0"
88
+ "@servicetitan/anvil2": "3.0.0"
89
89
  },
90
90
  "scripts": {
91
91
  "dev": "vite",