@blukavantui/charts-community 0.0.0-stage → 1.0.1

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 (206) hide show
  1. package/LICENSE.txt +105 -0
  2. package/README.md +93 -2
  3. package/THIRD_PARTY_NOTICES.txt +288 -0
  4. package/dist/accessibility.d.ts +53 -0
  5. package/dist/async.d.ts +2 -0
  6. package/dist/bar.css +1 -0
  7. package/dist/bar.d.ts +5 -0
  8. package/dist/bar.js +1 -0
  9. package/dist/browser/charts-community.css +1 -0
  10. package/dist/browser/charts-community.js +52 -0
  11. package/dist/build-audit.json +164 -0
  12. package/dist/builders/bar.d.ts +6 -0
  13. package/dist/builders/doughnut.d.ts +6 -0
  14. package/dist/builders/heatmap.d.ts +16 -0
  15. package/dist/builders/line.d.ts +6 -0
  16. package/dist/builders/pie.d.ts +6 -0
  17. package/dist/builders/radar.d.ts +6 -0
  18. package/dist/builders/scatter.d.ts +6 -0
  19. package/dist/catalogue-model.d.ts +11 -0
  20. package/dist/catalogue-runtime.d.ts +11 -0
  21. package/dist/catalogue-types.d.ts +167 -0
  22. package/dist/chart-state.d.ts +18 -0
  23. package/dist/chunk-5NXLEMCV.js +3 -0
  24. package/dist/chunk-FHHQWCUO.js +1 -0
  25. package/dist/chunk-FZ7J7BEC.js +1 -0
  26. package/dist/chunk-JNSBTZUP.js +2 -0
  27. package/dist/chunk-KCW3WN5P.js +1 -0
  28. package/dist/chunk-MSZ5J5WG.js +1 -0
  29. package/dist/chunk-QBKO4AG7.js +1 -0
  30. package/dist/chunk-QETOF22L.js +1 -0
  31. package/dist/chunk-QFXXWRD5.js +1 -0
  32. package/dist/chunk-YJKEV5J7.js +2 -0
  33. package/dist/colors.d.ts +15 -0
  34. package/dist/community.d.ts +11 -0
  35. package/dist/doughnut.css +1 -0
  36. package/dist/doughnut.d.ts +5 -0
  37. package/dist/doughnut.js +1 -0
  38. package/dist/export.d.ts +5 -0
  39. package/dist/fonts/dm-sans-LICENSE.txt +93 -0
  40. package/dist/fonts/dm-sans-latin-ext-wght-italic.woff2 +0 -0
  41. package/dist/fonts/dm-sans-latin-ext-wght-normal.woff2 +0 -0
  42. package/dist/fonts/dm-sans-latin-wght-italic.woff2 +0 -0
  43. package/dist/fonts/dm-sans-latin-wght-normal.woff2 +0 -0
  44. package/dist/fonts/ibm-plex-mono-LICENSE.txt +93 -0
  45. package/dist/fonts/ibm-plex-mono-latin-100-italic.woff2 +0 -0
  46. package/dist/fonts/ibm-plex-mono-latin-100-normal.woff2 +0 -0
  47. package/dist/fonts/ibm-plex-mono-latin-200-italic.woff2 +0 -0
  48. package/dist/fonts/ibm-plex-mono-latin-200-normal.woff2 +0 -0
  49. package/dist/fonts/ibm-plex-mono-latin-300-italic.woff2 +0 -0
  50. package/dist/fonts/ibm-plex-mono-latin-300-normal.woff2 +0 -0
  51. package/dist/fonts/ibm-plex-mono-latin-400-italic.woff2 +0 -0
  52. package/dist/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  53. package/dist/fonts/ibm-plex-mono-latin-500-italic.woff2 +0 -0
  54. package/dist/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  55. package/dist/fonts/ibm-plex-mono-latin-600-italic.woff2 +0 -0
  56. package/dist/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  57. package/dist/fonts/ibm-plex-mono-latin-700-italic.woff2 +0 -0
  58. package/dist/fonts/ibm-plex-mono-latin-700-normal.woff2 +0 -0
  59. package/dist/fonts/ibm-plex-mono-latin-ext-100-italic.woff2 +0 -0
  60. package/dist/fonts/ibm-plex-mono-latin-ext-100-normal.woff2 +0 -0
  61. package/dist/fonts/ibm-plex-mono-latin-ext-200-italic.woff2 +0 -0
  62. package/dist/fonts/ibm-plex-mono-latin-ext-200-normal.woff2 +0 -0
  63. package/dist/fonts/ibm-plex-mono-latin-ext-300-italic.woff2 +0 -0
  64. package/dist/fonts/ibm-plex-mono-latin-ext-300-normal.woff2 +0 -0
  65. package/dist/fonts/ibm-plex-mono-latin-ext-400-italic.woff2 +0 -0
  66. package/dist/fonts/ibm-plex-mono-latin-ext-400-normal.woff2 +0 -0
  67. package/dist/fonts/ibm-plex-mono-latin-ext-500-italic.woff2 +0 -0
  68. package/dist/fonts/ibm-plex-mono-latin-ext-500-normal.woff2 +0 -0
  69. package/dist/fonts/ibm-plex-mono-latin-ext-600-italic.woff2 +0 -0
  70. package/dist/fonts/ibm-plex-mono-latin-ext-600-normal.woff2 +0 -0
  71. package/dist/fonts/ibm-plex-mono-latin-ext-700-italic.woff2 +0 -0
  72. package/dist/fonts/ibm-plex-mono-latin-ext-700-normal.woff2 +0 -0
  73. package/dist/fonts/inter-LICENSE.txt +93 -0
  74. package/dist/fonts/inter-latin-ext-wght-italic.woff2 +0 -0
  75. package/dist/fonts/inter-latin-ext-wght-normal.woff2 +0 -0
  76. package/dist/fonts/inter-latin-wght-italic.woff2 +0 -0
  77. package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
  78. package/dist/fonts/jetbrains-mono-LICENSE.txt +93 -0
  79. package/dist/fonts/jetbrains-mono-latin-ext-wght-italic.woff2 +0 -0
  80. package/dist/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
  81. package/dist/fonts/jetbrains-mono-latin-wght-italic.woff2 +0 -0
  82. package/dist/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
  83. package/dist/fonts/lora-LICENSE.txt +93 -0
  84. package/dist/fonts/lora-latin-ext-wght-italic.woff2 +0 -0
  85. package/dist/fonts/lora-latin-ext-wght-normal.woff2 +0 -0
  86. package/dist/fonts/lora-latin-wght-italic.woff2 +0 -0
  87. package/dist/fonts/lora-latin-wght-normal.woff2 +0 -0
  88. package/dist/fonts/manifest.json +618 -0
  89. package/dist/fonts/manrope-LICENSE.txt +93 -0
  90. package/dist/fonts/manrope-latin-ext-wght-normal.woff2 +0 -0
  91. package/dist/fonts/manrope-latin-wght-normal.woff2 +0 -0
  92. package/dist/fonts/merriweather-LICENSE.txt +93 -0
  93. package/dist/fonts/merriweather-latin-ext-wght-italic.woff2 +0 -0
  94. package/dist/fonts/merriweather-latin-ext-wght-normal.woff2 +0 -0
  95. package/dist/fonts/merriweather-latin-wght-italic.woff2 +0 -0
  96. package/dist/fonts/merriweather-latin-wght-normal.woff2 +0 -0
  97. package/dist/fonts/montserrat-LICENSE.txt +93 -0
  98. package/dist/fonts/montserrat-latin-ext-wght-italic.woff2 +0 -0
  99. package/dist/fonts/montserrat-latin-ext-wght-normal.woff2 +0 -0
  100. package/dist/fonts/montserrat-latin-wght-italic.woff2 +0 -0
  101. package/dist/fonts/montserrat-latin-wght-normal.woff2 +0 -0
  102. package/dist/fonts/playfair-display-LICENSE.txt +93 -0
  103. package/dist/fonts/playfair-display-latin-ext-wght-italic.woff2 +0 -0
  104. package/dist/fonts/playfair-display-latin-ext-wght-normal.woff2 +0 -0
  105. package/dist/fonts/playfair-display-latin-wght-italic.woff2 +0 -0
  106. package/dist/fonts/playfair-display-latin-wght-normal.woff2 +0 -0
  107. package/dist/fonts/roboto-LICENSE.txt +93 -0
  108. package/dist/fonts/roboto-latin-ext-wght-italic.woff2 +0 -0
  109. package/dist/fonts/roboto-latin-ext-wght-normal.woff2 +0 -0
  110. package/dist/fonts/roboto-latin-wght-italic.woff2 +0 -0
  111. package/dist/fonts/roboto-latin-wght-normal.woff2 +0 -0
  112. package/dist/fonts/source-sans-3-LICENSE.txt +93 -0
  113. package/dist/fonts/source-sans-3-latin-ext-wght-italic.woff2 +0 -0
  114. package/dist/fonts/source-sans-3-latin-ext-wght-normal.woff2 +0 -0
  115. package/dist/fonts/source-sans-3-latin-wght-italic.woff2 +0 -0
  116. package/dist/fonts/source-sans-3-latin-wght-normal.woff2 +0 -0
  117. package/dist/heatmap.css +1 -0
  118. package/dist/heatmap.d.ts +3 -0
  119. package/dist/heatmap.js +1 -0
  120. package/dist/index.css +1 -0
  121. package/dist/index.d.ts +11 -0
  122. package/dist/index.js +1 -0
  123. package/dist/legend-export.d.ts +9 -0
  124. package/dist/legend-model.d.ts +39 -0
  125. package/dist/legend.d.ts +19 -0
  126. package/dist/limits.d.ts +16 -0
  127. package/dist/line.css +1 -0
  128. package/dist/line.d.ts +5 -0
  129. package/dist/line.js +1 -0
  130. package/dist/loading-state.d.ts +6 -0
  131. package/dist/map-assets.d.ts +4 -0
  132. package/dist/map-resources.d.ts +24 -0
  133. package/dist/messages.d.ts +3 -0
  134. package/dist/model.d.ts +41 -0
  135. package/dist/options.d.ts +11 -0
  136. package/dist/pie.css +1 -0
  137. package/dist/pie.d.ts +5 -0
  138. package/dist/pie.js +1 -0
  139. package/dist/radar.css +1 -0
  140. package/dist/radar.d.ts +4 -0
  141. package/dist/radar.js +1 -0
  142. package/dist/runtime.d.ts +4 -0
  143. package/dist/scatter.css +1 -0
  144. package/dist/scatter.d.ts +5 -0
  145. package/dist/scatter.js +1 -0
  146. package/dist/sparkline-runtime/runtime.d.ts +10 -0
  147. package/dist/sparkline-validation.d.ts +3 -0
  148. package/dist/sparkline.css +25 -0
  149. package/dist/sparkline.d.ts +44 -0
  150. package/dist/sparkline.js +1 -0
  151. package/dist/state-announcement.d.ts +6 -0
  152. package/dist/styles.css +488 -0
  153. package/dist/theme.css +1391 -0
  154. package/dist/types.d.ts +137 -0
  155. package/dist/validation.d.ts +8 -0
  156. package/dist/web-api.json +4145 -0
  157. package/edition.json +48 -0
  158. package/package.json +96 -4
  159. package/scripts/build.mjs +31 -0
  160. package/src/accessibility.ts +81 -0
  161. package/src/assets.d.ts +1 -0
  162. package/src/async.ts +12 -0
  163. package/src/bar.ts +13 -0
  164. package/src/builders/bar.ts +39 -0
  165. package/src/builders/doughnut.ts +66 -0
  166. package/src/builders/heatmap.ts +60 -0
  167. package/src/builders/line.ts +39 -0
  168. package/src/builders/pie.ts +66 -0
  169. package/src/builders/radar.ts +65 -0
  170. package/src/builders/scatter.ts +34 -0
  171. package/src/catalogue-model.ts +235 -0
  172. package/src/catalogue-runtime.ts +200 -0
  173. package/src/catalogue-types.ts +163 -0
  174. package/src/chart-state.ts +35 -0
  175. package/src/charts.css +135 -0
  176. package/src/colors.ts +277 -0
  177. package/src/community.ts +11 -0
  178. package/src/doughnut.ts +12 -0
  179. package/src/export.ts +50 -0
  180. package/src/heatmap.ts +11 -0
  181. package/src/index.ts +11 -0
  182. package/src/legend-export.ts +36 -0
  183. package/src/legend-model.ts +76 -0
  184. package/src/legend.css +64 -0
  185. package/src/legend.ts +90 -0
  186. package/src/limits.ts +7 -0
  187. package/src/line.ts +13 -0
  188. package/src/loading-state.ts +39 -0
  189. package/src/map-assets.ts +1 -0
  190. package/src/map-resources.ts +46 -0
  191. package/src/messages.ts +5 -0
  192. package/src/model.ts +32 -0
  193. package/src/options.ts +24 -0
  194. package/src/pie.ts +12 -0
  195. package/src/radar.ts +12 -0
  196. package/src/runtime.ts +7 -0
  197. package/src/scatter.ts +13 -0
  198. package/src/sparkline-runtime/runtime.d.ts +10 -0
  199. package/src/sparkline-runtime/runtime.js +263 -0
  200. package/src/sparkline-validation.ts +19 -0
  201. package/src/sparkline.css +25 -0
  202. package/src/sparkline.ts +68 -0
  203. package/src/state-announcement.ts +17 -0
  204. package/src/types.ts +104 -0
  205. package/src/validation.ts +75 -0
  206. package/tsconfig.json +16 -0
