@rowsncolumns/charts 27.0.30

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 (281) hide show
  1. package/LICENSE.md +100 -0
  2. package/Readme.md +81 -0
  3. package/dist/cjs/atoms/editing-chart.atom.d.ts +13 -0
  4. package/dist/cjs/atoms/editing-chart.atom.d.ts.map +1 -0
  5. package/dist/cjs/atoms/editing-chart.atom.js +26 -0
  6. package/dist/cjs/basic-chart/basic-chart.d.ts +5 -0
  7. package/dist/cjs/basic-chart/basic-chart.d.ts.map +1 -0
  8. package/dist/cjs/basic-chart/basic-chart.js +2250 -0
  9. package/dist/cjs/basic-chart/helpers.d.ts +12 -0
  10. package/dist/cjs/basic-chart/helpers.d.ts.map +1 -0
  11. package/dist/cjs/basic-chart/helpers.js +105 -0
  12. package/dist/cjs/basic-chart/index.d.ts +5 -0
  13. package/dist/cjs/basic-chart/index.d.ts.map +1 -0
  14. package/dist/cjs/basic-chart/index.js +12 -0
  15. package/dist/cjs/components/dialogs/chart-editor-dialog.d.ts +5 -0
  16. package/dist/cjs/components/dialogs/chart-editor-dialog.d.ts.map +1 -0
  17. package/dist/cjs/components/dialogs/chart-editor-dialog.js +25 -0
  18. package/dist/cjs/components/editors/chart-editor.d.ts +10 -0
  19. package/dist/cjs/components/editors/chart-editor.d.ts.map +1 -0
  20. package/dist/cjs/components/editors/chart-editor.js +631 -0
  21. package/dist/cjs/components/editors/chart-range-input.d.ts +17 -0
  22. package/dist/cjs/components/editors/chart-range-input.d.ts.map +1 -0
  23. package/dist/cjs/components/editors/chart-range-input.js +16 -0
  24. package/dist/cjs/config.d.ts +19 -0
  25. package/dist/cjs/config.d.ts.map +1 -0
  26. package/dist/cjs/config.js +196 -0
  27. package/dist/cjs/hooks/use-chart-editor.d.ts +8 -0
  28. package/dist/cjs/hooks/use-chart-editor.d.ts.map +1 -0
  29. package/dist/cjs/hooks/use-chart-editor.js +29 -0
  30. package/dist/cjs/hooks/use-charts.d.ts +35 -0
  31. package/dist/cjs/hooks/use-charts.d.ts.map +1 -0
  32. package/dist/cjs/hooks/use-charts.js +67 -0
  33. package/dist/cjs/hooks/use-on-create-chart.d.ts +13 -0
  34. package/dist/cjs/hooks/use-on-create-chart.d.ts.map +1 -0
  35. package/dist/cjs/hooks/use-on-create-chart.js +24 -0
  36. package/dist/cjs/hooks/use-on-delete-chart.d.ts +8 -0
  37. package/dist/cjs/hooks/use-on-delete-chart.d.ts.map +1 -0
  38. package/dist/cjs/hooks/use-on-delete-chart.js +19 -0
  39. package/dist/cjs/hooks/use-on-move-chart.d.ts +8 -0
  40. package/dist/cjs/hooks/use-on-move-chart.d.ts.map +1 -0
  41. package/dist/cjs/hooks/use-on-move-chart.js +15 -0
  42. package/dist/cjs/hooks/use-on-resize-chart.d.ts +8 -0
  43. package/dist/cjs/hooks/use-on-resize-chart.d.ts.map +1 -0
  44. package/dist/cjs/hooks/use-on-resize-chart.js +15 -0
  45. package/dist/cjs/hooks/use-on-update-chart.d.ts +9 -0
  46. package/dist/cjs/hooks/use-on-update-chart.d.ts.map +1 -0
  47. package/dist/cjs/hooks/use-on-update-chart.js +15 -0
  48. package/dist/cjs/index.d.ts +11 -0
  49. package/dist/cjs/index.d.ts.map +1 -0
  50. package/dist/cjs/index.js +18 -0
  51. package/dist/cjs/interface/create-chart.d.ts +9 -0
  52. package/dist/cjs/interface/create-chart.d.ts.map +1 -0
  53. package/dist/cjs/interface/create-chart.js +110 -0
  54. package/dist/cjs/interface/delete-chart.d.ts +4 -0
  55. package/dist/cjs/interface/delete-chart.d.ts.map +1 -0
  56. package/dist/cjs/interface/delete-chart.js +26 -0
  57. package/dist/cjs/interface/move-chart.d.ts +5 -0
  58. package/dist/cjs/interface/move-chart.d.ts.map +1 -0
  59. package/dist/cjs/interface/move-chart.js +28 -0
  60. package/dist/cjs/interface/resize-chart.d.ts +5 -0
  61. package/dist/cjs/interface/resize-chart.d.ts.map +1 -0
  62. package/dist/cjs/interface/resize-chart.js +30 -0
  63. package/dist/cjs/interface/update-chart.d.ts +4 -0
  64. package/dist/cjs/interface/update-chart.d.ts.map +1 -0
  65. package/dist/cjs/interface/update-chart.js +29 -0
  66. package/dist/cjs/plotly/basic-chart/basic-chart.d.ts +5 -0
  67. package/dist/cjs/plotly/basic-chart/basic-chart.d.ts.map +1 -0
  68. package/dist/cjs/plotly/basic-chart/basic-chart.js +1586 -0
  69. package/dist/cjs/plotly/basic-chart/helpers.d.ts +20 -0
  70. package/dist/cjs/plotly/basic-chart/helpers.d.ts.map +1 -0
  71. package/dist/cjs/plotly/basic-chart/helpers.js +114 -0
  72. package/dist/cjs/plotly/basic-chart/index.d.ts +5 -0
  73. package/dist/cjs/plotly/basic-chart/index.d.ts.map +1 -0
  74. package/dist/cjs/plotly/basic-chart/index.js +12 -0
  75. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  76. package/dist/cjs/types.d.ts +27 -0
  77. package/dist/cjs/types.d.ts.map +1 -0
  78. package/dist/cjs/types.js +2 -0
  79. package/dist/cjs/utils/aggregation.d.ts +6 -0
  80. package/dist/cjs/utils/aggregation.d.ts.map +1 -0
  81. package/dist/cjs/utils/aggregation.js +127 -0
  82. package/dist/cjs/utils/bar-layout.d.ts +57 -0
  83. package/dist/cjs/utils/bar-layout.d.ts.map +1 -0
  84. package/dist/cjs/utils/bar-layout.js +81 -0
  85. package/dist/cjs/utils/boxplot.d.ts +62 -0
  86. package/dist/cjs/utils/boxplot.d.ts.map +1 -0
  87. package/dist/cjs/utils/boxplot.js +105 -0
  88. package/dist/cjs/utils/bubble.d.ts +52 -0
  89. package/dist/cjs/utils/bubble.d.ts.map +1 -0
  90. package/dist/cjs/utils/bubble.js +139 -0
  91. package/dist/cjs/utils/chart-spec-utils.d.ts +67 -0
  92. package/dist/cjs/utils/chart-spec-utils.d.ts.map +1 -0
  93. package/dist/cjs/utils/chart-spec-utils.js +355 -0
  94. package/dist/cjs/utils/echarts-gl-loader.d.ts +11 -0
  95. package/dist/cjs/utils/echarts-gl-loader.d.ts.map +1 -0
  96. package/dist/cjs/utils/echarts-gl-loader.js +59 -0
  97. package/dist/cjs/utils/error-bars.d.ts +58 -0
  98. package/dist/cjs/utils/error-bars.d.ts.map +1 -0
  99. package/dist/cjs/utils/error-bars.js +154 -0
  100. package/dist/cjs/utils/gradient.d.ts +52 -0
  101. package/dist/cjs/utils/gradient.d.ts.map +1 -0
  102. package/dist/cjs/utils/gradient.js +93 -0
  103. package/dist/cjs/utils/hierarchy.d.ts +28 -0
  104. package/dist/cjs/utils/hierarchy.d.ts.map +1 -0
  105. package/dist/cjs/utils/hierarchy.js +186 -0
  106. package/dist/cjs/utils/histogram.d.ts +46 -0
  107. package/dist/cjs/utils/histogram.d.ts.map +1 -0
  108. package/dist/cjs/utils/histogram.js +125 -0
  109. package/dist/cjs/utils/of-pie.d.ts +101 -0
  110. package/dist/cjs/utils/of-pie.d.ts.map +1 -0
  111. package/dist/cjs/utils/of-pie.js +159 -0
  112. package/dist/cjs/utils/overrides.d.ts +12 -0
  113. package/dist/cjs/utils/overrides.d.ts.map +1 -0
  114. package/dist/cjs/utils/overrides.js +171 -0
  115. package/dist/cjs/utils/radar.d.ts +37 -0
  116. package/dist/cjs/utils/radar.d.ts.map +1 -0
  117. package/dist/cjs/utils/radar.js +70 -0
  118. package/dist/cjs/utils/region-map-loader.d.ts +22 -0
  119. package/dist/cjs/utils/region-map-loader.d.ts.map +1 -0
  120. package/dist/cjs/utils/region-map-loader.js +174 -0
  121. package/dist/cjs/utils/region-map.d.ts +100 -0
  122. package/dist/cjs/utils/region-map.d.ts.map +1 -0
  123. package/dist/cjs/utils/region-map.js +327 -0
  124. package/dist/cjs/utils/stock.d.ts +64 -0
  125. package/dist/cjs/utils/stock.d.ts.map +1 -0
  126. package/dist/cjs/utils/stock.js +153 -0
  127. package/dist/cjs/utils/three-d.d.ts +96 -0
  128. package/dist/cjs/utils/three-d.d.ts.map +1 -0
  129. package/dist/cjs/utils/three-d.js +191 -0
  130. package/dist/cjs/utils/trendline.d.ts +41 -0
  131. package/dist/cjs/utils/trendline.d.ts.map +1 -0
  132. package/dist/cjs/utils/trendline.js +303 -0
  133. package/dist/cjs/utils/waterfall.d.ts +24 -0
  134. package/dist/cjs/utils/waterfall.d.ts.map +1 -0
  135. package/dist/cjs/utils/waterfall.js +61 -0
  136. package/dist/cjs/utils/webgl.d.ts +12 -0
  137. package/dist/cjs/utils/webgl.d.ts.map +1 -0
  138. package/dist/cjs/utils/webgl.js +36 -0
  139. package/dist/cjs/vitest.config.d.ts +3 -0
  140. package/dist/cjs/vitest.config.d.ts.map +1 -0
  141. package/dist/cjs/vitest.config.js +9 -0
  142. package/dist/esm/atoms/editing-chart.atom.d.ts +13 -0
  143. package/dist/esm/atoms/editing-chart.atom.d.ts.map +1 -0
  144. package/dist/esm/atoms/editing-chart.atom.js +12 -0
  145. package/dist/esm/basic-chart/basic-chart.d.ts +5 -0
  146. package/dist/esm/basic-chart/basic-chart.d.ts.map +1 -0
  147. package/dist/esm/basic-chart/basic-chart.js +2343 -0
  148. package/dist/esm/basic-chart/helpers.d.ts +12 -0
  149. package/dist/esm/basic-chart/helpers.d.ts.map +1 -0
  150. package/dist/esm/basic-chart/helpers.js +98 -0
  151. package/dist/esm/basic-chart/index.d.ts +5 -0
  152. package/dist/esm/basic-chart/index.d.ts.map +1 -0
  153. package/dist/esm/basic-chart/index.js +7 -0
  154. package/dist/esm/components/dialogs/chart-editor-dialog.d.ts +5 -0
  155. package/dist/esm/components/dialogs/chart-editor-dialog.d.ts.map +1 -0
  156. package/dist/esm/components/dialogs/chart-editor-dialog.js +19 -0
  157. package/dist/esm/components/editors/chart-editor.d.ts +10 -0
  158. package/dist/esm/components/editors/chart-editor.d.ts.map +1 -0
  159. package/dist/esm/components/editors/chart-editor.js +550 -0
  160. package/dist/esm/components/editors/chart-range-input.d.ts +17 -0
  161. package/dist/esm/components/editors/chart-range-input.d.ts.map +1 -0
  162. package/dist/esm/components/editors/chart-range-input.js +10 -0
  163. package/dist/esm/config.d.ts +19 -0
  164. package/dist/esm/config.d.ts.map +1 -0
  165. package/dist/esm/config.js +161 -0
  166. package/dist/esm/hooks/use-chart-editor.d.ts +8 -0
  167. package/dist/esm/hooks/use-chart-editor.d.ts.map +1 -0
  168. package/dist/esm/hooks/use-chart-editor.js +32 -0
  169. package/dist/esm/hooks/use-charts.d.ts +35 -0
  170. package/dist/esm/hooks/use-charts.d.ts.map +1 -0
  171. package/dist/esm/hooks/use-charts.js +62 -0
  172. package/dist/esm/hooks/use-on-create-chart.d.ts +13 -0
  173. package/dist/esm/hooks/use-on-create-chart.d.ts.map +1 -0
  174. package/dist/esm/hooks/use-on-create-chart.js +19 -0
  175. package/dist/esm/hooks/use-on-delete-chart.d.ts +8 -0
  176. package/dist/esm/hooks/use-on-delete-chart.d.ts.map +1 -0
  177. package/dist/esm/hooks/use-on-delete-chart.js +14 -0
  178. package/dist/esm/hooks/use-on-move-chart.d.ts +8 -0
  179. package/dist/esm/hooks/use-on-move-chart.d.ts.map +1 -0
  180. package/dist/esm/hooks/use-on-move-chart.js +10 -0
  181. package/dist/esm/hooks/use-on-resize-chart.d.ts +8 -0
  182. package/dist/esm/hooks/use-on-resize-chart.d.ts.map +1 -0
  183. package/dist/esm/hooks/use-on-resize-chart.js +10 -0
  184. package/dist/esm/hooks/use-on-update-chart.d.ts +9 -0
  185. package/dist/esm/hooks/use-on-update-chart.d.ts.map +1 -0
  186. package/dist/esm/hooks/use-on-update-chart.js +10 -0
  187. package/dist/esm/index.d.ts +11 -0
  188. package/dist/esm/index.d.ts.map +1 -0
  189. package/dist/esm/index.js +13 -0
  190. package/dist/esm/interface/create-chart.d.ts +9 -0
  191. package/dist/esm/interface/create-chart.d.ts.map +1 -0
  192. package/dist/esm/interface/create-chart.js +126 -0
  193. package/dist/esm/interface/delete-chart.d.ts +4 -0
  194. package/dist/esm/interface/delete-chart.d.ts.map +1 -0
  195. package/dist/esm/interface/delete-chart.js +20 -0
  196. package/dist/esm/interface/move-chart.d.ts +5 -0
  197. package/dist/esm/interface/move-chart.d.ts.map +1 -0
  198. package/dist/esm/interface/move-chart.js +22 -0
  199. package/dist/esm/interface/resize-chart.d.ts +5 -0
  200. package/dist/esm/interface/resize-chart.d.ts.map +1 -0
  201. package/dist/esm/interface/resize-chart.js +24 -0
  202. package/dist/esm/interface/update-chart.d.ts +4 -0
  203. package/dist/esm/interface/update-chart.d.ts.map +1 -0
  204. package/dist/esm/interface/update-chart.js +26 -0
  205. package/dist/esm/plotly/basic-chart/basic-chart.d.ts +5 -0
  206. package/dist/esm/plotly/basic-chart/basic-chart.d.ts.map +1 -0
  207. package/dist/esm/plotly/basic-chart/basic-chart.js +1682 -0
  208. package/dist/esm/plotly/basic-chart/helpers.d.ts +20 -0
  209. package/dist/esm/plotly/basic-chart/helpers.d.ts.map +1 -0
  210. package/dist/esm/plotly/basic-chart/helpers.js +107 -0
  211. package/dist/esm/plotly/basic-chart/index.d.ts +5 -0
  212. package/dist/esm/plotly/basic-chart/index.d.ts.map +1 -0
  213. package/dist/esm/plotly/basic-chart/index.js +7 -0
  214. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  215. package/dist/esm/types.d.ts +27 -0
  216. package/dist/esm/types.d.ts.map +1 -0
  217. package/dist/esm/types.js +1 -0
  218. package/dist/esm/utils/aggregation.d.ts +6 -0
  219. package/dist/esm/utils/aggregation.d.ts.map +1 -0
  220. package/dist/esm/utils/aggregation.js +96 -0
  221. package/dist/esm/utils/bar-layout.d.ts +57 -0
  222. package/dist/esm/utils/bar-layout.d.ts.map +1 -0
  223. package/dist/esm/utils/bar-layout.js +70 -0
  224. package/dist/esm/utils/boxplot.d.ts +62 -0
  225. package/dist/esm/utils/boxplot.d.ts.map +1 -0
  226. package/dist/esm/utils/boxplot.js +91 -0
  227. package/dist/esm/utils/bubble.d.ts +52 -0
  228. package/dist/esm/utils/bubble.d.ts.map +1 -0
  229. package/dist/esm/utils/bubble.js +122 -0
  230. package/dist/esm/utils/chart-spec-utils.d.ts +67 -0
  231. package/dist/esm/utils/chart-spec-utils.d.ts.map +1 -0
  232. package/dist/esm/utils/chart-spec-utils.js +270 -0
  233. package/dist/esm/utils/echarts-gl-loader.d.ts +11 -0
  234. package/dist/esm/utils/echarts-gl-loader.d.ts.map +1 -0
  235. package/dist/esm/utils/echarts-gl-loader.js +51 -0
  236. package/dist/esm/utils/error-bars.d.ts +58 -0
  237. package/dist/esm/utils/error-bars.d.ts.map +1 -0
  238. package/dist/esm/utils/error-bars.js +134 -0
  239. package/dist/esm/utils/gradient.d.ts +52 -0
  240. package/dist/esm/utils/gradient.d.ts.map +1 -0
  241. package/dist/esm/utils/gradient.js +84 -0
  242. package/dist/esm/utils/hierarchy.d.ts +28 -0
  243. package/dist/esm/utils/hierarchy.d.ts.map +1 -0
  244. package/dist/esm/utils/hierarchy.js +150 -0
  245. package/dist/esm/utils/histogram.d.ts +46 -0
  246. package/dist/esm/utils/histogram.d.ts.map +1 -0
  247. package/dist/esm/utils/histogram.js +95 -0
  248. package/dist/esm/utils/of-pie.d.ts +101 -0
  249. package/dist/esm/utils/of-pie.d.ts.map +1 -0
  250. package/dist/esm/utils/of-pie.js +141 -0
  251. package/dist/esm/utils/overrides.d.ts +12 -0
  252. package/dist/esm/utils/overrides.d.ts.map +1 -0
  253. package/dist/esm/utils/overrides.js +159 -0
  254. package/dist/esm/utils/radar.d.ts +37 -0
  255. package/dist/esm/utils/radar.d.ts.map +1 -0
  256. package/dist/esm/utils/radar.js +49 -0
  257. package/dist/esm/utils/region-map-loader.d.ts +22 -0
  258. package/dist/esm/utils/region-map-loader.d.ts.map +1 -0
  259. package/dist/esm/utils/region-map-loader.js +141 -0
  260. package/dist/esm/utils/region-map.d.ts +100 -0
  261. package/dist/esm/utils/region-map.d.ts.map +1 -0
  262. package/dist/esm/utils/region-map.js +266 -0
  263. package/dist/esm/utils/stock.d.ts +64 -0
  264. package/dist/esm/utils/stock.d.ts.map +1 -0
  265. package/dist/esm/utils/stock.js +123 -0
  266. package/dist/esm/utils/three-d.d.ts +96 -0
  267. package/dist/esm/utils/three-d.d.ts.map +1 -0
  268. package/dist/esm/utils/three-d.js +162 -0
  269. package/dist/esm/utils/trendline.d.ts +41 -0
  270. package/dist/esm/utils/trendline.d.ts.map +1 -0
  271. package/dist/esm/utils/trendline.js +257 -0
  272. package/dist/esm/utils/waterfall.d.ts +24 -0
  273. package/dist/esm/utils/waterfall.d.ts.map +1 -0
  274. package/dist/esm/utils/waterfall.js +55 -0
  275. package/dist/esm/utils/webgl.d.ts +12 -0
  276. package/dist/esm/utils/webgl.d.ts.map +1 -0
  277. package/dist/esm/utils/webgl.js +30 -0
  278. package/dist/esm/vitest.config.d.ts +3 -0
  279. package/dist/esm/vitest.config.d.ts.map +1 -0
  280. package/dist/esm/vitest.config.js +7 -0
  281. package/package.json +96 -0
