@sme.up/doc-alchemist 1.7.0-SNAPSHOT-20251218095937 → 1.7.0-SNAPSHOT-20251218135616

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.
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.dataTableToChart = void 0;
37
37
  const echarts = __importStar(require("echarts"));
38
38
  const charts_data_converter_1 = require("./charts-data-converter");
39
+ const datastructure_utility_1 = require("../../utils/datastructure-utility");
39
40
  /**
40
41
  * Converts SmeupDataTable to chart SVG string
41
42
  * @param dataTable - SmeupDataTable containing the data
@@ -51,11 +52,12 @@ exports.dataTableToChart = dataTableToChart;
51
52
  */
52
53
  async function generateChart(dataTable, chartOptions) {
53
54
  try {
55
+ const options = (0, datastructure_utility_1.mergeSetupOptions)(dataTable.setup?.options?.["EXA"]?.[0] ?? {}, chartOptions ?? {});
54
56
  if (!chartOptions) {
55
- throw new Error("Chart options are required");
57
+ throw new Error("Chart options must be provided");
56
58
  }
57
- const width = Number(chartOptions.ForceWidth ?? 400);
58
- const height = Number(chartOptions.ForceHeight ?? 300);
59
+ const width = Number(options.ForceWidth ?? 400);
60
+ const height = Number(options.ForceHeight ?? 300);
59
61
  // Initialize ECharts with SVG renderer (no canvas needed in recent versions)
60
62
  const chart = echarts.init(null, null, {
61
63
  renderer: "svg",
@@ -64,7 +66,7 @@ async function generateChart(dataTable, chartOptions) {
64
66
  height: height,
65
67
  });
66
68
  // Convert data table to chart configuration
67
- const config = (0, charts_data_converter_1.convertDataTableToChartConfig)(dataTable, chartOptions);
69
+ const config = (0, charts_data_converter_1.convertDataTableToChartConfig)(dataTable, options);
68
70
  // Set chart options
69
71
  chart.setOption(config);
70
72
  console.debug("Chart options", JSON.stringify(config, null, 2));
@@ -1 +1 @@
1
- {"version":3,"file":"charts-converter.js","sourceRoot":"","sources":["../../../src/converters/images/charts-converter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AAGnC,mEAAwE;AAGxE;;;;;GAKG;AACI,MAAM,gBAAgB,GAAG,KAAK,EACnC,SAAyB,EACzB,YAA0B,EACT,EAAE;IACnB,OAAO,MAAM,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACtD,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEF;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,SAAyB,EACzB,YAA0B;IAE1B,IAAI,CAAC;QACH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;QAEvD,6EAA6E;QAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;YACrC,QAAQ,EAAE,KAAK;YACf,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,4CAA4C;QAC5C,MAAM,MAAM,GAAG,IAAA,qDAA6B,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAEtE,oBAAoB;QACpB,KAAK,CAAC,SAAS,CAAC,MAAuB,CAAC,CAAC;QAEzC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEhE,iBAAiB;QACjB,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE5C,UAAU;QACV,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACxF,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import * as echarts from \"echarts\";\nimport type { EChartsOption } from \"echarts\";\nimport { SmeupDataTable } from \"../../types/data-structures/smeupDataTable\";\nimport { convertDataTableToChartConfig } from \"./charts-data-converter\";\nimport { ChartOptions } from \"./charts-converter-types\";\n\n/**\n * Converts SmeupDataTable to chart SVG string\n * @param dataTable - SmeupDataTable containing the data\n * @param chartType - Type of chart (bar, line, pie, scatter)\n * @returns Promise<string> containing the chart SVG\n */\nexport const dataTableToChart = async (\n dataTable: SmeupDataTable,\n chartOptions: ChartOptions,\n): Promise<string> => {\n return await generateChart(dataTable, chartOptions);\n};\n\n/**\n * Generate chart in Node.js environment using SVG renderer\n */\nasync function generateChart(\n dataTable: SmeupDataTable,\n chartOptions: ChartOptions,\n): Promise<string> {\n try {\n if (!chartOptions) {\n throw new Error(\"Chart options are required\");\n }\n const width = Number(chartOptions.ForceWidth ?? 400);\n const height = Number(chartOptions.ForceHeight ?? 300);\n\n // Initialize ECharts with SVG renderer (no canvas needed in recent versions)\n const chart = echarts.init(null, null, {\n renderer: \"svg\",\n ssr: true,\n width: width,\n height: height,\n });\n\n // Convert data table to chart configuration\n const config = convertDataTableToChartConfig(dataTable, chartOptions);\n\n // Set chart options\n chart.setOption(config as EChartsOption);\n\n console.debug(\"Chart options\", JSON.stringify(config, null, 2));\n\n // Get SVG string\n const svgString = chart.renderToSVGString();\n\n // Cleanup\n chart.dispose();\n\n return svgString;\n } catch (error) {\n console.error(\"Error generating chart in Node.js:\", error);\n throw new Error(\n `Failed to generate chart: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"charts-converter.js","sourceRoot":"","sources":["../../../src/converters/images/charts-converter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAmC;AAGnC,mEAAwE;AAExE,6EAAsE;AAEtE;;;;;GAKG;AACI,MAAM,gBAAgB,GAAG,KAAK,EACnC,SAAyB,EACzB,YAA0B,EACT,EAAE;IACnB,OAAO,MAAM,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;AACtD,CAAC,CAAC;AALW,QAAA,gBAAgB,oBAK3B;AAEF;;GAEG;AACH,KAAK,UAAU,aAAa,CAC1B,SAAyB,EACzB,YAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,yCAAiB,EAC/B,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAC5C,YAAY,IAAI,EAAE,CACnB,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC;QAElD,6EAA6E;QAC7E,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE;YACrC,QAAQ,EAAE,KAAK;YACf,GAAG,EAAE,IAAI;YACT,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,4CAA4C;QAC5C,MAAM,MAAM,GAAG,IAAA,qDAA6B,EAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAEjE,oBAAoB;QACpB,KAAK,CAAC,SAAS,CAAC,MAAuB,CAAC,CAAC;QAEzC,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEhE,iBAAiB;QACjB,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE5C,UAAU;QACV,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC3D,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CACxF,CAAC;IACJ,CAAC;AACH,CAAC","sourcesContent":["import * as echarts from \"echarts\";\nimport type { EChartsOption } from \"echarts\";\nimport { SmeupDataTable } from \"../../types/data-structures/smeupDataTable\";\nimport { convertDataTableToChartConfig } from \"./charts-data-converter\";\nimport { ChartOptions } from \"./charts-converter-types\";\nimport { mergeSetupOptions } from \"../../utils/datastructure-utility\";\n\n/**\n * Converts SmeupDataTable to chart SVG string\n * @param dataTable - SmeupDataTable containing the data\n * @param chartType - Type of chart (bar, line, pie, scatter)\n * @returns Promise<string> containing the chart SVG\n */\nexport const dataTableToChart = async (\n dataTable: SmeupDataTable,\n chartOptions: ChartOptions,\n): Promise<string> => {\n return await generateChart(dataTable, chartOptions);\n};\n\n/**\n * Generate chart in Node.js environment using SVG renderer\n */\nasync function generateChart(\n dataTable: SmeupDataTable,\n chartOptions: ChartOptions,\n): Promise<string> {\n try {\n const options = mergeSetupOptions<ChartOptions>(\n dataTable.setup?.options?.[\"EXA\"]?.[0] ?? {},\n chartOptions ?? {},\n );\n\n if (!chartOptions) {\n throw new Error(\"Chart options must be provided\");\n }\n\n const width = Number(options.ForceWidth ?? 400);\n const height = Number(options.ForceHeight ?? 300);\n\n // Initialize ECharts with SVG renderer (no canvas needed in recent versions)\n const chart = echarts.init(null, null, {\n renderer: \"svg\",\n ssr: true,\n width: width,\n height: height,\n });\n\n // Convert data table to chart configuration\n const config = convertDataTableToChartConfig(dataTable, options);\n\n // Set chart options\n chart.setOption(config as EChartsOption);\n\n console.debug(\"Chart options\", JSON.stringify(config, null, 2));\n\n // Get SVG string\n const svgString = chart.renderToSVGString();\n\n // Cleanup\n chart.dispose();\n\n return svgString;\n } catch (error) {\n console.error(\"Error generating chart in Node.js:\", error);\n throw new Error(\n `Failed to generate chart: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n}\n"]}
@@ -1,2 +1,4 @@
1
+ import { ComponentOptions } from "../types/component";
1
2
  import { SmeupDataColumn } from "../types/data-structures/smeupDataTable";
2
3
  export declare const isColumnHidden: (column: SmeupDataColumn) => boolean;
4
+ export declare const mergeSetupOptions: <T extends ComponentOptions>(dataOptions: T, componentOptions: T) => T;
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isColumnHidden = void 0;
3
+ exports.mergeSetupOptions = exports.isColumnHidden = void 0;
4
4
  const isColumnHidden = (column) => {
5
5
  return (Object.prototype.hasOwnProperty.call(column, "visible") &&
6
6
  column.visible === false);
7
7
  };
8
8
  exports.isColumnHidden = isColumnHidden;
9
+ const mergeSetupOptions = (dataOptions, componentOptions) => {
10
+ return { ...dataOptions, ...componentOptions };
11
+ };
12
+ exports.mergeSetupOptions = mergeSetupOptions;
9
13
  //# sourceMappingURL=datastructure-utility.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"datastructure-utility.js","sourceRoot":"","sources":["../../src/utils/datastructure-utility.ts"],"names":[],"mappings":";;;AAEO,MAAM,cAAc,GAAG,CAAC,MAAuB,EAAW,EAAE;IACjE,OAAO,CACL,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QACvD,MAAM,CAAC,OAAO,KAAK,KAAK,CACzB,CAAC;AACJ,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB","sourcesContent":["import { SmeupDataColumn } from \"../types/data-structures/smeupDataTable\";\n\nexport const isColumnHidden = (column: SmeupDataColumn): boolean => {\n return (\n Object.prototype.hasOwnProperty.call(column, \"visible\") &&\n column.visible === false\n );\n};\n"]}
1
+ {"version":3,"file":"datastructure-utility.js","sourceRoot":"","sources":["../../src/utils/datastructure-utility.ts"],"names":[],"mappings":";;;AAGO,MAAM,cAAc,GAAG,CAAC,MAAuB,EAAW,EAAE;IACjE,OAAO,CACL,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;QACvD,MAAM,CAAC,OAAO,KAAK,KAAK,CACzB,CAAC;AACJ,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB;AAEK,MAAM,iBAAiB,GAAG,CAC/B,WAAc,EACd,gBAAmB,EAChB,EAAE;IACL,OAAO,EAAE,GAAG,WAAW,EAAE,GAAG,gBAAgB,EAAE,CAAC;AACjD,CAAC,CAAC;AALW,QAAA,iBAAiB,qBAK5B","sourcesContent":["import { ComponentOptions } from \"../types/component\";\nimport { SmeupDataColumn } from \"../types/data-structures/smeupDataTable\";\n\nexport const isColumnHidden = (column: SmeupDataColumn): boolean => {\n return (\n Object.prototype.hasOwnProperty.call(column, \"visible\") &&\n column.visible === false\n );\n};\n\nexport const mergeSetupOptions = <T extends ComponentOptions>(\n dataOptions: T,\n componentOptions: T,\n): T => {\n return { ...dataOptions, ...componentOptions };\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sme.up/doc-alchemist",
3
- "version": "1.7.0-SNAPSHOT-20251218095937",
3
+ "version": "1.7.0-SNAPSHOT-20251218135616",
4
4
  "description": "Library for generating documents in various formats, including Excel and PDF.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Smeup LAB <info@smeup.com> (https://www.smeup.com/)",