@servicetitan/anvil2-ext-charts 0.1.6 → 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,16 @@
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
+
3
14
  ## 0.1.6
4
15
 
5
16
  ### Patch Changes
@@ -298,10 +298,10 @@ const createTheme = ({
298
298
  };
299
299
 
300
300
  const allMonochromeChartTokens = Object.keys(core.semantic).filter(
301
- (key) => key.indexOf("ChartsMonochrome") !== -1
301
+ (key) => key.indexOf("ChartMonochrome") !== -1
302
302
  );
303
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("Stroke") !== -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
305
  const patterns$2 = allMonochromeChartTokens.filter((key) => key.indexOf("Pattern") !== -1).map((key) => core.semantic[key].value);
306
306
  const ThemeMonochrome = createTheme({
307
307
  fills: colors$2,
@@ -311,10 +311,10 @@ const ThemeMonochrome = createTheme({
311
311
  });
312
312
 
313
313
  const allCategoricalChartTokens = Object.keys(core.semantic).filter(
314
- (key) => key.indexOf("ChartsCategorical") !== -1
314
+ (key) => key.indexOf("ChartCategorical") !== -1
315
315
  );
316
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("Stroke") !== -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
318
  const patterns$1 = allCategoricalChartTokens.filter((key) => key.indexOf("Pattern") !== -1).map((key) => core.semantic[key].value);
319
319
  const ThemeCategorical = createTheme({
320
320
  fills: colors$1,
@@ -323,7 +323,7 @@ const ThemeCategorical = createTheme({
323
323
  });
324
324
 
325
325
  const allSemanticChartTokens = Object.keys(core.semantic).filter(
326
- (key) => key.indexOf("ChartsStatus") !== -1
326
+ (key) => key.indexOf("ChartStatus") !== -1
327
327
  );
328
328
  allSemanticChartTokens.sort((a, b) => {
329
329
  if (a.indexOf("Success") !== -1) {
@@ -347,7 +347,7 @@ allSemanticChartTokens.sort((a, b) => {
347
347
  return 0;
348
348
  });
349
349
  const colors = allSemanticChartTokens.filter((key) => key.indexOf("Color") !== -1).map((key) => core.semantic[key].value);
350
- const strokes = allSemanticChartTokens.filter((key) => key.indexOf("Stroke") !== -1).map((key) => core.semantic[key].value);
350
+ const strokes = allSemanticChartTokens.filter((key) => key.indexOf("StrokeColor") !== -1).map((key) => core.semantic[key].value);
351
351
  const patterns = allSemanticChartTokens.filter((key) => key.indexOf("Pattern") !== -1).map((key) => core.semantic[key].value);
352
352
  const ThemeSemantic = createTheme({
353
353
  fills: colors,
@@ -356,4 +356,4 @@ const ThemeSemantic = createTheme({
356
356
  });
357
357
 
358
358
  export { ThemeMonochrome as T, ThemeCategorical as a, ThemeSemantic as b };
359
- //# sourceMappingURL=ThemeSemantic-Ca1fMNCy.js.map
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-Ca1fMNCy.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-Ca1fMNCy.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.6",
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.4.0"
88
+ "@servicetitan/anvil2": "3.0.0"
89
89
  },
90
90
  "scripts": {
91
91
  "dev": "vite",
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeSemantic-Ca1fMNCy.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(\"ChartsMonochrome\") !== -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(\"Stroke\") !== -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(\"ChartsCategorical\") !== -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(\"Stroke\") !== -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(\"ChartsStatus\") !== -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(\"Stroke\") !== -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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"}