@extend-ai/react-xlsx 0.18.1 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +154 -6
  2. package/dist/chart-renderer-3K2VKB5I.js +5042 -0
  3. package/dist/chart-renderer-3K2VKB5I.js.map +1 -0
  4. package/dist/{chart-renderer-ZUWRNNZT.cjs → chart-renderer-HVOEAQXK.cjs} +5 -5
  5. package/dist/{chart-renderer-ZUWRNNZT.cjs.map → chart-renderer-HVOEAQXK.cjs.map} +1 -1
  6. package/dist/chart-renderer-LHXMRBGR.cjs +5043 -0
  7. package/dist/chart-renderer-LHXMRBGR.cjs.map +1 -0
  8. package/dist/{chart-renderer-HQSQHDCB.js → chart-renderer-R2B4I2HL.js} +2 -2
  9. package/dist/chunk-3O2QY6LA.js +50 -0
  10. package/dist/{chunk-OZLJPZUX.js.map → chunk-3O2QY6LA.js.map} +1 -1
  11. package/dist/chunk-4VX5HTCF.cjs +50 -0
  12. package/dist/chunk-4VX5HTCF.cjs.map +1 -0
  13. package/dist/chunk-CJBI5F6V.cjs +816 -0
  14. package/dist/chunk-CJBI5F6V.cjs.map +1 -0
  15. package/dist/chunk-NBH72POD.js +816 -0
  16. package/dist/chunk-NBH72POD.js.map +1 -0
  17. package/dist/{chunk-OZLJPZUX.js → chunk-O7S3Y6II.js} +10 -6
  18. package/dist/chunk-O7S3Y6II.js.map +1 -0
  19. package/dist/{chunk-FO6MIHX4.cjs → chunk-T5WZHPIN.cjs} +2 -2
  20. package/dist/{chunk-FO6MIHX4.cjs.map → chunk-T5WZHPIN.cjs.map} +1 -1
  21. package/dist/chunk-TYJLNPNE.cjs +26972 -0
  22. package/dist/chunk-TYJLNPNE.cjs.map +1 -0
  23. package/dist/chunk-Y737JKUG.js +26969 -0
  24. package/dist/chunk-Y737JKUG.js.map +1 -0
  25. package/dist/{chunk-WFQGZI2Z.cjs → chunk-ZIO47YMT.cjs} +12 -8
  26. package/dist/chunk-ZIO47YMT.cjs.map +1 -0
  27. package/dist/index.cjs +588 -11267
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.cts +3 -14
  30. package/dist/index.d.ts +3 -14
  31. package/dist/index.js +474 -11153
  32. package/dist/index.js.map +1 -1
  33. package/dist/internal-DSz8QMhK.d.cts +1496 -0
  34. package/dist/internal-DSz8QMhK.d.ts +1496 -0
  35. package/dist/internal.cjs +24 -0
  36. package/dist/internal.cjs.map +1 -0
  37. package/dist/internal.d.cts +3 -0
  38. package/dist/internal.d.ts +3 -0
  39. package/dist/internal.js +23 -0
  40. package/dist/internal.js.map +1 -0
  41. package/dist/{region-map-geography-5E5SVPGS.cjs → region-map-geography-6TGXBY3V.cjs} +2 -2
  42. package/dist/{region-map-geography-5E5SVPGS.cjs.map → region-map-geography-6TGXBY3V.cjs.map} +1 -1
  43. package/dist/{spreadsheet-font-assets-7QMV43XD.cjs → spreadsheet-font-assets-4AHYDTAQ.cjs} +2 -2
  44. package/dist/{spreadsheet-font-assets-7QMV43XD.cjs.map → spreadsheet-font-assets-4AHYDTAQ.cjs.map} +1 -1
  45. package/dist/surface-regl-KW4JL325.js +723 -0
  46. package/dist/surface-regl-KW4JL325.js.map +1 -0
  47. package/dist/surface-regl-MAPCPD7W.cjs +724 -0
  48. package/dist/surface-regl-MAPCPD7W.cjs.map +1 -0
  49. package/dist/{surface-regl-WVLW3SEA.cjs → surface-regl-PWTZWQQS.cjs} +2 -2
  50. package/dist/{surface-regl-WVLW3SEA.cjs.map → surface-regl-PWTZWQQS.cjs.map} +1 -1
  51. package/dist/vanilla.cjs +20 -0
  52. package/dist/vanilla.cjs.map +1 -0
  53. package/dist/vanilla.d.cts +9 -0
  54. package/dist/vanilla.d.ts +9 -0
  55. package/dist/vanilla.js +19 -0
  56. package/dist/vanilla.js.map +1 -0
  57. package/dist/xlsx-worker.js +2888 -34
  58. package/dist/xlsx-worker.js.map +1 -1
  59. package/package.json +23 -3
  60. package/dist/chunk-WFQGZI2Z.cjs.map +0 -1
  61. /package/dist/{chart-renderer-HQSQHDCB.js.map → chart-renderer-R2B4I2HL.js.map} +0 -0
