@sme.up/doc-alchemist 1.2.0-SNAPSHOT-20250625163107 → 1.2.0-SNAPSHOT-20250626070253

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 (111) hide show
  1. package/dist/excel/commons.js.map +1 -0
  2. package/dist/excel/excel-generator.js.map +1 -0
  3. package/dist/excel/excel-generator.types.js.map +1 -0
  4. package/dist/excel/matrix-generator.js.map +1 -0
  5. package/dist/excel/tree-generator.js.map +1 -0
  6. package/dist/images/charts-generator.js.map +1 -0
  7. package/dist/index.d.ts +7 -7
  8. package/dist/index.js +4 -4
  9. package/dist/index.js.map +1 -1
  10. package/dist/pdf/pdf-generator.js.map +1 -0
  11. package/dist/pdf/sch-generator.js.map +1 -0
  12. package/dist/types/component.js.map +1 -0
  13. package/dist/types/data-structures/smeupDataStructure.js.map +1 -0
  14. package/dist/types/data-structures/smeupDataTable.js.map +1 -0
  15. package/dist/types/data-structures/smeupDataTree.js.map +1 -0
  16. package/dist/types/data-structures/smeupSch.js.map +1 -0
  17. package/dist/types/dynamism.js.map +1 -0
  18. package/dist/types/general.js.map +1 -0
  19. package/dist/types/helpers.js.map +1 -0
  20. package/dist/types/index.js.map +1 -0
  21. package/dist/utils/datastructure-utility.js.map +1 -0
  22. package/dist/utils/dates-utility.js.map +1 -0
  23. package/dist/utils/generator-utility.js.map +1 -0
  24. package/dist/utils/math-utility.js.map +1 -0
  25. package/dist/utils/objects-utility.js.map +1 -0
  26. package/dist/utils/regex-utility.js.map +1 -0
  27. package/package.json +2 -2
  28. package/dist/assets/sample-data.d.ts +0 -52
  29. package/dist/assets/sample-data.js +0 -682
  30. package/dist/assets/sample-data.js.map +0 -1
  31. package/dist/debug.d.ts +0 -1
  32. package/dist/debug.js +0 -29
  33. package/dist/debug.js.map +0 -1
  34. package/dist/src/excel/commons.js.map +0 -1
  35. package/dist/src/excel/excel-generator.js.map +0 -1
  36. package/dist/src/excel/excel-generator.types.js.map +0 -1
  37. package/dist/src/excel/matrix-generator.js.map +0 -1
  38. package/dist/src/excel/tree-generator.js.map +0 -1
  39. package/dist/src/images/charts-generator.js.map +0 -1
  40. package/dist/src/index.d.ts +0 -2
  41. package/dist/src/index.js +0 -3
  42. package/dist/src/index.js.map +0 -1
  43. package/dist/src/pdf/pdf-generator.js.map +0 -1
  44. package/dist/src/pdf/sch-generator.js.map +0 -1
  45. package/dist/src/types/component.js.map +0 -1
  46. package/dist/src/types/data-structures/smeupDataStructure.js.map +0 -1
  47. package/dist/src/types/data-structures/smeupDataTable.js.map +0 -1
  48. package/dist/src/types/data-structures/smeupDataTree.js.map +0 -1
  49. package/dist/src/types/data-structures/smeupSch.js.map +0 -1
  50. package/dist/src/types/dynamism.js.map +0 -1
  51. package/dist/src/types/general.js.map +0 -1
  52. package/dist/src/types/helpers.js.map +0 -1
  53. package/dist/src/types/index.js.map +0 -1
  54. package/dist/src/utils/datastructure-utility.js.map +0 -1
  55. package/dist/src/utils/dates-utility.js.map +0 -1
  56. package/dist/src/utils/generator-utility.js.map +0 -1
  57. package/dist/src/utils/math-utility.js.map +0 -1
  58. package/dist/src/utils/objects-utility.js.map +0 -1
  59. package/dist/src/utils/regex-utility.js.map +0 -1
  60. package/dist/tests/charts-generator.test.d.ts +0 -1
  61. package/dist/tests/charts-generator.test.js +0 -20
  62. package/dist/tests/charts-generator.test.js.map +0 -1
  63. package/dist/tests/excel-generator.test.d.ts +0 -1
  64. package/dist/tests/excel-generator.test.js +0 -406
  65. package/dist/tests/excel-generator.test.js.map +0 -1
  66. /package/dist/{src/excel → excel}/commons.d.ts +0 -0
  67. /package/dist/{src/excel → excel}/commons.js +0 -0
  68. /package/dist/{src/excel → excel}/excel-generator.d.ts +0 -0
  69. /package/dist/{src/excel → excel}/excel-generator.js +0 -0
  70. /package/dist/{src/excel → excel}/excel-generator.types.d.ts +0 -0
  71. /package/dist/{src/excel → excel}/excel-generator.types.js +0 -0
  72. /package/dist/{src/excel → excel}/matrix-generator.d.ts +0 -0
  73. /package/dist/{src/excel → excel}/matrix-generator.js +0 -0
  74. /package/dist/{src/excel → excel}/tree-generator.d.ts +0 -0
  75. /package/dist/{src/excel → excel}/tree-generator.js +0 -0
  76. /package/dist/{src/images → images}/charts-generator.d.ts +0 -0
  77. /package/dist/{src/images → images}/charts-generator.js +0 -0
  78. /package/dist/{src/pdf → pdf}/pdf-generator.d.ts +0 -0
  79. /package/dist/{src/pdf → pdf}/pdf-generator.js +0 -0
  80. /package/dist/{src/pdf → pdf}/sch-generator.d.ts +0 -0
  81. /package/dist/{src/pdf → pdf}/sch-generator.js +0 -0
  82. /package/dist/{src/types → types}/component.d.ts +0 -0
  83. /package/dist/{src/types → types}/component.js +0 -0
  84. /package/dist/{src/types → types}/data-structures/smeupDataStructure.d.ts +0 -0
  85. /package/dist/{src/types → types}/data-structures/smeupDataStructure.js +0 -0
  86. /package/dist/{src/types → types}/data-structures/smeupDataTable.d.ts +0 -0
  87. /package/dist/{src/types → types}/data-structures/smeupDataTable.js +0 -0
  88. /package/dist/{src/types → types}/data-structures/smeupDataTree.d.ts +0 -0
  89. /package/dist/{src/types → types}/data-structures/smeupDataTree.js +0 -0
  90. /package/dist/{src/types → types}/data-structures/smeupSch.d.ts +0 -0
  91. /package/dist/{src/types → types}/data-structures/smeupSch.js +0 -0
  92. /package/dist/{src/types → types}/dynamism.d.ts +0 -0
  93. /package/dist/{src/types → types}/dynamism.js +0 -0
  94. /package/dist/{src/types → types}/general.d.ts +0 -0
  95. /package/dist/{src/types → types}/general.js +0 -0
  96. /package/dist/{src/types → types}/helpers.d.ts +0 -0
  97. /package/dist/{src/types → types}/helpers.js +0 -0
  98. /package/dist/{src/types → types}/index.d.ts +0 -0
  99. /package/dist/{src/types → types}/index.js +0 -0
  100. /package/dist/{src/utils → utils}/datastructure-utility.d.ts +0 -0
  101. /package/dist/{src/utils → utils}/datastructure-utility.js +0 -0
  102. /package/dist/{src/utils → utils}/dates-utility.d.ts +0 -0
  103. /package/dist/{src/utils → utils}/dates-utility.js +0 -0
  104. /package/dist/{src/utils → utils}/generator-utility.d.ts +0 -0
  105. /package/dist/{src/utils → utils}/generator-utility.js +0 -0
  106. /package/dist/{src/utils → utils}/math-utility.d.ts +0 -0
  107. /package/dist/{src/utils → utils}/math-utility.js +0 -0
  108. /package/dist/{src/utils → utils}/objects-utility.d.ts +0 -0
  109. /package/dist/{src/utils → utils}/objects-utility.js +0 -0
  110. /package/dist/{src/utils → utils}/regex-utility.d.ts +0 -0
  111. /package/dist/{src/utils → utils}/regex-utility.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commons.js","sourceRoot":"","sources":["../../src/excel/commons.ts"],"names":[],"mappings":"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","sourcesContent":["import ExcelJS, { Worksheet } from \"exceljs\";\nimport {\n allowedTotals,\n footerStyleFill,\n headerStyleFill,\n} from \"./excel-generator.types.js\";\nimport { GenericObject, WebupManagerData } from \"../types/index.js\";\nimport { objectsIsDate } from \"../utils/objects-utility.js\";\nimport { getExcelNumFormat } from \"./matrix-generator.js\";\nimport { SmeupDataColumn } from \"../types/data-structures/smeupDataTable.js\";\nconst { ValueType } = ExcelJS;\n\n/**\n * Adds creator, creation date to the workbook and creates a sheet\n * @param workbook\n * @returns void\n */\nexport const initializeWorksheet = (workbook: ExcelJS.Workbook) => {\n workbook.creator = \"/doc-alchemist - dataTable excel generator\";\n workbook.created = new Date();\n\n const worksheet = workbook.addWorksheet(\"Export\");\n // worksheet.pageSetup = {\n // paperSize: 9, // A4 paper size\n // orientation: \"landscape\",\n // fitToPage: true,\n // fitToHeight: 1,\n // fitToWidth: 1,\n // margins: {\n // left: 0.5, // 0.5 inch left margin\n // right: 0.5, // 0.5 inch right margin\n // top: 0.5, // 0.5 inch top margin\n // bottom: 0.5, // 0.5 inch bottom margin\n // header: 0.3, // 0.3 inch header margin\n // footer: 0.3, // 0.3 inch footer margin\n // },\n // printTitlesRow: \"1:1\", // Print the first row as title\n // };\n\n return worksheet;\n};\n\nexport const setHeaderStyling = (\n worksheet: Worksheet,\n background = false,\n): void => {\n const headerRow = worksheet.getRow(1);\n headerRow.font = { bold: true };\n headerRow.alignment = {\n horizontal: \"center\",\n vertical: \"middle\",\n wrapText: true,\n };\n\n if (background) {\n for (let col = 1; col <= worksheet.columns.length; col++) {\n const cell = headerRow.getCell(col);\n cell.fill = headerStyleFill;\n }\n }\n};\n\nexport const addFooterTotalsRow = (\n worksheet: ExcelJS.Worksheet,\n columns: SmeupDataColumn[],\n props: GenericObject,\n webupManagerData: WebupManagerData,\n) => {\n if (!props?.totals || typeof props.totals !== \"object\") {\n return;\n }\n\n const totals = props.totals as Record<string, string>;\n\n // Set footer total formulas\n const footerRowData = columns.map((column, columnIndex) => {\n const totalOperation: string = totals[column.name];\n if (!totalOperation) return;\n\n const formula = getTotalFormula(\n totalOperation,\n columnIndex + 1, // from base 0 to base 1\n worksheet.rowCount,\n columns,\n totalOperation.startsWith(\"MATH\"),\n );\n\n return formula ? { formula: formula, type: ValueType.Formula } : \" \";\n });\n const footerRow = worksheet.addRow(footerRowData);\n\n // Format excel footer cells\n footerRow.font = { bold: true };\n footerRow.alignment = { horizontal: \"right\" };\n columns.map((column, index) => {\n const exceljsCell = footerRow.getCell(index + 1); // Convert base 0 index to base 1\n exceljsCell.fill = footerStyleFill;\n\n if (\n column.obj &&\n objectsIsDate(column.obj) &&\n (exceljsCell.formula?.startsWith(allowedTotals.Min) ||\n exceljsCell.formula?.startsWith(allowedTotals.Max))\n ) {\n const dateFormat =\n webupManagerData.datesLocale === \"it\" ? \"dd/mm/yyyy\" : \"mm/dd/yyyy\";\n exceljsCell.numFmt = dateFormat;\n return;\n }\n\n exceljsCell.numFmt = getExcelNumFormat(\n column.decimals ?? 0,\n column.integers ?? 0,\n );\n });\n};\n\n/**\n * Returns the formula used in the footer to add Totals at the end of the table\n * @param totalOperation string\n * @param colIndex string\n * @param rowNumber number\n * @returns\n */\nexport const getTotalFormula = (\n totalOperation: string,\n colIndex: number,\n rowNumber: number,\n filteredColumns: SmeupDataColumn[],\n isSmeupFormula: boolean,\n): string => {\n const startRow = 2;\n const columnExcelLetter = getExcelColumnLetter(colIndex);\n\n if (isSmeupFormula) {\n return smeupFormulaToExcelFormula(\n totalOperation,\n rowNumber,\n filteredColumns,\n );\n }\n\n if (!allowedTotals[totalOperation]) {\n console.warn(\n `Total operation [' ${totalOperation} '] is not supported`,\n \"exportUtils.ts\",\n );\n return \"\";\n }\n\n return `${allowedTotals[totalOperation]}${columnExcelLetter}${startRow}:${columnExcelLetter}${rowNumber})`;\n};\n\nexport const getExcelColumnLetter = (index: number): string => {\n let columnLetter = \"\";\n while (index > 0) {\n index--; // Excel columns are 1-based, but calculations work better with 0-based\n columnLetter = String.fromCharCode((index % 26) + 65) + columnLetter;\n index = Math.floor(index / 26);\n }\n return columnLetter;\n};\n\nexport const smeupFormulaToExcelFormula = (\n formula: string,\n rowNumber: number,\n filteredColumns: SmeupDataColumn[],\n): string => {\n return formula\n .replace(\"MATH\", \"\")\n .replace(/\\[(\\w+)\\]/g, (_, key) => {\n const columnIndex =\n filteredColumns.findIndex(col => col.name === key) + 1; // Convert to base 1 index\n const columnLetter = getExcelColumnLetter(columnIndex);\n return columnLetter && columnIndex\n ? `${columnLetter}${rowNumber + 1}`\n : key; // Return column letter with row number or original key if not found\n })\n .replaceAll(\",\", \".\"); // Replace eventual , to . => The excel accepted decimal separator\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-generator.js","sourceRoot":"","sources":["../../src/excel/excel-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,sBAAsB,GAEvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAI9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EACvC,SAGC,EACD,UAAkC,EAClC,gBAAkC,EACJ,EAAE;IAChC,MAAM,QAAQ,GAAG,wBAAwB,CACvC,SAAS,EACT,UAAU,EACV,gBAAgB,CACjB,CAAC;IAEF,OAAO,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,SAGC,EACD,UAAkC,EAClC,gBAAkC,EACJ,EAAE;IAChC,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAC5C,SAAS,EACT,UAAU,EACV,gBAAgB,CACjB,CAAC;IAEF,OAAO,mBAAmB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,KAAK,EAC/B,QAAkB,EAClB,UAAkC,EACJ,EAAE;IAChC,kDAAkD;IAClD,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;YACjC,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACrD,OAAO,eAAe,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,sBAAsB,CAAC,GAAG,CAAC;QAChC,KAAK,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC;gBAC/C,gBAAgB,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE;aACrC,CAAC,CAAC;YACH,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC,CAAC","sourcesContent":["import {\n GenericObject,\n SupportedExportFormats,\n WebupManagerData,\n} from \"../types/index.js\";\nimport { convertToBuffer } from \"../utils/generator-utility.js\";\nimport { dataTableToExcelWorkbook } from \"./matrix-generator.js\";\nimport { Workbook } from \"exceljs\";\nimport { dataTreeToExcelWorkbook } from \"./tree-generator.js\";\nimport { SmeupDataTable } from \"../types/data-structures/smeupDataTable.js\";\nimport { SmeupDataTree } from \"../types/data-structures/smeupDataTree.js\";\n\nexport const dataTableToExcelData = async (\n component: {\n smeupDataTable: SmeupDataTable;\n props: GenericObject;\n },\n fileFormat: SupportedExportFormats,\n webupManagerData: WebupManagerData,\n): Promise<Buffer | Uint8Array> => {\n const workbook = dataTableToExcelWorkbook(\n component,\n fileFormat,\n webupManagerData,\n );\n\n return convertToStreamData(workbook, fileFormat);\n};\n\nexport const dataTreeToExcelData = async (\n component: {\n smeupDataTree: SmeupDataTree;\n props: GenericObject;\n },\n fileFormat: SupportedExportFormats,\n webupManagerData: WebupManagerData,\n): Promise<Buffer | Uint8Array> => {\n const workbook = await dataTreeToExcelWorkbook(\n component,\n fileFormat,\n webupManagerData,\n );\n\n return convertToStreamData(workbook, fileFormat);\n};\n\nconst convertToStreamData = async (\n workbook: Workbook,\n fileFormat: SupportedExportFormats,\n): Promise<Buffer | Uint8Array> => {\n // Convert workbook to buffer based on file format\n switch (fileFormat) {\n case SupportedExportFormats.XLSX: {\n const xlsxBuffer = await workbook.xlsx.writeBuffer();\n return convertToBuffer(xlsxBuffer);\n }\n case SupportedExportFormats.TXT:\n case SupportedExportFormats.CSV: {\n const csvBuffer = await workbook.csv.writeBuffer({\n formatterOptions: { delimiter: \";\" },\n });\n return convertToBuffer(csvBuffer);\n }\n default:\n throw new Error(`Unsupported export format: ${fileFormat}`);\n }\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-generator.types.js","sourceRoot":"","sources":["../../src/excel/excel-generator.types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAY3D,MAAM,CAAC,MAAM,eAAe,GAAS;IACnC,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,IAAI;IACnC,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,KAAK;IACnC,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,KAAK;IACnC,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,KAAK;CAC3C,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,sEAAsE;IACtE,CAAC,OAAoB,CAAC,EAAE,aAAa,EAAE,SAAS;IAChD,CAAC,KAAkB,CAAC,EAAE,aAAa,EAAE,MAAM;IAC3C,CAAC,KAAkB,CAAC,EAAE,aAAa,EAAE,MAAM;IAC3C,CAAC,KAAkB,CAAC,EAAE,aAAa,EAAE,MAAM;IAC3C,CAAC,SAAsB,CAAC,EAAE,aAAa,EAAE,UAAU;CACpD,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAS;IACnC,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;IAChB,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;CAC5B,CAAC","sourcesContent":["import { Fill } from \"exceljs\";\nimport { SupportedExportFormats } from \"../types/index.js\";\n\nexport declare enum TotalMode {\n COUNT = \"Count\",\n SUM = \"Sum\",\n MIN = \"Min\",\n MAX = \"Max\",\n DISTINCT = \"Distinct\",\n AVERAGE = \"Average\",\n MATH = \"MATH\",\n}\n\nexport const headerStyleFill: Fill = {\n type: \"pattern\",\n pattern: \"solid\",\n fgColor: { argb: \"E0E0E0\" },\n};\n\nexport const exportTypeSupportsFormatting = {\n [SupportedExportFormats.XLSX]: true,\n [SupportedExportFormats.CSV]: false,\n [SupportedExportFormats.TXT]: false,\n [SupportedExportFormats.PDF_SCHEDA]: false,\n};\n\nexport const allowedTotals = {\n // The different initial number indicates the specific subtotal action\n [\"Count\" as TotalMode]: \"SUBTOTAL(3,\", // COUNTA\n [\"Sum\" as TotalMode]: \"SUBTOTAL(9,\", // SUM\n [\"Max\" as TotalMode]: \"SUBTOTAL(4,\", // MAX\n [\"Min\" as TotalMode]: \"SUBTOTAL(5,\", // MIN\n [\"Average\" as TotalMode]: \"SUBTOTAL(1,\", // AVERAGE\n};\n\nexport const footerStyleFill: Fill = {\n type: \"pattern\",\n pattern: \"solid\",\n fgColor: { argb: \"EEEEEE\" },\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix-generator.js","sourceRoot":"","sources":["../../src/excel/matrix-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Properties as CSSProperties } from \"csstype\";\nimport ExcelJS, { Worksheet, Cell } from \"exceljs\";\nconst { ValueType } = ExcelJS;\nimport {\n GenericObject,\n WebupManagerData,\n ColumnFilter,\n SmeupDataCellStyled,\n SupportedExportFormats,\n} from \"../types/index.js\";\nimport {\n getFilteredColumns,\n filterRows,\n updateMaxValueLength,\n calculateCellValue,\n hexToArgb,\n} from \"../utils/generator-utility.js\";\nimport {\n exportTypeSupportsFormatting,\n allowedTotals,\n} from \"./excel-generator.types.js\";\nimport { isColumnHidden } from \"../utils/datastructure-utility.js\";\nimport {\n addFooterTotalsRow,\n getExcelColumnLetter,\n initializeWorksheet,\n setHeaderStyling,\n smeupFormulaToExcelFormula,\n} from \"./commons.js\";\nimport {\n SmeupDataCell,\n SmeupDataColumn,\n SmeupDataRow,\n SmeupDataTable,\n} from \"../types/data-structures/smeupDataTable.js\";\nimport { SmeupDataNode } from \"../types/data-structures/smeupDataTree.js\";\n\nexport const dataTableToExcelWorkbook = (\n component: {\n smeupDataTable: SmeupDataTable;\n props: GenericObject;\n },\n fileFormat: SupportedExportFormats,\n webupManagerData: WebupManagerData,\n): ExcelJS.Workbook => {\n // Create a new ExcelJS.Workbook and return it as a resolved Promise\n const { smeupDataTable: smeupDataTable, props } = component;\n const workbook = new ExcelJS.Workbook();\n const worksheet = initializeWorksheet(workbook);\n\n const groupsArray: { column: string; visible: boolean }[] = Array.isArray(\n props?.groups,\n )\n ? props.groups\n : [];\n\n // Visible attribute is used only to determine if the column is visible,\n // ant not to determine if the group is active\n const activeGroups: string[] = groupsArray.map(\n (group: { column: string; visible: boolean }) => group.column,\n );\n\n const filteredColumns = getFilteredColumns(\n smeupDataTable.columns,\n props,\n groupsArray,\n );\n\n const maxColumnValueLenght: { [key: string]: number } = {};\n\n let rowNumber: number = 1; // Start row number\n\n // Headers setup\n setDataTableHeaderRow(worksheet, filteredColumns, maxColumnValueLenght);\n\n // Filter and sort rows (if filters are available)\n const rows = filterRows(\n smeupDataTable,\n filteredColumns,\n props?.filters as { [key: string]: ColumnFilter },\n );\n\n if (activeGroups?.length > 0) {\n // Sort rows based on the first active group column\n rows.sort((a, b) => {\n for (const group of activeGroups) {\n const valA =\n a.cells && a.cells[group]?.value !== undefined\n ? a.cells[group]?.value\n : \"\";\n const valB =\n b.cells && b.cells[group]?.value !== undefined\n ? b.cells[group]?.value\n : \"\";\n if (valA !== valB) return valA.localeCompare(valB);\n }\n return 0;\n });\n\n // Recursive grouping\n rowNumber = insertDataTableGroupedRows(\n worksheet,\n rows,\n activeGroups,\n filteredColumns,\n smeupDataTable.columns,\n rowNumber,\n fileFormat,\n webupManagerData,\n 1,\n maxColumnValueLenght,\n (props?.totals ?? {}) as Record<string, string>,\n );\n\n //INTERACTIVE GROUPS MANAGING\n //TODO: Add groups subtotals\n if (worksheet.getColumn(1).hidden) ensureGroupRowHasDescription(worksheet);\n applyDataTableOutlineLevels(worksheet);\n worksheet.properties.outlineProperties = {\n summaryBelow: false,\n summaryRight: false,\n };\n } else {\n // Process rows normally if no grouping\n rowNumber = insertDataTableRows(\n worksheet,\n rows,\n filteredColumns,\n rowNumber,\n fileFormat,\n webupManagerData,\n maxColumnValueLenght,\n );\n }\n\n if (exportTypeSupportsFormatting[fileFormat] && props?.totals) {\n addFooterTotalsRow(worksheet, filteredColumns, props, webupManagerData);\n }\n\n // Apply column width\n worksheet.columns.forEach(col => {\n const columnKey = col.key;\n if (columnKey) {\n col.width = (maxColumnValueLenght[columnKey] ?? 10) * 1.1;\n } else {\n col.width = 10 * 1.1; // Default width\n }\n });\n\n // Apply filter to column headers\n // TODO: look if it breaks groupings\n worksheet.autoFilter = {\n from: { row: 1, column: 1 },\n to: { row: rowNumber, column: filteredColumns.length },\n };\n\n // Forces full calculation when the workbook is opened\n workbook.calcProperties = {\n fullCalcOnLoad: true,\n };\n\n return workbook;\n};\n\n/**\n * Creates the first row of the table by looking at dataTable columns.\n * Also updates column width calculations\n * @param worksheet\n * @param filteredColumns\n * @param maxValueLengthMap\n */\nconst setDataTableHeaderRow = (\n worksheet: Worksheet,\n filteredColumns: SmeupDataColumn[],\n maxValueLengthMap: { [key: string]: number },\n) => {\n worksheet.columns = filteredColumns.map(col => {\n updateMaxValueLength(maxValueLengthMap, col.title, col.name);\n return {\n header: col.title,\n key: col.name,\n width: maxValueLengthMap[col.name], // Set the width to the updated value\n hidden: isColumnHidden(col),\n } as ExcelJS.Column;\n });\n\n setHeaderStyling(worksheet);\n};\n\nconst insertDataTableGroupedRows = (\n worksheet: ExcelJS.Worksheet,\n rows: SmeupDataRow[],\n groups: string[],\n filteredColumns: SmeupDataColumn[],\n unfilteredColumns: SmeupDataColumn[],\n rowNumber: number,\n fileFormat: SupportedExportFormats,\n webupManagerData: WebupManagerData,\n currentOutlineLevel: number = 1,\n maxColumnValueLength: Record<string, number>,\n totals: Record<string, string>,\n): number => {\n if (!groups.length) {\n return insertDataTableRows(\n worksheet,\n rows,\n filteredColumns,\n rowNumber,\n fileFormat,\n webupManagerData,\n maxColumnValueLength,\n );\n }\n\n const [currentGroup, ...remainingGroups] = groups;\n const uniqueGroupValues = [\n ...new Set(\n rows\n .map(row => row.cells && row.cells[currentGroup]?.value)\n .filter(value => value !== undefined),\n ),\n ].sort();\n const columnTitles = Object.fromEntries(\n unfilteredColumns.map(col => [col.name, col.title]),\n );\n\n for (const groupValue of uniqueGroupValues) {\n // Filter rows for the current group\n const groupedRows = rows.filter(\n row => row.cells && row.cells[currentGroup]?.value === groupValue,\n );\n const indentation = \" \".repeat((currentOutlineLevel - 1) * 8);\n\n // Insert header row\n const headerRow = worksheet.addRow([]);\n headerRow.getCell(1).value =\n `${indentation}▼${columnTitles[currentGroup]} - ${groupValue}`;\n const headerRowNumber = ++rowNumber;\n\n rowNumber = insertDataTableGroupedRows(\n worksheet,\n groupedRows,\n remainingGroups,\n filteredColumns,\n unfilteredColumns,\n rowNumber,\n fileFormat,\n webupManagerData,\n currentOutlineLevel + 1,\n maxColumnValueLength,\n totals,\n );\n const lastDataRow = rowNumber;\n\n // Compute totals and format cells\n for (const [colIndex, col] of filteredColumns.entries()) {\n const cell = headerRow.getCell(colIndex + 1);\n cell.numFmt = getExcelNumFormat(col.decimals ?? 0, col.integers ?? 0);\n decorateHeaderRow(cell);\n if (!totals) continue;\n const totalFormula = totals[col.name];\n if (totalFormula && col.visible) {\n cell.alignment = { horizontal: \"right\" };\n\n cell.value = totalFormula.startsWith(\"MATH\")\n ? {\n formula: smeupFormulaToExcelFormula(\n totalFormula.replace(\"MATH\", \"\"),\n headerRowNumber - 1,\n filteredColumns,\n ),\n }\n : {\n formula: getSubGroupTotalFormula(\n totalFormula,\n colIndex + 1,\n headerRowNumber + 1,\n lastDataRow,\n ),\n };\n }\n }\n }\n\n return rowNumber;\n};\n\n/**\n * Inserts normal rows (without grouping).\n */\nconst insertDataTableRows = (\n worksheet: ExcelJS.Worksheet,\n rows: SmeupDataRow[],\n filteredColumns: SmeupDataColumn[],\n rowNumber: number,\n fileFormat: SupportedExportFormats,\n webupManagerData: WebupManagerData,\n maxColumnValueLenght: { [key: string]: number },\n): number => {\n for (const row of rows) {\n const rowData = filteredColumns.map(column => {\n const cell: SmeupDataCell = (row?.cells ?? {})[column.name];\n updateMaxValueLength(maxColumnValueLenght, cell?.value, column.name);\n return column.formula\n ? {\n formula: `${smeupFormulaToExcelFormula(\n column.formula,\n rowNumber,\n filteredColumns,\n )}`,\n type: ValueType.Formula,\n }\n : calculateCellValue(cell, fileFormat, webupManagerData);\n });\n\n const newRow = worksheet.addRow(rowData);\n if (exportTypeSupportsFormatting[fileFormat]) {\n addStyleToExceljsRow(newRow, filteredColumns, row);\n }\n\n rowNumber++;\n }\n\n return rowNumber;\n};\n\nexport const addStyleToExceljsRow = (\n exceljsRow: ExcelJS.Row,\n columns: SmeupDataColumn[],\n row: SmeupDataRow | SmeupDataNode,\n) => {\n exceljsRow.eachCell((cell, cellIndex) => {\n const columnIndex = cellIndex - 1;\n const columnName = columns[columnIndex]?.name;\n const smeupCell = row?.cells?.[columnName];\n const smeupCellWithStyle = smeupCell as SmeupDataCellStyled;\n if (\n smeupCellWithStyle?.style &&\n Object.keys(smeupCellWithStyle.style).length > 0\n ) {\n cellToXlsxStyleConverter(smeupCellWithStyle, cell);\n } else if (\n (row as SmeupDataCellStyled)?.style &&\n Object.keys((row as SmeupDataCellStyled).style ?? {}).length > 0\n ) {\n cellToXlsxStyleConverter(\n smeupCellWithStyle,\n cell,\n (row as SmeupDataCellStyled).style,\n );\n }\n });\n};\n\n/**\n * Converts SmeupDataCell.style attributes to ExcelJS styles\n * @param cell SmeupDataCell - The TBL cell containing styless\n * @param xlsxCell ExcelJS.Cell - XLSX cell where styles will be applied\n * @returns any\n */\nconst cellToXlsxStyleConverter = (\n cell: SmeupDataCell,\n xlsxCell: Cell,\n optionalRowStyles?: CSSProperties,\n) => {\n const cellStyle = optionalRowStyles ?? (cell as SmeupDataCellStyled)?.style;\n if (!cellStyle) return;\n\n if (cellStyle.textAlign) {\n xlsxCell.alignment = {\n horizontal: cellStyle.textAlign as\n | \"left\"\n | \"center\"\n | \"right\"\n | \"fill\"\n | \"justify\"\n | \"centerContinuous\"\n | \"distributed\",\n };\n }\n\n if (cellStyle.backgroundColor) {\n xlsxCell.fill = {\n type: \"pattern\",\n pattern: \"solid\",\n fgColor: { argb: hexToArgb(cellStyle.backgroundColor) },\n };\n }\n if (cellStyle.fontWeight == \"bold\") {\n xlsxCell.font = {\n ...xlsxCell.font,\n bold: true,\n };\n }\n if (cellStyle.color) {\n xlsxCell.font = {\n ...xlsxCell.font,\n color: { argb: hexToArgb(cellStyle.color) },\n };\n }\n\n if (typeof xlsxCell.value === \"number\" || xlsxCell.formula) {\n xlsxCell.numFmt = getExcelNumFormat(\n (cell.data?.decimals as number) ?? 0,\n (cell.data?.integers as number) ?? 0,\n );\n }\n};\n\nexport const getExcelNumFormat = (\n cellDecimals: number,\n cellIntegers: number,\n): string => {\n // Step 1: Build the integer part with necessary '#' and '0'\n let integerPart = cellIntegers ? \"#\".repeat(cellIntegers - 1) + \"0\" : \"0\";\n\n // Step 2: Insert commas every three digits from the right\n if (cellIntegers > 3) {\n integerPart = integerPart\n .split(\"\")\n .reverse()\n .map((char, index) => (index > 0 && index % 3 === 0 ? char + \",\" : char))\n .reverse()\n .join(\"\");\n }\n\n // Step 3: Build the decimal part\n const decimalPart = cellDecimals > 0 ? \".\" + \"0\".repeat(cellDecimals) : \".00\";\n\n // Step 4: Construct the full format, including negative formatting\n let numFmt = integerPart + decimalPart;\n numFmt += `;[Red]-${numFmt}`;\n\n return numFmt;\n};\n\nconst decorateHeaderRow = (headerCell: ExcelJS.Cell) => {\n headerCell.font = { bold: true };\n headerCell.alignment = { horizontal: \"left\" };\n headerCell.fill = {\n type: \"pattern\",\n pattern: \"solid\",\n fgColor: { argb: `${hexToArgb(\"e0e0e0\")}` },\n };\n};\n\nconst getSubGroupTotalFormula = (\n totalOperation: string,\n colIndex: number,\n firstDataRow: number,\n lastDataRow: number,\n): string => {\n const columnExcelLetter = getExcelColumnLetter(colIndex);\n\n if (!allowedTotals[totalOperation]) {\n console.warn(\n `Total operation [' ${totalOperation} '] is not supported`,\n \"exportUtils.ts\",\n );\n return \"\";\n }\n\n // Use full range (includes both subheaders and data rows)\n return `${allowedTotals[totalOperation]}${columnExcelLetter}${firstDataRow}:${columnExcelLetter}${lastDataRow})`;\n};\n\nconst ensureGroupRowHasDescription = (worksheet: ExcelJS.Worksheet) => {\n const firstVisibleColumnIndex = getFirstVisibleColumn(worksheet);\n if (!firstVisibleColumnIndex) {\n console.warn(\"No visible columns found in the worksheet.\");\n return;\n }\n // Iterate through each row and check if the first cell contains \"▼\"\n worksheet.eachRow((row: ExcelJS.Row) => {\n const cellValue = row.getCell(1).value;\n if (cellValue && cellValue.toString().includes(\"▼\")) {\n row.getCell(firstVisibleColumnIndex).value = cellValue\n .toString()\n .replace(\"▼\", \"\");\n }\n });\n};\n\nconst getFirstVisibleColumn = (worksheet: ExcelJS.Worksheet) => {\n return (\n [...Array(worksheet.columnCount)]\n .map((_, i) => i + 1) // Convert to base 1 index\n .find(col => !worksheet.getColumn(col).hidden) || null\n );\n};\n\n// Function to analyze header indentation and assign outline levels\nconst applyDataTableOutlineLevels = (worksheet: ExcelJS.Worksheet) => {\n let lastOutlineLevel = 0;\n\n worksheet.eachRow((row, rowIndex) => {\n if (rowIndex !== 1) {\n const firstCell = row.getCell(1);\n const isHeader = firstCell.value?.toString().includes(\"▼\");\n\n if (isHeader) {\n row.getCell(1).value = (row.getCell(1).value as string).replace(\n \"▼\",\n \"\",\n );\n const leadingSpaces =\n (firstCell.value as string).match(/^ */)?.[0].length || 0;\n const outlineLevel = Math.floor(leadingSpaces / 8) + 1; // Each 8 spaces = 1 level\n row.outlineLevel = outlineLevel - 1; // Ensure headers get an outline level\n lastOutlineLevel = outlineLevel;\n } else {\n row.outlineLevel = lastOutlineLevel; // Normal rows follow the last assigned level\n }\n }\n });\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-generator.js","sourceRoot":"","sources":["../../src/excel/tree-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GenericObject,\n SupportedExportFormats,\n WebupManagerData,\n} from \"../types/index.js\";\nimport { exportTypeSupportsFormatting } from \"./excel-generator.types.js\";\nimport ExcelJS from \"exceljs\";\nimport {\n addFooterTotalsRow,\n initializeWorksheet,\n setHeaderStyling,\n} from \"./commons.js\";\nimport { isColumnHidden } from \"../utils/datastructure-utility.js\";\nimport {\n getFilteredColumns,\n calculateCellValue,\n} from \"../utils/generator-utility.js\";\nimport { addStyleToExceljsRow } from \"./matrix-generator.js\";\nimport { SmeupDataColumn } from \"../types/data-structures/smeupDataTable.js\";\nimport {\n SmeupDataTree,\n SmeupDataNode,\n} from \"../types/data-structures/smeupDataTree.js\";\n\nexport async function dataTreeToExcelWorkbook(\n component: {\n smeupDataTree: SmeupDataTree;\n props: GenericObject;\n },\n fileFormat: SupportedExportFormats,\n webupManagerData: WebupManagerData,\n splitNodesToColumns = true,\n): Promise<ExcelJS.Workbook> {\n const { smeupDataTree, props } = component;\n const workbook = new ExcelJS.Workbook();\n const worksheet = initializeWorksheet(workbook);\n const columnsMaxWidth: { [columnName: string]: number } = {};\n\n // Add ExcelJS columns\n const headerColumns = addTreeColumns(\n worksheet,\n smeupDataTree.columns ?? [],\n smeupDataTree.children,\n splitNodesToColumns,\n props,\n );\n\n // Add ExcelJS rows\n addTreeNodeRows(\n worksheet,\n fileFormat,\n webupManagerData,\n columnsMaxWidth,\n headerColumns,\n smeupDataTree.children,\n splitNodesToColumns,\n );\n\n // Totals\n if (exportTypeSupportsFormatting[fileFormat] && props?.totals) {\n addFooterTotalsRow(worksheet, headerColumns, props, webupManagerData);\n }\n\n // Set ExcelJS columns width\n worksheet.columns.forEach(col => {\n if (col.key) {\n col.width = columnsMaxWidth[col.key] ?? 10;\n } else {\n col.width = 10;\n }\n });\n\n // Forces full calculation when the workbook is opened\n workbook.calcProperties = {\n fullCalcOnLoad: true,\n };\n return workbook;\n}\n\nconst addTreeColumns = (\n worksheet: ExcelJS.Worksheet,\n columns: SmeupDataColumn[],\n nodeRows: SmeupDataNode[],\n splitNodesToColumns: boolean,\n props: GenericObject,\n): SmeupDataColumn[] => {\n const addTreeNodeColumns = (\n nodeRows: SmeupDataNode[],\n nodeColumns: SmeupDataColumn[],\n level = 0,\n ) => {\n if (\n !nodeColumns.some(\n nodeColumn => nodeColumn.name === getTreeNodeColumnName(level),\n )\n ) {\n nodeColumns.push({\n name: getTreeNodeColumnName(level),\n title: `.${level + 1}`,\n });\n }\n\n nodeRows.forEach(row => {\n if (row.children?.length ?? 0 > 0) {\n addTreeNodeColumns(row.children ?? [], nodeColumns, level + 1);\n }\n });\n };\n\n const nodeColumns: SmeupDataColumn[] = [];\n if (splitNodesToColumns) {\n // New column for each tree node\n addTreeNodeColumns(nodeRows, nodeColumns);\n } else {\n // All tree nodes are under the same column\n nodeColumns.push({\n name: getTreeNodeColumnName(0),\n title: \"\",\n });\n }\n\n const filteredColumns: SmeupDataColumn[] = getFilteredColumns(columns, props);\n const headerColumns: SmeupDataColumn[] = [...nodeColumns, ...filteredColumns];\n\n /* Add ExcelJS columns*/\n worksheet.columns = headerColumns.map<Partial<ExcelJS.Column>>(column => ({\n header: column.title ?? \"\",\n key: column.name,\n hidden: isColumnHidden(column),\n }));\n // Add style to ExcelJS columns\n setHeaderStyling(worksheet, true);\n return headerColumns;\n};\n\nconst addTreeNodeRows = (\n worksheet: ExcelJS.Worksheet,\n fileFormat: SupportedExportFormats,\n webupManagerData: WebupManagerData,\n columnsMaxWidth: { [columnName: string]: number },\n columns: SmeupDataColumn[],\n nodeRows: SmeupDataNode[],\n splitNodesToColumns: boolean,\n level = 0,\n): void => {\n const getParsedRowData = (row: SmeupDataNode): (string | number | Date)[] => {\n return columns.map<string | number | Date>(column => {\n /* Set cell value */\n let cellValue: string | number | Date = \"\";\n\n if (column.name.includes(TREE_HEADER_COLUMN_NAME)) {\n /* Node column */\n if (!splitNodesToColumns) {\n // Level-based indentation\n const indent = ` `.repeat(level);\n cellValue = `${indent}${row.obj?.k}: ${row.value}`;\n } else if (column.name === getTreeNodeColumnName(level)) {\n // No indentation\n cellValue = `${row.obj?.k}: ${row.value}`;\n }\n } else {\n /* Standard column */\n cellValue = calculateCellValue(\n row.cells?.[column.name] ?? { value: \"\" },\n fileFormat,\n webupManagerData,\n );\n }\n\n /* Update column max width */\n const currentMaxWidth = columnsMaxWidth[column.name] ?? 10;\n const cellLength =\n cellValue instanceof Date ? 10 : cellValue.toString().length;\n columnsMaxWidth[column.name] = Math.max(currentMaxWidth, cellLength);\n\n return cellValue;\n });\n };\n\n nodeRows.forEach(row => {\n /* Add ExcelJS row */\n const parsedRowData = getParsedRowData(row);\n const exceljsRow = worksheet.addRow(parsedRowData);\n\n if (exportTypeSupportsFormatting[fileFormat]) {\n addStyleToExceljsRow(exceljsRow, columns, row);\n }\n\n if (row.children?.length ?? 0 > 0) {\n addTreeNodeRows(\n worksheet,\n fileFormat,\n webupManagerData,\n columnsMaxWidth,\n columns,\n row.children ?? [],\n splitNodesToColumns,\n level + 1,\n );\n }\n });\n};\n\nexport const TREE_HEADER_COLUMN_NAME = \"TREE_NODE_LVL_\";\n\nexport const getTreeNodeColumnName = (level: number) => {\n return `${TREE_HEADER_COLUMN_NAME}${level}`;\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts-generator.js","sourceRoot":"","sources":["../../src/images/charts-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAKnC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,SAAyB,EACzB,SAAiB,EACjB,YAA0B,EACT,EAAE;IACnB,mDAAmD;IACnD,MAAM,MAAM,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IAE7C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,mBAAmB,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,OAAO,sBAAsB,CAAC,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACpE,CAAC;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,SAAyB,EACzB,SAAiB,EACjB,YAA0B;IAE1B,IAAI,CAAC;QACH,oCAAoC;QACpC,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QAEhD,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAE3C,gBAAgB;QAChB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAE3C,oDAAoD;QACpD,MAAM,WAAW,GAAG;YAClB,WAAW,EAAE,KAAK;YAClB,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,EAAE;YACT,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC1B,mBAAmB,EAAE,GAAG,EAAE,GAAE,CAAC;YAC7B,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI;YACxB,YAAY,EAAE,GAAG,EAAE,GAAE,CAAC;YACtB,UAAU,EAAE,CAAC,IAAY,EAAE,EAAE;gBAC3B,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;oBAClB,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;YACrB,WAAW,EAAE,GAAG,EAAE,GAAE,CAAC;YACrB,aAAa,EAAE;gBACb,aAAa,EAAE,CAAC,OAAe,EAAE,EAAE;oBACjC,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;wBACzB,OAAO,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBACrC,CAAC;oBACD,OAAO,WAAW,CAAC;gBACrB,CAAC;gBACD,eAAe,EAAE,GAAG,EAAE,CAAC,WAAW;gBAClC,WAAW,EAAE;oBACX,gBAAgB,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;iBACzD;aACF;SACF,CAAC;QAEF,2CAA2C;QAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,WAAqC,EAAE,IAAI,EAAE;YACtE,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,4CAA4C;QAC5C,MAAM,MAAM,GAAG,6BAA6B,CAC1C,SAAS,EACT,SAAS,EACT,YAAY,CACb,CAAC;QAEF,oBAAoB;QACpB,KAAK,CAAC,SAAS,CAAC,MAAuB,CAAC,CAAC;QAEzC,iCAAiC;QACjC,KAAK,CAAC,MAAM,EAAE,CAAC;QAEf,+BAA+B;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QAElD,UAAU;QACV,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,OAAO,WAAW,CAAC;IACrB,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;AAED;;GAEG;AACH,SAAS,sBAAsB,CAC7B,SAAyB,EACzB,SAAiB,EACjB,YAA0B;IAE1B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC3C,kCAAkC;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;QACvB,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACnC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC;QAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAElC,iCAAiC;QACjC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE;YACvC,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,KAAK;YACnB,KAAK,EAAE,KAAK;YACZ,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QAEH,4CAA4C;QAC5C,MAAM,MAAM,GAAG,6BAA6B,CAC1C,SAAS,EACT,SAAS,EACT,YAAY,CACb,CAAC;QAEF,oBAAoB;QACpB,KAAK,CAAC,SAAS,CAAC,MAAuB,CAAC,CAAC;QAEzC,iBAAiB;QACjB,MAAM,YAAY,GAAG,KAAK,CAAC,UAAU,CAAC;YACpC,IAAI,EAAE,MAAM;YACZ,UAAU,EAAE,CAAC;YACb,eAAe,EAAE,MAAM;SACxB,CAAC,CAAC;QAEH,6BAA6B;QAC7B,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAEtD,UAAU;QACV,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAElC,OAAO,WAAW,CAAC;IACrB,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;AAED;;GAEG;AACH,SAAS,6BAA6B,CACpC,SAAyB,EACzB,SAAiB,EACjB,YAA0B;IAE1B,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACjE,CAAC;IAED,sBAAsB;IACtB,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC;IAE9E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,uDAAuD;IACvD,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,WAAW,GAAG,aAAa;SAC9B,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;SAC1D,MAAM,CACL,CAAC,MAAM,EAAwC,EAAE,CAAC,MAAM,KAAK,SAAS,CACvE,CAAC;IAEJ,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;IAClE,CAAC;IAED,uCAAuC;IACvC,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CACnC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CACjE,CAAC;IAEF,6CAA6C;IAC7C,MAAM,cAAc,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACtC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACpC,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;YAClD,OAAO,UAAU,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GACd,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK;YAC/B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,IAAI,CAAC;QAEX,mDAAmD;QACnD,QAAQ,cAAc,EAAE,CAAC;YACvB,KAAK,KAAK;gBACR,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI;oBACjC,IAAI,EAAE,KAAc;oBACpB,IAAI,EAAE,UAAU;iBACjB,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI;oBACjC,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,UAAU;oBAChB,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE;iBACxB,CAAC;YACJ,KAAK,KAAK;gBACR,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI;oBACjC,IAAI,EAAE,KAAc;oBACpB,IAAI,EAAE,UAAU;iBACjB,CAAC;YACJ,KAAK,SAAS;gBACZ,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI;oBACjC,IAAI,EAAE,SAAkB;oBACxB,IAAI,EAAE,UAAU;iBACjB,CAAC;YACJ;gBACE,OAAO;oBACL,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI;oBACjC,IAAI,EAAE,KAAc;oBACpB,IAAI,EAAE,UAAU;iBACjB,CAAC;QACN,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,MAAM,GAAkB;QAC5B,OAAO,EAAE;YACP,OAAO,EAAE,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;SAC7D;QACD,MAAM;QACN,eAAe,EAAE,MAAM;QACvB,SAAS,EAAE;YACT,QAAQ,EAAE,EAAE;SACb;KACF,CAAC;IACF,+CAA+C;IAC/C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QAC3D,MAAM,CAAC,MAAM,GAAG;YACd,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7B,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SAC5B,CAAC;IACJ,CAAC;IAED,8BAA8B;IAC9B,IAAI,SAAS,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QACtC,MAAM,CAAC,KAAK,GAAG;YACb,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SAC5B,CAAC;QACF,MAAM,CAAC,KAAK,GAAG;YACb,IAAI,EAAE,OAAO;YACb,SAAS,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;SAC5B,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IACrC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,KAAK,CAAC;QACX,KAAK,QAAQ;YACX,OAAO,KAAK,CAAC;QACf,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,SAAS,CAAC;QACnB;YACE,OAAO,CAAC,IAAI,CAAC,uBAAuB,SAAS,qBAAqB,CAAC,CAAC;YACpE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC","sourcesContent":["import * as echarts from \"echarts\";\nimport type { EChartsOption } from \"echarts\";\nimport { ChartOptions } from \"../types/index.js\";\nimport { SmeupDataTable } from \"../types/data-structures/smeupDataTable.js\";\n\n/**\n * Converts SmeupDataTable to chart image buffer\n * @param dataTable - SmeupDataTable containing the data\n * @param chartType - Type of chart (bar, line, pie, scatter)\n * @returns Promise<Buffer> containing the chart image\n */\nexport const dataTableToChart = async (\n dataTable: SmeupDataTable,\n chartType: string,\n chartOptions: ChartOptions,\n): Promise<Buffer> => {\n // Check if we're in Node.js or browser environment\n const isNode = typeof window === \"undefined\";\n\n if (isNode) {\n return await generateChartInNode(dataTable, chartType, chartOptions);\n } else {\n return generateChartInBrowser(dataTable, chartType, chartOptions);\n }\n};\n\n/**\n * Generate chart in Node.js environment using canvas\n */\nasync function generateChartInNode(\n dataTable: SmeupDataTable,\n chartType: string,\n chartOptions: ChartOptions,\n): Promise<Buffer> {\n try {\n // Dynamic import for Node.js canvas\n const { createCanvas } = await import(\"canvas\");\n\n const width = Number(chartOptions.Width);\n const height = Number(chartOptions.Height);\n\n // Create canvas\n const canvas = createCanvas(width, height);\n\n // Create a minimal DOM-like environment for ECharts\n const mockElement = {\n clientWidth: width,\n clientHeight: width,\n style: {},\n addEventListener: () => {},\n removeEventListener: () => {},\n getAttribute: () => null,\n setAttribute: () => {},\n getContext: (type: string) => {\n if (type === \"2d\") {\n return canvas.getContext(\"2d\");\n }\n return null;\n },\n appendChild: () => {},\n removeChild: () => {},\n ownerDocument: {\n createElement: (tagName: string) => {\n if (tagName === \"canvas\") {\n return createCanvas(width, height);\n }\n return mockElement;\n },\n createElementNS: () => mockElement,\n defaultView: {\n getComputedStyle: () => ({ getPropertyValue: () => \"\" }),\n },\n },\n };\n\n // Initialize ECharts with the mock element\n const chart = echarts.init(mockElement as unknown as HTMLElement, null, {\n renderer: \"canvas\",\n useDirtyRect: false,\n width: width,\n height: height,\n });\n\n // Convert data table to chart configuration\n const config = convertDataTableToChartConfig(\n dataTable,\n chartType,\n chartOptions,\n );\n\n // Set chart options\n chart.setOption(config as EChartsOption);\n\n // Force render by calling resize\n chart.resize();\n\n // Get image buffer from canvas\n const imageBuffer = canvas.toBuffer(\"image/jpeg\");\n\n // Cleanup\n chart.dispose();\n\n return imageBuffer;\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\n/**\n * Generate chart in browser environment\n */\nfunction generateChartInBrowser(\n dataTable: SmeupDataTable,\n chartType: string,\n chartOptions: ChartOptions,\n): Buffer {\n try {\n const width = Number(chartOptions.Width);\n const height = Number(chartOptions.height);\n // Create temporary canvas element\n const canvas = document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n canvas.style.position = \"absolute\";\n canvas.style.left = \"-9999px\";\n document.body.appendChild(canvas);\n\n // Initialize ECharts with canvas\n const chart = echarts.init(canvas, null, {\n renderer: \"canvas\",\n useDirtyRect: false,\n width: width,\n height: height,\n });\n\n // Convert data table to chart configuration\n const config = convertDataTableToChartConfig(\n dataTable,\n chartType,\n chartOptions,\n );\n\n // Set chart options\n chart.setOption(config as EChartsOption);\n\n // Get image data\n const imageDataUrl = chart.getDataURL({\n type: \"jpeg\",\n pixelRatio: 1,\n backgroundColor: \"#fff\",\n });\n\n // Convert data URL to buffer\n const base64Data = imageDataUrl.replace(/^data:image\\/jpeg;base64,/, \"\");\n const imageBuffer = Buffer.from(base64Data, \"base64\");\n\n // Cleanup\n chart.dispose();\n document.body.removeChild(canvas);\n\n return imageBuffer;\n } catch (error) {\n console.error(\"Error generating chart in browser:\", error);\n throw new Error(\n `Failed to generate chart: ${error instanceof Error ? error.message : \"Unknown error\"}`,\n );\n }\n}\n\n/**\n * Convert SmeupDataTable to ECharts configuration\n */\nfunction convertDataTableToChartConfig(\n dataTable: SmeupDataTable,\n chartType: string,\n chartOptions: ChartOptions,\n): EChartsOption {\n if (!dataTable.columns || !dataTable.rows || dataTable.rows.length === 0) {\n throw new Error(\"Invalid data table: missing columns or rows\");\n }\n\n // Get visible columns\n const visibleColumns = dataTable.columns.filter(col => col.visible !== false);\n\n if (visibleColumns.length < 2) {\n throw new Error(\n \"Data table must have at least 2 visible columns for chart generation\",\n );\n }\n\n // First column is typically used for categories/labels\n const categoryColumn = visibleColumns[0];\n const seriesColumns = chartOptions.Series?.split(\"|\");\n if (!seriesColumns || seriesColumns.length === 0) {\n throw new Error(\"Chart options must specify at least one series\");\n }\n const dataColumns = seriesColumns\n .map(name => visibleColumns.find(col => col.name === name))\n .filter(\n (column): column is NonNullable<typeof column> => column !== undefined,\n );\n\n if (dataColumns.length === 0) {\n throw new Error(\"No valid data columns found for chart series\");\n }\n\n // Extract categories from first column\n const categories = dataTable.rows.map(\n row => row.cells?.[categoryColumn.name]?.value?.toString() || \"\",\n );\n\n // Extract data series from remaining columns\n const normalizedType = normalizeChartType(chartType);\n const series = dataColumns.map(column => {\n const data = dataTable.rows.map(row => {\n const cellValue = row.cells?.[column.name]?.value;\n return parseFloat(cellValue?.toString() || \"0\") || 0;\n });\n\n const seriesData =\n chartType.toLowerCase() === \"pie\"\n ? data.map((value, index) => ({ value, name: categories[index] }))\n : data;\n\n // Create properly typed series based on chart type\n switch (normalizedType) {\n case \"pie\":\n return {\n name: column.title || column.name,\n type: \"pie\" as const,\n data: seriesData,\n };\n case \"line\":\n return {\n name: column.title || column.name,\n type: \"line\" as const,\n data: seriesData,\n lineStyle: { width: 8 },\n };\n case \"bar\":\n return {\n name: column.title || column.name,\n type: \"bar\" as const,\n data: seriesData,\n };\n case \"scatter\":\n return {\n name: column.title || column.name,\n type: \"scatter\" as const,\n data: seriesData,\n };\n default:\n return {\n name: column.title || column.name,\n type: \"bar\" as const,\n data: seriesData,\n };\n }\n });\n\n // Build chart configuration based on type\n const config: EChartsOption = {\n tooltip: {\n trigger: chartType.toLowerCase() === \"pie\" ? \"item\" : \"axis\",\n },\n series,\n backgroundColor: \"#fff\",\n textStyle: {\n fontSize: 36,\n },\n };\n // Add legend for multiple series or pie charts\n if (series.length > 1 || chartType.toLowerCase() === \"pie\") {\n config.legend = {\n data: series.map(s => s.name),\n textStyle: { fontSize: 32 },\n };\n }\n\n // Add axes for non-pie charts\n if (chartType.toLowerCase() !== \"pie\") {\n config.xAxis = {\n type: \"category\",\n data: categories,\n axisLabel: { fontSize: 32 },\n };\n config.yAxis = {\n type: \"value\",\n axisLabel: { fontSize: 32 },\n };\n }\n\n return config;\n}\n\n/**\n * Normalize chart type to ECharts supported types\n */\nfunction normalizeChartType(chartType: string): string {\n const type = chartType.toLowerCase();\n switch (type) {\n case \"bar\":\n case \"column\":\n return \"bar\";\n case \"line\":\n return \"line\";\n case \"pie\":\n return \"pie\";\n case \"scatter\":\n return \"scatter\";\n default:\n console.warn(`Unknown chart type: ${chartType}, defaulting to bar`);\n return \"bar\";\n }\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- export { dataTableToExcelData, dataTreeToExcelData, } from "./src/excel/excel-generator.js";
2
- export { schedaToPdfData } from "./src/pdf/pdf-generator.js";
3
- export { dataTableToChart } from "./src/images/charts-generator.js";
4
- export type { WebupManagerData, GenericObject } from "./src/types/index.js";
5
- export { SupportedExportFormats } from "./src/types/index.js";
6
- export type { SmeupDataTable } from "./src/types/data-structures/smeupDataTable.js";
7
- export type { SmeupDataTree } from "./src/types/data-structures/smeupDataTree.js";
1
+ export { dataTableToExcelData, dataTreeToExcelData, } from "./excel/excel-generator.js";
2
+ export { schedaToPdfData } from "./pdf/pdf-generator.js";
3
+ export { dataTableToChart } from "./images/charts-generator.js";
4
+ export type { WebupManagerData, GenericObject } from "./types/index.js";
5
+ export { SupportedExportFormats } from "./types/index.js";
6
+ export type { SmeupDataTable } from "./types/data-structures/smeupDataTable.js";
7
+ export type { SmeupDataTree } from "./types/data-structures/smeupDataTree.js";
8
8
  export type ColumnGroup = {
9
9
  column: string;
10
10
  visible: boolean;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  // Public API exports
2
- export { dataTableToExcelData, dataTreeToExcelData, } from "./src/excel/excel-generator.js";
3
- export { schedaToPdfData } from "./src/pdf/pdf-generator.js";
4
- export { dataTableToChart } from "./src/images/charts-generator.js";
5
- export { SupportedExportFormats } from "./src/types/index.js";
2
+ export { dataTableToExcelData, dataTreeToExcelData, } from "./excel/excel-generator.js";
3
+ export { schedaToPdfData } from "./pdf/pdf-generator.js";
4
+ export { dataTableToChart } from "./images/charts-generator.js";
5
+ export { SupportedExportFormats } from "./types/index.js";
6
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAIpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["// Public API exports\nexport {\n dataTableToExcelData,\n dataTreeToExcelData,\n} from \"./src/excel/excel-generator.js\";\n\nexport { schedaToPdfData } from \"./src/pdf/pdf-generator.js\";\n\nexport { dataTableToChart } from \"./src/images/charts-generator.js\";\n\n// Export types that users might need\nexport type { WebupManagerData, GenericObject } from \"./src/types/index.js\";\nexport { SupportedExportFormats } from \"./src/types/index.js\";\nexport type { SmeupDataTable } from \"./src/types/data-structures/smeupDataTable.js\";\nexport type { SmeupDataTree } from \"./src/types/data-structures/smeupDataTree.js\";\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,OAAO,EACL,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAIhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC","sourcesContent":["// Public API exports\nexport {\n dataTableToExcelData,\n dataTreeToExcelData,\n} from \"./excel/excel-generator.js\";\n\nexport { schedaToPdfData } from \"./pdf/pdf-generator.js\";\n\nexport { dataTableToChart } from \"./images/charts-generator.js\";\n\n// Export types that users might need\nexport type { WebupManagerData, GenericObject } from \"./types/index.js\";\nexport { SupportedExportFormats } from \"./types/index.js\";\nexport type { SmeupDataTable } from \"./types/data-structures/smeupDataTable.js\";\nexport type { SmeupDataTree } from \"./types/data-structures/smeupDataTree.js\";\n\nexport type ColumnGroup = {\n column: string;\n visible: boolean;\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf-generator.js","sourceRoot":"","sources":["../../src/pdf/pdf-generator.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EACrC,SAGC,EACD,gBAAkC,EACjB,EAAE;IACnB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAClC,GAAa,EACb,gBAAkC,EACjB,EAAE;IACnB,MAAM,GAAG,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AAChD,CAAC,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { SmeupDataTable } from \"../types/data-structures/smeupDataTable.js\";\nimport { SmeupSch } from \"../types/data-structures/smeupSch.js\";\nimport { GenericObject, WebupManagerData } from \"../types/index.js\";\nimport { schedaToPdfDoc } from \"./sch-generator.js\";\n\nexport const dataTableToPdfData = async (\n component: {\n smeupDataTable: SmeupDataTable;\n props: GenericObject;\n },\n webupManagerData: WebupManagerData,\n): Promise<Buffer> => {\n throw new Error(\"dataTableToPdfData is not implemented\");\n};\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"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sch-generator.js","sourceRoot":"","sources":["../../src/pdf/sch-generator.ts"],"names":[],"mappings":"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","sourcesContent":["import * as jsPDFModule from \"jspdf\";\nimport { dataTableToChart } from \"../images/charts-generator.js\";\nimport { Shapes } from \"../types/component.js\";\nimport { SmeupDataTable } from \"../types/data-structures/smeupDataTable.js\";\nimport {\n SmeupSch,\n SmeupSchSection,\n} from \"../types/data-structures/smeupSch.js\";\nconst jsPDF = jsPDFModule.jsPDF;\n\nexport const schedaToPdfDoc = async (\n sch: SmeupSch,\n): Promise<jsPDFModule.jsPDF> => {\n const doc = new jsPDF({ orientation: \"landscape\" });\n const x = 10;\n const y = 10;\n doc.setFont(\"Helvetica\", \"normal\", 10);\n const pageWidth = doc.internal.pageSize.getWidth();\n const pageHeight = doc.internal.pageSize.getHeight();\n\n const layout = sch.layout || \"column\";\n const sections = sch.sections || [];\n let offsetX = x;\n let offsetY = y;\n for (const section of filterSections(sections)) {\n let sectionW = pageWidth - 2 * x;\n let sectionH = (pageHeight - 2 * y) / sections.length;\n if (layout === \"row\") {\n sectionW = (pageWidth - 2 * x) / sections.length;\n sectionH = pageHeight - 2 * y;\n }\n await renderSection(\n doc,\n section,\n layout,\n offsetX,\n offsetY,\n sectionW,\n sectionH,\n );\n if (layout === \"row\") offsetX += sectionW;\n else offsetY += sectionH;\n }\n\n return doc;\n};\n\n// Helper to render a section\nconst renderSection = async (\n doc: jsPDFModule.jsPDF,\n section: SmeupSchSection,\n parentLayout: string,\n parentX: number,\n parentY: number,\n parentW: number,\n parentH: number,\n): Promise<void> => {\n const layout = section.layout || parentLayout;\n const title = section.components?.[0]?.title || \"\";\n const dim = section.dim ? parseFloat(section.dim) : undefined;\n let sectionW = parentW;\n let sectionH = parentH;\n if (dim) {\n if (layout === \"row\") sectionW = parentW * (dim / 100);\n else sectionH = parentH * (dim / 100);\n }\n // Draw title\n doc.text(title, parentX + 2, parentY + 7);\n // Draw component type (assume one component)\n if (section.components && section.components.length > 0) {\n //const compType = section.components[0].type;\n const data = section.components[0].data || ({} as SmeupDataTable);\n const options = section.components[0].options?.EXA?.[0];\n if (options == null) {\n throw new Error(\"Options is undefined or null for component\");\n }\n const image = await dataTableToChart(data as SmeupDataTable, \"line\", {\n Width: String((sectionW - 4) * 10),\n Height: String((sectionH - 20) * 10),\n ...options,\n });\n const base64Image = image.toString(\"base64\");\n doc.addImage(\n `data:image/jpg;base64,${base64Image}`,\n \"JPG\",\n parentX + 2,\n parentY + 15,\n sectionW - 4,\n sectionH - 20,\n undefined,\n );\n }\n // Draw child sections\n if (section.sections && section.sections.length > 0) {\n let offsetX = parentX;\n let offsetY = parentY + 20;\n const filteredSections = filterSections(section.sections);\n for (let i = 0; i < filteredSections.length; i++) {\n const sub = filteredSections[i];\n let subW = sectionW;\n let subH = sectionH;\n if (layout === \"row\") subW = sectionW / section.sections!.length;\n else subH = sectionH / section.sections!.length;\n await renderSection(doc, sub, layout, offsetX, offsetY, subW, subH);\n if (layout === \"row\") offsetX += subW;\n else offsetY += subH;\n }\n }\n};\n\nconst filterSections = (sections: SmeupSchSection[]): SmeupSchSection[] => {\n return sections.filter(section => {\n // Filter out sections that are empty or have no components\n if (\n section.components &&\n section.components.length > 0 &&\n section.components[0].type === Shapes.EXA\n ) {\n return true;\n }\n // Recursively filter child sections\n if (section.sections && section.sections.length > 0) {\n section.sections = filterSections(section.sections);\n return section.sections.length > 0;\n }\n return false;\n });\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../src/types/component.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,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,KAAN,MAAM,QAsCjB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,qCAAqB,CAAA;IACrB,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;AACzB,CAAC,EAJW,YAAY,KAAZ,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"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smeupDataStructure.js","sourceRoot":"","sources":["../../../src/types/data-structures/smeupDataStructure.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,CAAN,IAAY,UAEX;AAFD,WAAY,UAAU;IACpB,uCAAE,CAAA;AACJ,CAAC,EAFW,UAAU,KAAV,UAAU,QAErB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,sBASX;AATD,WAAY,sBAAsB;IAChC,2BAA2B;IAC3B,yDAA+B,CAAA;IAC/B,2BAA2B;IAC3B,2DAAiC,CAAA;IACjC,0BAA0B;IAC1B,yDAA+B,CAAA;IAC/B,eAAe;IACf,kDAAwB,CAAA;AAC1B,CAAC,EATW,sBAAsB,KAAtB,sBAAsB,QASjC;AAED,MAAM,UAAU,yBAAyB,CACvC,GAAQ,EACR,OAAmB;IAEnB,QAAQ,GAAG,CAAC,SAAS,EAAE,CAAC;QACtB,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACR,OAAO,sBAAsB,CAAC,aAAa,CAAC;QAE9C,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK,CAAC;QACX,KAAK,KAAK;YACR,OAAO,sBAAsB,CAAC,cAAc,CAAC;QAE/C,KAAK,KAAK;YACR,OAAO,sBAAsB,CAAC,aAAa,CAAC;QAE9C,KAAK,KAAK;YACR,OAAO,sBAAsB,CAAC,WAAW,CAAC;QAE5C;YACE,MAAM,IAAI,KAAK,CACb,GAAG,GAAG,CAAC,SAAS,oDAAoD,CACrE,CAAC;IACN,CAAC;AACH,CAAC;AAkBD;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;CACpB,CAAC;AAIX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;CACA,CAAC;AAaX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;CACF,CAAC;AAaX;;GAEG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;IAC1B,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;CAClB,CAAC;AAIX;;GAEG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG;IACjD,SAAS,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IAChD,mBAAmB,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;IACjE,YAAY,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;IACrD,eAAe,EAAE,EAAE,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;CACnD,CAAC;AAsDX,MAAM,CAAN,IAAY,sBAEX;AAFD,WAAY,sBAAsB;IAChC,qCAAW,CAAA;AACb,CAAC,EAFW,sBAAsB,KAAtB,sBAAsB,QAEjC","sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { ComponentOptions, Shapes } from \"../component.js\";\nimport { Fun } from \"../general.js\";\nimport { SmeupDataCell } from \"./smeupDataTable.js\";\nimport { SmeupDataNode } from \"./smeupDataTree.js\";\n\n/**\n * Smeup data structure\n */\nexport interface SmeupDataStructure {\n type: SmeupDataStructureType;\n messages?: SmeupMessage[];\n variables?: SmeupVariable[];\n buttons?: SmeupDataNode[];\n actions?: SmeupAction[];\n setup?: SmeupSetup;\n debugInfo?: DebugInfo;\n}\n\n/**\n * Api version\n */\nexport enum ApiVersion {\n V2,\n}\n\n/**\n * SmeupDataStructure types\n */\nexport enum SmeupDataStructureType {\n /** Smeup feedback (FBK) */\n SmeupFeedback = \"SmeupFeedback\",\n /** SmeupDataTable (DTA) */\n SmeupDataTable = \"SmeupDataTable\",\n /** SmeupDataTree (DTR) */\n SmeupDataTree = \"SmeupDataTree\",\n /** SmeupSch */\n SmeupScheda = \"SmeupSch\",\n}\n\nexport function getSmeupDataStructureType(\n fun: Fun,\n version: ApiVersion,\n): SmeupDataStructureType {\n switch (fun.component) {\n case \"TRE\":\n case \"HTM\":\n case \"CDE\":\n case \"EDT\":\n return SmeupDataStructureType.SmeupDataTree;\n\n case \"EXU\":\n case \"INP\":\n case \"EXB\":\n case \"EXC\":\n return SmeupDataStructureType.SmeupDataTable;\n\n case \"FBK\":\n return SmeupDataStructureType.SmeupFeedback;\n\n case \"SCH\":\n return SmeupDataStructureType.SmeupScheda;\n\n default:\n throw new Error(\n `${fun.component} not correspond to a valid SmeupDataStructure type`,\n );\n }\n}\n\n/**\n * Smeup data structure\n */\nexport interface SmeupFeedback extends SmeupDataStructure {\n type: SmeupDataStructureType.SmeupFeedback;\n}\n\n/**\n * SmeupMessage type\n */\nexport interface SmeupMessage {\n gravity: SmeupMessageGravity;\n message: string;\n mode: string;\n}\n\n/**\n * SmeupMessage Gravity\n */\nexport const SMEUP_MESSAGE_GRAVITY = {\n INFO: \"INFO\",\n ERROR: \"ERROR\",\n WARNING: \"WARNING\",\n UNAUTHORIZED: \"UNAUTHORIZED\",\n} as const;\nexport type SmeupMessageGravity =\n (typeof SMEUP_MESSAGE_GRAVITY)[keyof typeof SMEUP_MESSAGE_GRAVITY];\n\n/**\n * SmeupMessage Mode\n */\nexport const SMEUP_MESSAGE_MODE = {\n PM: \"PM\",\n PN: \"PN\",\n TN: \"TN\",\n} as const;\ntype SmeupMessageMode =\n (typeof SMEUP_MESSAGE_MODE)[keyof typeof SMEUP_MESSAGE_MODE];\n\n/**\n * SmeupVariable\n */\nexport interface SmeupVariable {\n name: string;\n value: string;\n type?: SmeupVariableType;\n}\n\n/**\n * SmeupVariableType\n */\nexport const SMEUP_VARIABLE_TYPE = {\n SEC: \"sec\",\n SCH: \"sch\",\n SSC: \"ssc\",\n LOO: \"loo\",\n} as const;\nexport type SmeupVariableType =\n (typeof SMEUP_VARIABLE_TYPE)[keyof typeof SMEUP_VARIABLE_TYPE];\n\n/**\n * SmeupAction\n */\nexport interface SmeupAction {\n exec?: string;\n parameter?: string;\n type?: SmeupActionType;\n}\n\n/**\n * SmeupActionType\n */\n\nexport const SMEUP_ACTION_TYPE = {\n CLOSE: \"CLOSE\",\n CLOSEW: \"CLOSEW\",\n DYNAMIC: \"DYNAMIC\",\n DINAMIC: \"DINAMIC\",\n EXECUTE: \"EXECUTE\",\n LOAD: \"LOAD\",\n RELOAD: \"RELOAD\",\n UPDATE: \"UPDATE\",\n EXIT: \"EXIT\",\n REFRESH: \"REFRESH\",\n HARDREFRESH: \"HARDREFRESH\",\n POPUP: \"POPUP\",\n RETURNVALUE: \"RETURNVALUE\",\n} as const;\ntype SmeupActionType =\n (typeof SMEUP_ACTION_TYPE)[keyof typeof SMEUP_ACTION_TYPE];\n\n/**\n * Smeup Data Cell Input Settings Keys\n */\nexport const SMEUP_DATA_CELL_INPUT_SETTINGS_KEYS = {\n MANDATORY: { key: \"mandatory\", type: \"boolean\" },\n CHECK_VALUE_ON_EXIT: { key: \"checkValueOnExit\", type: \"boolean\" },\n CHECK_OBJECT: { key: \"checkObject\", type: \"boolean\" },\n FORCE_UPPERCASE: { key: \"forceUppercase\", type: \"boolean\" },\n} as const;\n\nexport type SmeupDataCellInputSettingsKeys =\n keyof typeof SMEUP_DATA_CELL_INPUT_SETTINGS_KEYS;\n\nexport type SmeupDataCellInputSettingsValue =\n (typeof SMEUP_DATA_CELL_INPUT_SETTINGS_KEYS)[SmeupDataCellInputSettingsKeys];\n\nexport interface DebugInfo {\n executionTime_ms: number;\n initialTimestamp: string;\n finalTimestamp: string;\n runtime: {\n [index: string]: string;\n };\n}\n\n/**\n * LAYOUT\n * Represent the layout of the fields in a form and the adjuntive informations\n */\nexport interface SmeupLayout {\n horizontal?: boolean;\n absolute?: boolean;\n sections?: SmeupLayoutSection[];\n sectionsType?: SmeupLayoutSectionType;\n}\n\n/**\n * Represent a layout section\n */\nexport interface SmeupLayoutSection {\n id?: string;\n content?: SmeupLayoutField[];\n sections?: SmeupLayoutSection[];\n dim?: string;\n collapsible?: boolean;\n horizontal?: boolean;\n icon?: string;\n sectionsType?: SmeupLayoutSectionType;\n // style name declared in SCP_SCH\n styleName?: string;\n // grid attributes (each section is a grid)\n gridCols?: number;\n gridRows?: number;\n gap?: number;\n title?: string;\n absoluteColumn?: number;\n absoluteWidth?: number;\n absoluteRow?: number;\n absoluteHeight?: number;\n columns?: string;\n}\n\nexport enum SmeupLayoutSectionType {\n TAB = \"tab\",\n}\n\n/**\n * Represent the presentation information of a field in a form\n */\nexport interface SmeupLayoutField extends SmeupDataCell {\n id: string;\n title?: string;\n visible?: boolean;\n // grid attributes\n colSpan?: number;\n colStart?: number;\n colEnd?: number;\n rowSpan?: number;\n rowStart?: number;\n rowEnd?: number;\n absoluteColumn?: number;\n absoluteRow?: number;\n absoluteLength?: number;\n absoluteHeight?: number;\n useAs?: string;\n}\n\nexport type SmeupSetupBase<T extends ComponentOptions = ComponentOptions> = {\n [key in Shapes]?: T[];\n};\n\nexport interface SmeupSetup<T extends ComponentOptions = ComponentOptions> {\n title?: string;\n options?: SmeupSetupBase<T>;\n userSetups?: boolean;\n context?: string;\n commands?: Array<SmeupDataNode>;\n operations?: {\n insert?: boolean;\n delete?: boolean;\n update?: boolean;\n };\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smeupDataTable.js","sourceRoot":"","sources":["../../../src/types/data-structures/smeupDataTable.ts"],"names":[],"mappings":"AAkFA;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;IAClB,KAAK,EAAE,KAAK;IACZ,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,KAAK;IACnB,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,cAAc,EAAE,KAAK;IACrB,WAAW,EAAE,KAAK;IAClB,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,KAAK;IACX,kBAAkB,EAAE,KAAK;IACzB,cAAc,EAAE,KAAK;IACrB,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE,KAAK;IACZ,MAAM,EAAE,KAAK;IACb,MAAM,EAAE,KAAK;IACb,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,KAAK;IACjB,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,KAAK;IACnB,cAAc,EAAE,KAAK;IACrB,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,KAAK;IACf,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,KAAK;CACL,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/no-wrapper-object-types */\nimport {\n SmeupDataStructure,\n SmeupDataStructureType,\n SmeupLayout,\n} from \"./smeupDataStructure.js\";\n\nexport interface SmeupDataTable extends SmeupDataStructure {\n type: SmeupDataStructureType.SmeupDataTable;\n columns: SmeupDataColumn[];\n rows: SmeupDataRow[];\n layout?: SmeupLayout;\n}\n\nexport interface SmeupDataColumn {\n name: string;\n title?: string;\n visible?: boolean;\n isEditable?: boolean;\n isKey?: boolean;\n fill?: string;\n obj?: {\n t: string;\n p: string;\n };\n maxLength?: number;\n length?: number;\n integers?: number;\n decimals?: number;\n tooltip?: boolean;\n formula?: string;\n shape?: SmeupDataCellShapes;\n useAs?: string;\n hideValuesRepetitions?: boolean;\n}\n\nexport interface SmeupDataRow {\n cells?: {\n [columnName: string]: SmeupDataCell;\n };\n layout?: SmeupLayout;\n rowId?: string;\n error?: boolean;\n}\n\nexport interface SmeupDataCell {\n value: string;\n obj?: {\n t: string;\n p: string;\n k: string;\n };\n // multiple options (i.e. radio, checkbox, select, etc.)\n options?: SmeupDataCellOption[];\n icon?: string;\n isEditable?: boolean;\n hasMCell?: boolean;\n mandatory?: boolean;\n shape?: SmeupDataCellShapes;\n fun?: string;\n tooltip?: boolean;\n data?: {\n [key: string]: Object;\n };\n disabled?: boolean;\n styleName?: string;\n styleAttributes?: {\n [attributeKey: string]: string;\n };\n inputSettings?: {\n [key: string]: Object;\n };\n}\n\n/**\n * Represents the single option of the cell\n */\nexport interface SmeupDataCellOption {\n id: string;\n label: string;\n}\n\n/**\n * Represent the possible shapes of a field\n */\nexport const SmeupDataCellShapes = {\n AUTOCOMPLETE: \"ACP\",\n BUTTON_LIST: \"BTN\",\n CHART: \"GRA\",\n CHECKBOX: \"CHK\",\n CHIP: \"CHI\",\n COLOR_PICKER: \"CLP\",\n COMBOBOX: \"CMB\",\n DATE: \"CAL\",\n EDITOR: \"EDT\",\n GAUGE: \"GAU\",\n ICON: \"ICO\",\n IMAGE: \"IMG\",\n INPUT_CHECKBOX: \"INC\",\n INPUT_FIELD: \"INF\",\n KNOB: \"KNB\",\n LABEL: \"LBL\",\n MEMO: \"MEM\",\n MULTI_AUTOCOMPLETE: \"AML\",\n MULTI_COMBOBOX: \"CML\",\n OBJECT: \"OBJ\",\n PROGRESS_BAR: \"PGB\",\n RADIO: \"RAD\",\n RATING: \"RTG\",\n SWITCH: \"SWT\",\n TABLE: \"TBL\",\n TEXT_FIELD: \"ITX\",\n TIME: \"TIM\",\n INPUT_NUMBER: \"INR\",\n BOOLEAN_BUTTON: \"BNB\",\n RANGE: \"RNG\",\n FILE_UPLOAD: \"FUP\",\n FILE_READER: \"FRE\",\n COMMAND_EXECUTE: \"RUN\",\n ONE_BUTTON: \"BTO\",\n PASSWORD: \"PWD\",\n SPINNER: \"SPN\",\n DECODE: \"DEC\",\n} as const;\n\n/**\n * Represent the type of the shape (like enum)\n */\nexport type SmeupDataCellShapes =\n | (typeof SmeupDataCellShapes)[keyof typeof SmeupDataCellShapes]\n | string;\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smeupDataTree.js","sourceRoot":"","sources":["../../../src/types/data-structures/smeupDataTree.ts"],"names":[],"mappings":"","sourcesContent":["import {\n SmeupDataStructure,\n SmeupDataStructureType,\n} from \"./smeupDataStructure.js\";\nimport { SmeupDataCell, SmeupDataColumn } from \"./smeupDataTable.js\";\n\nexport interface SmeupDataTree extends SmeupDataStructure {\n type: SmeupDataStructureType.SmeupDataTree;\n children: SmeupDataNode[];\n columns?: SmeupDataColumn[];\n}\n\nexport interface SmeupDataNode extends SmeupDataCell {\n children?: SmeupDataNode[];\n cells?: {\n [columnName: string]: SmeupDataCell;\n };\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smeupSch.js","sourceRoot":"","sources":["../../../src/types/data-structures/smeupSch.ts"],"names":[],"mappings":"AA0EA,MAAM,CAAN,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,KAAZ,YAAY,QAQvB","sourcesContent":["import {\n SmeupDataStructure,\n SmeupDataStructureType,\n SmeupSetupBase,\n SmeupVariable,\n} from \"./smeupDataStructure.js\";\nimport { SmeupDataTable } from \"./smeupDataTable.js\";\nimport { SmeupDataTree, SmeupDataNode } from \"./smeupDataTree.js\";\nimport { Shapes, ToolbarState } from \"../component.js\";\nimport { YesNo } from \"../helpers.js\";\nimport { RawDynamism } from \"../dynamism.js\";\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"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamism.js","sourceRoot":"","sources":["../../src/types/dynamism.ts"],"names":[],"mappings":"AAoBA;;GAEG;AACH,MAAM,CAAN,IAAY,cAoBX;AApBD,WAAY,cAAc;IACxB,8BAAY,CAAA;IACZ,wCAAsB,CAAA;IACtB,mCAAiB,CAAA;IACjB,8CAA4B,CAAA;IAC5B,0CAAwB,CAAA;IACxB,0CAAwB,CAAA;IACxB,iCAAe,CAAA;IACf,uCAAqB,CAAA;IACrB,8CAA4B,CAAA;IAC5B,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,2CAAyB,CAAA;IACzB,+BAAa,CAAA;IACb,mCAAiB,CAAA;IACjB,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,+BAAa,CAAA;IACb,iCAAe,CAAA;IACf,qCAAmB,CAAA;AACrB,CAAC,EApBW,cAAc,KAAd,cAAc,QAoBzB;AAED,MAAM,CAAN,IAAY,QAEX;AAFD,WAAY,QAAQ;IAClB,mBAAO,CAAA;AACT,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB","sourcesContent":["import { SmeupVariable } from \"./data-structures/smeupDataStructure.js\";\n\n/**\n * Raw Dynamism\n */\nexport interface RawDynamism {\n /** Event type */\n event: string;\n /** Fun or Action */\n exec?: string;\n /** Component ids */\n targets?: string[];\n /** Declared variables */\n variables?: SmeupVariable[];\n /** Enable conditions */\n enabled?: string;\n /** Load method */\n Load?: LoadType;\n}\n\n/**\n * Dynamism Event\n */\nexport enum DynamismEvents {\n ALL = \"*all\",\n BTN_CLICK = \"btnclick\",\n CHANGE = \"change\",\n CHANGE_MONTH = \"changemonth\",\n CHANGE_ROW = \"changerow\",\n CHANGE_VAL = \"changeval\",\n CLICK = \"click\",\n DBLCLICK = \"dblclick\",\n DETAIL_CLICK = \"detailclick\",\n EXPAND = \"expand\",\n RESIZE = \"resize\",\n DATESELECT = \"dateselect\",\n DROP = \"drop\",\n SELECT = \"select\",\n UPDATE = \"update\",\n CHECK = \"check\",\n INIT = \"init\",\n CLOSE = \"close\",\n UNMOUNT = \"unmount\",\n}\n\nexport enum LoadType {\n D = \"D\",\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/types/general.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,SAAS;IACpB,CAAC,CAAU;IAEX,CAAC,CAAU;IAEX,CAAC,CAAU;CACZ;AAED;;GAEG;AACH,MAAM,OAAO,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","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"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/types/helpers.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,KAGX;AAHD,WAAY,KAAK;IACf,oBAAW,CAAA;IACX,kBAAS,CAAA;AACX,CAAC,EAHW,KAAK,KAAL,KAAK,QAGhB","sourcesContent":["export enum YesNo {\n Yes = \"Yes\",\n No = \"No\",\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAUA,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,uCAAuB,CAAA;IACvB,qDAAqC,CAAA;IACrC,qCAAqB,CAAA;IACrB,kDAAkC,CAAA;AACpC,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAwBD,MAAM,CAAN,IAAY,sBAKX;AALD,WAAY,sBAAsB;IAChC,uCAAa,CAAA;IACb,qCAAW,CAAA;IACX,qCAAW,CAAA;IACX,mDAAyB,CAAA;AAC3B,CAAC,EALW,sBAAsB,KAAtB,sBAAsB,QAKjC","sourcesContent":["import type { Properties as CSSProperties } from \"csstype\";\nimport { ComponentOptions } from \"./component.js\";\nimport { SmeupDataCell } from \"./data-structures/smeupDataTable.js\";\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 // add other properties if needed\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 PDF_SCHEDA = \"pdf_scheda\",\n}\n\nexport interface ChartOptions extends ComponentOptions {\n Width: string;\n Height: string;\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"datastructure-utility.js","sourceRoot":"","sources":["../../src/utils/datastructure-utility.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAuB,EAAW,EAAE;IACjE,OAAO,CACL,CAAC,MAAM;QACP,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAC7E,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import { SmeupDataColumn } from \"../types/data-structures/smeupDataTable.js\";\n\nexport const isColumnHidden = (column: SmeupDataColumn): boolean => {\n return (\n !column ||\n (Object.prototype.hasOwnProperty.call(column, \"visible\") && !column.visible)\n );\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dates-utility.js","sourceRoot":"","sources":["../../src/utils/dates-utility.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,qBAAqB,CAAC;AACtC,OAAO,iBAAiB,MAAM,mCAAmC,CAAC;AAClE,OAAO,eAAe,MAAM,iCAAiC,CAAC;AAC9D,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAClB,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAChC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC9B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAErB,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAuB,EACvB,MAAc,EACd,MAAe,EACP,EAAE;IACV,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,GAAG,GAAG,CAAC,CAAC,6CAA6C;IAC7D,CAAC;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,UAAkB,EAAW,EAAE;IAC5D,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE;QAChC,YAAY,CAAC,QAAQ;QACrB,YAAY,CAAC,aAAa;QAC1B,0BAA0B;KAC3B,CAAC,CAAC;IACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,KAAuB,EACvB,MAAc,EACd,MAAe,EACT,EAAE;IACR,MAAM,MAAM,GAAG,KAAK,CAAC;IACrB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC;IAC5C,CAAC;SAAM,CAAC;QACN,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;IACpC,CAAC;AACH,CAAC,CAAC","sourcesContent":["import dayjs from \"dayjs\";\nimport utc from \"dayjs/plugin/utc.js\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat.js\";\nimport localizedFormat from \"dayjs/plugin/localizedFormat.js\";\nimport minMax from \"dayjs/plugin/minMax.js\";\nimport \"dayjs/locale/es.js\";\nimport \"dayjs/locale/fr.js\";\nimport \"dayjs/locale/it.js\";\nimport \"dayjs/locale/pl.js\";\nimport \"dayjs/locale/ru.js\";\nimport \"dayjs/locale/zh.js\";\nimport { DatesFormats } from \"../types/index.js\";\n\ndayjs.extend(utc);\ndayjs.extend(customParseFormat);\ndayjs.extend(localizedFormat);\ndayjs.extend(minMax);\n\nexport const datesFormat = (\n input: dayjs.ConfigType,\n locale: string,\n format?: string,\n): string => {\n const _dayjs = dayjs;\n _dayjs.locale(locale);\n if (!format) {\n format = \"L\"; // MM/DD/YYYY, DD/MM/YYYY depending on locale\n }\n return _dayjs.utc(input).format(format);\n};\n\nexport const datesIsIsoDate = (dateString: string): boolean => {\n const isoDate = dayjs(dateString, [\n DatesFormats.ISO_DATE,\n DatesFormats.ISO_DATE_TIME,\n \"YYYY-MM-DDTHH:mm:ss.SSSZ\",\n ]);\n if (!isoDate.isValid()) {\n return false;\n }\n\n if (Number(dateString.substring(0, 4)) != isoDate.year()) {\n return false;\n }\n if (Number(dateString.substring(5, 7)) != isoDate.month() + 1) {\n return false;\n }\n if (Number(dateString.substring(8, 10)) != isoDate.date()) {\n return false;\n }\n return true;\n};\n\nexport const datesToDate = (\n input: dayjs.ConfigType,\n locale: string,\n format?: string,\n): Date => {\n const _dayjs = dayjs;\n _dayjs.locale(locale);\n if (format && format != null) {\n return _dayjs.utc(input, format).toDate();\n } else {\n return _dayjs.utc(input).toDate();\n }\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-utility.js","sourceRoot":"","sources":["../../src/utils/generator-utility.ts"],"names":[],"mappings":"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","sourcesContent":["import { exportTypeSupportsFormatting } from \"../excel/excel-generator.types.js\";\nimport {\n SmeupDataColumn,\n SmeupDataTable,\n SmeupDataCell,\n} from \"../types/data-structures/smeupDataTable.js\";\nimport {\n SmeupDataObj,\n ColumnFilter,\n WebupManagerData,\n SupportedExportFormats,\n GenericObject,\n} from \"../types/index.js\";\nimport { datesIsIsoDate, datesToDate, datesFormat } from \"./dates-utility.js\";\nimport {\n mathNumberStringToFormattedString,\n mathCountDecimals,\n} from \"./math-utility.js\";\nimport {\n objectsIsVoCodVer,\n objectsIsDate,\n objectsIsNumber,\n} from \"./objects-utility.js\";\n\nexport const getFilteredColumns = (\n columns: SmeupDataColumn[],\n props: GenericObject,\n groupsArray: { column: string; visible: boolean }[] = [],\n) => {\n if (!columns) return [];\n\n const mutableColumns = JSON.parse(\n JSON.stringify(columns),\n ) as SmeupDataColumn[];\n\n const filteredColumns: SmeupDataColumn[] = [];\n\n if (props.visibleColumns && (props.visibleColumns as string[]).length > 0) {\n (props.visibleColumns as string[]).forEach((col: string) => {\n const foundColumn = mutableColumns.find(c => c.name === col);\n if (foundColumn) {\n filteredColumns.push({ ...foundColumn });\n }\n });\n } else {\n filteredColumns.push(...mutableColumns);\n }\n\n // Set the visibility of columns based on groups and props\n filteredColumns.forEach((col: SmeupDataColumn) => {\n const isGroupedColumn = groupsArray.filter(g => g.column === col.name);\n col.visible = props.visibleColumns\n ? (props.visibleColumns as string[]).includes(col.name)\n : col.visible;\n col.visible =\n isGroupedColumn.length > 0 ? isGroupedColumn[0].visible : col.visible;\n });\n\n return filteredColumns.filter(column => {\n const dataObject = {\n ...column.obj,\n k: \"\",\n } as SmeupDataObj;\n return column.obj?.t !== \"J4\" && !objectsIsVoCodVer(dataObject);\n });\n};\n\n/**\n * By passing the map, length value and column name\n * creates or updates a map record with\n * @param map Contains columnNames and their longest cell's length\n * @param text The text to use in length calculation\n * @param colName The column to check\n */\nexport const updateMaxValueLength = (\n map: { [key: string]: number },\n text: string | undefined | null,\n colName: string,\n) => {\n if (!map || !text || !colName) return;\n\n const value = Math.max(...text.split(\"\\n\").map(line => line.length));\n if (map[colName]) {\n if (map[colName] < value) {\n map[colName] = value;\n }\n } else {\n map[colName] = value;\n }\n};\n\nexport const filterRows = (\n smeupDataTable: SmeupDataTable,\n filteredColumns: SmeupDataColumn[],\n filters: { [key: string]: ColumnFilter },\n) => {\n if (filters) {\n return smeupDataTable.rows.filter(row => {\n return filteredColumns.every(col => {\n const cellValue = row.cells?.[col.name]?.value;\n const columnFilter = filters[col.name];\n if (columnFilter?.checkBoxes?.length) {\n const allowedValues = columnFilter.checkBoxes.map(item => item.value);\n return (\n typeof cellValue === \"string\" && allowedValues.includes(cellValue)\n );\n }\n return true;\n });\n });\n } else {\n return smeupDataTable.rows;\n }\n};\n\n/**\n * Returns a converted and formatted cell value (string, date, number)\n * @param cell - SmeupDataCell\n * @param bookType - SupportedExportFormats\n * @param webupManagerData - WebupManagerData\n * @returns\n */\nexport const calculateCellValue = (\n cell: SmeupDataCell,\n bookType: SupportedExportFormats,\n webupManagerData: WebupManagerData,\n) => {\n if (cell.obj && objectsIsDate(cell.obj) && datesIsIsoDate(cell.value)) {\n return exportTypeSupportsFormatting[bookType]\n ? new Date(datesToDate(cell.value, webupManagerData.datesLocale))\n : datesFormat(cell.value, webupManagerData.datesLocale);\n }\n\n if (cell.obj && objectsIsNumber(cell.obj)) {\n if (!exportTypeSupportsFormatting[bookType]) {\n return (\n mathNumberStringToFormattedString(\n cell.value,\n mathCountDecimals(Number(cell.value) || 0),\n \"\",\n webupManagerData.mathLocale,\n ) || \"\"\n );\n }\n\n const numValue = Number(cell.value);\n return !isNaN(numValue) ? numValue : \"\";\n }\n\n return cell?.value ?? \"\";\n};\n\n/**\n * Conversion from Hexadecimal color to an AlphaRGB\n * @param hex string - Hexadecimal value, it can bot have and don't have the # prefix\n * @returns ARGB string code\n */\nexport const hexToArgb = (hex: string): string => {\n // Hex validation\n if (hex.startsWith(\"#\")) hex = hex.slice(1);\n if (hex.length !== 6) return \"\";\n\n // Value Parse and return\n const red = parseInt(hex.slice(0, 2), 16);\n const green = parseInt(hex.slice(2, 4), 16);\n const blue = parseInt(hex.slice(4, 6), 16);\n return `FF${red.toString(16).padStart(2, \"0\")}${green\n .toString(16)\n .padStart(2, \"0\")}${blue.toString(16).padStart(2, \"0\")}`;\n};\n\n// Utility function to detect if Buffer is available\nconst isBufferAvailable = (): boolean => {\n try {\n return typeof Buffer !== \"undefined\" && typeof Buffer.from === \"function\";\n } catch {\n return false;\n }\n};\n\n// Utility function to convert ArrayBuffer to Buffer or Uint8Array\nexport const convertToBuffer = (\n arrayBuffer: ArrayBuffer,\n): Buffer | Uint8Array => {\n if (isBufferAvailable()) {\n return Buffer.from(arrayBuffer);\n } else {\n return new Uint8Array(arrayBuffer);\n }\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math-utility.js","sourceRoot":"","sources":["../../src/utils/math-utility.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRegExpFromString } from \"./regex-utility.js\";\n\nexport const mathCountDecimals = (value: number): number => {\n if (Math.floor(value) === value) return 0;\n const stringValue = value.toString().split(\".\")[1];\n if (stringValue) {\n return stringValue.length ?? 0;\n } else {\n return 0;\n }\n};\n\nexport const mathNumberStringToFormattedString = (\n input: string,\n decimals: number,\n type: string,\n locale: string,\n decSeparator?: string,\n): string => {\n let value = mathNumberToFormattedString(\n mathNumberifySafe(input, locale),\n decimals,\n type,\n locale,\n );\n\n if (!decSeparator) {\n return value;\n }\n const browserDecSeparator = mathDecimalSeparator(locale);\n if (browserDecSeparator == decSeparator) {\n return value;\n }\n const browserGroupSeparator = mathGroupSeparator(locale);\n value = value.replace(getRegExpFromString(browserGroupSeparator, \"g\"), \"\");\n value = value.replace(\n getRegExpFromString(browserDecSeparator, \"g\"),\n decSeparator,\n );\n\n return value;\n};\n\nexport const mathNumberToFormattedString = (\n input: number,\n decimals: number,\n type: string,\n locale: string,\n): string => {\n if (input == null || isNaN(input)) {\n return \"\";\n }\n if (decimals == null || decimals == -1) {\n decimals = mathCountDecimals(input);\n }\n let nstr = mathFormat(input, locale, mathCreateFormatPattern(true, decimals));\n nstr = nstr + mathGetNumericValueSuffix(type);\n return nstr;\n};\n\nexport const mathNumberify = (\n input: string | number,\n locale: string,\n inputIsLocalized?: boolean,\n type?: string,\n decFmt?: string,\n): number => {\n if (typeof input != \"number\") {\n if (type) {\n const suffix = mathGetNumericValueSuffix(type);\n if (suffix != \"\") {\n input = input\n .replace(getRegExpFromString(suffix.trim(), \"g\"), \"\")\n .trim();\n }\n }\n if (!decFmt) {\n decFmt = inputIsLocalized ? mathDecimalSeparator(locale) : \".\";\n }\n const groupSeparator = decFmt == \".\" ? \",\" : \".\";\n input = input.replace(getRegExpFromString(groupSeparator, \"g\"), \"\");\n if (decFmt != \".\") {\n input = input.replace(getRegExpFromString(decFmt, \"g\"), \".\");\n }\n\n input = Number(input);\n }\n\n const n = Number(input);\n if (isNaN(n)) {\n return NaN;\n }\n return n;\n};\n\nexport const mathNumberifySafe = (\n input: string,\n locale: string,\n inputIsLocalized?: boolean,\n type?: string,\n decFmt?: string,\n): number => {\n if (!input || input == null || input.trim() == \"\") {\n input = \"0\";\n }\n return mathNumberify(input, locale, inputIsLocalized, type, decFmt);\n};\n\nexport const mathDecimalSeparator = (locale: string): string => {\n const numberWithGroupAndDecimalSeparator = 1000.1;\n const decimalPart = Intl.NumberFormat(locale)\n .formatToParts(numberWithGroupAndDecimalSeparator)\n .find(part => part.type === \"decimal\");\n return decimalPart ? decimalPart.value : \".\";\n};\n\nexport const mathGroupSeparator = (locale: string): string => {\n const numberWithGroupAndDecimalSeparator = 1000.1;\n\n const parts = Intl.NumberFormat(locale).formatToParts(\n numberWithGroupAndDecimalSeparator,\n );\n\n const groupPart = parts.find(part => part.type === \"group\");\n\n if (!groupPart) {\n /** for some reason, today 19/03/2025 on US OS (mac and github), group is not present in parts!!! */\n const decimalPart = parts.find(part => part.type === \"decimal\");\n const decimalPartValue = decimalPart ? decimalPart.value : \".\";\n return decimalPartValue === \".\" ? \",\" : \".\";\n }\n return groupPart.value;\n};\n\nexport const mathFormat = (\n input: string | number,\n locale: string,\n format?: string,\n inputIsLocalized?: boolean,\n): string => {\n const n = mathNumberify(input, locale, inputIsLocalized);\n if (!format) {\n const positiveN = Math.abs(n);\n const decimals = positiveN - Math.floor(positiveN);\n if (decimals) {\n format = \"0,0.00\";\n } else {\n format = \"0,0\";\n }\n }\n const options = mathParseNumberFormat(format);\n return new Intl.NumberFormat(locale, options).format(n);\n};\n\nconst mathParseNumberFormat = (format: string): Intl.NumberFormatOptions => {\n // Example format strings: '0,0.00', '0,0', '0.000', ...\n // This parser is simplistic; it only checks for comma group\n // and counts how many 0's come after '.' to set decimal digits.\n const options: Intl.NumberFormatOptions = {};\n\n // If there's a comma in the integer part, enable grouping\n if (format.includes(\",\")) {\n options.useGrouping = true;\n } else {\n options.useGrouping = false;\n }\n\n // Count decimals from the part after '.'\n const decimalIndex = format.indexOf(\".\");\n if (decimalIndex > -1) {\n const decimals = format.substring(decimalIndex + 1);\n const digitCount = (decimals.match(/0/g) || []).length;\n options.minimumFractionDigits = digitCount;\n options.maximumFractionDigits = digitCount;\n } else {\n // If no dot, no decimal digits\n options.minimumFractionDigits = 0;\n options.maximumFractionDigits = 0;\n }\n\n return options;\n};\n\nexport const mathCreateFormatPattern = (\n thousandPoint?: boolean,\n decimals?: number,\n): string => {\n let format = \"0\";\n if (thousandPoint) {\n format += \",0\";\n }\n if (decimals && decimals > 0) {\n format += \".\";\n for (let i = 0; i < decimals; i++) {\n format += \"0\";\n }\n }\n return format;\n};\n\nexport const mathGetNumericValueSuffix = (type: string): string => {\n type = type.toUpperCase();\n let nstr = \"\";\n if (type == \"P\") {\n nstr = \" %\";\n } else if (type == \"VE\") {\n nstr = \" €\";\n } else if (type == \"VL\") {\n nstr = \" £\";\n } else if (type == \"VV\") {\n nstr = \" $\";\n }\n return nstr;\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects-utility.js","sourceRoot":"","sources":["../../src/utils/objects-utility.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAA4B,EAAW,EAAE;IACrE,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAA4B,EAAW,EAAE;IACvE,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAA4B,EAAW,EAAE;IACzE,IAAI,CAAC,GAAG;QAAE,OAAO,KAAK,CAAC;IACvB,OAAO,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC","sourcesContent":["import { SmeupDataObj } from \"../types/index.js\";\n\nexport const objectsIsDate = (obj: Omit<SmeupDataObj, \"k\">): boolean => {\n if (!obj) return false;\n return \"D8\" === obj.t;\n};\n\nexport const objectsIsNumber = (obj: Omit<SmeupDataObj, \"k\">): boolean => {\n if (!obj) return false;\n return \"NR\" === obj.t || \"NP\" === obj.t;\n};\n\nexport const objectsIsVoCodVer = (obj: Omit<SmeupDataObj, \"k\">): boolean => {\n if (!obj) return false;\n return \"VO\" == obj.t && \"COD_VER\" === obj.p;\n};\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"regex-utility.js","sourceRoot":"","sources":["../../src/utils/regex-utility.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,mBAAmB,CAAC,CAAS,EAAE,KAAc;IAC3D,OAAO,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,oCAAoC;AAC1G,CAAC","sourcesContent":["export function getRegExpFromString(s: string, flags?: string): RegExp {\n return new RegExp(s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"), flags); // $& means the whole matched string\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sme.up/doc-alchemist",
3
- "version": "1.2.0-SNAPSHOT-20250625163107",
3
+ "version": "1.2.0-SNAPSHOT-20250626070253",
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/)",
@@ -14,7 +14,7 @@
14
14
  "dist/**/*"
15
15
  ],
16
16
  "scripts": {
17
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
17
+ "test": "jest",
18
18
  "clean": "rimraf dist && rimraf node_modules",
19
19
  "build": "npx tsc",
20
20
  "start": "tsx debug.ts"
@@ -1,52 +0,0 @@
1
- import { GenericObject } from "../src/types/index.js";
2
- import { TotalMode } from "../src/excel/excel-generator.types.js";
3
- import { SmeupDataTable } from "../src/types/data-structures/smeupDataTable.js";
4
- import { SmeupDataTree } from "../src/types/data-structures/smeupDataTree.js";
5
- import { SmeupSch } from "../src/types/data-structures/smeupSch.js";
6
- /**
7
- * Sample data for testing Excel generation functionality.
8
- * Contains a table with multiple columns including visible/hidden columns,
9
- * numeric data, and formula columns.
10
- */
11
- export declare const table_sample_1: {
12
- smeupDataTable: SmeupDataTable;
13
- props: GenericObject;
14
- };
15
- export declare const table_sample_2: {
16
- smeupDataTable: SmeupDataTable;
17
- props: {
18
- groups: {
19
- column: string;
20
- visible: boolean;
21
- }[];
22
- totals: never[];
23
- };
24
- };
25
- export declare const tree_grid_sample_1: {
26
- smeupDataTree: SmeupDataTree;
27
- props: GenericObject;
28
- };
29
- export declare const totals_sample_1: {
30
- [columnName: string]: TotalMode | string;
31
- };
32
- export declare const data_table_totals_result_sample_1: {
33
- [key: string]: string;
34
- };
35
- export declare const table_footer_actions: (action: string, groups: {
36
- column: string;
37
- visible: boolean;
38
- }[], rowsNumber?: number, rowRepetitions?: number) => {
39
- smeupDataTable: SmeupDataTable;
40
- props: {
41
- groups: {
42
- column: string;
43
- visible: boolean;
44
- }[];
45
- totals: never[] | {
46
- [x: string]: string;
47
- };
48
- filter: never[];
49
- };
50
- };
51
- export declare const mat_cha_data: SmeupDataTable;
52
- export declare const sch_with_charts: SmeupSch;