@sme.up/doc-alchemist 1.6.0-SNAPSHOT-20251212084649 → 1.6.0-SNAPSHOT-20251212094904

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 (55) hide show
  1. package/dist/converters/images/charts-converter-types.d.ts +15 -0
  2. package/dist/converters/images/charts-converter-types.js +11 -0
  3. package/dist/converters/images/charts-converter-types.js.map +1 -0
  4. package/dist/converters/images/{charts-generator.d.ts → charts-converter.d.ts} +4 -4
  5. package/dist/converters/images/charts-converter.js +82 -0
  6. package/dist/converters/images/charts-converter.js.map +1 -0
  7. package/dist/converters/images/charts-data-converter.d.ts +7 -0
  8. package/dist/converters/images/charts-data-converter.js +94 -0
  9. package/dist/converters/images/charts-data-converter.js.map +1 -0
  10. package/dist/converters/pdf/pdfmake/adapters/chart-adapter.d.ts +38 -0
  11. package/dist/converters/pdf/pdfmake/adapters/chart-adapter.js +117 -0
  12. package/dist/converters/pdf/pdfmake/adapters/chart-adapter.js.map +1 -0
  13. package/dist/converters/pdf/pdfmake/{image-adapter.d.ts → adapters/image-adapter.d.ts} +1 -1
  14. package/dist/converters/pdf/pdfmake/adapters/image-adapter.js.map +1 -0
  15. package/dist/converters/pdf/pdfmake/{layout-adapter.d.ts → adapters/layout-adapter.d.ts} +1 -1
  16. package/dist/converters/pdf/pdfmake/adapters/layout-adapter.js.map +1 -0
  17. package/dist/converters/pdf/pdfmake/adapters/page-element-adapter.js.map +1 -0
  18. package/dist/converters/pdf/pdfmake/{table-adapter.d.ts → adapters/table-adapter.d.ts} +1 -1
  19. package/dist/converters/pdf/pdfmake/{table-adapter.js → adapters/table-adapter.js} +5 -5
  20. package/dist/converters/pdf/pdfmake/adapters/table-adapter.js.map +1 -0
  21. package/dist/converters/pdf/pdfmake/pdfmake.types.d.ts +10 -2
  22. package/dist/converters/pdf/pdfmake/pdfmake.types.js.map +1 -1
  23. package/dist/converters/pdf-converter.d.ts +0 -2
  24. package/dist/converters/pdf-converter.js +12 -12
  25. package/dist/converters/pdf-converter.js.map +1 -1
  26. package/dist/index.d.ts +4 -4
  27. package/dist/index.js +5 -6
  28. package/dist/index.js.map +1 -1
  29. package/dist/types/component.d.ts +2 -2
  30. package/dist/types/component.js.map +1 -1
  31. package/dist/types/data-structures/smeupSch.d.ts +1 -1
  32. package/dist/types/data-structures/smeupSch.js.map +1 -1
  33. package/dist/types/general.d.ts +4 -0
  34. package/dist/types/general.js +6 -1
  35. package/dist/types/general.js.map +1 -1
  36. package/dist/types/index.d.ts +0 -5
  37. package/dist/types/index.js.map +1 -1
  38. package/dist/utils/datastructure-utility.js.map +1 -1
  39. package/package.json +1 -2
  40. package/dist/converters/images/charts-generator.js +0 -287
  41. package/dist/converters/images/charts-generator.js.map +0 -1
  42. package/dist/converters/pdf/pdfmake/image-adapter.js.map +0 -1
  43. package/dist/converters/pdf/pdfmake/layout-adapter.js.map +0 -1
  44. package/dist/converters/pdf/pdfmake/page-element-adapter.js.map +0 -1
  45. package/dist/converters/pdf/pdfmake/table-adapter.js.map +0 -1
  46. package/dist/converters/pdf/sch-converter.d.ts +0 -3
  47. package/dist/converters/pdf/sch-converter.js +0 -136
  48. package/dist/converters/pdf/sch-converter.js.map +0 -1
  49. package/dist/types/helpers.d.ts +0 -4
  50. package/dist/types/helpers.js +0 -9
  51. package/dist/types/helpers.js.map +0 -1
  52. /package/dist/converters/pdf/pdfmake/{image-adapter.js → adapters/image-adapter.js} +0 -0
  53. /package/dist/converters/pdf/pdfmake/{layout-adapter.js → adapters/layout-adapter.js} +0 -0
  54. /package/dist/converters/pdf/pdfmake/{page-element-adapter.d.ts → adapters/page-element-adapter.d.ts} +0 -0
  55. /package/dist/converters/pdf/pdfmake/{page-element-adapter.js → adapters/page-element-adapter.js} +0 -0
@@ -1,10 +1,8 @@
1
1
  import { SmeupDataTable } from "../types/data-structures/smeupDataTable";
2
- import { SmeupSch } from "../types/data-structures/smeupSch";
3
2
  import { WebupManagerData, GenericObject } from "../types/index";
4
3
  import type { PdfMakeConverterContext } from "./pdf/pdfmake/pdfmake.types";
5
4
  import type { TDocumentDefinitions } from "pdfmake/interfaces";
6
5
  import { fillPdfForm, FillPdfFormOptions } from "./pdf/form-filler";