@@ -2,7 +2,7 @@ import {
2
2
  regionMapResources,
3
3
  surfaceRenderer,
4
4
  useChartModule
5
- } from "./chunk-OZLJPZUX.js";
5
+ } from "./chunk-3O2QY6LA.js";
6
6
  import {
7
7
  clipSurfaceBand,
8
8
  normalizeSurfaceValue,
@@ -5037,4 +5037,4 @@ var MemoChartSvg = React.memo(function MemoChartSvg2({
5037
5037
  export {
5038
5038
  MemoChartSvg
5039
5039
  };
5040
- //# sourceMappingURL=chart-renderer-HQSQHDCB.js.map
5040
+ //# sourceMappingURL=chart-renderer-R2B4I2HL.js.map
@@ -0,0 +1,50 @@
1
+ // src/use-chart-module.ts
2
+ import * as React from "react";
3
+ function useChartModule(resource) {
4
+ const snapshot = React.useSyncExternalStore(resource.subscribe, resource.getSnapshot, resource.getServerSnapshot);
5
+ React.useEffect(() => {
6
+ void resource.load().catch(() => {
7
+ });
8
+ }, [resource]);
9
+ if (snapshot.error) throw snapshot.error;
10
+ return snapshot.module;
11
+ }
12
+
13
+ // src/chart-loader.ts
14
+ function createChartModule(importModule) {
15
+ const initialSnapshot = { module: null, error: null };
16
+ let snapshot = initialSnapshot;
17
+ let promise;
18
+ const listeners = /* @__PURE__ */ new Set();
19
+ const publish = (next) => {
20
+ snapshot = next;
21
+ listeners.forEach((listener) => listener());
22
+ };
23
+ return {
24
+ load: () => promise ??= importModule().then((module) => {
25
+ publish({ module, error: null });
26
+ return module;
27
+ }, (error) => {
28
+ publish({ module: null, error: error instanceof Error ? error : new Error("Unable to load chart module.") });
29
+ throw error;
30
+ }),
31
+ getSnapshot: () => snapshot,
32
+ getServerSnapshot: () => initialSnapshot,
33
+ subscribe: (listener) => {
34
+ listeners.add(listener);
35
+ return () => {
36
+ listeners.delete(listener);
37
+ };
38
+ }
39
+ };
40
+ }
41
+ var chartRenderer = createChartModule(() => import("./chart-renderer-R2B4I2HL.js"));
42
+ var regionMapResources = createChartModule(() => import("./region-map-geography-YD54DI3H.js"));
43
+ var surfaceRenderer = createChartModule(() => import("./surface-regl-NWR5ZZ5D.js"));
44
+
45
+ export {
46
+ useChartModule,
47
+ regionMapResources,
48
+ surfaceRenderer
49
+ };
50
+ //# sourceMappingURL=chunk-3O2QY6LA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/use-chart-module.ts","../src/chart-loader.ts"],"sourcesContent":["import * as React from \"react\";\nimport type { ChartModule } from \"./chart-loader\";\n\nexport function useChartModule<T>(resource: ChartModule<T>) {\n const snapshot = React.useSyncExternalStore(resource.subscribe, resource.getSnapshot, resource.getServerSnapshot);\n React.useEffect(() => {\n void resource.load().catch(() => {});\n }, [resource]);\n if (snapshot.error) throw snapshot.error;\n return snapshot.module;\n}\n","import type { XlsxChart } from \"./types\";\n\ntype ModuleSnapshot<T> = { module: T | null; error: unknown };\n\nexport type ChartModule<T> = {\n load: () => Promise<T>;\n getSnapshot: () => ModuleSnapshot<T>;\n getServerSnapshot: () => ModuleSnapshot<T>;\n subscribe: (listener: () => void) => () => void;\n};\n\nfunction createChartModule<T>(importModule: () => Promise<T>): ChartModule<T> {\n const initialSnapshot: ModuleSnapshot<T> = { module: null, error: null };\n let snapshot = initialSnapshot;\n let promise: Promise<T> | undefined;\n const listeners = new Set<() => void>();\n const publish = (next: ModuleSnapshot<T>) => {\n snapshot = next;\n listeners.forEach((listener) => listener());\n };\n\n return {\n load: () => promise ??= importModule().then((module) => {\n publish({ module, error: null });\n return module;\n }, (error: unknown) => {\n publish({ module: null, error: error instanceof Error ? error : new Error(\"Unable to load chart module.\") });\n throw error;\n }),\n getSnapshot: () => snapshot,\n getServerSnapshot: () => initialSnapshot,\n subscribe: (listener) => {\n listeners.add(listener);\n return () => { listeners.delete(listener); };\n }\n };\n}\n\nexport const chartRenderer = createChartModule(() => import(\"./chart-renderer\"));\nexport const regionMapResources = createChartModule(() => import(\"./region-map-geography\"));\nexport const surfaceRenderer = createChartModule(() => import(\"./surface-regl\"));\n\nexport function preloadChartRenderers(chartsBySheet: readonly (readonly XlsxChart[])[]) {\n let hasCharts = false;\n let hasMaps = false;\n let hasSurfaces = false;\n for (const charts of chartsBySheet) {\n for (const chart of charts) {\n hasCharts = true;\n hasMaps ||= chart.chartType === \"RegionMap\";\n hasSurfaces ||= chart.chartType === \"Surface\";\n }\n }\n\n if (hasCharts) void chartRenderer.load().catch(() => {});\n if (hasMaps) void regionMapResources.load().catch(() => {});\n if (hasSurfaces) void surfaceRenderer.load().catch(() => {});\n}\n"],"mappings":";AAAA,YAAY,WAAW;AAGhB,SAAS,eAAkB,UAA0B;AAC1D,QAAM,WAAiB,2BAAqB,SAAS,WAAW,SAAS,aAAa,SAAS,iBAAiB;AAChH,EAAM,gBAAU,MAAM;AACpB,SAAK,SAAS,KAAK,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EACrC,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,SAAS,MAAO,OAAM,SAAS;AACnC,SAAO,SAAS;AAClB;;;ACCA,SAAS,kBAAqB,cAAgD;AAC5E,QAAM,kBAAqC,EAAE,QAAQ,MAAM,OAAO,KAAK;AACvE,MAAI,WAAW;AACf,MAAI;AACJ,QAAM,YAAY,oBAAI,IAAgB;AACtC,QAAM,UAAU,CAAC,SAA4B;AAC3C,eAAW;AACX,cAAU,QAAQ,CAAC,aAAa,SAAS,CAAC;AAAA,EAC5C;AAEA,SAAO;AAAA,IACL,MAAM,MAAM,YAAY,aAAa,EAAE,KAAK,CAAC,WAAW;AACtD,cAAQ,EAAE,QAAQ,OAAO,KAAK,CAAC;AAC/B,aAAO;AAAA,IACT,GAAG,CAAC,UAAmB;AACrB,cAAQ,EAAE,QAAQ,MAAM,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,8BAA8B,EAAE,CAAC;AAC3G,YAAM;AAAA,IACR,CAAC;AAAA,IACD,aAAa,MAAM;AAAA,IACnB,mBAAmB,MAAM;AAAA,IACzB,WAAW,CAAC,aAAa;AACvB,gBAAU,IAAI,QAAQ;AACtB,aAAO,MAAM;AAAE,kBAAU,OAAO,QAAQ;AAAA,MAAG;AAAA,IAC7C;AAAA,EACF;AACF;AAEO,IAAM,gBAAgB,kBAAkB,MAAM,OAAO,8BAAkB,CAAC;AACxE,IAAM,qBAAqB,kBAAkB,MAAM,OAAO,oCAAwB,CAAC;AACnF,IAAM,kBAAkB,kBAAkB,MAAM,OAAO,4BAAgB,CAAC;AAExE,SAAS,sBAAsB,eAAkD;AACtF,MAAI,YAAY;AAChB,MAAI,UAAU;AACd,MAAI,cAAc;AAClB,aAAW,UAAU,eAAe;AAClC,eAAW,SAAS,QAAQ;AAC1B,kBAAY;AACZ,kBAAY,MAAM,cAAc;AAChC,sBAAgB,MAAM,cAAc;AAAA,IACtC;AAAA,EACF;AAEA,MAAI,UAAW,MAAK,cAAc,KAAK,EAAE,MAAM,MAAM;AAAA,EAAC,CAAC;AACvD,MAAI,QAAS,MAAK,mBAAmB,KAAK,EAAE,MAAM,MAAM;AAAA,EAAC,CAAC;AAC1D,MAAI,YAAa,MAAK,gBAAgB,KAAK,EAAE,MAAM,MAAM;AAAA,EAAC,CAAC;AAC7D;","names":[]}
1
+ {"version":3,"sources":["../src/use-chart-module.ts","../src/chart-loader.ts"],"sourcesContent":["import * as React from \"react\";\nimport type { ChartModule } from \"./chart-loader\";\n\nexport function useChartModule<T>(resource: ChartModule<T>) {\n const snapshot = React.useSyncExternalStore(resource.subscribe, resource.getSnapshot, resource.getServerSnapshot);\n React.useEffect(() => {\n void resource.load().catch(() => {});\n }, [resource]);\n if (snapshot.error) throw snapshot.error;\n return snapshot.module;\n}\n","import type { XlsxChart } from \"./types\";\n\ntype ModuleSnapshot<T> = { module: T | null; error: unknown };\n\nexport type ChartModule<T> = {\n load: () => Promise<T>;\n getSnapshot: () => ModuleSnapshot<T>;\n getServerSnapshot: () => ModuleSnapshot<T>;\n subscribe: (listener: () => void) => () => void;\n};\n\nfunction createChartModule<T>(importModule: () => Promise<T>): ChartModule<T> {\n const initialSnapshot: ModuleSnapshot<T> = { module: null, error: null };\n let snapshot = initialSnapshot;\n let promise: Promise<T> | undefined;\n const listeners = new Set<() => void>();\n const publish = (next: ModuleSnapshot<T>) => {\n snapshot = next;\n listeners.forEach((listener) => listener());\n };\n\n return {\n load: () => promise ??= importModule().then((module) => {\n publish({ module, error: null });\n return module;\n }, (error: unknown) => {\n publish({ module: null, error: error instanceof Error ? error : new Error(\"Unable to load chart module.\") });\n throw error;\n }),\n getSnapshot: () => snapshot,\n getServerSnapshot: () => initialSnapshot,\n subscribe: (listener) => {\n listeners.add(listener);\n return () => { listeners.delete(listener); };\n }\n };\n}\n\nexport const chartRenderer = createChartModule(() => import(\"./chart-renderer\"));\nexport const regionMapResources = createChartModule(() => import(\"./region-map-geography\"));\nexport const surfaceRenderer = createChartModule(() => import(\"./surface-regl\"));\n\nexport function preloadChartRenderers(chartsBySheet: readonly (readonly XlsxChart[])[]) {\n let hasCharts = false;\n let hasMaps = false;\n let hasSurfaces = false;\n for (const charts of chartsBySheet) {\n for (const chart of charts) {\n hasCharts = true;\n hasMaps ||= chart.chartType === \"RegionMap\";\n hasSurfaces ||= chart.chartType === \"Surface\";\n }\n }\n\n if (hasCharts) void chartRenderer.load().catch(() => {});\n if (hasMaps) void regionMapResources.load().catch(() => {});\n if (hasSurfaces) void surfaceRenderer.load().catch(() => {});\n}\n"],"mappings":";AAAA,YAAY,WAAW;AAGhB,SAAS,eAAkB,UAA0B;AAC1D,QAAM,WAAiB,2BAAqB,SAAS,WAAW,SAAS,aAAa,SAAS,iBAAiB;AAChH,EAAM,gBAAU,MAAM;AACpB,SAAK,SAAS,KAAK,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EACrC,GAAG,CAAC,QAAQ,CAAC;AACb,MAAI,SAAS,MAAO,OAAM,SAAS;AACnC,SAAO,SAAS;AAClB;;;ACCA,SAAS,kBAAqB,cAAgD;AAC5E,QAAM,kBAAqC,EAAE,QAAQ,MAAM,OAAO,KAAK;AACvE,MAAI,WAAW;AACf,MAAI;AACJ,QAAM,YAAY,oBAAI,IAAgB;AACtC,QAAM,UAAU,CAAC,SAA4B;AAC3C,eAAW;AACX,cAAU,QAAQ,CAAC,aAAa,SAAS,CAAC;AAAA,EAC5C;AAEA,SAAO;AAAA,IACL,MAAM,MAAM,YAAY,aAAa,EAAE,KAAK,CAAC,WAAW;AACtD,cAAQ,EAAE,QAAQ,OAAO,KAAK,CAAC;AAC/B,aAAO;AAAA,IACT,GAAG,CAAC,UAAmB;AACrB,cAAQ,EAAE,QAAQ,MAAM,OAAO,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,8BAA8B,EAAE,CAAC;AAC3G,YAAM;AAAA,IACR,CAAC;AAAA,IACD,aAAa,MAAM;AAAA,IACnB,mBAAmB,MAAM;AAAA,IACzB,WAAW,CAAC,aAAa;AACvB,gBAAU,IAAI,QAAQ;AACtB,aAAO,MAAM;AAAE,kBAAU,OAAO,QAAQ;AAAA,MAAG;AAAA,IAC7C;AAAA,EACF;AACF;AAEO,IAAM,gBAAgB,kBAAkB,MAAM,OAAO,8BAAkB,CAAC;AACxE,IAAM,qBAAqB,kBAAkB,MAAM,OAAO,oCAAwB,CAAC;AACnF,IAAM,kBAAkB,kBAAkB,MAAM,OAAO,4BAAgB,CAAC;","names":[]}
@@ -0,0 +1,50 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }// src/use-chart-module.ts
2
+ var _react = require('react'); var React = _interopRequireWildcard(_react);
3
+ function useChartModule(resource) {
4
+ const snapshot = React.useSyncExternalStore(resource.subscribe, resource.getSnapshot, resource.getServerSnapshot);
5
+ React.useEffect(() => {
6
+ void resource.load().catch(() => {
7
+ });
8
+ }, [resource]);
9
+ if (snapshot.error) throw snapshot.error;
10
+ return snapshot.module;
11
+ }
12
+
13
+ // src/chart-loader.ts
14
+ function createChartModule(importModule) {
15
+ const initialSnapshot = { module: null, error: null };
16
+ let snapshot = initialSnapshot;
17
+ let promise;
18
+ const listeners = /* @__PURE__ */ new Set();
19
+ const publish = (next) => {
20
+ snapshot = next;
21
+ listeners.forEach((listener) => listener());
22
+ };
23
+ return {
24
+ load: () => promise ??= importModule().then((module) => {
25
+ publish({ module, error: null });
26
+ return module;
27
+ }, (error) => {
28
+ publish({ module: null, error: error instanceof Error ? error : new Error("Unable to load chart module.") });
29
+ throw error;
30
+ }),
31
+ getSnapshot: () => snapshot,
32
+ getServerSnapshot: () => initialSnapshot,
33
+ subscribe: (listener) => {
34
+ listeners.add(listener);
35
+ return () => {
36
+ listeners.delete(listener);
37
+ };
38
+ }
39
+ };
40
+ }
41
+ var chartRenderer = createChartModule(() => Promise.resolve().then(() => _interopRequireWildcard(require("./chart-renderer-HVOEAQXK.cjs"))));
42
+ var regionMapResources = createChartModule(() => Promise.resolve().then(() => _interopRequireWildcard(require("./region-map-geography-6TGXBY3V.cjs"))));
43
+ var surfaceRenderer = createChartModule(() => Promise.resolve().then(() => _interopRequireWildcard(require("./surface-regl-PWTZWQQS.cjs"))));
44
+
45
+
46
+
47
+
48
+
49
+ exports.useChartModule = useChartModule; exports.regionMapResources = regionMapResources; exports.surfaceRenderer = surfaceRenderer;
50
+ //# sourceMappingURL=chunk-4VX5HTCF.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/react-xlsx/react-xlsx/packages/react-xlsx/dist/chunk-4VX5HTCF.cjs","../src/use-chart-module.ts","../src/chart-loader.ts"],"names":[],"mappings":"AAAA;ACAA,2EAAuB;AAGhB,SAAS,cAAA,CAAkB,QAAA,EAA0B;AAC1D,EAAA,MAAM,SAAA,EAAiB,KAAA,CAAA,oBAAA,CAAqB,QAAA,CAAS,SAAA,EAAW,QAAA,CAAS,WAAA,EAAa,QAAA,CAAS,iBAAiB,CAAA;AAChH,EAAM,KAAA,CAAA,SAAA,CAAU,CAAA,EAAA,GAAM;AACpB,IAAA,KAAK,QAAA,CAAS,IAAA,CAAK,CAAA,CAAE,KAAA,CAAM,CAAA,EAAA,GAAM;AAAA,IAAC,CAAC,CAAA;AAAA,EACrC,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AACb,EAAA,GAAA,CAAI,QAAA,CAAS,KAAA,EAAO,MAAM,QAAA,CAAS,KAAA;AACnC,EAAA,OAAO,QAAA,CAAS,MAAA;AAClB;ADCA;AACA;AEDA,SAAS,iBAAA,CAAqB,YAAA,EAAgD;AAC5E,EAAA,MAAM,gBAAA,EAAqC,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,KAAK,CAAA;AACvE,EAAA,IAAI,SAAA,EAAW,eAAA;AACf,EAAA,IAAI,OAAA;AACJ,EAAA,MAAM,UAAA,kBAAY,IAAI,GAAA,CAAgB,CAAA;AACtC,EAAA,MAAM,QAAA,EAAU,CAAC,IAAA,EAAA,GAA4B;AAC3C,IAAA,SAAA,EAAW,IAAA;AACX,IAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,QAAA,EAAA,GAAa,QAAA,CAAS,CAAC,CAAA;AAAA,EAC5C,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,CAAA,EAAA,GAAM,QAAA,IAAY,YAAA,CAAa,CAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAA,GAAW;AACtD,MAAA,OAAA,CAAQ,EAAE,MAAA,EAAQ,KAAA,EAAO,KAAK,CAAC,CAAA;AAC/B,MAAA,OAAO,MAAA;AAAA,IACT,CAAA,EAAG,CAAC,KAAA,EAAA,GAAmB;AACrB,MAAA,OAAA,CAAQ,EAAE,MAAA,EAAQ,IAAA,EAAM,KAAA,EAAO,MAAA,WAAiB,MAAA,EAAQ,MAAA,EAAQ,IAAI,KAAA,CAAM,8BAA8B,EAAE,CAAC,CAAA;AAC3G,MAAA,MAAM,KAAA;AAAA,IACR,CAAC,CAAA;AAAA,IACD,WAAA,EAAa,CAAA,EAAA,GAAM,QAAA;AAAA,IACnB,iBAAA,EAAmB,CAAA,EAAA,GAAM,eAAA;AAAA,IACzB,SAAA,EAAW,CAAC,QAAA,EAAA,GAAa;AACvB,MAAA,SAAA,CAAU,GAAA,CAAI,QAAQ,CAAA;AACtB,MAAA,OAAO,CAAA,EAAA,GAAM;AAAE,QAAA,SAAA,CAAU,MAAA,CAAO,QAAQ,CAAA;AAAA,MAAG,CAAA;AAAA,IAC7C;AAAA,EACF,CAAA;AACF;AAEO,IAAM,cAAA,EAAgB,iBAAA,CAAkB,CAAA,EAAA,GAAM,4DAAA,CAAO,+BAAkB,GAAC,CAAA;AACxE,IAAM,mBAAA,EAAqB,iBAAA,CAAkB,CAAA,EAAA,GAAM,4DAAA,CAAO,qCAAwB,GAAC,CAAA;AACnF,IAAM,gBAAA,EAAkB,iBAAA,CAAkB,CAAA,EAAA,GAAM,4DAAA,CAAO,6BAAgB,GAAC,CAAA;AFG/E;AACA;AACE;AACA;AACA;AACF,oIAAC","file":"/home/runner/work/react-xlsx/react-xlsx/packages/react-xlsx/dist/chunk-4VX5HTCF.cjs","sourcesContent":[null,"import * as React from \"react\";\nimport type { ChartModule } from \"./chart-loader\";\n\nexport function useChartModule<T>(resource: ChartModule<T>) {\n const snapshot = React.useSyncExternalStore(resource.subscribe, resource.getSnapshot, resource.getServerSnapshot);\n React.useEffect(() => {\n void resource.load().catch(() => {});\n }, [resource]);\n if (snapshot.error) throw snapshot.error;\n return snapshot.module;\n}\n","import type { XlsxChart } from \"./types\";\n\ntype ModuleSnapshot<T> = { module: T | null; error: unknown };\n\nexport type ChartModule<T> = {\n load: () => Promise<T>;\n getSnapshot: () => ModuleSnapshot<T>;\n getServerSnapshot: () => ModuleSnapshot<T>;\n subscribe: (listener: () => void) => () => void;\n};\n\nfunction createChartModule<T>(importModule: () => Promise<T>): ChartModule<T> {\n const initialSnapshot: ModuleSnapshot<T> = { module: null, error: null };\n let snapshot = initialSnapshot;\n let promise: Promise<T> | undefined;\n const listeners = new Set<() => void>();\n const publish = (next: ModuleSnapshot<T>) => {\n snapshot = next;\n listeners.forEach((listener) => listener());\n };\n\n return {\n load: () => promise ??= importModule().then((module) => {\n publish({ module, error: null });\n return module;\n }, (error: unknown) => {\n publish({ module: null, error: error instanceof Error ? error : new Error(\"Unable to load chart module.\") });\n throw error;\n }),\n getSnapshot: () => snapshot,\n getServerSnapshot: () => initialSnapshot,\n subscribe: (listener) => {\n listeners.add(listener);\n return () => { listeners.delete(listener); };\n }\n };\n}\n\nexport const chartRenderer = createChartModule(() => import(\"./chart-renderer\"));\nexport const regionMapResources = createChartModule(() => import(\"./region-map-geography\"));\nexport const surfaceRenderer = createChartModule(() => import(\"./surface-regl\"));\n\nexport function preloadChartRenderers(chartsBySheet: readonly (readonly XlsxChart[])[]) {\n let hasCharts = false;\n let hasMaps = false;\n let hasSurfaces = false;\n for (const charts of chartsBySheet) {\n for (const chart of charts) {\n hasCharts = true;\n hasMaps ||= chart.chartType === \"RegionMap\";\n hasSurfaces ||= chart.chartType === \"Surface\";\n }\n }\n\n if (hasCharts) void chartRenderer.load().catch(() => {});\n if (hasMaps) void regionMapResources.load().catch(() => {});\n if (hasSurfaces) void surfaceRenderer.load().catch(() => {});\n}\n"]}