@@ -0,0 +1,164 @@
1
+ {
2
+ "sources": [
3
+ "src/colors.ts",
4
+ "src/limits.ts",
5
+ "src/validation.ts",
6
+ "src/catalogue-model.ts",
7
+ "src/model.ts",
8
+ "src/accessibility.ts",
9
+ "src/builders/line.ts",
10
+ "src/options.ts",
11
+ "src/state-announcement.ts",
12
+ "src/loading-state.ts",
13
+ "src/messages.ts",
14
+ "src/legend-model.ts",
15
+ "src/legend.css",
16
+ "src/legend.ts",
17
+ "src/legend-export.ts",
18
+ "src/async.ts",
19
+ "src/export.ts",
20
+ "src/chart-state.ts",
21
+ "src/map-assets.ts",
22
+ "src/map-resources.ts",
23
+ "src/charts.css",
24
+ "src/catalogue-runtime.ts",
25
+ "src/line.ts",
26
+ "src/builders/bar.ts",
27
+ "src/bar.ts",
28
+ "src/builders/pie.ts",
29
+ "src/pie.ts",
30
+ "src/builders/doughnut.ts",
31
+ "src/doughnut.ts",
32
+ "src/builders/scatter.ts",
33
+ "src/scatter.ts",
34
+ "src/builders/radar.ts",
35
+ "src/radar.ts",
36
+ "src/builders/heatmap.ts",
37
+ "src/runtime.ts",
38
+ "src/heatmap.ts",
39
+ "src/sparkline-runtime/runtime.js",
40
+ "src/sparkline-validation.ts",
41
+ "src/sparkline.ts",
42
+ "src/community.ts"
43
+ ],
44
+ "outputs": [
45
+ "packages/community/dist/heatmap.js",
46
+ "packages/community/dist/index.js",
47
+ "packages/community/dist/chunk-QBKO4AG7.js",
48
+ "packages/community/dist/sparkline.js",
49
+ "packages/community/dist/chunk-MSZ5J5WG.js",
50
+ "packages/community/dist/line.js",
51
+ "packages/community/dist/chunk-KCW3WN5P.js",
52
+ "packages/community/dist/bar.js",
53
+ "packages/community/dist/chunk-FHHQWCUO.js",
54
+ "packages/community/dist/pie.js",
55
+ "packages/community/dist/chunk-YJKEV5J7.js",
56
+ "packages/community/dist/doughnut.js",
57
+ "packages/community/dist/chunk-5NXLEMCV.js",
58
+ "packages/community/dist/scatter.js",
59
+ "packages/community/dist/chunk-FZ7J7BEC.js",
60
+ "packages/community/dist/radar.js",
61
+ "packages/community/dist/chunk-JNSBTZUP.js",
62
+ "packages/community/dist/chunk-QFXXWRD5.js",
63
+ "packages/community/dist/chunk-QETOF22L.js",
64
+ "packages/community/dist/heatmap.css",
65
+ "packages/community/dist/index.css",
66
+ "packages/community/dist/line.css",
67
+ "packages/community/dist/bar.css",
68
+ "packages/community/dist/pie.css",
69
+ "packages/community/dist/doughnut.css",
70
+ "packages/community/dist/scatter.css",
71
+ "packages/community/dist/radar.css"
72
+ ],
73
+ "engineInputs": [
74
+ "node_modules/echarts/lib/chart/helper/createRenderPlanner.js",
75
+ "node_modules/echarts/lib/chart/custom/customSeriesRegister.js",
76
+ "node_modules/echarts/lib/chart/helper/createSeriesData.js",
77
+ "node_modules/echarts/lib/chart/line/LineSeries.js",
78
+ "node_modules/echarts/lib/chart/helper/labelHelper.js",
79
+ "node_modules/echarts/lib/chart/helper/Symbol.js",
80
+ "node_modules/echarts/lib/chart/helper/SymbolDraw.js",
81
+ "node_modules/echarts/lib/chart/line/helper.js",
82
+ "node_modules/echarts/lib/chart/line/lineAnimationDiff.js",
83
+ "node_modules/echarts/lib/chart/line/poly.js",
84
+ "node_modules/echarts/lib/chart/helper/createClipPathFromCoordSys.js",
85
+ "node_modules/echarts/lib/chart/line/LineView.js",
86
+ "node_modules/echarts/lib/chart/line/install.js",
87
+ "node_modules/echarts/lib/chart/helper/axisSnippets.js",
88
+ "node_modules/echarts/lib/chart/bar/BaseBarSeries.js",
89
+ "node_modules/echarts/lib/chart/bar/BarSeries.js",
90
+ "node_modules/echarts/lib/chart/helper/sectorHelper.js",
91
+ "node_modules/echarts/lib/chart/bar/BarView.js",
92
+ "node_modules/echarts/lib/chart/bar/install.js",
93
+ "node_modules/echarts/lib/chart/helper/createSeriesDataSimply.js",
94
+ "node_modules/echarts/lib/chart/pie/PieSeries.js",
95
+ "node_modules/echarts/lib/chart/pie/labelLayout.js",
96
+ "node_modules/echarts/lib/chart/pie/pieLayout.js",
97
+ "node_modules/echarts/lib/chart/pie/PieView.js",
98
+ "node_modules/echarts/lib/chart/pie/install.js",
99
+ "node_modules/echarts/lib/chart/scatter/ScatterSeries.js",
100
+ "node_modules/echarts/lib/chart/helper/LargeSymbolDraw.js",
101
+ "node_modules/echarts/lib/chart/scatter/ScatterView.js",
102
+ "node_modules/echarts/lib/chart/scatter/install.js",
103
+ "node_modules/echarts/lib/chart/radar/backwardCompat.js",
104
+ "node_modules/echarts/lib/chart/radar/RadarSeries.js",
105
+ "node_modules/echarts/lib/chart/radar/RadarView.js",
106
+ "node_modules/echarts/lib/chart/radar/radarLayout.js",
107
+ "node_modules/echarts/lib/chart/radar/install.js",
108
+ "node_modules/echarts/lib/chart/heatmap/HeatmapLayer.js",
109
+ "node_modules/echarts/lib/chart/heatmap/HeatmapView.js",
110
+ "node_modules/echarts/lib/chart/heatmap/HeatmapSeries.js",
111
+ "node_modules/echarts/lib/chart/heatmap/install.js"
112
+ ],
113
+ "sizes": {
114
+ "index": {
115
+ "bytes": 92257,
116
+ "gzipBytes": 37471,
117
+ "externalDependencies": "ECharts and Community Chip/Skeleton; engine cost is measured separately by consumer bundles."
118
+ },
119
+ "sparkline": {
120
+ "bytes": 14025,
121
+ "gzipBytes": 6184,
122
+ "externalDependencies": "ECharts and Community Chip/Skeleton; engine cost is measured separately by consumer bundles."
123
+ },
124
+ "line": {
125
+ "bytes": 59555,
126
+ "gzipBytes": 22183,
127
+ "externalDependencies": "ECharts and Community Chip/Skeleton; engine cost is measured separately by consumer bundles."
128
+ },
129
+ "bar": {
130
+ "bytes": 59133,
131
+ "gzipBytes": 22018,
132
+ "externalDependencies": "ECharts and Community Chip/Skeleton; engine cost is measured separately by consumer bundles."
133
+ },
134
+ "pie": {
135
+ "bytes": 58936,
136
+ "gzipBytes": 22047,
137
+ "externalDependencies": "ECharts and Community Chip/Skeleton; engine cost is measured separately by consumer bundles."
138
+ },
139
+ "doughnut": {
140
+ "bytes": 59482,
141
+ "gzipBytes": 22323,
142
+ "externalDependencies": "ECharts and Community Chip/Skeleton; engine cost is measured separately by consumer bundles."
143
+ },
144
+ "scatter": {
145
+ "bytes": 58654,
146
+ "gzipBytes": 21838,
147
+ "externalDependencies": "ECharts and Community Chip/Skeleton; engine cost is measured separately by consumer bundles."
148
+ },
149
+ "radar": {
150
+ "bytes": 59488,
151
+ "gzipBytes": 22183,
152
+ "externalDependencies": "ECharts and Community Chip/Skeleton; engine cost is measured separately by consumer bundles."
153
+ },
154
+ "heatmap": {
155
+ "bytes": 58057,
156
+ "gzipBytes": 21504,
157
+ "externalDependencies": "ECharts and Community Chip/Skeleton; engine cost is measured separately by consumer bundles."
158
+ },
159
+ "browser": {
160
+ "bytes": 732965,
161
+ "gzipBytes": 250098
162
+ }
163
+ }
164
+ }
@@ -0,0 +1,6 @@
1
+ import { type EChartsCoreOption } from 'echarts/core';
2
+ import type { CatalogueOptions } from '../catalogue-types.ts';
3
+ import type { themeTokens } from '../options.ts';
4
+ type Tokens = ReturnType<typeof themeTokens>;
5
+ export declare function buildOption(options: CatalogueOptions, t: Tokens, mapName?: string, reducedMotion?: boolean, width?: number): EChartsCoreOption;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type EChartsCoreOption } from 'echarts/core';
2
+ import type { CatalogueOptions } from '../catalogue-types.ts';
3
+ import type { themeTokens } from '../options.ts';
4
+ type Tokens = ReturnType<typeof themeTokens>;
5
+ export declare function buildOption(options: CatalogueOptions, t: Tokens, mapName?: string, reducedMotion?: boolean, width?: number): EChartsCoreOption;
6
+ export {};
@@ -0,0 +1,16 @@
1
+ import type { EChartsCoreOption } from 'echarts/core';
2
+ import type { HeatmapOptions } from '../types.ts';
3
+ export interface ChartTheme {
4
+ surface: string;
5
+ text: string;
6
+ muted: string;
7
+ border: string;
8
+ dark: boolean;
9
+ forcedColors?: boolean;
10
+ read: (name: string) => string;
11
+ palette: string[];
12
+ }
13
+ export declare function themeTokens(host: HTMLElement): ChartTheme;
14
+ type Tokens = ReturnType<typeof themeTokens>;
15
+ export declare function heatmapOption(o: HeatmapOptions, t: Tokens): EChartsCoreOption;
16
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type EChartsCoreOption } from 'echarts/core';
2
+ import type { CatalogueOptions } from '../catalogue-types.ts';
3
+ import type { themeTokens } from '../options.ts';
4
+ type Tokens = ReturnType<typeof themeTokens>;
5
+ export declare function buildOption(options: CatalogueOptions, t: Tokens, mapName?: string, reducedMotion?: boolean, width?: number): EChartsCoreOption;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type EChartsCoreOption } from 'echarts/core';
2
+ import type { CatalogueOptions } from '../catalogue-types.ts';
3
+ import type { themeTokens } from '../options.ts';
4
+ type Tokens = ReturnType<typeof themeTokens>;
5
+ export declare function buildOption(options: CatalogueOptions, t: Tokens, mapName?: string, reducedMotion?: boolean, width?: number): EChartsCoreOption;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type EChartsCoreOption } from 'echarts/core';
2
+ import type { CatalogueOptions } from '../catalogue-types.ts';
3
+ import type { themeTokens } from '../options.ts';
4
+ type Tokens = ReturnType<typeof themeTokens>;
5
+ export declare function buildOption(options: CatalogueOptions, t: Tokens, mapName?: string, reducedMotion?: boolean, width?: number): EChartsCoreOption;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { type EChartsCoreOption } from 'echarts/core';
2
+ import type { CatalogueOptions } from '../catalogue-types.ts';
3
+ import type { themeTokens } from '../options.ts';
4
+ type Tokens = ReturnType<typeof themeTokens>;
5
+ export declare function buildOption(options: CatalogueOptions, t: Tokens, mapName?: string, reducedMotion?: boolean, width?: number): EChartsCoreOption;
6
+ export {};
@@ -0,0 +1,11 @@
1
+ import type { CatalogueKind, CatalogueOptions, GeoMapOptions, GeoJSON, ChartPoint, TreeNode } from './catalogue-types.ts';
2
+ export declare const dataFields: Record<CatalogueKind, string[]>;
3
+ export declare function chartData(kind: CatalogueKind, o: CatalogueOptions): Record<string, unknown>;
4
+ export declare function parseChartData(kind: CatalogueKind, json: string, o: CatalogueOptions): CatalogueOptions;
5
+ export declare function validateGeoJSON(geo: GeoJSON): void;
6
+ export declare function isISODate(value: unknown): value is string;
7
+ export declare function validateCatalogue(kind: CatalogueKind, o: CatalogueOptions): void;
8
+ export declare function validateMapRegions(o: GeoMapOptions, geo: GeoJSON): void;
9
+ export declare function treeTotals(nodes: TreeNode[]): Map<string, number | null>;
10
+ export declare function treeValue(nodes: TreeNode[], n: TreeNode): number | null;
11
+ export declare function cataloguePoints(kind: CatalogueKind, o: CatalogueOptions): ChartPoint[];
@@ -0,0 +1,11 @@
1
+ import * as echarts from 'echarts/core';
2
+ import type { ChartEvents, ChartInstance } from './types.ts';
3
+ import type { CatalogueKind, OptionsByKind, ChartPoint } from './catalogue-types.ts';
4
+ import { themeTokens } from './options.ts';
5
+ import { type RuntimeKind, type RuntimeOptions } from './chart-state.ts';
6
+ import './charts.css';
7
+ type Builder = (o: any, t: ReturnType<typeof themeTokens>, mapName?: string, reducedMotion?: boolean, width?: number) => echarts.EChartsCoreOption;
8
+ export declare function createCatalogueChart<K extends CatalogueKind>(host: HTMLElement, kind: K, initial: OptionsByKind[K], events: ChartEvents<ChartPoint>, build: Builder): ChartInstance<OptionsByKind[K]>;
9
+ /** One lifecycle for all ECharts families. Sparkline deliberately stays independent. */
10
+ export declare function createChartRuntime<O extends RuntimeOptions, P = ChartPoint>(host: HTMLElement, kind: RuntimeKind, initial: O, events: ChartEvents<P>, build: Builder): ChartInstance<O>;
11
+ export {};
@@ -0,0 +1,167 @@
1
+ import type { ChartOptions, ChartCategory, ChartColor, ChartIdentity, ChartDatum } from './types.ts';
2
+ export type CatalogueKind = 'line' | 'radar' | 'bar' | 'pie' | 'doughnut' | 'nightingale' | 'polar' | 'scatter' | 'treemap' | 'sankey' | 'funnel' | 'geo-map' | 'calendar-heatmap';
3
+ export interface ValueSeries extends ChartIdentity {
4
+ Values: (number | null)[];
5
+ }
6
+ export interface CartesianOptions extends ChartOptions {
7
+ Categories: ChartCategory[];
8
+ Series: ValueSeries[];
9
+ Orientation?: 'Vertical' | 'Horizontal';
10
+ Stacking?: 'None' | 'Stacked' | 'Percent';
11
+ LineStyle?: 'Straight' | 'Smooth' | 'Step';
12
+ ShowArea?: boolean;
13
+ PolarType?: 'Bar' | 'Line';
14
+ }
15
+ /** Per-axis bounds keep comparisons stable as datasets change. */
16
+ export interface RadarCategory extends ChartCategory {
17
+ Max?: number;
18
+ }
19
+ export interface RadarOptions extends ChartOptions {
20
+ Categories: RadarCategory[];
21
+ Series: ValueSeries[];
22
+ GridShape?: 'Polygon' | 'Circle';
23
+ SplitNumber?: number;
24
+ ShowArea?: boolean;
25
+ ShowAxisBounds?: boolean;
26
+ }
27
+ export interface Slice extends ChartDatum {
28
+ RingKey?: string;
29
+ }
30
+ export interface Ring extends ChartIdentity {
31
+ }
32
+ export interface CircularOptions extends ChartOptions {
33
+ Items: Slice[];
34
+ Rings?: Ring[];
35
+ Nested?: boolean;
36
+ Shape?: 'Full' | 'Half';
37
+ /** Nested inner levels stay inside; the outermost level uses this position. */
38
+ LabelPosition?: 'Outside' | 'Inside';
39
+ InnerRadius?: number;
40
+ RoseMode?: 'Area' | 'Radius';
41
+ CenterLabel?: string;
42
+ }
43
+ export interface ScatterPoint extends ChartIdentity {
44
+ X: number;
45
+ Y: number;
46
+ Size?: number;
47
+ Group?: string;
48
+ }
49
+ export interface ScatterOptions extends ChartOptions {
50
+ Points: ScatterPoint[];
51
+ Bubble?: boolean;
52
+ XLabel?: string;
53
+ YLabel?: string;
54
+ }
55
+ /** Flat parent keys map directly to OutSystems lists. Branch totals are derived from descendant leaves. */
56
+ export interface TreeNode extends ChartDatum {
57
+ ParentKey: string | null;
58
+ }
59
+ export interface TreemapOptions extends ChartOptions {
60
+ Nodes: TreeNode[];
61
+ Drilldown?: boolean;
62
+ }
63
+ export interface FlowNode extends ChartIdentity {
64
+ }
65
+ export interface FlowLink {
66
+ Key: string;
67
+ SourceKey: string;
68
+ TargetKey: string;
69
+ Value: number;
70
+ }
71
+ export interface SankeyOptions extends ChartOptions {
72
+ Nodes: FlowNode[];
73
+ Links: FlowLink[];
74
+ Orientation?: 'Horizontal' | 'Vertical';
75
+ NodeAlign?: 'Justify' | 'Left' | 'Right';
76
+ }
77
+ export interface FunnelOptions extends ChartOptions {
78
+ Items: Slice[];
79
+ Sort?: 'Input' | 'Descending' | 'Ascending';
80
+ ShowConversion?: boolean;
81
+ }
82
+ export interface GeoRegion extends ChartDatum {
83
+ }
84
+ export interface GeoLocation extends ChartIdentity {
85
+ Longitude: number;
86
+ Latitude: number;
87
+ Value: number;
88
+ }
89
+ export interface GeoFeature {
90
+ type: 'Feature';
91
+ properties: {
92
+ name: string;
93
+ label?: string;
94
+ [key: string]: unknown;
95
+ };
96
+ geometry: {
97
+ type: 'Polygon' | 'MultiPolygon';
98
+ coordinates: number[][][] | number[][][][];
99
+ };
100
+ }
101
+ export interface GeoJSON {
102
+ type: 'FeatureCollection';
103
+ features: GeoFeature[];
104
+ }
105
+ export interface GeoMapOptions extends ChartOptions {
106
+ Map?: 'World' | 'US' | 'Custom';
107
+ GeoJSON?: GeoJSON;
108
+ /** Custom geometry resource, mutually exclusive with GeoJSON. */
109
+ MapURL?: string;
110
+ /** US defaults to Mainland; Full includes all geometry in the bundled asset. */
111
+ MapView?: 'Mainland' | 'Full';
112
+ Regions: GeoRegion[];
113
+ Locations: GeoLocation[];
114
+ MapMode?: 'Regions' | 'Locations' | 'Combined';
115
+ Roam?: boolean;
116
+ ColorScale?: ChartColor | 'Automatic';
117
+ }
118
+ /** Date-only ISO strings avoid time-zone shifts in OutSystems Date values. */
119
+ export interface CalendarDay extends ChartDatum {
120
+ Date: string;
121
+ }
122
+ export interface CalendarHeatmapOptions extends ChartOptions {
123
+ Items: CalendarDay[];
124
+ RangeStart: string;
125
+ RangeEnd: string;
126
+ FirstDay?: 'Monday' | 'Sunday';
127
+ ColorScale?: ChartColor | 'Automatic';
128
+ ShowMonthLabels?: boolean;
129
+ ShowDayLabels?: boolean;
130
+ }
131
+ export interface OptionsByKind {
132
+ 'calendar-heatmap': CalendarHeatmapOptions;
133
+ line: CartesianOptions;
134
+ radar: RadarOptions;
135
+ bar: CartesianOptions;
136
+ polar: CartesianOptions;
137
+ pie: CircularOptions;
138
+ doughnut: CircularOptions;
139
+ nightingale: CircularOptions;
140
+ scatter: ScatterOptions;
141
+ treemap: TreemapOptions;
142
+ sankey: SankeyOptions;
143
+ funnel: FunnelOptions;
144
+ 'geo-map': GeoMapOptions;
145
+ }
146
+ export type CatalogueOptions = OptionsByKind[CatalogueKind];
147
+ /** Stable scalar payload suitable for JSON serialization or a native OutSystems structure. */
148
+ export interface ChartPoint {
149
+ Key: string;
150
+ Label: string;
151
+ Value: number | null;
152
+ SeriesKey?: string;
153
+ CategoryKey?: string;
154
+ SeriesName?: string;
155
+ RingKey?: string;
156
+ Date?: string;
157
+ ParentKey?: string | null;
158
+ X?: number;
159
+ Y?: number;
160
+ Size?: number;
161
+ Group?: string;
162
+ SourceKey?: string;
163
+ TargetKey?: string;
164
+ Longitude?: number;
165
+ Latitude?: number;
166
+ PointType?: 'Region' | 'Location' | 'Node' | 'Link' | 'Series';
167
+ }
@@ -0,0 +1,18 @@
1
+ import type { ChartOptions, MixedChartOptions, HeatmapOptions } from './types.ts';
2
+ import type { CatalogueKind, CatalogueOptions, ChartPoint } from './catalogue-types.ts';
3
+ export type RuntimeKind = CatalogueKind | 'mixed' | 'heatmap';
4
+ export type RuntimeOptions = CatalogueOptions | MixedChartOptions | HeatmapOptions;
5
+ export declare function validateChart(kind: RuntimeKind, o: RuntimeOptions): void;
6
+ export declare function chartPoints(kind: RuntimeKind, o: RuntimeOptions): ChartPoint[];
7
+ export declare function pointIdentity(kind: RuntimeKind, p: ChartPoint): string;
8
+ export declare function prepareUpdate<O extends RuntimeOptions>(kind: RuntimeKind, current: O, patch: Partial<O>): {
9
+ next: O & Partial<O>;
10
+ cleared: boolean;
11
+ };
12
+ /** Resolve ECharts targets from actual rendered data; display labels never identify a point. */
13
+ export declare function highlightTargets(config: any, key: string): {
14
+ seriesIndex: number;
15
+ dataIndex: number;
16
+ dataType?: string;
17
+ }[];
18
+ export declare function message(o: ChartOptions, key: string, fallback: string): string;
@@ -0,0 +1,3 @@
1
+ import{a as s,b as K,c as g,f as v,j as N,k as P,l as D,n as I}from"./chunk-QFXXWRD5.js";import{e as k,g as x}from"./chunk-QETOF22L.js";function R(u,o,O,M=!1,z=640){let n="doughnut",a=u,$=K(n,u),E=(e,t)=>a.ShowPatterns?N(e,t):void 0,f=o.palette,b=(e,t)=>v(o.forcedColors?o.text:k(e,f[t%f.length],o.dark,o.read),o.surface,n==="line"||n==="radar"||n==="polar"&&a.PolarType==="Line"?4.5:3.2),H=(e,t,l)=>D(b(t,l),o.surface,a.SelectedKey===e),V=(e,t)=>$.find(l=>l.Key===e&&(!t||l.SeriesKey===t)),F={data:["line","radar","bar","polar"].includes(n)?a.Series.map(e=>e.Label):n==="scatter"?[...new Set(a.Points.map(e=>e.Group||"Observations"))]:["pie","doughnut","nightingale","funnel"].includes(n)?[...new Set(a.Items.map(e=>e.Label))]:[],show:a.ShowLegend,type:"scroll",top:6,left:10,right:10,itemWidth:24,itemHeight:12,selectedMode:!1,pageTextStyle:{color:o.muted},pageIconColor:o.text,textStyle:{color:o.muted,fontSize:11}},A={show:a.ShowLabels,color:x(o.surface),fontSize:11,backgroundColor:o.surface,padding:[2,3],borderRadius:2},X={show:a.ShowTooltip,confine:!0,enterable:!0,backgroundColor:o.surface,borderColor:o.border,textStyle:{color:o.text,fontSize:12},formatter:e=>{let t=e.data?.point;if(!t)return`${s(e.name||"")}${e.value==null||Number.isNaN(e.value)?" \xB7 No data":""}`;let l=t.Date?`<br/>${s(t.Date)}<br/><strong>${s(g(t.Value,a))}</strong>`:t.X!==void 0?`<br/>${s(a.XLabel||"X")}: ${t.X}<br/>${s(a.YLabel||"Y")}: ${t.Y}${t.Size===void 0?"":`<br/>Size: ${t.Size}`}`:`<br/><strong>${s(g(t.Value,a))}</strong>`;return`${s(t.SeriesName?`${t.SeriesName} \xB7 ${t.Label}`:t.Label)}${l}${e.data?.conversion?`<br/>${s(e.data.conversion)}`:""}`}},B={backgroundColor:o.surface,color:f.map((e,t)=>b(e,t)),animation:!!a.EnableAnimation&&!M,animationDuration:300,animationDurationUpdate:150,textStyle:{fontFamily:"Inter,system-ui,sans-serif",color:o.text},aria:{enabled:!0,description:`${a.Title}. ${a.Description||""} Exact values and keyboard selection are in the data table.`},tooltip:X},Z={axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:o.muted,fontSize:10,hideOverlap:!0},splitLine:{lineStyle:{color:o.border,type:"dashed"}}},r=u,d=r.Nested?r.Rings:[{Key:"",Label:""}],m=r.Shape==="Half",y=!!r.Nested&&d.length>1,h=n==="pie"?0:r.InnerRadius??(n==="doughnut"?48:18),C=r.LabelPosition!=="Inside",S=C?66:76,Y=[...new Set(r.Items.map(e=>e.Label))],w=d.map((e,t)=>{let l=y?t===0?[0,32]:[44+(S-44)*(t-1)/(d.length-1),44+(S-44)*t/(d.length-1)-(t===d.length-1?0:2)]:[h,Math.max(S,h+5)],p=!C||y&&t<d.length-1;return{type:"pie",id:e.Key||n,name:e.Label,top:a.ShowLegend?28:0,bottom:2,center:["50%",m?"72%":"55%"],radius:l.map(i=>`${i}%`),startAngle:m?180:90,endAngle:m?360:"auto",roseType:n==="nightingale"?r.RoseMode==="Radius"?"radius":"area":!1,avoidLabelOverlap:!0,stillShowZeroSum:!1,label:{...A,position:p?"inside":"outside",backgroundColor:p?void 0:o.surface,alignTo:"none",bleedMargin:6,distanceToLabelLine:4,formatter:`{b}
2
+ {d}%`,lineHeight:15},labelLine:{show:!!a.ShowLabels&&!p,length:12,length2:8,smooth:.15},labelLayout:{hideOverlap:!0},emphasis:{scale:!0},data:r.Items.filter(i=>!r.Nested||i.RingKey===e.Key).map(i=>{let L=Y.indexOf(i.Label),c=b(i.Color,L);return{id:i.Key,name:i.Label,value:i.Value,point:V(i.Key),label:{color:x(p?c:o.surface),backgroundColor:p?c:o.surface},labelLine:{lineStyle:{color:c,width:1.25}},itemStyle:{...H(i.Key,i.Color,L),decal:E(L,c),borderRadius:3},emphasis:{itemStyle:P(c)}}})}}),T=$.find(e=>e.Key===a.SelectedKey),q=T?.Value??r.Items.reduce((e,t)=>e+(t.Value||0),0);return{...B,legend:F,series:w,media:C?[{query:{maxWidth:420},option:{series:w.map(e=>({id:e.id,radius:e.radius.map(t=>`${parseFloat(t)*.84}%`)}))}}]:[],graphic:n==="doughnut"&&!y&&h>=35?[{type:"text",left:"center",top:m?"63%":"48%",silent:!0,style:{text:`${g(q,a,!0)}
3
+ ${T?.Label||r.CenterLabel||"Total"}`,textAlign:"center",fill:o.text,font:"600 16px Inter,system-ui",lineHeight:24,width:Math.max(24,Math.min(z,a.Height||320)*h/100-12),overflow:"truncate"}}]:[]}}import{use as G}from"echarts/core";import{PieChart as W}from"echarts/charts";function ce(u,o,O={}){return G([W]),I(u,"doughnut",o,O,R)}export{ce as a};
@@ -0,0 +1 @@
1
+ import{a as l,b as x,c as d,f as L,h as O,i as $,j as w,k as T,l as f,n as v}from"./chunk-QFXXWRD5.js";import{e as k,g as u}from"./chunk-QETOF22L.js";function N(s,o,g,P=!1,z=640){let a=s,K=x("bar",s),h=(e,t)=>a.ShowPatterns?w(e,t):void 0,m=o.palette,i=(e,t)=>L(o.forcedColors?o.text:k(e,m[t%m.length],o.dark,o.read),o.surface,3.2),B=(e,t,n)=>f(i(t,n),o.surface,a.SelectedKey===e),A=(e,t)=>K.find(n=>n.Key===e&&(!t||n.SeriesKey===t)),D={data:["line","radar","bar","polar"].includes("bar")?a.Series.map(e=>e.Label):["pie","doughnut","nightingale","funnel"].includes("bar")?[...new Set(a.Items.map(e=>e.Label))]:[],show:a.ShowLegend,type:"scroll",top:6,left:10,right:10,itemWidth:24,itemHeight:12,selectedMode:!1,pageTextStyle:{color:o.muted},pageIconColor:o.text,textStyle:{color:o.muted,fontSize:11}},E={show:a.ShowLabels,color:u(o.surface),fontSize:11,backgroundColor:o.surface,padding:[2,3],borderRadius:2},M={show:a.ShowTooltip,confine:!0,enterable:!0,backgroundColor:o.surface,borderColor:o.border,textStyle:{color:o.text,fontSize:12},formatter:e=>{let t=e.data?.point;if(!t)return`${l(e.name||"")}${e.value==null||Number.isNaN(e.value)?" \xB7 No data":""}`;let n=t.Date?`<br/>${l(t.Date)}<br/><strong>${l(d(t.Value,a))}</strong>`:t.X!==void 0?`<br/>${l(a.XLabel||"X")}: ${t.X}<br/>${l(a.YLabel||"Y")}: ${t.Y}${t.Size===void 0?"":`<br/>Size: ${t.Size}`}`:`<br/><strong>${l(d(t.Value,a))}</strong>`;return`${l(t.SeriesName?`${t.SeriesName} \xB7 ${t.Label}`:t.Label)}${n}${e.data?.conversion?`<br/>${l(e.data.conversion)}`:""}`}},V={backgroundColor:o.surface,color:m.map((e,t)=>i(e,t)),animation:!!a.EnableAnimation&&!P,animationDuration:300,animationDurationUpdate:150,textStyle:{fontFamily:"Inter,system-ui,sans-serif",color:o.text},aria:{enabled:!0,description:`${a.Title}. ${a.Description||""} Exact values and keyboard selection are in the data table.`},tooltip:M},p={axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:o.muted,fontSize:10,hideOverlap:!0},splitLine:{lineStyle:{color:o.border,type:"dashed"}}},r=s,c=r.Stacking==="Percent",S={...p,type:"category",data:r.Categories.map(e=>e.Label),axisLabel:{...p.axisLabel,width:Math.min(140,z*.2),overflow:"truncate"},splitLine:{show:!1}},C={...p,type:"value",max:c?1:void 0,axisLabel:{...p.axisLabel,formatter:e=>c?`${Math.round(e*100)}%`:d(e,a,!0)}},y=!!r.Stacking&&r.Stacking!=="None",H=r.Series.map((e,t)=>({id:e.Key,name:e.Label,type:"bar",coordinateSystem:"cartesian2d",stack:r.Stacking&&r.Stacking!=="None"?"total":void 0,smooth:r.LineStyle==="Smooth",step:r.LineStyle==="Step"?"middle":!1,connectNulls:!1,areaStyle:r.ShowArea?{opacity:.1}:void 0,barMaxWidth:38,symbol:O(t),symbolSize:8,itemStyle:{...f(i(e.Color,t),o.surface),decal:h(t,i(e.Color,t))},lineStyle:{width:2.5,color:i(e.Color,t),type:$(t)},label:{...E,color:y?u(i(e.Color,t)):u(o.surface),backgroundColor:y?i(e.Color,t):o.surface,position:y?"inside":r.Orientation==="Horizontal"?"right":"top",formatter:n=>c?`${Math.round(Number(n.value)*100)}%`:d(n.data.point.Value,a,!0)},labelLayout:{hideOverlap:!0},emphasis:{focus:"none",scale:!1},blur:{itemStyle:{opacity:1},lineStyle:{opacity:1},label:{opacity:1}},data:e.Values.map((n,b)=>({value:n===null?null:c?n/(r.Series.reduce((F,X)=>F+(X.Values[b]||0),0)||1):n,point:A(r.Categories[b].Key,e.Key),itemStyle:{...B(r.Categories[b].Key,e.Color,t),decal:h(t,i(e.Color,t))},emphasis:{itemStyle:T(i(e.Color,t))}}))}));return{...V,legend:D,grid:{left:14,right:22,top:a.ShowLegend?48:20,bottom:16,containLabel:!0},xAxis:r.Orientation==="Horizontal"?C:S,yAxis:r.Orientation==="Horizontal"?{...S,inverse:!0}:C,series:H}}import{use as G}from"echarts/core";import{BarChart as I}from"echarts/charts";import{GridComponent as R}from"echarts/components";function se(s,o,g={}){return G([I,R]),v(s,"bar",o,g,N)}export{se as a};
@@ -0,0 +1 @@
1
+ import{a as n,b as h,c,f as S,h as g,j as C,k as O,l as x,m as L,n as $}from"./chunk-QFXXWRD5.js";import{e as b,g as f}from"./chunk-QETOF22L.js";function v(l,o,u,w=!1,d=640){let i="scatter",a=l,T=h(i,l),F=(e,t)=>a.ShowPatterns?C(e,t):void 0,m=o.palette,p=(e,t)=>S(o.forcedColors?o.text:b(e,m[t%m.length],o.dark,o.read),o.surface,i==="line"||i==="radar"||i==="polar"&&a.PolarType==="Line"?4.5:3.2),k=(e,t,r)=>x(p(t,r),o.surface,a.SelectedKey===e),P=(e,t)=>T.find(r=>r.Key===e&&(!t||r.SeriesKey===t)),z={data:["line","radar","bar","polar"].includes(i)?a.Series.map(e=>e.Label):i==="scatter"?[...new Set(a.Points.map(e=>e.Group||"Observations"))]:["pie","doughnut","nightingale","funnel"].includes(i)?[...new Set(a.Items.map(e=>e.Label))]:[],show:a.ShowLegend,type:"scroll",top:6,left:10,right:10,itemWidth:24,itemHeight:12,selectedMode:!1,pageTextStyle:{color:o.muted},pageIconColor:o.text,textStyle:{color:o.muted,fontSize:11}},K={show:a.ShowLabels,color:f(o.surface),fontSize:11,backgroundColor:o.surface,padding:[2,3],borderRadius:2},N={show:a.ShowTooltip,confine:!0,enterable:!0,backgroundColor:o.surface,borderColor:o.border,textStyle:{color:o.text,fontSize:12},formatter:e=>{let t=e.data?.point;if(!t)return`${n(e.name||"")}${e.value==null||Number.isNaN(e.value)?" \xB7 No data":""}`;let r=t.Date?`<br/>${n(t.Date)}<br/><strong>${n(c(t.Value,a))}</strong>`:t.X!==void 0?`<br/>${n(a.XLabel||"X")}: ${t.X}<br/>${n(a.YLabel||"Y")}: ${t.Y}${t.Size===void 0?"":`<br/>Size: ${t.Size}`}`:`<br/><strong>${n(c(t.Value,a))}</strong>`;return`${n(t.SeriesName?`${t.SeriesName} \xB7 ${t.Label}`:t.Label)}${r}${e.data?.conversion?`<br/>${n(e.data.conversion)}`:""}`}},D={backgroundColor:o.surface,color:m.map((e,t)=>p(e,t)),animation:!!a.EnableAnimation&&!w,animationDuration:300,animationDurationUpdate:150,textStyle:{fontFamily:"Inter,system-ui,sans-serif",color:o.text},aria:{enabled:!0,description:`${a.Title}. ${a.Description||""} Exact values and keyboard selection are in the data table.`},tooltip:N},y={axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:o.muted,fontSize:10,hideOverlap:!0},splitLine:{lineStyle:{color:o.border,type:"dashed"}}},s=l,E=[...new Set(s.Points.map(e=>e.Group||"Observations"))],G=Math.max(1,...s.Points.map(e=>e.Size||0));return{...D,legend:z,grid:{left:20,right:30,top:a.ShowLegend?50:30,bottom:36,containLabel:!0},xAxis:{...y,type:"value",name:s.XLabel||"X",nameLocation:"middle",nameGap:30},yAxis:{...y,type:"value",name:s.YLabel||"Y"},series:E.map((e,t)=>({type:"scatter",name:e,symbol:g(t),itemStyle:{color:p(s.Points.find(r=>(r.Group||"Observations")===e)?.Color,t)},label:{...K,width:Math.min(140,d*.25),overflow:"truncate",position:"top",formatter:"{b}"},labelLayout:L(d,a.Height||320,a.ShowLegend?38:8),symbolSize:(r,X)=>s.Bubble?8+36*Math.sqrt((X.data.point.Size??1)/G):12,emphasis:{focus:"none",scale:!1},blur:{itemStyle:{opacity:1},lineStyle:{opacity:1},label:{opacity:1}},data:s.Points.filter(r=>(r.Group||"Observations")===e).map(r=>({name:r.Label,value:[r.X,r.Y],point:P(r.Key),itemStyle:k(r.Key,r.Color,t),emphasis:{itemStyle:O(p(r.Color,t))}}))}))}}import{use as M}from"echarts/core";import{ScatterChart as Y}from"echarts/charts";import{GridComponent as B}from"echarts/components";function ae(l,o,u={}){return M([Y,B]),$(l,"scatter",o,u,v)}export{ae as a};
@@ -0,0 +1,2 @@
1
+ import{a as n,b as w,c as m,f as O,h as T,i as k,j as b,k as v,l as S,m as M,n as K}from"./chunk-QFXXWRD5.js";import{e as L,g as $}from"./chunk-QETOF22L.js";import{format as H}from"echarts/core";function N(p,a,g,R=!1,d=640){let s="radar",o=p,P=w(s,p),X=(e,t)=>o.ShowPatterns?b(e,t):void 0,u=a.palette,y=(e,t)=>O(a.forcedColors?a.text:L(e,u[t%u.length],a.dark,a.read),a.surface,s==="line"||s==="radar"||s==="polar"&&o.PolarType==="Line"?4.5:3.2),Y=(e,t,r)=>S(y(t,r),a.surface,o.SelectedKey===e),j=(e,t)=>P.find(r=>r.Key===e&&(!t||r.SeriesKey===t)),V={data:["line","radar","bar","polar"].includes(s)?o.Series.map(e=>e.Label):s==="scatter"?[...new Set(o.Points.map(e=>e.Group||"Observations"))]:["pie","doughnut","nightingale","funnel"].includes(s)?[...new Set(o.Items.map(e=>e.Label))]:[],show:o.ShowLegend,type:"scroll",top:6,left:10,right:10,itemWidth:24,itemHeight:12,selectedMode:!1,pageTextStyle:{color:a.muted},pageIconColor:a.text,textStyle:{color:a.muted,fontSize:11}},z={show:o.ShowLabels,color:$(a.surface),fontSize:11,backgroundColor:a.surface,padding:[2,3],borderRadius:2},C={show:o.ShowTooltip,confine:!0,enterable:!0,backgroundColor:a.surface,borderColor:a.border,textStyle:{color:a.text,fontSize:12},formatter:e=>{let t=e.data?.point;if(!t)return`${n(e.name||"")}${e.value==null||Number.isNaN(e.value)?" \xB7 No data":""}`;let r=t.Date?`<br/>${n(t.Date)}<br/><strong>${n(m(t.Value,o))}</strong>`:t.X!==void 0?`<br/>${n(o.XLabel||"X")}: ${t.X}<br/>${n(o.YLabel||"Y")}: ${t.Y}${t.Size===void 0?"":`<br/>Size: ${t.Size}`}`:`<br/><strong>${n(m(t.Value,o))}</strong>`;return`${n(t.SeriesName?`${t.SeriesName} \xB7 ${t.Label}`:t.Label)}${r}${e.data?.conversion?`<br/>${n(e.data.conversion)}`:""}`}},D={backgroundColor:a.surface,color:u.map((e,t)=>y(e,t)),animation:!!o.EnableAnimation&&!R,animationDuration:300,animationDurationUpdate:150,textStyle:{fontFamily:"Inter,system-ui,sans-serif",color:a.text},aria:{enabled:!0,description:`${o.Title}. ${o.Description||""} Exact values and keyboard selection are in the data table.`},tooltip:C},B={axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:a.muted,fontSize:10,hideOverlap:!0},splitLine:{lineStyle:{color:a.border,type:"dashed"}}},i=p,h=o.ShowLegend?48:22,f=o.Height||320,E=h+(f-h-38)/2,A=Math.max(12,Math.min(d*.24,(f-h-64)/2)),x=i.Categories.map((e,t)=>{let r=Math.max(1,...i.Series.map(c=>c.Values[t]??0)),l=10**Math.floor(Math.log10(r));return e.Max??Math.ceil(r/l)*l});return{...D,legend:V,tooltip:{...C,formatter:e=>{let t=i.Series.find(r=>r.Key===e.data?.point?.SeriesKey);return t?`<strong>${n(t.Label)}</strong><br/>${i.Categories.map((r,l)=>`${n(r.Label)}: ${n(m(t.Values[l],o))}`).join("<br/>")}`:""}},radar:{center:["50%",E],radius:A,shape:i.GridShape==="Circle"?"circle":"polygon",splitNumber:i.SplitNumber??4,indicator:i.Categories.map((e,t)=>({name:H.truncateText(`${e.Label}${i.ShowAxisBounds!==!1?`
2
+ 0\u2013${m(x[t],o,!0)}`:""}`,Math.max(28,Math.min(100,d*.22)),"11px Inter,system-ui","\u2026"),min:0,max:x[t]})),axisName:{color:a.text,fontSize:11,lineHeight:15,width:Math.max(28,Math.min(100,d*.22)),overflow:"truncate"},axisNameGap:7,axisLine:{lineStyle:{color:a.border,width:1}},splitLine:{lineStyle:{color:a.border,width:1}},splitArea:{show:!1}},series:i.Series.map((e,t)=>{let r=y(e.Color,t),l=o.SelectedKey===e.Key;return{id:e.Key,name:e.Label,type:"radar",symbol:T(t),symbolSize:l?9:7,lineStyle:{color:r,width:l?3:2.5,type:k(t)},itemStyle:{...S(r,a.surface,l),decal:i.ShowArea&&o.ShowPatterns?b(t,r):void 0},areaStyle:i.ShowArea?{color:r,opacity:.08}:void 0,label:{...z,position:"top",formatter:c=>m(c.value,o,!0)},labelLayout:M(d,f,o.ShowLegend?38:8),emphasis:{focus:"none",itemStyle:v(r),lineStyle:{width:3}},blur:{lineStyle:{opacity:1},itemStyle:{opacity:1}},data:e.Values.some(c=>c===null)||!e.Values.length?[]:[{name:e.Label,value:e.Values,point:{Key:e.Key,Label:e.Label,Value:null,SeriesKey:e.Key,SeriesName:e.Label,PointType:"Series"}}]}})}}import{use as F}from"echarts/core";import{RadarChart as G}from"echarts/charts";import{RadarComponent as I}from"echarts/components";function me(p,a,g={}){return F([G,I]),K(p,"radar",a,g,N)}export{me as a};
@@ -0,0 +1 @@
1
+ import{a as s,b as w,c,f as T,h as v,i as N,j as P,k as z,l as S,n as K}from"./chunk-QFXXWRD5.js";import{e as $,g as m}from"./chunk-QETOF22L.js";function A(p,o,C,D=!1,E=640){let n="line",a=p,M=w(n,p),L=(e,t)=>a.ShowPatterns?P(e,t):void 0,y=o.palette,l=(e,t)=>T(o.forcedColors?o.text:$(e,y[t%y.length],o.dark,o.read),o.surface,n==="line"||n==="radar"||n==="polar"&&a.PolarType==="Line"?4.5:3.2),V=(e,t,i)=>S(l(t,i),o.surface,a.SelectedKey===e),H=(e,t)=>M.find(i=>i.Key===e&&(!t||i.SeriesKey===t)),x={data:["line","radar","bar","polar"].includes(n)?a.Series.map(e=>e.Label):n==="scatter"?[...new Set(a.Points.map(e=>e.Group||"Observations"))]:["pie","doughnut","nightingale","funnel"].includes(n)?[...new Set(a.Items.map(e=>e.Label))]:[],show:a.ShowLegend,type:"scroll",top:6,left:10,right:10,itemWidth:24,itemHeight:12,selectedMode:!1,pageTextStyle:{color:o.muted},pageIconColor:o.text,textStyle:{color:o.muted,fontSize:11}},B={show:a.ShowLabels,color:m(o.surface),fontSize:11,backgroundColor:o.surface,padding:[2,3],borderRadius:2},F={show:a.ShowTooltip,confine:!0,enterable:!0,backgroundColor:o.surface,borderColor:o.border,textStyle:{color:o.text,fontSize:12},formatter:e=>{let t=e.data?.point;if(!t)return`${s(e.name||"")}${e.value==null||Number.isNaN(e.value)?" \xB7 No data":""}`;let i=t.Date?`<br/>${s(t.Date)}<br/><strong>${s(c(t.Value,a))}</strong>`:t.X!==void 0?`<br/>${s(a.XLabel||"X")}: ${t.X}<br/>${s(a.YLabel||"Y")}: ${t.Y}${t.Size===void 0?"":`<br/>Size: ${t.Size}`}`:`<br/><strong>${s(c(t.Value,a))}</strong>`;return`${s(t.SeriesName?`${t.SeriesName} \xB7 ${t.Label}`:t.Label)}${i}${e.data?.conversion?`<br/>${s(e.data.conversion)}`:""}`}},O={backgroundColor:o.surface,color:y.map((e,t)=>l(e,t)),animation:!!a.EnableAnimation&&!D,animationDuration:300,animationDurationUpdate:150,textStyle:{fontFamily:"Inter,system-ui,sans-serif",color:o.text},aria:{enabled:!0,description:`${a.Title}. ${a.Description||""} Exact values and keyboard selection are in the data table.`},tooltip:F},d={axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:o.muted,fontSize:10,hideOverlap:!0},splitLine:{lineStyle:{color:o.border,type:"dashed"}}},r=p,u=r.Stacking==="Percent",f={...d,type:"category",data:r.Categories.map(e=>e.Label),axisLabel:{...d.axisLabel,width:Math.min(n==="polar"?100:140,E*.2),overflow:"truncate"},splitLine:{show:!1}},b={...d,type:"value",max:u?1:void 0,axisLabel:{...d.axisLabel,formatter:e=>u?`${Math.round(e*100)}%`:c(e,a,!0)}},g=(n==="bar"||n==="polar"&&r.PolarType!=="Line")&&(n==="polar"||!!r.Stacking&&r.Stacking!=="None"),k=r.Series.map((e,t)=>({id:e.Key,name:e.Label,type:n==="line"||n==="polar"&&r.PolarType==="Line"?"line":"bar",coordinateSystem:n==="polar"?"polar":"cartesian2d",stack:r.Stacking&&r.Stacking!=="None"?"total":void 0,smooth:r.LineStyle==="Smooth",step:r.LineStyle==="Step"?"middle":!1,connectNulls:!1,areaStyle:r.ShowArea?{opacity:.1}:void 0,barMaxWidth:38,symbol:v(t),symbolSize:8,itemStyle:{...S(l(e.Color,t),o.surface),decal:L(t,l(e.Color,t))},lineStyle:{width:2.5,color:l(e.Color,t),type:N(t)},label:{...B,color:g?m(l(e.Color,t)):m(o.surface),backgroundColor:g?l(e.Color,t):o.surface,position:g?"inside":n==="bar"&&r.Orientation==="Horizontal"?"right":"top",formatter:i=>u?`${Math.round(Number(i.value)*100)}%`:c(i.data.point.Value,a,!0)},labelLayout:{hideOverlap:!0},emphasis:{focus:"none",scale:!1},blur:{itemStyle:{opacity:1},lineStyle:{opacity:1},label:{opacity:1}},data:e.Values.map((i,h)=>({value:i===null?null:u?i/(r.Series.reduce((X,G)=>X+(G.Values[h]||0),0)||1):i,point:H(r.Categories[h].Key,e.Key),itemStyle:{...V(r.Categories[h].Key,e.Color,t),decal:L(t,l(e.Color,t))},emphasis:{itemStyle:z(l(e.Color,t))}}))}));return n==="polar"?{...O,legend:x,polar:{radius:["12%","72%"],center:["50%","55%"]},angleAxis:{...f,startAngle:90},radiusAxis:b,series:k}:{...O,legend:x,grid:{left:14,right:22,top:a.ShowLegend?48:20,bottom:16,containLabel:!0},xAxis:r.Orientation==="Horizontal"?b:f,yAxis:r.Orientation==="Horizontal"?{...f,inverse:!0}:b,series:k}}import{use as I}from"echarts/core";import{LineChart as R}from"echarts/charts";import{GridComponent as Y}from"echarts/components";function se(p,o,C={}){return I([R,Y]),K(p,"line",o,C,A)}export{se as a};
@@ -0,0 +1 @@
1
+ import{b as W,i as I,j as Z,k as R}from"./chunk-QETOF22L.js";var T={instances:new Map,serial:0},Q;function b(e,n,i){var m=document.createElement(e);return n&&(m.className=n),i!==void 0&&(m.textContent=i),m}function t(e,n,i){return e.setAttribute(n,String(i)),e}function X(e,n){if(e.error||(e.error=t(b("p","blu-common-error"),"role","alert"),e.host.append(e.error)),e.error.textContent=n,e.error.hidden=!n,n&&e.lastError!==n&&e.events.Error){e.lastError=n;try{e.events.Error(n)}catch{}}n||(e.lastError="")}function re(e,n,i,m){if(e=e===void 0?n:Number(e),!Number.isInteger(e)||e<i||e>m)throw Error("Expected an integer between "+i+" and "+m+".");return e}function U(e){var n=T.instances.get(e);n&&(n.dead=!0,n.cleanup.forEach(function(i){i()}),n.owned.forEach(function(i){i.remove()}),n.host._bluChartsSparklineOwner===e&&(delete n.host._bluChartsSparklineOwner,n.host.removeAttribute("data-blu-ready")),T.instances.delete(e))}function ae(e,n){return e.owned.push(n),n}function Y(e,n,i=300,m="Smooth"){var s=typeof e=="string"?JSON.parse(e||"[]"):e||[];if(!Array.isArray(s)||s.length>1e4)throw Error("Points must be a list with at most 10,000 items.");var o=s.map(function(g){if(!g||typeof g.Value!="number"||!Number.isFinite(g.Value))throw Error("Every Sparkline point needs a finite numeric Value.");return g.Value});if(!o.length)return{rows:s,coordinates:[],line:"",area:""};var l=Math.min.apply(null,o),r=Math.max.apply(null,o),a=r-l,p=Math.max(Math.abs(l),Math.abs(r),1),f=l/p,h=r/p-f,u=o.map(function(g,S){return[o.length===1?i/2:6+S*(i-12)/(o.length-1),h?n-6-(g/p-f)/h*(n-12):n/2]}),d=u.map(function(g,S){return(S?"L":"M")+g[0].toFixed(3)+" "+g[1].toFixed(3)}).join(" ");if(m==="Smooth"&&u.length>2){var x=(i-12)/(u.length-1),k=u.slice(1).map(function(g,S){return(g[1]-u[S][1])/x}),y=u.map(function(g,S){if(S===0)return k[0];if(S===u.length-1)return k[S-1];var v=k[S-1],A=k[S];return v*A>0?2*v*A/(v+A):0});d="M"+u[0][0].toFixed(3)+" "+u[0][1].toFixed(3);for(var c=1;c<u.length;c++){var L=u[c-1],O=u[c];d+=" C"+(L[0]+x/3).toFixed(3)+" "+(L[1]+y[c-1]*x/3).toFixed(3)+" "+(O[0]-x/3).toFixed(3)+" "+(O[1]-y[c]*x/3).toFixed(3)+" "+O[0].toFixed(3)+" "+O[1].toFixed(3)}}return{rows:s,coordinates:u,line:d,area:d+" L"+u[u.length-1][0]+" "+(n-4)+" L"+u[0][0]+" "+(n-4)+" Z",min:l,max:r,first:o[0],last:o[o.length-1]}}function ie(e){var n=e.options,i=Math.max(24,Math.round(e.host.clientWidth||300)),m=JSON.stringify([n,i,e.reducedMotion.matches]);let s=(w,E,C={})=>(n.Messages?.[w]??E).replace(/\{(\w+)\}/g,(H,J)=>C[J]??H);if(e.renderSignature===m)return;var o=n.LineStyle||"Smooth";if(!["Straight","Smooth"].includes(o))throw Error("LineStyle must be Straight or Smooth.");var l=re(n.Height,64,24,240),r=JSON.stringify([n.PointsJson,l,i,o]),a=e.geometryKey===r?e.geometry:Y(n.PointsJson,l,i,o),p=n.Animation||(n.AnimateGlow===!1?"Off":"Once");if(!["Off","Once","Continuous"].includes(p))throw Error("Animation must be Off, Once or Continuous.");var f=n.AnimationDuration===void 0?5:Number(n.AnimationDuration);if(!Number.isFinite(f)||f<1||f>60)throw Error("AnimationDuration must be between 1 and 60 seconds.");var h=n.AreaOpacity===void 0?18:Number(n.AreaOpacity);if(!Number.isFinite(h)||h<0||h>100)throw Error("AreaOpacity must be between 0 and 100 percent.");e.animation!==p&&(e.animationPaused=!1),e.animation=p,e.geometryKey=r,e.geometry=a;var u=String(n.Color||"Primary").toLowerCase();if("default primary secondary success processing warning error danger magenta red volcano orange gold lime green cyan blue geekblue purple".split(" ").indexOf(u)<0)throw Error("Unknown ComponentColor.");e.body||(e.body=ae(e,b("div","blu-sparkline")),e.host.append(e.body));for(var d=e.body,x=!!(d.querySelector("details")&&d.querySelector("details").open),k=d.contains(document.activeElement);d.firstChild;)d.removeChild(d.firstChild);if(d.style.setProperty("--blu-sparkline-color","var(--bluui-color-"+u+"-text)"),d.style.setProperty("--blu-sparkline-height",l+"px"),!a.rows.length){d.append(b("p","blu-sparkline__empty",n.EmptyText||"No trend data.")),e.renderSignature=m;return}var y="http://www.w3.org/2000/svg",c=document.createElementNS(y,"svg");t(c,"viewBox","0 0 "+i+" "+l),t(c,"preserveAspectRatio","none"),t(c,"role","img");let L=a.last>a.first?"Rising":a.last<a.first?"Falling":"Unchanged";var O=n.SummaryText||s("TrendSummary","{count} points. {direction} from {first} to {last}. Minimum {min}, maximum {max}.",{count:a.rows.length,direction:s(L,L),first:a.first,last:a.last,min:a.min,max:a.max});t(c,"aria-label",(n.AccessibleLabel||"Trend")+". "+O);var g=document.createElementNS(y,"title");if(g.textContent=(n.AccessibleLabel||"Trend")+". "+O,c.append(g),n.ShowArea!==!1&&a.rows.length>1){var S=document.createElementNS(y,"defs"),v=document.createElementNS(y,"linearGradient");t(v,"id",e.uid+"-area"),t(v,"x1","0%"),t(v,"y1","0%"),t(v,"x2","0%"),t(v,"y2","100%"),[h/100,n.AreaFade===!1?h/100:0].forEach(function(w,E){var C=document.createElementNS(y,"stop");t(C,"offset",E?"100%":"0%"),C.style.stopColor="var(--blu-sparkline-color)",t(C,"stop-opacity",w),v.append(C)}),S.append(v),c.append(S);var A=document.createElementNS(y,"path");t(A,"d",a.area),t(A,"class","blu-sparkline__area"),A.style.fill="url(#"+e.uid+"-area)",c.append(A)}var F=document.createElementNS(y,"path");t(F,"d",a.line),t(F,"class","blu-sparkline__line"),t(F,"vector-effect","non-scaling-stroke"),c.append(F);var j=p!=="Off"&&a.rows.length>1&&!e.reducedMotion.matches;if(!j&&n.ShowEndMarker!==!1||a.rows.length===1){var q=a.coordinates[a.coordinates.length-1],P=document.createElementNS(y,"circle");t(P,"cx",q[0]),t(P,"cy",q[1]),t(P,"r",3),t(P,"class","blu-sparkline__point"),c.append(P)}if(j){var _=document.createElementNS(y,"g");t(_,"class","blu-sparkline__traveler"),t(_,"aria-hidden","true"),[["halo",6],["ring",4.5],["cursor",3]].forEach(function(w){var E=document.createElementNS(y,"circle");t(E,"r",w[1]),t(E,"class","blu-sparkline__"+w[0]),_.append(E)});var N=document.createElementNS(y,"animateMotion"),D=document.createElementNS(y,"animate");t(N,"path",a.line),t(N,"calcMode","spline"),t(N,"keyPoints","0;1"),t(N,"keyTimes","0;1"),t(N,"keySplines","0.22 0.61 0.36 1"),t(D,"attributeName","opacity"),t(D,"values","0;1;1;0"),t(D,"keyTimes","0;0.03;0.96;1"),[N,D].forEach(function(w){t(w,"dur",f+"s"),t(w,"repeatCount",p==="Continuous"?"indefinite":"1"),t(w,"fill","freeze"),_.append(w)}),c.append(_)}if(d.append(c),j&&(p==="Continuous"||f>5)){var V=b("button","blu-sparkline__pause");V.type="button";var B=function(){V.textContent=e.animationPaused?s("ResumeAnimation","Resume animation"):s("PauseAnimation","Pause animation"),e.animationPaused?c.pauseAnimations():c.unpauseAnimations()};V.addEventListener("click",function(){e.animationPaused=!e.animationPaused,B()}),d.append(V),B()}if(n.ShowDataTable){let w=function(){if(!(!M.open||G)){var E=b("table"),C=b("caption","",n.AccessibleLabel||"Trend"),H=b("thead"),J=b("tr");J.append(t(b("th","",s("Point","Point")),"scope","col"),t(b("th","",s("Value","Value")),"scope","col")),H.append(J),E.append(C,H);var K=b("tbody");a.rows.forEach(function(z,te){var $=b("tr");$.append(t(b("th","",z.Label||String(te+1)),"scope","row"),b("td","",String(z.Value))),K.append($)}),E.append(K),M.append(E),G=!0}};var M=b("details","blu-sparkline__data");M.open=x,M.append(b("summary","",s("ViewData","View trend data")));var G=!1;M.addEventListener("toggle",w),d.append(M),w(),k&&M.querySelector("summary").focus()}e.renderSignature=m}function oe(e,n){return{sync:function(i,m,s,o){var l=document.getElementById(i);if(!l)return"Component host was not found.";o=o||i;var r=T.instances.get(o);if(r&&r.host!==l&&(U(o),r=null),l._bluChartsSparklineOwner&&l._bluChartsSparklineOwner!==o&&U(l._bluChartsSparklineOwner),!r){r={host:l,key:o,uid:"blu-charts-trend-"+ ++T.serial,owned:[],cleanup:[],reducedMotion:matchMedia("(prefers-reduced-motion: reduce)")},T.instances.set(o,r);var a=function(){if(!r.dead&&r.options)try{n(r)}catch{}},p=new ResizeObserver(a);p.observe(l),r.reducedMotion.addEventListener("change",a),r.cleanup.push(function(){p.disconnect(),r.reducedMotion.removeEventListener("change",a)})}var f=l.nextElementSibling;f&&f.classList.contains("blu-component-preview")&&(f.hidden=!0),l._bluChartsSparklineOwner=o,r.options=m||{},r.events=s||{},t(l,"data-blu-ready","true");try{return n(r),X(r,""),""}catch(h){return r.renderSignature=void 0,X(r,h.message||String(h)),h.message||String(h)}},destroy:U}}function ee(){return Q||(Q=Object.assign(oe("Sparkline",ie),{geometry:Y}))}function ne(e){if(Z(e.Points,"Points"),e.Messages!==void 0&&(!e.Messages||typeof e.Messages!="object"||Array.isArray(e.Messages)||Object.keys(e.Messages).length>100||!Object.values(e.Messages).every(R)))throw new Error("Messages must contain plain text translations.");if(e.Points.some(n=>!n||!I(n.Value)||n.Label!==void 0&&!R(n.Label)))throw new Error("Points require supported finite values and plain text labels.");for(let n of["AnimateGlow","ShowArea","AreaFade","ShowEndMarker","ShowDataTable"])if(e[n]!==void 0&&typeof e[n]!="boolean")throw new Error(`${n} must be Boolean.`);for(let n of["AccessibleLabel","SummaryText","EmptyText","ExtendedClass"])if(e[n]!==void 0&&!R(e[n]))throw new Error(`${n} must be plain text within the text limit.`);if(e.Color!==void 0&&!W(e.Color))throw new Error("Unknown ComponentColor.");if(e.LineStyle!==void 0&&!["Straight","Smooth"].includes(e.LineStyle))throw new Error("LineStyle must be Straight or Smooth.");if(e.Animation!==void 0&&!["Off","Once","Continuous"].includes(e.Animation))throw new Error("Animation must be Off, Once or Continuous.");if(e.Height!==void 0&&(!Number.isInteger(e.Height)||e.Height<24||e.Height>240))throw new Error("Height must be an integer from 24 to 240.");if(e.AnimationDuration!==void 0&&(!I(e.AnimationDuration)||e.AnimationDuration<1||e.AnimationDuration>60))throw new Error("AnimationDuration must be between 1 and 60.");if(e.AreaOpacity!==void 0&&(!I(e.AreaOpacity)||e.AreaOpacity<0||e.AreaOpacity>100))throw new Error("AreaOpacity must be between 0 and 100.")}function pe(e,n,i={}){let m=ee(),s=document.createElement("div");s.id="blu-charts-sparkline-"+crypto.randomUUID(),e.append(s);let o={...n},l=!1,r=p=>{if(l)throw new Error("Component is destroyed.");let f={...o,...structuredClone(p)};try{ne(f)}catch(k){try{i.Error?.(k.message)}catch{}throw k}let{Points:h,ExtendedClass:u,...d}=f,x=m.sync(s.id,{...d,PointsJson:JSON.stringify(h||[])},i,s.id);if(x)throw new Error(x);o=f,s.className=u||""},a=()=>{l||(l=!0,m.destroy(s.id),s.remove())};try{r({})}catch(p){throw a(),p}return{element:s,update:r,destroy:a}}export{pe as a};
@@ -0,0 +1 @@
1
+ import{a as l,c as d,d as C,e as b,f as p,g as x,k as y,l as g,o as S}from"./chunk-QFXXWRD5.js";import{b as u,d as h,f as s,g as f}from"./chunk-QETOF22L.js";function T(e,t){return{backgroundColor:t.surface,animation:e.EnableAnimation&&!matchMedia("(prefers-reduced-motion: reduce)").matches,animationDuration:350,animationDurationUpdate:180,textStyle:{fontFamily:"Inter, system-ui, sans-serif",color:t.text},aria:{enabled:!0,description:`${e.Title}. ${e.Description||""} Exact values and keyboard selections are available in the chart data table.`},tooltip:{show:e.ShowTooltip,confine:!0,enterable:!0,backgroundColor:t.surface,borderColor:t.border,textStyle:{color:t.text,fontSize:12},extraCssText:"border-radius:8px;box-shadow:0 8px 28px #0002;"}}}function m(e){return{axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:e.muted,fontSize:11}}}function O(e,t){let{min:r,max:n}=b(e),c=h(u(e.ColorScale)?e.ColorScale:"Purple",t.dark,t.read),k=t.forcedColors?t.text:e.ColorScale==="Automatic"?t.palette[0]:e.ColorScale==="Teal"?"#126e5b":c.solid,i=e.ColorScale==="Diverging"&&!t.forcedColors?[p("#ba5943",t.surface,9),p(t.surface,t.surface),p("#6850bf",t.surface,9)]:x(k,t.surface);return{...T(e,t),grid:{left:12,right:12,top:16,bottom:e.ShowLegend?62:12,containLabel:!0},tooltip:{...T(e,t).tooltip,formatter:a=>{let o=C(e,a.dataIndex);return`${l(o.YLabel)} \xB7 ${l(o.XLabel)}<br/><strong>${l(d(o.Value,e))}</strong>`}},xAxis:{...m(t),type:"category",data:e.XCategories.map(a=>a.Label),axisLabel:{...m(t).axisLabel,hideOverlap:!0,width:120,overflow:"truncate"}},yAxis:{...m(t),type:"category",inverse:!0,data:e.YCategories.map(a=>a.Label),axisLabel:{...m(t).axisLabel,width:80,overflow:"truncate"}},visualMap:{show:e.ShowLegend,min:r,max:n,calculable:!1,orient:"horizontal",left:"center",bottom:6,itemWidth:9,itemHeight:130,text:["Higher","Lower"],textGap:9,textStyle:{color:t.muted,fontSize:10},inRange:{color:i}},series:[{type:"heatmap",data:e.Cells.map(a=>({name:a.Key,value:[e.XCategories.findIndex(o=>o.Key===a.XKey),e.YCategories.findIndex(o=>o.Key===a.YKey),a.Value??"-"],itemStyle:{...g(s(i,((a.Value??r)-r)/(n-r)),t.surface,e.SelectedKey===a.Key),borderRadius:4},label:{color:f(s(i,((a.Value??r)-r)/(n-r)))},emphasis:{itemStyle:y(s(i,((a.Value??r)-r)/(n-r)))}})),label:{show:e.ShowLabels,fontSize:10,formatter:a=>d(e.Cells[a.dataIndex].Value,e,!0)},emphasis:{itemStyle:{borderColor:t.text,borderWidth:2,borderType:"solid"}}}]}}import{use as v}from"echarts/core";import{HeatmapChart as L}from"echarts/charts";import{GridComponent as E,VisualMapComponent as w}from"echarts/components";function H(e,t,r,n,c){return S(e,t,r,n,c)}function U(e,t,r={}){return v([L,E,w]),H(e,"heatmap",t,r,O)}export{U as a};
@@ -0,0 +1 @@
1
+ function p(e){return e?["#a16aff","#00cfff","#ff2b91","#ff8a00","#36e377","#e13dff","#4285ff","#ff4056"]:["#7020ff","#0094ff","#ff006e","#ff6a00","#00b94f","#c000ff","#004fff","#ff1738"]}var u=["Default","Primary","Secondary","Success","Processing","Warning","Error","Danger","Magenta","Red","Volcano","Orange","Gold","Lime","Green","Cyan","Blue","GeekBlue","Purple"],l={Default:[["#f5f5f5","#000000","#1d1d1d"],["#272727","rgba(255, 255, 255, 0.95)","#dfdfdf"]],Primary:[["#eef2ff","#4f46e5","#4338ca"],["#282445","#8070ed","#b6acff"]],Secondary:[["#e2e8f0","#475569","#334155"],["#2b3240","#526077","#d6dce5"]],Success:[["#f6ffed","#52c41a","#2d6c0e"],["#162312","#49aa19","#73be4e"]],Processing:[["#e6f4ff","#2681ff","#1054b5"],["#111a2c","#145ec6","#78a7eb"]],Warning:[["#fffbe6","#faad14","#7d560a"],["#2b2111","#d89614","#dda535"]],Error:[["#fff2f0","#ff4d4f","#a33133"],["#2c1618","#dc4446","#ea8d8e"]],Danger:[["#fff2f0","#ff4d4f","#a33133"],["#2c1618","#dc4446","#ea8d8e"]],Magenta:[["#fff0f6","#ed409e","#a9196d"],["#291321","#cf3a8c","#e984b9"]],Red:[["#fff1f0","#e4202a","#b4111e"],["#2a1215","#cd1f28","#f08485"]],Volcano:[["#fff2e8","#fa541c","#aa2d0a"],["#2b1611","#d84a1b","#ed8e68"]],Orange:[["#fff7e6","#fa8c16","#904905"],["#2b1d11","#d87a16","#e89b3e"]],Gold:[["#fffbe6","#faad14","#835404"],["#2b2111","#d89614","#e8b339"]],Lime:[["#fcffe6","#a0d911","#486803"],["#1f2611","#8bbb11","#a9d134"]],Green:[["#f6ffed","#52c41a","#276d09"],["#162312","#49aa19","#6bbf3b"]],Cyan:[["#e6fffb","#13c2c2","#06686c"],["#112123","#13a8a8","#33bcb7"]],Blue:[["#e6f4ff","#2681ff","#0851c8"],["#111a2c","#145ec6","#6fa8ee"]],GeekBlue:[["#f0f5ff","#2f54eb","#1d39c4"],["#131629","#2b4acb","#89a0ea"]],Purple:[["#f9f0ff","#722ed1","#531dab"],["#1a1325","#642ab5","#b593df"]]},s=e=>typeof e=="string"&&u.includes(e),g=e=>s(e)||typeof e=="string"&&/^#(?:[\da-f]{3}|[\da-f]{4}|[\da-f]{6}|[\da-f]{8})$/i.test(e);function m(e,n,f=()=>""){let t=l[e][n?1:0],r=e.toLowerCase();return{soft:f(`--bluui-color-${r}-soft`).trim()||t[0],solid:f(`--bluui-color-${r}-solid`).trim()||t[1],text:f(`--bluui-color-${r}-text`).trim()||t[2]}}function C(e,n,f,t){return s(e)?m(e,f,t).solid:e||n}function o(e){if(e.startsWith("rgb"))return e.match(/[\d.]+/g).slice(0,3).map(Number);let n=e.slice(1),f=n.length<5?n.slice(0,3).split("").map(t=>t+t).join(""):n.slice(0,6);return[0,2,4].map(t=>parseInt(f.slice(t,t+2),16))}function h(e,n){let f=Math.max(0,Math.min(1,n))*(e.length-1),t=Math.min(Math.floor(f),e.length-2),r=f-t,c=o(e[t]),d=o(e[t+1]);return`rgb(${c.map((a,b)=>Math.round(a+(d[b]-a)*r)).join(",")})`}function x(e){let n=o(e).map(t=>{let r=t/255;return r<=.04045?r/12.92:((r+.055)/1.055)**2.4}),f=n[0]*.2126+n[1]*.7152+n[2]*.0722;return(f+.05)/.0656>=4.5?"#182230":1.05/(f+.05)>=4.5?"#fff":"#000"}var i=Object.freeze({records:1e4,observations:1e4,treeNodes:2e3,treeDepth:64,flowNodes:1e3,flowLinks:5e3,mapFeatures:5e3,mapCoordinates:25e4,mapBytes:8e6,text:1e4});function k(e){return typeof e=="number"&&Number.isFinite(e)&&Math.abs(e)<=Number.MAX_SAFE_INTEGER}function w(e,n,f=i.records){if(!Array.isArray(e)||e.length>f)throw new Error(`${n} must be a list with at most ${f} records.`)}function M(e){return typeof e=="string"&&e.length<=i.text}export{p as a,s as b,g as c,m as d,C as e,h as f,x as g,i as h,k as i,w as j,M as k};