7
- export declare const schedaToPdfData: (sch: SmeupSch, webupManagerData: WebupManagerData) => Promise<Buffer>;
8
6
  export declare const dataTableToPdfData: (component: {
9
7
  smeupDataTable: SmeupDataTable;
10
8
  props: GenericObject;
@@ -1,12 +1,11 @@
1
1
  "use strict";
2
2
  /* eslint-disable @typescript-eslint/no-unused-vars */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.fillPdfForm = exports.pdfmakeDocumentToPdfData = exports.dataTableToPdfData = exports.schedaToPdfData = void 0;
4
+ exports.fillPdfForm = exports.pdfmakeDocumentToPdfData = exports.dataTableToPdfData = void 0;
5
5
  const index_1 = require("../types/index");
6
6
  const commons_utility_1 = require("../utils/commons-utility");
7
7
  const matrix_converter_1 = require("./excel/matrix-converter");
8
8
  const matrix_converter_2 = require("./pdf/matrix-converter");
9
- const sch_converter_1 = require("./pdf/sch-converter");
10
9
  const pdf_lib_1 = require("pdf-lib");
11
10
  const cover_renderer_1 = require("./pdf/cover-renderer");
12
11
  const gfx_data_1 = require("../assets/gfx-data");
@@ -15,15 +14,12 @@ const form_filler_1 = require("./pdf/form-filler");
15
14
  Object.defineProperty(exports, "fillPdfForm", { enumerable: true, get: function () { return form_filler_1.fillPdfForm; } });
16
15
  const adapter_processor_1 = require("./pdf/pdfmake/adapter-processor");
17
16
  const adapter_registry_1 = require("./pdf/pdfmake/adapter-registry");
18
- const table_adapter_1 = require("./pdf/pdfmake/table-adapter");
19
- const image_adapter_1 = require("./pdf/pdfmake/image-adapter");
20
- const page_element_adapter_1 = require("./pdf/pdfmake/page-element-adapter");
21
- const layout_adapter_1 = require("./pdf/pdfmake/layout-adapter");
22
- const schedaToPdfData = async (sch, webupManagerData) => {
23
- const doc = await (0, sch_converter_1.schedaToPdfDoc)(sch);
24
- return Buffer.from(doc.output("arraybuffer"));
25
- };
26
- exports.schedaToPdfData = schedaToPdfData;
17
+ const table_adapter_1 = require("./pdf/pdfmake/adapters/table-adapter");
18
+ const image_adapter_1 = require("./pdf/pdfmake/adapters/image-adapter");
19
+ const chart_adapter_1 = require("./pdf/pdfmake/adapters/chart-adapter");
20
+ const page_element_adapter_1 = require("./pdf/pdfmake/adapters/page-element-adapter");
21
+ const layout_adapter_1 = require("./pdf/pdfmake/adapters/layout-adapter");
22
+ // `schedaToPdfData` removed: `sch-converter.ts` deleted and references removed
27
23
  const dataTableToPdfData = async (component, webupManagerData) => {
28
24
  const workbook = (0, matrix_converter_1.dataTableToExcelWorkbook)(component, index_1.SupportedExportFormats.XLSX, webupManagerData);
29
25
  const worksheet = workbook.getWorksheet(1);
@@ -52,13 +48,17 @@ const pdfmakeDocumentToPdfData = async (documentDefinition, context) => {
52
48
  const registry = (0, adapter_registry_1.createAdapterRegistry)();
53
49
  registry.register("table", (0, table_adapter_1.dataTableAdapter)());
54
50
  registry.register("image", (0, image_adapter_1.imageAdapter)());
51
+ registry.register("chart", (0, chart_adapter_1.chartAdapter)());
55
52
  registry.register("footer", (0, page_element_adapter_1.footerAdapter)());
56
53
  registry.register("header", (0, page_element_adapter_1.headerAdapter)());
57
54
  registry.register("layout", (0, layout_adapter_1.layoutAdapter)());
58
55
  context.pdfDocument = documentDefinition;
59
56
  // Pre-process document with adapters
60
57
  const processedDoc = await (0, adapter_processor_1.preProcessPdfMakeDocument)(documentDefinition, context, registry);
61
- console.debug("Processed pdfmake document:", JSON.stringify(processedDoc, null, 2));
58
+ // console.debug(
59
+ // "Processed pdfmake document:",
60
+ // JSON.stringify(processedDoc, null, 2),
61
+ // );
62
62
  // Render the document using pdfmake
63
63
  return (0, pdfmake_renderer_1.renderPdfMakeDocument)(processedDoc);
64
64
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-converter.js","sourceRoot":"","sources":["../../src/converters/pdf-converter.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { SmeupDataTable } from \"../types/data-structures/smeupDataTable\";\nimport { SmeupSch } from \"../types/data-structures/smeupSch\";\nimport {\n WebupManagerData,\n GenericObject,\n SupportedExportFormats,\n} from \"../types/index\";\nimport { convertToBuffer } from \"../utils/commons-utility\";\nimport { dataTableToExcelWorkbook } from \"./excel/matrix-converter\";\nimport { dataTableToPdfDoc } from \"./pdf/matrix-converter\";\nimport { schedaToPdfDoc } from \"./pdf/sch-converter\";\nimport { PDFDocument } from \"pdf-lib\";\nimport { createCoverPdf } from \"./pdf/cover-renderer\";\nimport { logoBase64 } from \"../assets/gfx-data\";\nimport { renderPdfMakeDocument } from \"./pdf/pdfmake-renderer\";\nimport type { PdfMakeConverterContext } from \"./pdf/pdfmake/pdfmake.types\";\nimport type { TDocumentDefinitions } from \"pdfmake/interfaces\";\nimport { fillPdfForm, FillPdfFormOptions } from \"./pdf/form-filler\";\nimport { preProcessPdfMakeDocument } from \"./pdf/pdfmake/adapter-processor\";\nimport { createAdapterRegistry } from \"./pdf/pdfmake/adapter-registry\";\nimport { dataTableAdapter } from \"./pdf/pdfmake/table-adapter\";\nimport { imageAdapter } from \"./pdf/pdfmake/image-adapter\";\nimport {\n footerAdapter,\n headerAdapter,\n} from \"./pdf/pdfmake/page-element-adapter\";\nimport { layoutAdapter } from \"./pdf/pdfmake/layout-adapter\";\n\nexport const schedaToPdfData = async (\n sch: SmeupSch,\n webupManagerData: WebupManagerData,\n): Promise<Buffer> => {\n const doc = await schedaToPdfDoc(sch);\n return Buffer.from(doc.output(\"arraybuffer\"));\n};\n\nexport const dataTableToPdfData = async (\n component: {\n smeupDataTable: SmeupDataTable;\n props: GenericObject;\n },\n webupManagerData: WebupManagerData,\n): Promise<Buffer | Uint8Array> => {\n const workbook = dataTableToExcelWorkbook(\n component,\n SupportedExportFormats.XLSX,\n webupManagerData,\n );\n\n const worksheet = workbook.getWorksheet(1);\n if (worksheet) {\n const title = component.smeupDataTable.cover?.titles?.[\"T01\"] ?? \"\";\n const subtitle = component.smeupDataTable.cover?.titles?.[\"T02\"] ?? \"\";\n const subtitle2 = component.smeupDataTable.cover?.titles?.[\"T03\"] ?? \"\";\n const image = component.smeupDataTable.cover?.image ?? \"\";\n const logo = component.smeupDataTable.cover?.logo ?? logoBase64;\n const cover = createCoverPdf(image, logo, title, subtitle, subtitle2);\n const pdfDoc = await dataTableToPdfDoc(worksheet, webupManagerData, {\n logoBase64: logo,\n title: title,\n subtitle: subtitle,\n });\n const pdfBuffer = pdfDoc.output(\"arraybuffer\");\n return convertToBuffer(await appendPdfDocs([cover, pdfBuffer]));\n } else {\n throw new Error(\"Worksheet not found in the workbook\");\n }\n};\n\nexport const pdfmakeDocumentToPdfData = async (\n documentDefinition: TDocumentDefinitions,\n context: Partial<PdfMakeConverterContext>,\n): Promise<Buffer> => {\n // Register adapters\n const registry = createAdapterRegistry();\n registry.register(\"table\", dataTableAdapter());\n registry.register(\"image\", imageAdapter());\n registry.register(\"footer\", footerAdapter());\n registry.register(\"header\", headerAdapter());\n registry.register(\"layout\", layoutAdapter());\n\n context.pdfDocument = documentDefinition;\n\n // Pre-process document with adapters\n const processedDoc = await preProcessPdfMakeDocument(\n documentDefinition,\n context,\n registry,\n );\n\n console.debug(\n \"Processed pdfmake document:\",\n JSON.stringify(processedDoc, null, 2),\n );\n // Render the document using pdfmake\n return renderPdfMakeDocument(processedDoc);\n};\n\n/**\n * Unisce più PDF (in formato ArrayBuffer/Uint8Array/Buffer) in un unico PDF.\n * @param pdfBuffers Array di buffer PDF (es. ottenuti da jsPDF.output(\"arraybuffer\"))\n * @returns Buffer del PDF unito\n */\nconst appendPdfDocs = async (\n pdfBuffers: (Uint8Array | ArrayBuffer | Buffer)[],\n): Promise<Uint8Array> => {\n if (!pdfBuffers.length) throw new Error(\"No PDF buffers to append\");\n\n // Crea un nuovo documento PDF vuoto\n const mergedPdf = await PDFDocument.create();\n\n for (const pdfBytes of pdfBuffers) {\n const srcPdf = await PDFDocument.load(pdfBytes);\n const copiedPages = await mergedPdf.copyPages(\n srcPdf,\n srcPdf.getPageIndices(),\n );\n copiedPages.forEach(page => mergedPdf.addPage(page));\n }\n\n const mergedBytes = await mergedPdf.save();\n return mergedBytes;\n};\n\n// Re-export form filler function and types\nexport { fillPdfForm };\nexport type { FillPdfFormOptions };\n"]}
1
+ {"version":3,"file":"pdf-converter.js","sourceRoot":"","sources":["../../src/converters/pdf-converter.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\n\nimport { SmeupDataTable } from \"../types/data-structures/smeupDataTable\";\nimport { SmeupSch } from \"../types/data-structures/smeupSch\";\nimport {\n WebupManagerData,\n GenericObject,\n SupportedExportFormats,\n} from \"../types/index\";\nimport { convertToBuffer } from \"../utils/commons-utility\";\nimport { dataTableToExcelWorkbook } from \"./excel/matrix-converter\";\nimport { dataTableToPdfDoc } from \"./pdf/matrix-converter\";\nimport { PDFDocument } from \"pdf-lib\";\nimport { createCoverPdf } from \"./pdf/cover-renderer\";\nimport { logoBase64 } from \"../assets/gfx-data\";\nimport { renderPdfMakeDocument } from \"./pdf/pdfmake-renderer\";\nimport type { PdfMakeConverterContext } from \"./pdf/pdfmake/pdfmake.types\";\nimport type { TDocumentDefinitions } from \"pdfmake/interfaces\";\nimport { fillPdfForm, FillPdfFormOptions } from \"./pdf/form-filler\";\nimport { preProcessPdfMakeDocument } from \"./pdf/pdfmake/adapter-processor\";\nimport { createAdapterRegistry } from \"./pdf/pdfmake/adapter-registry\";\nimport { dataTableAdapter } from \"./pdf/pdfmake/adapters/table-adapter\";\nimport { imageAdapter } from \"./pdf/pdfmake/adapters/image-adapter\";\nimport { chartAdapter } from \"./pdf/pdfmake/adapters/chart-adapter\";\nimport {\n footerAdapter,\n headerAdapter,\n} from \"./pdf/pdfmake/adapters/page-element-adapter\";\nimport { layoutAdapter } from \"./pdf/pdfmake/adapters/layout-adapter\";\n\n// `schedaToPdfData` removed: `sch-converter.ts` deleted and references removed\n\nexport const dataTableToPdfData = async (\n component: {\n smeupDataTable: SmeupDataTable;\n props: GenericObject;\n },\n webupManagerData: WebupManagerData,\n): Promise<Buffer | Uint8Array> => {\n const workbook = dataTableToExcelWorkbook(\n component,\n SupportedExportFormats.XLSX,\n webupManagerData,\n );\n\n const worksheet = workbook.getWorksheet(1);\n if (worksheet) {\n const title = component.smeupDataTable.cover?.titles?.[\"T01\"] ?? \"\";\n const subtitle = component.smeupDataTable.cover?.titles?.[\"T02\"] ?? \"\";\n const subtitle2 = component.smeupDataTable.cover?.titles?.[\"T03\"] ?? \"\";\n const image = component.smeupDataTable.cover?.image ?? \"\";\n const logo = component.smeupDataTable.cover?.logo ?? logoBase64;\n const cover = createCoverPdf(image, logo, title, subtitle, subtitle2);\n const pdfDoc = await dataTableToPdfDoc(worksheet, webupManagerData, {\n logoBase64: logo,\n title: title,\n subtitle: subtitle,\n });\n const pdfBuffer = pdfDoc.output(\"arraybuffer\");\n return convertToBuffer(await appendPdfDocs([cover, pdfBuffer]));\n } else {\n throw new Error(\"Worksheet not found in the workbook\");\n }\n};\n\nexport const pdfmakeDocumentToPdfData = async (\n documentDefinition: TDocumentDefinitions,\n context: Partial<PdfMakeConverterContext>,\n): Promise<Buffer> => {\n // Register adapters\n const registry = createAdapterRegistry();\n registry.register(\"table\", dataTableAdapter());\n registry.register(\"image\", imageAdapter());\n registry.register(\"chart\", chartAdapter());\n registry.register(\"footer\", footerAdapter());\n registry.register(\"header\", headerAdapter());\n registry.register(\"layout\", layoutAdapter());\n\n context.pdfDocument = documentDefinition;\n\n // Pre-process document with adapters\n const processedDoc = await preProcessPdfMakeDocument(\n documentDefinition,\n context,\n registry,\n );\n\n // console.debug(\n // \"Processed pdfmake document:\",\n // JSON.stringify(processedDoc, null, 2),\n // );\n // Render the document using pdfmake\n return renderPdfMakeDocument(processedDoc);\n};\n\n/**\n * Unisce più PDF (in formato ArrayBuffer/Uint8Array/Buffer) in un unico PDF.\n * @param pdfBuffers Array di buffer PDF (es. ottenuti da jsPDF.output(\"arraybuffer\"))\n * @returns Buffer del PDF unito\n */\nconst appendPdfDocs = async (\n pdfBuffers: (Uint8Array | ArrayBuffer | Buffer)[],\n): Promise<Uint8Array> => {\n if (!pdfBuffers.length) throw new Error(\"No PDF buffers to append\");\n\n // Crea un nuovo documento PDF vuoto\n const mergedPdf = await PDFDocument.create();\n\n for (const pdfBytes of pdfBuffers) {\n const srcPdf = await PDFDocument.load(pdfBytes);\n const copiedPages = await mergedPdf.copyPages(\n srcPdf,\n srcPdf.getPageIndices(),\n );\n copiedPages.forEach(page => mergedPdf.addPage(page));\n }\n\n const mergedBytes = await mergedPdf.save();\n return mergedBytes;\n};\n\n// Re-export form filler function and types\nexport { fillPdfForm };\nexport type { FillPdfFormOptions };\n"]}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  export { dataTableToExcelData, dataTreeToExcelData, } from "./converters/excel-converter";
2
- export { schedaToPdfData, dataTableToPdfData, pdfmakeDocumentToPdfData, fillPdfForm, } from "./converters/pdf-converter";
2
+ export { dataTableToPdfData, pdfmakeDocumentToPdfData, fillPdfForm, } from "./converters/pdf-converter";
3
3
  export type { FillPdfFormOptions } from "./converters/pdf-converter";
4
- export { dataTableToChart } from "./converters/images/charts-generator";
4
+ export { dataTableToChart } from "./converters/images/charts-converter";
5
5
  export { createAdapterRegistry } from "./converters/pdf/pdfmake/adapter-registry";
6
- export { funToSmeupTableAdapter } from "./converters/pdf/pdfmake/table-adapter";
7
- export { smeupTableToPdfMakeTableAdapter } from "./converters/pdf/pdfmake/table-adapter";
6
+ export { funToSmeupTableAdapter } from "./converters/pdf/pdfmake/adapters/table-adapter";
7
+ export { smeupTableToPdfMakeTableAdapter } from "./converters/pdf/pdfmake/adapters/table-adapter";
8
8
  export { preProcessPdfMakeDocument } from "./converters/pdf/pdfmake/adapter-processor";
9
9
  export type { PdfmakeAdapter, PdfMakeConverterContext, AdapterRegistry, AdapterError, } from "./converters/pdf/pdfmake/pdfmake.types";
10
10
  export type { WebupManagerData, GenericObject } from "./types/index";
package/dist/index.js CHANGED
@@ -1,23 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SupportedExportFormats = exports.preProcessPdfMakeDocument = exports.smeupTableToPdfMakeTableAdapter = exports.funToSmeupTableAdapter = exports.createAdapterRegistry = exports.dataTableToChart = exports.fillPdfForm = exports.pdfmakeDocumentToPdfData = exports.dataTableToPdfData = exports.schedaToPdfData = exports.dataTreeToExcelData = exports.dataTableToExcelData = void 0;
3
+ exports.SupportedExportFormats = exports.preProcessPdfMakeDocument = exports.smeupTableToPdfMakeTableAdapter = exports.funToSmeupTableAdapter = exports.createAdapterRegistry = exports.dataTableToChart = exports.fillPdfForm = exports.pdfmakeDocumentToPdfData = exports.dataTableToPdfData = exports.dataTreeToExcelData = exports.dataTableToExcelData = void 0;
4
4
  // Public API exports
5
5
  var excel_converter_1 = require("./converters/excel-converter");
6
6
  Object.defineProperty(exports, "dataTableToExcelData", { enumerable: true, get: function () { return excel_converter_1.dataTableToExcelData; } });
7
7
  Object.defineProperty(exports, "dataTreeToExcelData", { enumerable: true, get: function () { return excel_converter_1.dataTreeToExcelData; } });
8
8
  var pdf_converter_1 = require("./converters/pdf-converter");
9
- Object.defineProperty(exports, "schedaToPdfData", { enumerable: true, get: function () { return pdf_converter_1.schedaToPdfData; } });
10
9
  Object.defineProperty(exports, "dataTableToPdfData", { enumerable: true, get: function () { return pdf_converter_1.dataTableToPdfData; } });
11
10
  Object.defineProperty(exports, "pdfmakeDocumentToPdfData", { enumerable: true, get: function () { return pdf_converter_1.pdfmakeDocumentToPdfData; } });
12
11
  Object.defineProperty(exports, "fillPdfForm", { enumerable: true, get: function () { return pdf_converter_1.fillPdfForm; } });
13
- var charts_generator_1 = require("./converters/images/charts-generator");
14
- Object.defineProperty(exports, "dataTableToChart", { enumerable: true, get: function () { return charts_generator_1.dataTableToChart; } });
12
+ var charts_converter_1 = require("./converters/images/charts-converter");
13
+ Object.defineProperty(exports, "dataTableToChart", { enumerable: true, get: function () { return charts_converter_1.dataTableToChart; } });
15
14
  // Pdfmake adapter system
16
15
  var adapter_registry_1 = require("./converters/pdf/pdfmake/adapter-registry");
17
16
  Object.defineProperty(exports, "createAdapterRegistry", { enumerable: true, get: function () { return adapter_registry_1.createAdapterRegistry; } });
18
- var table_adapter_1 = require("./converters/pdf/pdfmake/table-adapter");
17
+ var table_adapter_1 = require("./converters/pdf/pdfmake/adapters/table-adapter");
19
18
  Object.defineProperty(exports, "funToSmeupTableAdapter", { enumerable: true, get: function () { return table_adapter_1.funToSmeupTableAdapter; } });
20
- var table_adapter_2 = require("./converters/pdf/pdfmake/table-adapter");
19
+ var table_adapter_2 = require("./converters/pdf/pdfmake/adapters/table-adapter");
21
20
  Object.defineProperty(exports, "smeupTableToPdfMakeTableAdapter", { enumerable: true, get: function () { return table_adapter_2.smeupTableToPdfMakeTableAdapter; } });
22
21
  var adapter_processor_1 = require("./converters/pdf/pdfmake/adapter-processor");
23
22
  Object.defineProperty(exports, "preProcessPdfMakeDocument", { enumerable: true, get: function () { return adapter_processor_1.preProcessPdfMakeDocument; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qBAAqB;AACrB,gEAGsC;AAFpC,uHAAA,oBAAoB,OAAA;AACpB,sHAAA,mBAAmB,OAAA;AAGrB,4DAKoC;AAJlC,gHAAA,eAAe,OAAA;AACf,mHAAA,kBAAkB,OAAA;AAClB,yHAAA,wBAAwB,OAAA;AACxB,4GAAA,WAAW,OAAA;AAIb,yEAAwE;AAA/D,oHAAA,gBAAgB,OAAA;AAEzB,yBAAyB;AACzB,8EAAkF;AAAzE,yHAAA,qBAAqB,OAAA;AAC9B,wEAAgF;AAAvE,uHAAA,sBAAsB,OAAA;AAC/B,wEAAyF;AAAhF,gIAAA,+BAA+B,OAAA;AACxC,gFAAuF;AAA9E,8HAAA,yBAAyB,OAAA;AAWlC,uCAAuD;AAA9C,+GAAA,sBAAsB,OAAA","sourcesContent":["// Public API exports\nexport {\n dataTableToExcelData,\n dataTreeToExcelData,\n} from \"./converters/excel-converter\";\n\nexport {\n schedaToPdfData,\n dataTableToPdfData,\n pdfmakeDocumentToPdfData,\n fillPdfForm,\n} from \"./converters/pdf-converter\";\nexport type { FillPdfFormOptions } from \"./converters/pdf-converter\";\n\nexport { dataTableToChart } from \"./converters/images/charts-generator\";\n\n// Pdfmake adapter system\nexport { createAdapterRegistry } from \"./converters/pdf/pdfmake/adapter-registry\";\nexport { funToSmeupTableAdapter } from \"./converters/pdf/pdfmake/table-adapter\";\nexport { smeupTableToPdfMakeTableAdapter } from \"./converters/pdf/pdfmake/table-adapter\";\nexport { preProcessPdfMakeDocument } from \"./converters/pdf/pdfmake/adapter-processor\";\n\nexport type {\n PdfmakeAdapter,\n PdfMakeConverterContext,\n AdapterRegistry,\n AdapterError,\n} from \"./converters/pdf/pdfmake/pdfmake.types\";\n\n// Export types that users might need\nexport type { WebupManagerData, GenericObject } from \"./types/index\";\nexport { SupportedExportFormats } from \"./types/index\";\nexport type { SmeupDataTable } from \"./types/data-structures/smeupDataTable\";\nexport type { SmeupDataTree } from \"./types/data-structures/smeupDataTree\";\n\nexport type ColumnGroup = {\n column: string;\n visible: boolean;\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,qBAAqB;AACrB,gEAGsC;AAFpC,uHAAA,oBAAoB,OAAA;AACpB,sHAAA,mBAAmB,OAAA;AAGrB,4DAIoC;AAHlC,mHAAA,kBAAkB,OAAA;AAClB,yHAAA,wBAAwB,OAAA;AACxB,4GAAA,WAAW,OAAA;AAIb,yEAAwE;AAA/D,oHAAA,gBAAgB,OAAA;AAEzB,yBAAyB;AACzB,8EAAkF;AAAzE,yHAAA,qBAAqB,OAAA;AAC9B,iFAAyF;AAAhF,uHAAA,sBAAsB,OAAA;AAC/B,iFAAkG;AAAzF,gIAAA,+BAA+B,OAAA;AACxC,gFAAuF;AAA9E,8HAAA,yBAAyB,OAAA;AAWlC,uCAAuD;AAA9C,+GAAA,sBAAsB,OAAA","sourcesContent":["// Public API exports\nexport {\n dataTableToExcelData,\n dataTreeToExcelData,\n} from \"./converters/excel-converter\";\n\nexport {\n dataTableToPdfData,\n pdfmakeDocumentToPdfData,\n fillPdfForm,\n} from \"./converters/pdf-converter\";\nexport type { FillPdfFormOptions } from \"./converters/pdf-converter\";\n\nexport { dataTableToChart } from \"./converters/images/charts-converter\";\n\n// Pdfmake adapter system\nexport { createAdapterRegistry } from \"./converters/pdf/pdfmake/adapter-registry\";\nexport { funToSmeupTableAdapter } from \"./converters/pdf/pdfmake/adapters/table-adapter\";\nexport { smeupTableToPdfMakeTableAdapter } from \"./converters/pdf/pdfmake/adapters/table-adapter\";\nexport { preProcessPdfMakeDocument } from \"./converters/pdf/pdfmake/adapter-processor\";\n\nexport type {\n PdfmakeAdapter,\n PdfMakeConverterContext,\n AdapterRegistry,\n AdapterError,\n} from \"./converters/pdf/pdfmake/pdfmake.types\";\n\n// Export types that users might need\nexport type { WebupManagerData, GenericObject } from \"./types/index\";\nexport { SupportedExportFormats } from \"./types/index\";\nexport type { SmeupDataTable } from \"./types/data-structures/smeupDataTable\";\nexport type { SmeupDataTree } from \"./types/data-structures/smeupDataTree\";\n\nexport type ColumnGroup = {\n column: string;\n visible: boolean;\n};\n"]}
@@ -48,6 +48,6 @@ export declare enum ToolbarState {
48
48
  COLLAPSED = "Collapsed",
49
49
  INVISIBLE = "Invisible"
50
50
  }
51
- export interface ComponentOptions extends Record<string, string> {
52
- Name: string;
51
+ export interface ComponentOptions {
52
+ Name?: string;
53
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/types/component.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,MAsCX;AAtCD,WAAY,MAAM;IAChB,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;AACb,CAAC,EAtCW,MAAM,sBAAN,MAAM,QAsCjB;AAED;;GAEG;AACH,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;AACzB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB","sourcesContent":["/**\n * Supported shapes.\n */\nexport enum Shapes {\n ACC = \"ACC\",\n ACT = \"ACT\",\n ATM = \"ATM\",\n BOX = \"BOX\",\n BTN = \"BTN\",\n CAL = \"CAL\",\n CHA = \"CHA\", // = EXA\n DFT = \"DFT\",\n DYN = \"DYN\",\n DSH = \"DSH\",\n EML = \"EML\",\n EXA = \"EXA\", // = CHA\n EXB = \"EXB\", // = MAT\n EXD = \"EXD\", // = SCH\n EXU = \"EXU\",\n FBK = \"FBK\",\n FLD = \"FLD\",\n FOR = \"FOR\",\n GNT = \"GNT\",\n HTM = \"HTM\",\n IML = \"IML\",\n IMG = \"IMG\",\n INT = \"INT\",\n INP = \"INP\",\n JSO = \"JSO\",\n LAB = \"LAB\",\n MAT = \"MAT\", // = EXB\n PLN = \"PLN\",\n PDF = \"PDF\",\n SCH = \"SCH\", // = EXD\n SPL = \"SPL\",\n TED = \"TED\",\n TRE = \"TRE\",\n TXT = \"TXT\",\n CND = \"CND\",\n UNK = \"UNK\",\n OGN = \"OGN\",\n}\n\n/**\n * ToolbarState Info.\n */\nexport enum ToolbarState {\n EXPANDED = \"Expanded\",\n COLLAPSED = \"Collapsed\",\n INVISIBLE = \"Invisible\",\n}\n\nexport interface ComponentOptions extends Record<string, string> {\n Name: string;\n}\n\n"]}
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/types/component.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,IAAY,MAsCX;AAtCD,WAAY,MAAM;IAChB,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;IACX,qBAAW,CAAA;AACb,CAAC,EAtCW,MAAM,sBAAN,MAAM,QAsCjB;AAED;;GAEG;AACH,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;AACzB,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB","sourcesContent":["/**\n * Supported shapes.\n */\nexport enum Shapes {\n ACC = \"ACC\",\n ACT = \"ACT\",\n ATM = \"ATM\",\n BOX = \"BOX\",\n BTN = \"BTN\",\n CAL = \"CAL\",\n CHA = \"CHA\", // = EXA\n DFT = \"DFT\",\n DYN = \"DYN\",\n DSH = \"DSH\",\n EML = \"EML\",\n EXA = \"EXA\", // = CHA\n EXB = \"EXB\", // = MAT\n EXD = \"EXD\", // = SCH\n EXU = \"EXU\",\n FBK = \"FBK\",\n FLD = \"FLD\",\n FOR = \"FOR\",\n GNT = \"GNT\",\n HTM = \"HTM\",\n IML = \"IML\",\n IMG = \"IMG\",\n INT = \"INT\",\n INP = \"INP\",\n JSO = \"JSO\",\n LAB = \"LAB\",\n MAT = \"MAT\", // = EXB\n PLN = \"PLN\",\n PDF = \"PDF\",\n SCH = \"SCH\", // = EXD\n SPL = \"SPL\",\n TED = \"TED\",\n TRE = \"TRE\",\n TXT = \"TXT\",\n CND = \"CND\",\n UNK = \"UNK\",\n OGN = \"OGN\",\n}\n\n/**\n * ToolbarState Info.\n */\nexport enum ToolbarState {\n EXPANDED = \"Expanded\",\n COLLAPSED = \"Collapsed\",\n INVISIBLE = \"Invisible\",\n}\n\nexport interface ComponentOptions {\n Name?: string;\n}\n"]}
@@ -2,8 +2,8 @@ import { SmeupDataStructure, SmeupDataStructureType, SmeupSetupBase, SmeupVariab
2
2
  import { SmeupDataTable } from "./smeupDataTable";
3
3
  import { SmeupDataTree, SmeupDataNode } from "./smeupDataTree";
4
4
  import { Shapes, ToolbarState } from "../component";
5
- import { YesNo } from "../helpers";
6
5
  import { RawDynamism } from "../dynamism";
6
+ import { YesNo } from "../general";
7
7
  export interface SmeupSch extends SmeupDataStructure {
8
8
  type: SmeupDataStructureType.SmeupScheda;
9
9
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"smeupSch.js","sourceRoot":"","sources":["../../../src/types/data-structures/smeupSch.ts"],"names":[],"mappings":";;;AA0EA,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,6BAAa,CAAA;AACf,CAAC,EARW,YAAY,4BAAZ,YAAY,QAQvB","sourcesContent":["import {\n SmeupDataStructure,\n SmeupDataStructureType,\n SmeupSetupBase,\n SmeupVariable,\n} from \"./smeupDataStructure\";\nimport { SmeupDataTable } from \"./smeupDataTable\";\nimport { SmeupDataTree, SmeupDataNode } from \"./smeupDataTree\";\nimport { Shapes, ToolbarState } from \"../component\";\nimport { YesNo } from \"../helpers\";\nimport { RawDynamism } from \"../dynamism\";\n\nexport interface SmeupSch extends SmeupDataStructure {\n type: SmeupDataStructureType.SmeupScheda;\n title: string;\n sections: SmeupSchSection[];\n info?: string;\n id?: string;\n styles?: SmeupStyle[];\n layout?: string;\n /** other setup: for example \"Menu\", left menù */\n laySetup?: unknown;\n dynamisms?: RawDynamism[];\n}\n\nexport interface SmeupSchSection {\n id: string;\n layout: string;\n dim?: string;\n variables?: SmeupVariable[];\n sections?: SmeupSchSection[];\n components?: SmeupSchComponent[];\n type?: SectionTypes;\n}\n\nexport interface SmeupSchComponent {\n type: Shapes;\n title: string;\n load?: boolean;\n subNote?: string;\n id?: string;\n fun?: string;\n data?: SmeupDataTree | SmeupDataTable;\n dynamisms?: RawDynamism[];\n variables?: {\n [key: string]: SmeupVariable;\n };\n options?: SmeupSetupBase;\n icon?: string;\n buttons?: SmeupDataNode[];\n toolbarState?: ToolbarState;\n context?: string;\n}\n\nexport interface SmeupStyle {\n name: string;\n value: SmeupStyleOptions;\n}\n\nexport interface SmeupStyleOptions {\n Align?: string;\n FontBold?: YesNo;\n FontItalic?: YesNo;\n FontName?: string;\n FontSize?: string;\n FontULine?: YesNo;\n FontUnder?: YesNo;\n FontColor?: string;\n BackColor?: string;\n Padding?: string;\n Border?: string;\n TxtOri?: string;\n}\n\nexport enum SectionTypes {\n Acc = \"Acc\",\n Tab = \"Tab\",\n TabVer = \"TabVer\",\n Radio = \"Radio\",\n Combo = \"Combo\",\n OneBut = \"OneBut\",\n Menu = \"Menu\",\n}\n\n"]}
1
+ {"version":3,"file":"smeupSch.js","sourceRoot":"","sources":["../../../src/types/data-structures/smeupSch.ts"],"names":[],"mappings":";;;AA0EA,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,2BAAW,CAAA;IACX,iCAAiB,CAAA;IACjB,+BAAe,CAAA;IACf,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,6BAAa,CAAA;AACf,CAAC,EARW,YAAY,4BAAZ,YAAY,QAQvB","sourcesContent":["import {\n SmeupDataStructure,\n SmeupDataStructureType,\n SmeupSetupBase,\n SmeupVariable,\n} from \"./smeupDataStructure\";\nimport { SmeupDataTable } from \"./smeupDataTable\";\nimport { SmeupDataTree, SmeupDataNode } from \"./smeupDataTree\";\nimport { Shapes, ToolbarState } from \"../component\";\nimport { RawDynamism } from \"../dynamism\";\nimport { YesNo } from \"../general\";\n\nexport interface SmeupSch extends SmeupDataStructure {\n type: SmeupDataStructureType.SmeupScheda;\n title: string;\n sections: SmeupSchSection[];\n info?: string;\n id?: string;\n styles?: SmeupStyle[];\n layout?: string;\n /** other setup: for example \"Menu\", left menù */\n laySetup?: unknown;\n dynamisms?: RawDynamism[];\n}\n\nexport interface SmeupSchSection {\n id: string;\n layout: string;\n dim?: string;\n variables?: SmeupVariable[];\n sections?: SmeupSchSection[];\n components?: SmeupSchComponent[];\n type?: SectionTypes;\n}\n\nexport interface SmeupSchComponent {\n type: Shapes;\n title: string;\n load?: boolean;\n subNote?: string;\n id?: string;\n fun?: string;\n data?: SmeupDataTree | SmeupDataTable;\n dynamisms?: RawDynamism[];\n variables?: {\n [key: string]: SmeupVariable;\n };\n options?: SmeupSetupBase;\n icon?: string;\n buttons?: SmeupDataNode[];\n toolbarState?: ToolbarState;\n context?: string;\n}\n\nexport interface SmeupStyle {\n name: string;\n value: SmeupStyleOptions;\n}\n\nexport interface SmeupStyleOptions {\n Align?: string;\n FontBold?: YesNo;\n FontItalic?: YesNo;\n FontName?: string;\n FontSize?: string;\n FontULine?: YesNo;\n FontUnder?: YesNo;\n FontColor?: string;\n BackColor?: string;\n Padding?: string;\n Border?: string;\n TxtOri?: string;\n}\n\nexport enum SectionTypes {\n Acc = \"Acc\",\n Tab = \"Tab\",\n TabVer = \"TabVer\",\n Radio = \"Radio\",\n Combo = \"Combo\",\n OneBut = \"OneBut\",\n Menu = \"Menu\",\n}\n"]}
@@ -20,3 +20,7 @@ export declare class Fun {
20
20
  INPUT?: string;
21
21
  SS?: string;
22
22
  }
23
+ export declare enum YesNo {
24
+ Yes = "Yes",
25
+ No = "No"
26
+ }
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Fun = exports.FunObject = void 0;
3
+ exports.YesNo = exports.Fun = exports.FunObject = void 0;
4
4
  class FunObject {
5
5
  t;
6
6
  p;
@@ -26,4 +26,9 @@ class Fun {
26
26
  SS;
27
27
  }
28
28
  exports.Fun = Fun;
29
+ var YesNo;
30
+ (function (YesNo) {
31
+ YesNo["Yes"] = "Yes";
32
+ YesNo["No"] = "No";
33
+ })(YesNo || (exports.YesNo = YesNo = {}));
29
34
  //# sourceMappingURL=general.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/types/general.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IACpB,CAAC,CAAU;IAEX,CAAC,CAAU;IAEX,CAAC,CAAU;CACZ;AAND,8BAMC;AAED;;GAEG;AACH,MAAa,GAAG;IACd,SAAS,CAAU;IACnB,OAAO,CAAU;IACjB,QAAQ,CAAU;IAElB,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,IAAI,CAAa;IAEjB,CAAC,CAAU;IACX,KAAK,CAAU;IAEf,gEAAgE;IAChE,EAAE,CAAU;CACb;AAjBD,kBAiBC","sourcesContent":["export class FunObject {\n t!: string;\n\n p!: string;\n\n k!: string;\n}\n\n/**\n * Fun\n */\nexport class Fun {\n component!: string;\n service!: string;\n function!: string;\n\n obj1?: FunObject;\n obj2?: FunObject;\n obj3?: FunObject;\n obj4?: FunObject;\n obj5?: FunObject;\n obj6?: FunObject;\n\n P?: string;\n INPUT?: string;\n\n // The implementation of java FunDTO expects SS to be uppercased\n SS?: string;\n}\n\n"]}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/types/general.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAS;IACpB,CAAC,CAAU;IACX,CAAC,CAAU;IACX,CAAC,CAAU;CACZ;AAJD,8BAIC;AAED;;GAEG;AACH,MAAa,GAAG;IACd,SAAS,CAAU;IACnB,OAAO,CAAU;IACjB,QAAQ,CAAU;IAElB,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,IAAI,CAAa;IACjB,IAAI,CAAa;IAEjB,CAAC,CAAU;IACX,KAAK,CAAU;IAEf,gEAAgE;IAChE,EAAE,CAAU;CACb;AAjBD,kBAiBC;AAED,IAAY,KAGX;AAHD,WAAY,KAAK;IACf,oBAAW,CAAA;IACX,kBAAS,CAAA;AACX,CAAC,EAHW,KAAK,qBAAL,KAAK,QAGhB","sourcesContent":["export class FunObject {\n t!: string;\n p!: string;\n k!: string;\n}\n\n/**\n * Fun\n */\nexport class Fun {\n component!: string;\n service!: string;\n function!: string;\n\n obj1?: FunObject;\n obj2?: FunObject;\n obj3?: FunObject;\n obj4?: FunObject;\n obj5?: FunObject;\n obj6?: FunObject;\n\n P?: string;\n INPUT?: string;\n\n // The implementation of java FunDTO expects SS to be uppercased\n SS?: string;\n}\n\nexport enum YesNo {\n Yes = \"Yes\",\n No = \"No\",\n}\n"]}
@@ -1,5 +1,4 @@
1
1
  import type { Properties as CSSProperties } from "csstype";
2
- import { ComponentOptions } from "./component";
3
2
  import { SmeupDataCell } from "./data-structures/smeupDataTable";
4
3
  export interface SmeupDataObj {
5
4
  t: string;
@@ -40,7 +39,3 @@ export declare enum SupportedExportFormats {
40
39
  PDF_SCHEDA = "pdf_scheda",
41
40
  PDF = "pdf"
42
41
  }
43
- export interface ChartOptions extends ComponentOptions {
44
- Width: string;
45
- Height: string;
46
- }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AAUA,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,qDAAqC,CAAA;IACrC,qCAAqB,CAAA;IACrB,kDAAkC,CAAA;AACpC,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAwBD,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,uCAAa,CAAA;IACb,qCAAW,CAAA;IACX,qCAAW,CAAA;IACX,uCAAa,CAAA;IACb,mDAAyB,CAAA;IACzB,qCAAW,CAAA;AACb,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC","sourcesContent":["import type { Properties as CSSProperties } from \"csstype\";\nimport { ComponentOptions } from \"./component\";\nimport { SmeupDataCell } from \"./data-structures/smeupDataTable\";\n\nexport interface SmeupDataObj {\n t: string;\n p: string;\n k: string;\n}\n\nexport enum DatesFormats {\n ISO_DATE = \"YYYY-MM-DD\",\n ISO_DATE_TIME = \"YYYY-MM-DD HH:mm:ss\",\n ISO_TIME = \"HH:mm:ss\",\n ISO_TIME_WITHOUT_SECONDS = \"HH:mm\",\n}\n\nexport interface GenericObject {\n [index: string]: unknown;\n}\n\nexport interface WebupManagerData {\n mathLocale: string;\n datesLocale: string;\n themeBackground: string;\n}\n\n/**\n * Applies dataTable filters to the excel table rows\n */\nexport type ColumnFilter = {\n checkBoxes?: { value: string }[];\n textField?: string;\n};\n\nexport interface SmeupDataCellStyled extends SmeupDataCell {\n style?: CSSProperties;\n}\n\nexport enum SupportedExportFormats {\n XLSX = \"xlsx\",\n CSV = \"csv\",\n TXT = \"txt\",\n FILE = \"file\",\n PDF_SCHEDA = \"pdf_scheda\",\n PDF = \"pdf\",\n}\n\nexport interface ChartOptions extends ComponentOptions {\n Width: string;\n Height: string;\n}\n\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;AASA,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,qDAAqC,CAAA;IACrC,qCAAqB,CAAA;IACrB,kDAAkC,CAAA;AACpC,CAAC,EALW,YAAY,4BAAZ,YAAY,QAKvB;AAwBD,IAAY,sBAOX;AAPD,WAAY,sBAAsB;IAChC,uCAAa,CAAA;IACb,qCAAW,CAAA;IACX,qCAAW,CAAA;IACX,uCAAa,CAAA;IACb,mDAAyB,CAAA;IACzB,qCAAW,CAAA;AACb,CAAC,EAPW,sBAAsB,sCAAtB,sBAAsB,QAOjC","sourcesContent":["import type { Properties as CSSProperties } from \"csstype\";\nimport { SmeupDataCell } from \"./data-structures/smeupDataTable\";\n\nexport interface SmeupDataObj {\n t: string;\n p: string;\n k: string;\n}\n\nexport enum DatesFormats {\n ISO_DATE = \"YYYY-MM-DD\",\n ISO_DATE_TIME = \"YYYY-MM-DD HH:mm:ss\",\n ISO_TIME = \"HH:mm:ss\",\n ISO_TIME_WITHOUT_SECONDS = \"HH:mm\",\n}\n\nexport interface GenericObject {\n [index: string]: unknown;\n}\n\nexport interface WebupManagerData {\n mathLocale: string;\n datesLocale: string;\n themeBackground: string;\n}\n\n/**\n * Applies dataTable filters to the excel table rows\n */\nexport type ColumnFilter = {\n checkBoxes?: { value: string }[];\n textField?: string;\n};\n\nexport interface SmeupDataCellStyled extends SmeupDataCell {\n style?: CSSProperties;\n}\n\nexport enum SupportedExportFormats {\n XLSX = \"xlsx\",\n CSV = \"csv\",\n TXT = \"txt\",\n FILE = \"file\",\n PDF_SCHEDA = \"pdf_scheda\",\n PDF = \"pdf\",\n}\n"]}
@@ -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\n"]}
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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sme.up/doc-alchemist",
3
- "version": "1.6.0-SNAPSHOT-20251212084649",
3
+ "version": "1.6.0-SNAPSHOT-20251212094904",
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/)",
@@ -38,7 +38,6 @@
38
38
  "typescript-eslint": "^8.33.1"
39
39
  },
40
40
  "dependencies": {
41
- "canvas": "^3.1.1",
42
41
  "echarts": "^5.6.0",
43
42
  "exceljs": "^4.4.0",
44
43
  "image-size": "^2.0.2",
@@ -1,287 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.dataTableToChart = void 0;
37
- const echarts = __importStar(require("echarts"));
38
- /**
39
- * Converts SmeupDataTable to chart image buffer
40
- * @param dataTable - SmeupDataTable containing the data
41
- * @param chartType - Type of chart (bar, line, pie, scatter)
42
- * @returns Promise<Buffer> containing the chart image
43
- */
44
- const dataTableToChart = async (dataTable, chartType, chartOptions) => {
45
- // Check if we're in Node.js or browser environment
46
- const isNode = typeof process !== "undefined" && process.versions && process.versions.node;
47
- if (isNode) {
48
- return await generateChartInNode(dataTable, chartType, chartOptions);
49
- }
50
- else {
51
- return generateChartInBrowser(dataTable, chartType, chartOptions);
52
- }
53
- };
54
- exports.dataTableToChart = dataTableToChart;
55
- /**
56
- * Generate chart in Node.js environment using canvas
57
- */
58
- async function generateChartInNode(dataTable, chartType, chartOptions) {
59
- try {
60
- // Dynamic import for Node.js canvas
61
- const { createCanvas } = await Promise.resolve().then(() => __importStar(require("canvas")));
62
- const width = Number(chartOptions.Width);
63
- const height = Number(chartOptions.Height);
64
- // Create canvas
65
- const canvas = createCanvas(width, height);
66
- // Create a minimal DOM-like environment for ECharts
67
- const mockElement = {
68
- clientWidth: width,
69
- clientHeight: width,
70
- style: {},
71
- addEventListener: () => { },
72
- removeEventListener: () => { },
73
- getAttribute: () => null,
74
- setAttribute: () => { },
75
- getContext: (type) => {
76
- if (type === "2d") {
77
- return canvas.getContext("2d");
78
- }
79
- return null;
80
- },
81
- appendChild: () => { },
82
- removeChild: () => { },
83
- ownerDocument: {
84
- createElement: (tagName) => {
85
- if (tagName === "canvas") {
86
- return createCanvas(width, height);
87
- }
88
- return mockElement;
89
- },
90
- createElementNS: () => mockElement,
91
- defaultView: {
92
- getComputedStyle: () => ({ getPropertyValue: () => "" }),
93
- },
94
- },
95
- };
96
- // Initialize ECharts with the mock element
97
- const chart = echarts.init(mockElement, null, {
98
- renderer: "canvas",
99
- useDirtyRect: false,
100
- width: width,
101
- height: height,
102
- });
103
- // Convert data table to chart configuration
104
- const config = convertDataTableToChartConfig(dataTable, chartType, chartOptions);
105
- // Set chart options
106
- chart.setOption(config);
107
- // Force render by calling resize
108
- chart.resize();
109
- // Get image buffer from canvas
110
- const imageBuffer = canvas.toBuffer("image/jpeg");
111
- // Cleanup
112
- chart.dispose();
113
- return imageBuffer;
114
- }
115
- catch (error) {
116
- console.error("Error generating chart in Node.js:", error);
117
- throw new Error(`Failed to generate chart: ${error instanceof Error ? error.message : "Unknown error"}`);
118
- }
119
- }
120
- /**
121
- * Generate chart in browser environment
122
- */
123
- function generateChartInBrowser(dataTable, chartType, chartOptions) {
124
- try {
125
- const width = Number(chartOptions.Width);
126
- const height = Number(chartOptions.height);
127
- // Create temporary canvas element
128
- const canvas = document.createElement("canvas");
129
- canvas.width = width;
130
- canvas.height = height;
131
- canvas.style.position = "absolute";
132
- canvas.style.left = "-9999px";
133
- document.body.appendChild(canvas);
134
- // Initialize ECharts with canvas
135
- const chart = echarts.init(canvas, null, {
136
- renderer: "canvas",
137
- useDirtyRect: false,
138
- width: width,
139
- height: height,
140
- });
141
- // Convert data table to chart configuration
142
- const config = convertDataTableToChartConfig(dataTable, chartType, chartOptions);
143
- // Set chart options
144
- chart.setOption(config);
145
- // Get image data
146
- const imageDataUrl = chart.getDataURL({
147
- type: "jpeg",
148
- pixelRatio: 1,
149
- backgroundColor: "#fff",
150
- });
151
- // Convert data URL to buffer
152
- const base64Data = imageDataUrl.replace(/^data:image\/jpeg;base64,/, "");
153
- const imageBuffer = Buffer.from(base64Data, "base64");
154
- // Cleanup
155
- chart.dispose();
156
- document.body.removeChild(canvas);
157
- return imageBuffer;
158
- }
159
- catch (error) {
160
- console.error("Error generating chart in browser:", error);
161
- throw new Error(`Failed to generate chart: ${error instanceof Error ? error.message : "Unknown error"}`);
162
- }
163
- }
164
- /**
165
- * Convert SmeupDataTable to ECharts configuration
166
- */
167
- function convertDataTableToChartConfig(dataTable, chartType, chartOptions) {
168
- if (!dataTable.columns || !dataTable.rows || dataTable.rows.length === 0) {
169
- throw new Error("Invalid data table: missing columns or rows");
170
- }
171
- // Get visible columns
172
- const visibleColumns = dataTable.columns.filter(col => col.visible !== false);
173
- if (visibleColumns.length < 2) {
174
- throw new Error("Data table must have at least 2 visible columns for chart generation");
175
- }
176
- // First column is typically used for categories/labels
177
- const categoryColumn = visibleColumns[0];
178
- const seriesColumns = chartOptions.Series?.split("|");
179
- if (!seriesColumns || seriesColumns.length === 0) {
180
- throw new Error("Chart options must specify at least one series");
181
- }
182
- const dataColumns = seriesColumns
183
- .map(name => visibleColumns.find(col => col.name === name))
184
- .filter((column) => column !== undefined);
185
- if (dataColumns.length === 0) {
186
- throw new Error("No valid data columns found for chart series");
187
- }
188
- // Extract categories from first column
189
- const categories = dataTable.rows.map(row => row.cells?.[categoryColumn.name]?.value?.toString() || "");
190
- // Extract data series from remaining columns
191
- const normalizedType = normalizeChartType(chartType);
192
- const series = dataColumns.map(column => {
193
- const data = dataTable.rows.map(row => {
194
- const cellValue = row.cells?.[column.name]?.value;
195
- return parseFloat(cellValue?.toString() || "0") || 0;
196
- });
197
- const seriesData = chartType.toLowerCase() === "pie"
198
- ? data.map((value, index) => ({ value, name: categories[index] }))
199
- : data;
200
- // Create properly typed series based on chart type
201
- switch (normalizedType) {
202
- case "pie":
203
- return {
204
- name: column.title || column.name,
205
- type: "pie",
206
- data: seriesData,
207
- };
208
- case "line":
209
- return {
210
- name: column.title || column.name,
211
- type: "line",
212
- data: seriesData,
213
- lineStyle: { width: 8 },
214
- };
215
- case "bar":
216
- return {
217
- name: column.title || column.name,
218
- type: "bar",
219
- data: seriesData,
220
- };
221
- case "scatter":
222
- return {
223
- name: column.title || column.name,
224
- type: "scatter",
225
- data: seriesData,
226
- };
227
- default:
228
- return {
229
- name: column.title || column.name,
230
- type: "bar",
231
- data: seriesData,
232
- };
233
- }
234
- });
235
- // Build chart configuration based on type
236
- const config = {
237
- tooltip: {
238
- trigger: chartType.toLowerCase() === "pie" ? "item" : "axis",
239
- },
240
- series,
241
- backgroundColor: "#fff",
242
- textStyle: {
243
- fontSize: 36,
244
- },
245
- };
246
- // Add legend for multiple series or pie charts
247
- if (series.length > 1 || chartType.toLowerCase() === "pie") {
248
- config.legend = {
249
- data: series.map(s => s.name),
250
- textStyle: { fontSize: 32 },
251
- };
252
- }
253
- // Add axes for non-pie charts
254
- if (chartType.toLowerCase() !== "pie") {
255
- config.xAxis = {
256
- type: "category",
257
- data: categories,
258
- axisLabel: { fontSize: 32 },
259
- };
260
- config.yAxis = {
261
- type: "value",
262
- axisLabel: { fontSize: 32 },
263
- };
264
- }
265
- return config;
266
- }
267
- /**
268
- * Normalize chart type to ECharts supported types
269
- */
270
- function normalizeChartType(chartType) {
271
- const type = chartType.toLowerCase();
272
- switch (type) {
273
- case "bar":
274
- case "column":
275
- return "bar";
276
- case "line":
277
- return "line";
278
- case "pie":
279
- return "pie";
280
- case "scatter":
281
- return "scatter";
282
- default:
283
- console.warn(`Unknown chart type: ${chartType}, defaulting to bar`);
284
- return "bar";
285
- }
286
- }
287
- //# sourceMappingURL=charts-generator.js.map