@@ -0,0 +1,17 @@
1
+ import type { SheetRange } from "@rowsncolumns/spreadsheet";
2
+ import React from "react";
3
+ type ChartRangeInputProps = {
4
+ sheetId: number;
5
+ range?: SheetRange;
6
+ onChangeRange(range: SheetRange): void;
7
+ required?: boolean;
8
+ placeholder?: string;
9
+ className?: string;
10
+ };
11
+ /**
12
+ * Formula range input that keeps the raw text the user is typing in
13
+ * local state and only forwards complete, valid ranges to the caller.
14
+ */
15
+ export declare const ChartRangeInput: ({ sheetId, range, onChangeRange, required, placeholder, className, }: ChartRangeInputProps) => React.JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=chart-range-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-range-input.d.ts","sourceRoot":"","sources":["../../../../components/editors/chart-range-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,oBAAoB,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,sEAO7B,oBAAoB,sBAWtB,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChartRangeInput = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var spreadsheet_1 = require("@rowsncolumns/spreadsheet");
6
+ var react_1 = tslib_1.__importDefault(require("react"));
7
+ /**
8
+ * Formula range input that keeps the raw text the user is typing in
9
+ * local state and only forwards complete, valid ranges to the caller.
10
+ */
11
+ var ChartRangeInput = function (_a) {
12
+ var sheetId = _a.sheetId, range = _a.range, onChangeRange = _a.onChangeRange, required = _a.required, placeholder = _a.placeholder, className = _a.className;
13
+ var formulaInput = (0, spreadsheet_1.useFormulaInputState)(sheetId, range);
14
+ return (react_1.default.createElement(spreadsheet_1.FormulaInput, { value: formulaInput.value, onChange: function (value) { return formulaInput.onChange(value, onChangeRange); }, required: required, placeholder: placeholder, className: className }));
15
+ };
16
+ exports.ChartRangeInput = ChartRangeInput;
@@ -0,0 +1,19 @@
1
+ import type { ChartSpec } from "@rowsncolumns/spreadsheet";
2
+ export declare const CHART_TYPES: Array<[string, Array<[string, Partial<ChartSpec>]>]>;
3
+ /**
4
+ * True when a spec is doughnut-shaped: the first-class
5
+ * `chartType: "doughnut"` token, or the two legacy pie encodings —
6
+ * `doughnutHoleSize` on a pie (SDK-authored), or a pie with a nonzero
7
+ * inner radius (the old picker preset wrote
8
+ * `{ chartType: "pie", radius: ["40%", "70%"] }`).
9
+ */
10
+ export declare const isDoughnutSpec: (spec: Partial<ChartSpec>) => boolean;
11
+ /**
12
+ * Derive the picker label for an existing spec — the inverse of the
13
+ * CHART_TYPES presets. Purely read-only: opening a chart in the editor
14
+ * uses this for display and never rewrites the spec, so SDK-authored
15
+ * specs (doughnutHoleSize, PERCENT_STACKED, …) round-trip unchanged.
16
+ * Falls back to the capitalized chartType when no preset matches.
17
+ */
18
+ export declare const getChartPresetLabel: (spec: Partial<ChartSpec>) => string;
19
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AA8F3D,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAa1E,CAAC;AAYJ;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,OAAO,CAAC,SAAS,CAAC,KAAG,OAQzD,CAAC;AAcF;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAAI,MAAM,OAAO,CAAC,SAAS,CAAC,KAAG,MAmB9D,CAAC"}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getChartPresetLabel = exports.isDoughnutSpec = exports.CHART_TYPES = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var LINE_CHART_TYPES = [
6
+ ["Line", { chartType: "line", smooth: false }],
7
+ [
8
+ "Stacked line",
9
+ { chartType: "line", smooth: false, stackedType: "STACKED" },
10
+ ],
11
+ ["Smooth line", { chartType: "line", smooth: true }],
12
+ ];
13
+ var COLUMN_CHART_TYPES = [
14
+ ["Clustered Column", { chartType: "column", stackedType: "UNSTACKED" }],
15
+ ["Stacked column", { chartType: "column", stackedType: "STACKED" }],
16
+ [
17
+ "100% stacked column",
18
+ { chartType: "column", stackedType: "PERCENT_STACKED" },
19
+ ],
20
+ ];
21
+ var BAR_CHART_TYPES = [
22
+ ["Clustered Bar", { chartType: "bar", stackedType: "UNSTACKED" }],
23
+ ["Stacked Bar", { chartType: "bar", stackedType: "STACKED" }],
24
+ ["100% stacked Bar", { chartType: "bar", stackedType: "PERCENT_STACKED" }],
25
+ ];
26
+ var PIE_CHART_TYPES = [
27
+ [
28
+ "2D Pie",
29
+ { chartType: "pie", stackedType: "UNSTACKED", radius: [0, "75%"] },
30
+ ],
31
+ // A first-class doughnut token. The hole is controlled by
32
+ // spec.doughnutHoleSize (0-1 fraction, renderer default 0.5) via the
33
+ // editor's "Chart options" section; the preset deliberately omits it
34
+ // so re-picking "Doughnut" never clobbers an authored hole size.
35
+ ["Doughnut", { chartType: "doughnut", stackedType: "UNSTACKED" }],
36
+ ];
37
+ var BUBBLE_CHART_TYPES = [
38
+ [
39
+ "Bubble",
40
+ {
41
+ chartType: "bubble",
42
+ bubbleLabels: [{ sources: [] }],
43
+ // domains: [{ sources: [] }],
44
+ // series: [{ sources: [] }],
45
+ useFirstRowAsHeaders: true,
46
+ },
47
+ ],
48
+ [
49
+ "Scatter",
50
+ {
51
+ chartType: "scatter",
52
+ bubbleLabels: [{ sources: [] }],
53
+ // domains: [{ sources: [] }],
54
+ // series: [{ sources: [] }],
55
+ useFirstRowAsHeaders: true,
56
+ },
57
+ ],
58
+ ];
59
+ var HIERARCHY_CHART_TYPES = [
60
+ ["Treemap", { chartType: "treemap", useFirstRowAsHeaders: true }],
61
+ ["Sunburst", { chartType: "sunburst", useFirstRowAsHeaders: true }],
62
+ ];
63
+ var STATISTICAL_CHART_TYPES = [
64
+ ["Histogram", { chartType: "histogram" }],
65
+ ["Box & Whisker", { chartType: "boxplot" }],
66
+ ];
67
+ var FLOW_CHART_TYPES = [
68
+ ["Waterfall", { chartType: "waterfall" }],
69
+ ["Funnel", { chartType: "funnel" }],
70
+ ];
71
+ var COMBO_CHART_TYPES = [
72
+ ["Combo (mixed series)", { chartType: "combo" }],
73
+ ];
74
+ var RADAR_CHART_TYPES = [
75
+ ["Radar", { chartType: "radar", radarStyle: "standard" }],
76
+ ["Radar with markers", { chartType: "radar", radarStyle: "marker" }],
77
+ ["Filled radar", { chartType: "radar", radarStyle: "filled" }],
78
+ ];
79
+ var STOCK_CHART_TYPES = [
80
+ ["Stock (HLC)", { chartType: "stock", stockVariant: "HLC" }],
81
+ ["Stock (OHLC)", { chartType: "stock", stockVariant: "OHLC" }],
82
+ ];
83
+ exports.CHART_TYPES = [
84
+ ["Bar", BAR_CHART_TYPES],
85
+ ["Column", COLUMN_CHART_TYPES],
86
+ ["Line", LINE_CHART_TYPES],
87
+ ["Pie", PIE_CHART_TYPES],
88
+ ["Scatter & Bubble", BUBBLE_CHART_TYPES],
89
+ ["Hierarchy", HIERARCHY_CHART_TYPES],
90
+ ["Statistical", STATISTICAL_CHART_TYPES],
91
+ ["Flow", FLOW_CHART_TYPES],
92
+ ["Radar", RADAR_CHART_TYPES],
93
+ ["Stock", STOCK_CHART_TYPES],
94
+ ["Combo", COMBO_CHART_TYPES],
95
+ ];
96
+ /** Parse a radius entry ("40%" | 40 | 0) into a number, NaN-safe. */
97
+ var parseRadiusValue = function (value) {
98
+ if (typeof value === "number")
99
+ return value;
100
+ if (typeof value === "string") {
101
+ var parsed = Number.parseFloat(value);
102
+ return Number.isFinite(parsed) ? parsed : 0;
103
+ }
104
+ return 0;
105
+ };
106
+ /**
107
+ * True when a spec is doughnut-shaped: the first-class
108
+ * `chartType: "doughnut"` token, or the two legacy pie encodings —
109
+ * `doughnutHoleSize` on a pie (SDK-authored), or a pie with a nonzero
110
+ * inner radius (the old picker preset wrote
111
+ * `{ chartType: "pie", radius: ["40%", "70%"] }`).
112
+ */
113
+ var isDoughnutSpec = function (spec) {
114
+ var loose = spec;
115
+ if (loose.chartType === "doughnut")
116
+ return true;
117
+ if (loose.chartType !== "pie")
118
+ return false;
119
+ var holeSize = loose.doughnutHoleSize;
120
+ if (typeof holeSize === "number" && holeSize > 0)
121
+ return true;
122
+ var radius = loose.radius;
123
+ return Array.isArray(radius) && parseRadiusValue(radius[0]) > 0;
124
+ };
125
+ exports.isDoughnutSpec = isDoughnutSpec;
126
+ /**
127
+ * Fields that distinguish presets sharing a chartType, with the value
128
+ * an absent field is equivalent to (e.g. no stackedType renders
129
+ * unstacked, so `{ chartType: "column" }` is "Clustered Column").
130
+ */
131
+ var PRESET_DISCRIMINATORS = [
132
+ ["stackedType", "UNSTACKED"],
133
+ ["smooth", false],
134
+ ["radarStyle", "standard"],
135
+ ["stockVariant", "HLC"],
136
+ ];
137
+ /**
138
+ * Derive the picker label for an existing spec — the inverse of the
139
+ * CHART_TYPES presets. Purely read-only: opening a chart in the editor
140
+ * uses this for display and never rewrites the spec, so SDK-authored
141
+ * specs (doughnutHoleSize, PERCENT_STACKED, …) round-trip unchanged.
142
+ * Falls back to the capitalized chartType when no preset matches.
143
+ */
144
+ var getChartPresetLabel = function (spec) {
145
+ var e_1, _a, e_2, _b;
146
+ var _c;
147
+ // Doughnut first — it has several encodings (see isDoughnutSpec) and
148
+ // the legacy pie-based ones would otherwise match the pie presets.
149
+ if ((0, exports.isDoughnutSpec)(spec))
150
+ return "Doughnut";
151
+ var loose = spec;
152
+ try {
153
+ for (var CHART_TYPES_1 = tslib_1.__values(exports.CHART_TYPES), CHART_TYPES_1_1 = CHART_TYPES_1.next(); !CHART_TYPES_1_1.done; CHART_TYPES_1_1 = CHART_TYPES_1.next()) {
154
+ var _d = tslib_1.__read(CHART_TYPES_1_1.value, 2), presets = _d[1];
155
+ var _loop_1 = function (name_1, config) {
156
+ if (config.chartType !== spec.chartType)
157
+ return "continue";
158
+ var looseConfig = config;
159
+ var matches = PRESET_DISCRIMINATORS.every(function (_a) {
160
+ var _b, _c;
161
+ var _d = tslib_1.__read(_a, 2), key = _d[0], absentValue = _d[1];
162
+ var presetValue = (_b = looseConfig[key]) !== null && _b !== void 0 ? _b : absentValue;
163
+ var specValue = (_c = loose[key]) !== null && _c !== void 0 ? _c : absentValue;
164
+ return presetValue === specValue;
165
+ });
166
+ if (matches)
167
+ return { value: name_1 };
168
+ };
169
+ try {
170
+ for (var presets_1 = (e_2 = void 0, tslib_1.__values(presets)), presets_1_1 = presets_1.next(); !presets_1_1.done; presets_1_1 = presets_1.next()) {
171
+ var _e = tslib_1.__read(presets_1_1.value, 2), name_1 = _e[0], config = _e[1];
172
+ var state_1 = _loop_1(name_1, config);
173
+ if (typeof state_1 === "object")
174
+ return state_1.value;
175
+ }
176
+ }
177
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
178
+ finally {
179
+ try {
180
+ if (presets_1_1 && !presets_1_1.done && (_b = presets_1.return)) _b.call(presets_1);
181
+ }
182
+ finally { if (e_2) throw e_2.error; }
183
+ }
184
+ }
185
+ }
186
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
187
+ finally {
188
+ try {
189
+ if (CHART_TYPES_1_1 && !CHART_TYPES_1_1.done && (_a = CHART_TYPES_1.return)) _a.call(CHART_TYPES_1);
190
+ }
191
+ finally { if (e_1) throw e_1.error; }
192
+ }
193
+ var chartType = (_c = spec.chartType) !== null && _c !== void 0 ? _c : "";
194
+ return chartType.charAt(0).toUpperCase() + chartType.slice(1);
195
+ };
196
+ exports.getChartPresetLabel = getChartPresetLabel;
@@ -0,0 +1,8 @@
1
+ import type { EmbeddedChart, OverlayPosition } from "@rowsncolumns/spreadsheet";
2
+ export declare const useChartEditor: () => {
3
+ onRequestEditChart: (chart: EmbeddedChart) => void;
4
+ updateSelectedChartPosition: (chartId: string | number, overlayPosition: Partial<OverlayPosition>) => void;
5
+ selectedChart: EmbeddedChart | undefined;
6
+ isEditInProgress: boolean;
7
+ };
8
+ //# sourceMappingURL=use-chart-editor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-chart-editor.d.ts","sourceRoot":"","sources":["../../../hooks/use-chart-editor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAKhF,eAAO,MAAM,cAAc;gCAKf,aAAa;2CAWX,MAAM,GAAG,MAAM,mBAAmB,OAAO,CAAC,eAAe,CAAC;;;CAyBvE,CAAC"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useChartEditor = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = require("react");
6
+ var editing_chart_atom_1 = require("../atoms/editing-chart.atom");
7
+ var useChartEditor = function () {
8
+ var _a = tslib_1.__read((0, react_1.useState)(), 2), chart = _a[0], setChart = _a[1];
9
+ var setChartEditorDialogState = (0, editing_chart_atom_1.useSetChartEditorDialogState)();
10
+ var onRequestEditChart = (0, react_1.useCallback)(function (chart) {
11
+ // Open resize dialog
12
+ setChartEditorDialogState(true);
13
+ // Set editing chart
14
+ setChart(chart);
15
+ }, [setChartEditorDialogState]);
16
+ var updateSelectedChartPosition = (0, react_1.useCallback)(function (chartId, overlayPosition) {
17
+ setChart(function (prev) {
18
+ return prev && prev.chartId === chartId
19
+ ? tslib_1.__assign(tslib_1.__assign({}, prev), { position: tslib_1.__assign(tslib_1.__assign({}, prev.position), { overlayPosition: tslib_1.__assign(tslib_1.__assign({}, prev.position.overlayPosition), overlayPosition) }) }) : prev;
20
+ });
21
+ }, []);
22
+ return {
23
+ onRequestEditChart: onRequestEditChart,
24
+ updateSelectedChartPosition: updateSelectedChartPosition,
25
+ selectedChart: chart,
26
+ isEditInProgress: !!chart,
27
+ };
28
+ };
29
+ exports.useChartEditor = useChartEditor;
@@ -0,0 +1,35 @@
1
+ import type { EmbeddedChart } from "@rowsncolumns/spreadsheet";
2
+ import type { UseSpreadsheetProps, useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
3
+ export type UseChartsProps = {
4
+ /**
5
+ * Callback when chart state is changed
6
+ */
7
+ onChangeCharts?: React.Dispatch<React.SetStateAction<EmbeddedChart[]>>;
8
+ /**
9
+ * Create a spreadsheet history
10
+ */
11
+ createHistory: ReturnType<typeof useSpreadsheetState>["createHistory"];
12
+ /**
13
+ * Get formatted value
14
+ */
15
+ getFormattedValue: ReturnType<typeof useSpreadsheetState>["getFormattedValue"];
16
+ /**
17
+ * Get effective value
18
+ */
19
+ getEffectiveValue: ReturnType<typeof useSpreadsheetState>["getEffectiveValue"];
20
+ /**
21
+ * Id Creation strategy
22
+ */
23
+ idCreationStrategy?: UseSpreadsheetProps["idCreationStrategy"];
24
+ };
25
+ export declare const useCharts: ({ onChangeCharts, getFormattedValue, getEffectiveValue, createHistory, idCreationStrategy, }: UseChartsProps) => {
26
+ selectedChart: EmbeddedChart | undefined;
27
+ onRequestEditChart: (chart: EmbeddedChart) => void;
28
+ updateSelectedChartPosition: (chartId: string | number, overlayPosition: Partial<import("@rowsncolumns/spreadsheet").OverlayPosition>) => void;
29
+ onCreateChart: (sheetId: number, activeCell: import("@rowsncolumns/grid").CellInterface, selections: import("@rowsncolumns/grid").SelectionArea<import("@rowsncolumns/spreadsheet").SelectionAttributes>[], chartSpec?: EmbeddedChart) => EmbeddedChart;
30
+ onDeleteChart: (chartId: string | number) => void;
31
+ onMoveChart: (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number) => void;
32
+ onResizeChart: (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number) => void;
33
+ onUpdateChart: (chart: EmbeddedChart) => void;
34
+ };
35
+ //# sourceMappingURL=use-charts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-charts.d.ts","sourceRoot":"","sources":["../../../hooks/use-charts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAUzC,MAAM,MAAM,cAAc,GAAG;IAC3B;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACvE;;OAEG;IACH,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;IACvE;;OAEG;IACH,iBAAiB,EAAE,UAAU,CAC3B,OAAO,mBAAmB,CAC3B,CAAC,mBAAmB,CAAC,CAAC;IACvB;;OAEG;IACH,iBAAiB,EAAE,UAAU,CAC3B,OAAO,mBAAmB,CAC3B,CAAC,mBAAmB,CAAC,CAAC;IACvB;;OAEG;IACH,kBAAkB,CAAC,EAAE,mBAAmB,CAAC,oBAAoB,CAAC,CAAC;CAChE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,8FAMvB,cAAc;;;;;;;;;CA6EhB,CAAC"}
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useCharts = void 0;
4
+ var react_1 = require("react");
5
+ var use_chart_editor_1 = require("./use-chart-editor");
6
+ var use_on_delete_chart_1 = require("./use-on-delete-chart");
7
+ var use_on_move_chart_1 = require("./use-on-move-chart");
8
+ var use_on_resize_chart_1 = require("./use-on-resize-chart");
9
+ var use_on_update_chart_1 = require("./use-on-update-chart");
10
+ var use_on_create_chart_1 = require("./use-on-create-chart");
11
+ var useCharts = function (_a) {
12
+ var onChangeCharts = _a.onChangeCharts, getFormattedValue = _a.getFormattedValue, getEffectiveValue = _a.getEffectiveValue, createHistory = _a.createHistory, idCreationStrategy = _a.idCreationStrategy;
13
+ var _b = (0, use_chart_editor_1.useChartEditor)(), selectedChart = _b.selectedChart, onRequestEditChart = _b.onRequestEditChart, updateSelectedChartPosition = _b.updateSelectedChartPosition;
14
+ var onDeleteChart = (0, use_on_delete_chart_1.useOnDeleteChart)({
15
+ onChangeCharts: onChangeCharts,
16
+ createHistory: createHistory,
17
+ });
18
+ // Charts and embeds
19
+ var handleMoveChart = (0, use_on_move_chart_1.useOnMoveChart)({
20
+ onChangeCharts: onChangeCharts,
21
+ createHistory: createHistory,
22
+ });
23
+ var handleResizeChart = (0, use_on_resize_chart_1.useOnResizeChart)({
24
+ onChangeCharts: onChangeCharts,
25
+ createHistory: createHistory,
26
+ });
27
+ var onMoveChart = (0, react_1.useCallback)(function (chartId, anchorCell, offsetXPixels, offsetYPixels) {
28
+ handleMoveChart(chartId, anchorCell, offsetXPixels, offsetYPixels);
29
+ updateSelectedChartPosition(chartId, {
30
+ anchorCell: anchorCell,
31
+ offsetXPixels: offsetXPixels,
32
+ offsetYPixels: offsetYPixels,
33
+ });
34
+ }, [handleMoveChart, updateSelectedChartPosition]);
35
+ var onResizeChart = (0, react_1.useCallback)(function (chartId, anchorCell, offsetXPixels, offsetYPixels, width, height) {
36
+ handleResizeChart(chartId, anchorCell, offsetXPixels, offsetYPixels, width, height);
37
+ updateSelectedChartPosition(chartId, {
38
+ anchorCell: anchorCell,
39
+ offsetXPixels: offsetXPixels,
40
+ offsetYPixels: offsetYPixels,
41
+ widthPixels: width,
42
+ heightPixels: height,
43
+ });
44
+ }, [handleResizeChart, updateSelectedChartPosition]);
45
+ var onUpdateChart = (0, use_on_update_chart_1.useOnUpdateChart)({
46
+ onChangeCharts: onChangeCharts,
47
+ createHistory: createHistory,
48
+ });
49
+ var onCreateChart = (0, use_on_create_chart_1.useOnCreateChart)({
50
+ onChangeCharts: onChangeCharts,
51
+ createHistory: createHistory,
52
+ getFormattedValue: getFormattedValue,
53
+ getEffectiveValue: getEffectiveValue,
54
+ idCreationStrategy: idCreationStrategy,
55
+ });
56
+ return {
57
+ selectedChart: selectedChart,
58
+ onRequestEditChart: onRequestEditChart,
59
+ updateSelectedChartPosition: updateSelectedChartPosition,
60
+ onCreateChart: onCreateChart,
61
+ onDeleteChart: onDeleteChart,
62
+ onMoveChart: onMoveChart,
63
+ onResizeChart: onResizeChart,
64
+ onUpdateChart: onUpdateChart,
65
+ };
66
+ };
67
+ exports.useCharts = useCharts;
@@ -0,0 +1,13 @@
1
+ import { CellInterface, SelectionArea } from "@rowsncolumns/grid";
2
+ import { type CellData, SelectionAttributes, EmbeddedChart } from "@rowsncolumns/spreadsheet";
3
+ import type { UseSpreadsheetProps, useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
4
+ import { UseChartsProps } from "./use-charts";
5
+ export type UseOnCreateChartProps<T extends CellData> = {
6
+ onChangeCharts: UseSpreadsheetProps<T>["onChangeCharts"];
7
+ createHistory: ReturnType<typeof useSpreadsheetState>["createHistory"];
8
+ getFormattedValue: ReturnType<typeof useSpreadsheetState>["getFormattedValue"];
9
+ getEffectiveValue: ReturnType<typeof useSpreadsheetState>["getEffectiveValue"];
10
+ idCreationStrategy?: UseChartsProps["idCreationStrategy"];
11
+ };
12
+ export declare const useOnCreateChart: <T extends CellData>({ onChangeCharts, getFormattedValue, getEffectiveValue, createHistory, idCreationStrategy, }: UseOnCreateChartProps<T>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], chartSpec?: EmbeddedChart) => EmbeddedChart;
13
+ //# sourceMappingURL=use-on-create-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-on-create-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-create-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,KAAK,QAAQ,EACb,mBAAmB,EACnB,aAAa,EACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAIzC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACtD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;IACvE,iBAAiB,EAAE,UAAU,CAC3B,OAAO,mBAAmB,CAC3B,CAAC,mBAAmB,CAAC,CAAC;IACvB,iBAAiB,EAAE,UAAU,CAC3B,OAAO,mBAAmB,CAC3B,CAAC,mBAAmB,CAAC,CAAC;IACvB,kBAAkB,CAAC,EAAE,cAAc,CAAC,oBAAoB,CAAC,CAAC;CAC3D,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,8FAMlD,qBAAqB,CAAC,CAAC,CAAC,eAGZ,MAAM,cACH,aAAa,cACb,aAAa,CAAC,mBAAmB,CAAC,EAAE,cACpC,aAAa,kBAkB9B,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useOnCreateChart = void 0;
4
+ var react_1 = require("react");
5
+ var create_chart_1 = require("../interface/create-chart");
6
+ var useOnCreateChart = function (_a) {
7
+ var onChangeCharts = _a.onChangeCharts, getFormattedValue = _a.getFormattedValue, getEffectiveValue = _a.getEffectiveValue, createHistory = _a.createHistory, idCreationStrategy = _a.idCreationStrategy;
8
+ return (0, react_1.useCallback)(function (sheetId, activeCell, selections, chartSpec) {
9
+ return (0, create_chart_1.createChart)({
10
+ onChangeCharts: onChangeCharts,
11
+ getFormattedValue: getFormattedValue,
12
+ getEffectiveValue: getEffectiveValue,
13
+ createHistory: createHistory,
14
+ idCreationStrategy: idCreationStrategy,
15
+ })(sheetId, activeCell, selections, chartSpec);
16
+ }, [
17
+ onChangeCharts,
18
+ getFormattedValue,
19
+ getEffectiveValue,
20
+ createHistory,
21
+ idCreationStrategy,
22
+ ]);
23
+ };
24
+ exports.useOnCreateChart = useOnCreateChart;
@@ -0,0 +1,8 @@
1
+ import { type CellData } from "@rowsncolumns/spreadsheet";
2
+ import type { UseSpreadsheetProps, useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
3
+ export type UseOnDeleteChartProps<T extends CellData> = {
4
+ onChangeCharts: UseSpreadsheetProps<T>["onChangeCharts"];
5
+ createHistory: ReturnType<typeof useSpreadsheetState>["createHistory"];
6
+ };
7
+ export declare const useOnDeleteChart: <T extends CellData>({ onChangeCharts, createHistory, }: UseOnDeleteChartProps<T>) => (chartId: string | number) => void;
8
+ //# sourceMappingURL=use-on-delete-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-on-delete-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-delete-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,QAAQ,EAEd,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACtD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,oCAGlD,qBAAqB,CAAC,CAAC,CAAC,uCAc1B,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useOnDeleteChart = void 0;
4
+ var spreadsheet_1 = require("@rowsncolumns/spreadsheet");
5
+ var react_1 = require("react");
6
+ var delete_chart_1 = require("../interface/delete-chart");
7
+ var useOnDeleteChart = function (_a) {
8
+ var onChangeCharts = _a.onChangeCharts, createHistory = _a.createHistory;
9
+ var focusSheet = (0, spreadsheet_1.useFocusSheet)();
10
+ return (0, react_1.useCallback)(function (chartId) {
11
+ (0, delete_chart_1.deleteChart)({
12
+ onChangeCharts: onChangeCharts,
13
+ createHistory: createHistory,
14
+ })(chartId);
15
+ // Keep focus on
16
+ focusSheet === null || focusSheet === void 0 ? void 0 : focusSheet();
17
+ }, [onChangeCharts, createHistory, focusSheet]);
18
+ };
19
+ exports.useOnDeleteChart = useOnDeleteChart;
@@ -0,0 +1,8 @@
1
+ import type { CellData } from "@rowsncolumns/spreadsheet";
2
+ import type { UseSpreadsheetProps, useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
3
+ export type UseOnMoveChartProps<T extends CellData> = {
4
+ onChangeCharts: UseSpreadsheetProps<T>["onChangeCharts"];
5
+ createHistory: ReturnType<typeof useSpreadsheetState>["createHistory"];
6
+ };
7
+ export declare const useOnMoveChart: <T extends CellData>({ onChangeCharts, createHistory, }: UseOnMoveChartProps<T>) => (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number) => void;
8
+ //# sourceMappingURL=use-on-move-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-on-move-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-move-chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACpD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,QAAQ,EAAE,oCAGhD,mBAAmB,CAAC,CAAC,CAAC,6IAUxB,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useOnMoveChart = void 0;
4
+ var react_1 = require("react");
5
+ var move_chart_1 = require("../interface/move-chart");
6
+ var useOnMoveChart = function (_a) {
7
+ var onChangeCharts = _a.onChangeCharts, createHistory = _a.createHistory;
8
+ return (0, react_1.useCallback)(function (chartId, anchorCell, offsetXPixels, offsetYPixels) {
9
+ (0, move_chart_1.moveChart)({
10
+ onChangeCharts: onChangeCharts,
11
+ createHistory: createHistory,
12
+ })(chartId, anchorCell, offsetXPixels, offsetYPixels);
13
+ }, [onChangeCharts, createHistory]);
14
+ };
15
+ exports.useOnMoveChart = useOnMoveChart;
@@ -0,0 +1,8 @@
1
+ import type { CellData } from "@rowsncolumns/spreadsheet";
2
+ import type { UseSpreadsheetProps, useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
3
+ export type UseOnResizeChartProps<T extends CellData> = {
4
+ onChangeCharts: UseSpreadsheetProps<T>["onChangeCharts"];
5
+ createHistory: ReturnType<typeof useSpreadsheetState>["createHistory"];
6
+ };
7
+ export declare const useOnResizeChart: <T extends CellData>({ onChangeCharts, createHistory, }: UseOnResizeChartProps<T>) => (chartId: string | number, anchorCell: import("@rowsncolumns/grid").CellInterface, offsetXPixels: number, offsetYPixels: number, width: number, height: number) => void;
8
+ //# sourceMappingURL=use-on-resize-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-on-resize-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-resize-chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACtD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,oCAGlD,qBAAqB,CAAC,CAAC,CAAC,4KAU1B,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useOnResizeChart = void 0;
4
+ var react_1 = require("react");
5
+ var resize_chart_1 = require("../interface/resize-chart");
6
+ var useOnResizeChart = function (_a) {
7
+ var onChangeCharts = _a.onChangeCharts, createHistory = _a.createHistory;
8
+ return (0, react_1.useCallback)(function (chartId, anchorCell, offsetXPixels, offsetYPixels, width, height) {
9
+ (0, resize_chart_1.resizeChart)({
10
+ onChangeCharts: onChangeCharts,
11
+ createHistory: createHistory,
12
+ })(chartId, anchorCell, offsetXPixels, offsetYPixels, width, height);
13
+ }, [onChangeCharts, createHistory]);
14
+ };
15
+ exports.useOnResizeChart = useOnResizeChart;
@@ -0,0 +1,9 @@
1
+ import type { CellData } from "@rowsncolumns/spreadsheet";
2
+ import type { EmbeddedChart } from "@rowsncolumns/spreadsheet";
3
+ import type { UseSpreadsheetProps, useSpreadsheetState } from "@rowsncolumns/spreadsheet-state";
4
+ export type UseOnUpdateChartProps<T extends CellData> = {
5
+ onChangeCharts: UseSpreadsheetProps<T>["onChangeCharts"];
6
+ createHistory: ReturnType<typeof useSpreadsheetState>["createHistory"];
7
+ };
8
+ export declare const useOnUpdateChart: <T extends CellData>({ onChangeCharts, createHistory, }: UseOnUpdateChartProps<T>) => (chart: EmbeddedChart) => void;
9
+ //# sourceMappingURL=use-on-update-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-on-update-chart.d.ts","sourceRoot":"","sources":["../../../hooks/use-on-update-chart.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAKzC,MAAM,MAAM,qBAAqB,CAAC,CAAC,SAAS,QAAQ,IAAI;IACtD,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,aAAa,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,eAAe,CAAC,CAAC;CACxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,SAAS,QAAQ,EAAE,oCAGlD,qBAAqB,CAAC,CAAC,CAAC,aAEf,aAAa,SAQxB,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useOnUpdateChart = void 0;
4
+ var react_1 = require("react");
5
+ var update_chart_1 = require("../interface/update-chart");
6
+ var useOnUpdateChart = function (_a) {
7
+ var onChangeCharts = _a.onChangeCharts, createHistory = _a.createHistory;
8
+ return (0, react_1.useCallback)(function (chart) {
9
+ (0, update_chart_1.updateChart)({
10
+ onChangeCharts: onChangeCharts,
11
+ createHistory: createHistory,
12
+ })(chart);
13
+ }, [onChangeCharts, createHistory]);
14
+ };
15
+ exports.useOnUpdateChart = useOnUpdateChart;
@@ -0,0 +1,11 @@
1
+ export * from "./hooks/use-charts";
2
+ export * from "./components/dialogs/chart-editor-dialog";
3
+ export * from "./components/editors/chart-editor";
4
+ export * from "./basic-chart";
5
+ export { registerChartGeoMap } from "./utils/region-map-loader";
6
+ export * from "./interface/create-chart";
7
+ export * from "./interface/delete-chart";
8
+ export * from "./interface/move-chart";
9
+ export * from "./interface/resize-chart";
10
+ export * from "./interface/update-chart";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,0CAA0C,CAAC;AACzD,cAAc,mCAAmC,CAAC;AAClD,cAAc,eAAe,CAAC;AAI9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGhE,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.registerChartGeoMap = void 0;
4
+ var tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./hooks/use-charts"), exports);
6
+ tslib_1.__exportStar(require("./components/dialogs/chart-editor-dialog"), exports);
7
+ tslib_1.__exportStar(require("./components/editors/chart-editor"), exports);
8
+ tslib_1.__exportStar(require("./basic-chart"), exports);
9
+ // Region-map (filled map / choropleth) host API — register additional
10
+ // geo scopes (e.g. a US-states GeoJSON) for `chartType: "regionMap"`.
11
+ var region_map_loader_1 = require("./utils/region-map-loader");
12
+ Object.defineProperty(exports, "registerChartGeoMap", { enumerable: true, get: function () { return region_map_loader_1.registerChartGeoMap; } });
13
+ // Chart interface functions
14
+ tslib_1.__exportStar(require("./interface/create-chart"), exports);
15
+ tslib_1.__exportStar(require("./interface/delete-chart"), exports);
16
+ tslib_1.__exportStar(require("./interface/move-chart"), exports);
17
+ tslib_1.__exportStar(require("./interface/resize-chart"), exports);
18
+ tslib_1.__exportStar(require("./interface/update-chart"), exports);
@@ -0,0 +1,9 @@
1
+ import { CellInterface, SelectionArea } from "@rowsncolumns/grid";
2
+ import { type CellData, SelectionAttributes, EmbeddedChart } from "@rowsncolumns/spreadsheet";
3
+ import type { UseOnCreateChartProps } from "../hooks/use-on-create-chart";
4
+ /**
5
+ * Ensures endIndex is at least minValue.
6
+ */
7
+ export declare const ensureValidEndIndex: (endIndex: number | undefined, minValue: number) => number;
8
+ export declare const createChart: <T extends CellData>({ onChangeCharts, getFormattedValue, getEffectiveValue, createHistory, idCreationStrategy, }: UseOnCreateChartProps<T>) => (sheetId: number, activeCell: CellInterface, selections: SelectionArea<SelectionAttributes>[], chartSpec?: EmbeddedChart) => EmbeddedChart;
9
+ //# sourceMappingURL=create-chart.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-chart.d.ts","sourceRoot":"","sources":["../../../interface/create-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EACL,KAAK,QAAQ,EACb,mBAAmB,EACnB,aAAa,EAKd,MAAM,2BAA2B,CAAC;AAInC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAa1E;;GAEG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,GAAG,SAAS,EAC5B,UAAU,MAAM,KACf,MAAkF,CAAC;AAEtF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,EAAE,8FAM7C,qBAAqB,CAAC,CAAC,CAAC,MAEvB,SAAS,MAAM,EACf,YAAY,aAAa,EACzB,YAAY,aAAa,CAAC,mBAAmB,CAAC,EAAE,EAChD,YAAY,aAAa,kBAyJ5B,CAAC"}