@sme.up/doc-alchemist 1.1.0-SNAPSHOT-20250623155458 → 1.2.0-20250805123329

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 (136) hide show
  1. package/README.md +278 -30
  2. package/dist/assets/gfx-data.d.ts +1 -0
  3. package/dist/assets/gfx-data.js +2 -0
  4. package/dist/assets/gfx-data.js.map +1 -0
  5. package/dist/converters/excel/commons.d.ts +43 -0
  6. package/dist/converters/excel/commons.js +232 -0
  7. package/dist/converters/excel/commons.js.map +1 -0
  8. package/dist/{src/excel/excel-generator.types.d.ts → converters/excel/excel-converter.types.d.ts} +2 -0
  9. package/dist/{src/excel/excel-generator.types.js → converters/excel/excel-converter.types.js} +5 -2
  10. package/dist/converters/excel/excel-converter.types.js.map +1 -0
  11. package/dist/{src/excel/matrix-generator.d.ts → converters/excel/matrix-converter.d.ts} +4 -2
  12. package/dist/{src/excel/matrix-generator.js → converters/excel/matrix-converter.js} +35 -38
  13. package/dist/converters/excel/matrix-converter.js.map +1 -0
  14. package/dist/{src/excel/tree-generator.d.ts → converters/excel/tree-converter.d.ts} +2 -2
  15. package/dist/{src/excel/tree-generator.js → converters/excel/tree-converter.js} +5 -5
  16. package/dist/converters/excel/tree-converter.js.map +1 -0
  17. package/dist/{src/excel/excel-generator.d.ts → converters/excel-converter.d.ts} +2 -1
  18. package/dist/{src/excel/excel-generator.js → converters/excel-converter.js} +4 -4
  19. package/dist/converters/excel-converter.js.map +1 -0
  20. package/dist/converters/images/charts-generator.d.ts +9 -0
  21. package/dist/converters/images/charts-generator.js +250 -0
  22. package/dist/converters/images/charts-generator.js.map +1 -0
  23. package/dist/converters/pdf/autotable-renderer.d.ts +4 -0
  24. package/dist/converters/pdf/autotable-renderer.js +83 -0
  25. package/dist/converters/pdf/autotable-renderer.js.map +1 -0
  26. package/dist/converters/pdf/cover-renderer.d.ts +1 -0
  27. package/dist/converters/pdf/cover-renderer.js +50 -0
  28. package/dist/converters/pdf/cover-renderer.js.map +1 -0
  29. package/dist/converters/pdf/formulas-helper.d.ts +40 -0
  30. package/dist/converters/pdf/formulas-helper.js +227 -0
  31. package/dist/converters/pdf/formulas-helper.js.map +1 -0
  32. package/dist/converters/pdf/matrix-converter.d.ts +17 -0
  33. package/dist/converters/pdf/matrix-converter.js +200 -0
  34. package/dist/converters/pdf/matrix-converter.js.map +1 -0
  35. package/dist/converters/pdf/pdf-converter.types.d.ts +13 -0
  36. package/dist/converters/pdf/pdf-converter.types.js +2 -0
  37. package/dist/converters/pdf/pdf-converter.types.js.map +1 -0
  38. package/dist/converters/pdf/sch-converter.d.ts +3 -0
  39. package/dist/converters/pdf/sch-converter.js +99 -0
  40. package/dist/converters/pdf/sch-converter.js.map +1 -0
  41. package/dist/converters/pdf-converter.d.ts +8 -0
  42. package/dist/converters/pdf-converter.js +54 -0
  43. package/dist/converters/pdf-converter.js.map +1 -0
  44. package/dist/index.d.ts +7 -4
  45. package/dist/index.js +4 -2
  46. package/dist/index.js.map +1 -1
  47. package/dist/types/component-props.d.ts +8 -0
  48. package/dist/types/component-props.js +7 -0
  49. package/dist/types/component-props.js.map +1 -0
  50. package/dist/types/component.d.ts +53 -0
  51. package/dist/types/component.js +53 -0
  52. package/dist/types/component.js.map +1 -0
  53. package/dist/types/converter.d.ts +8 -0
  54. package/dist/types/converter.js +2 -0
  55. package/dist/types/converter.js.map +1 -0
  56. package/dist/types/data-structures/smeupDataStructure.d.ts +215 -0
  57. package/dist/types/data-structures/smeupDataStructure.js +99 -0
  58. package/dist/types/data-structures/smeupDataStructure.js.map +1 -0
  59. package/dist/types/data-structures/smeupDataTable.d.ts +125 -0
  60. package/dist/types/data-structures/smeupDataTable.js +43 -0
  61. package/dist/types/data-structures/smeupDataTable.js.map +1 -0
  62. package/dist/types/data-structures/smeupDataTree.d.ts +13 -0
  63. package/dist/types/data-structures/smeupDataTree.js +2 -0
  64. package/dist/types/data-structures/smeupDataTree.js.map +1 -0
  65. package/dist/types/data-structures/smeupSch.d.ts +72 -0
  66. package/dist/types/data-structures/smeupSch.js +11 -0
  67. package/dist/types/data-structures/smeupSch.js.map +1 -0
  68. package/dist/types/dynamism.d.ts +45 -0
  69. package/dist/types/dynamism.js +30 -0
  70. package/dist/types/dynamism.js.map +1 -0
  71. package/dist/types/general.d.ts +22 -0
  72. package/dist/types/general.js +24 -0
  73. package/dist/types/general.js.map +1 -0
  74. package/dist/types/helpers.d.ts +4 -0
  75. package/dist/types/helpers.js +6 -0
  76. package/dist/types/helpers.js.map +1 -0
  77. package/dist/{src/types → types}/index.d.ts +9 -2
  78. package/dist/{src/types → types}/index.js +2 -0
  79. package/dist/types/index.js.map +1 -0
  80. package/dist/utils/commons-utility.d.ts +61 -0
  81. package/dist/{src/utils/generator-utility.js → utils/commons-utility.js} +100 -10
  82. package/dist/utils/commons-utility.js.map +1 -0
  83. package/dist/utils/datastructure-utility.d.ts +2 -0
  84. package/dist/utils/datastructure-utility.js +5 -0
  85. package/dist/utils/datastructure-utility.js.map +1 -0
  86. package/dist/{src/utils → utils}/dates-utility.d.ts +9 -0
  87. package/dist/{src/utils → utils}/dates-utility.js +18 -0
  88. package/dist/utils/dates-utility.js.map +1 -0
  89. package/dist/utils/formatter-utility.d.ts +4 -0
  90. package/dist/utils/formatter-utility.js +41 -0
  91. package/dist/utils/formatter-utility.js.map +1 -0
  92. package/dist/utils/image-utils.d.ts +7 -0
  93. package/dist/utils/image-utils.js +32 -0
  94. package/dist/utils/image-utils.js.map +1 -0
  95. package/dist/{src/utils → utils}/math-utility.d.ts +1 -0
  96. package/dist/{src/utils → utils}/math-utility.js +10 -0
  97. package/dist/utils/math-utility.js.map +1 -0
  98. package/dist/utils/objects-utility.js.map +1 -0
  99. package/dist/utils/regex-utility.js.map +1 -0
  100. package/package.json +14 -11
  101. package/dist/assets/sample-data.d.ts +0 -48
  102. package/dist/assets/sample-data.js +0 -372
  103. package/dist/assets/sample-data.js.map +0 -1
  104. package/dist/debug.d.ts +0 -1
  105. package/dist/debug.js +0 -29
  106. package/dist/debug.js.map +0 -1
  107. package/dist/src/excel/commons.d.ts +0 -21
  108. package/dist/src/excel/commons.js +0 -120
  109. package/dist/src/excel/commons.js.map +0 -1
  110. package/dist/src/excel/excel-generator.js.map +0 -1
  111. package/dist/src/excel/excel-generator.types.js.map +0 -1
  112. package/dist/src/excel/matrix-generator.js.map +0 -1
  113. package/dist/src/excel/tree-generator.js.map +0 -1
  114. package/dist/src/index.d.ts +0 -1
  115. package/dist/src/index.js +0 -2
  116. package/dist/src/index.js.map +0 -1
  117. package/dist/src/pdf/pdf-generator.d.ts +0 -7
  118. package/dist/src/pdf/pdf-generator.js +0 -28
  119. package/dist/src/pdf/pdf-generator.js.map +0 -1
  120. package/dist/src/types/index.js.map +0 -1
  121. package/dist/src/utils/datastructure-utility.d.ts +0 -2
  122. package/dist/src/utils/datastructure-utility.js +0 -5
  123. package/dist/src/utils/datastructure-utility.js.map +0 -1
  124. package/dist/src/utils/dates-utility.js.map +0 -1
  125. package/dist/src/utils/generator-utility.d.ts +0 -34
  126. package/dist/src/utils/generator-utility.js.map +0 -1
  127. package/dist/src/utils/math-utility.js.map +0 -1
  128. package/dist/src/utils/objects-utility.js.map +0 -1
  129. package/dist/src/utils/regex-utility.js.map +0 -1
  130. package/dist/tests/excel-generator.test.d.ts +0 -1
  131. package/dist/tests/excel-generator.test.js +0 -406
  132. package/dist/tests/excel-generator.test.js.map +0 -1
  133. /package/dist/{src/utils → utils}/objects-utility.d.ts +0 -0
  134. /package/dist/{src/utils → utils}/objects-utility.js +0 -0
  135. /package/dist/{src/utils → utils}/regex-utility.d.ts +0 -0
  136. /package/dist/{src/utils → utils}/regex-utility.js +0 -0
@@ -1,4 +1,5 @@
1
1
  import { getRegExpFromString } from "./regex-utility.js";
2
+ import Mexp from "math-expression-evaluator";
2
3
  export const mathCountDecimals = (value) => {
3
4
  if (Math.floor(value) === value)
4
5
  return 0;
@@ -158,4 +159,13 @@ export const mathGetNumericValueSuffix = (type) => {
158
159
  }
159
160
  return nstr;
160
161
  };
162
+ export const calculateExpression = (expression) => {
163
+ try {
164
+ const mexp = new Mexp();
165
+ return mexp.eval(expression);
166
+ }
167
+ catch {
168
+ return expression;
169
+ }
170
+ };
161
171
  //# sourceMappingURL=math-utility.js.map
@@ -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\";\nimport Mexp from \"math-expression-evaluator\";\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\nexport const calculateExpression = (expression: string): number | string => {\n try {\n const mexp = new Mexp();\n return mexp.eval(expression);\n } catch {\n return expression;\n }\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.1.0-SNAPSHOT-20250623155458",
3
+ "version": "1.2.0-20250805123329",
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,18 +14,15 @@
14
14
  "dist/**/*"
15
15
  ],
16
16
  "scripts": {
17
- "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
18
- "clean": "rimraf node_modules",
19
- "build": "rimraf dist && npx tsc",
20
- "start": "tsx debug.ts",
21
- "test-pdf": "tsx debug-pdf.ts",
22
- "sdk:update": "npm update @sme.up/kokos-sdk-node"
17
+ "test": "jest",
18
+ "clean": "rimraf dist && rimraf node_modules",
19
+ "build": "npx tsc",
20
+ "start": "tsx debug.ts"
23
21
  },
24
22
  "keywords": [],
25
23
  "type": "module",
26
24
  "devDependencies": {
27
25
  "@eslint/js": "^9.28.0",
28
- "@types/exceljs": "^1.3.2",
29
26
  "@types/jest": "^29.5.14",
30
27
  "@types/node": "^22.15.30",
31
28
  "csstype": "^3.1.3",
@@ -33,6 +30,7 @@
33
30
  "globals": "^16.2.0",
34
31
  "jest": "^29.7.0",
35
32
  "prettier": "^3.5.3",
33
+ "rimraf": "^6.0.1",
36
34
  "ts-jest": "^29.3.4",
37
35
  "ts-node": "^10.9.2",
38
36
  "tsx": "^4.19.4",
@@ -40,8 +38,13 @@
40
38
  "typescript-eslint": "^8.33.1"
41
39
  },
42
40
  "dependencies": {
43
- "@sme.up/kokos-sdk-node": "^3.0.0-SNAPSHOT",
41
+ "canvas": "^3.1.1",
42
+ "echarts": "^5.6.0",
44
43
  "exceljs": "^4.4.0",
45
- "libreoffice-convert": "^1.6.1"
44
+ "image-size": "^2.0.2",
45
+ "jspdf": "^3.0.1",
46
+ "jspdf-autotable": "^5.0.2",
47
+ "math-expression-evaluator": "^2.0.7",
48
+ "pdf-lib": "^1.17.1"
46
49
  }
47
- }
50
+ }
@@ -1,48 +0,0 @@
1
- import { SmeupDataTable, SmeupDataTree } from "@sme.up/kokos-sdk-node";
2
- import { GenericObject } from "../src/types/index.js";
3
- import { TotalMode } from "../src/excel/excel-generator.types.js";
4
- /**
5
- * Sample data for testing Excel generation functionality.
6
- * Contains a table with multiple columns including visible/hidden columns,
7
- * numeric data, and formula columns.
8
- */
9
- export declare const table_sample_1: {
10
- smeupDataTable: SmeupDataTable;
11
- props: GenericObject;
12
- };
13
- export declare const table_sample_2: {
14
- smeupDataTable: SmeupDataTable;
15
- props: {
16
- groups: {
17
- column: string;
18
- visible: boolean;
19
- }[];
20
- totals: never[];
21
- };
22
- };
23
- export declare const tree_grid_sample_1: {
24
- smeupDataTree: SmeupDataTree;
25
- props: GenericObject;
26
- };
27
- export declare const totals_sample_1: {
28
- [columnName: string]: TotalMode | string;
29
- };
30
- export declare const data_table_totals_result_sample_1: {
31
- [key: string]: string;
32
- };
33
- export declare const table_footer_actions: (action: string, groups: {
34
- column: string;
35
- visible: boolean;
36
- }[], rowsNumber?: number, rowRepetitions?: number) => {
37
- smeupDataTable: SmeupDataTable;
38
- props: {
39
- groups: {
40
- column: string;
41
- visible: boolean;
42
- }[];
43
- totals: never[] | {
44
- [x: string]: string;
45
- };
46
- filter: never[];
47
- };
48
- };
@@ -1,372 +0,0 @@
1
- import { SmeupDataStructureType, } from "@sme.up/kokos-sdk-node";
2
- const columns_sample_1 = [
3
- {
4
- name: "COL1",
5
- title: "Column1",
6
- visible: true,
7
- obj: { t: "", p: "" },
8
- },
9
- {
10
- name: "VO_COD_VER_COL",
11
- title: "VO_COD_VER",
12
- visible: true,
13
- obj: { t: "VO", p: "COD_VER" },
14
- },
15
- {
16
- name: "BTN_COL",
17
- title: "Button",
18
- visible: true,
19
- obj: { t: "J4", p: "BTN" },
20
- },
21
- {
22
- name: "COL2",
23
- title: "Column2",
24
- visible: true,
25
- obj: { t: "", p: "" },
26
- },
27
- {
28
- name: "HIDDEN_COL",
29
- title: "Hidden column",
30
- visible: false,
31
- obj: { t: "NR", p: "" },
32
- },
33
- {
34
- name: "SUM_COL",
35
- title: "Sum",
36
- visible: true,
37
- obj: { t: "NR", p: "" },
38
- },
39
- {
40
- name: "AVG_COL",
41
- title: "Average",
42
- visible: true,
43
- obj: { t: "NR", p: "" },
44
- },
45
- {
46
- name: "MIN_COL",
47
- title: "Minimum",
48
- visible: true,
49
- obj: { t: "NR", p: "" },
50
- },
51
- {
52
- name: "MAX_COL",
53
- title: "Maximum",
54
- visible: true,
55
- obj: { t: "NR", p: "" },
56
- },
57
- {
58
- name: "DIFF_COL",
59
- title: "Difference",
60
- visible: true,
61
- formula: "([HIDDEN_COL]-[SUM_COL])",
62
- obj: { t: "NR", p: "" },
63
- },
64
- ];
65
- const cells_1_sample_1 = {
66
- COL1: {
67
- obj: { t: "", p: "", k: "Value 1" },
68
- value: "Value 1",
69
- },
70
- VO_COD_VER_COL: {
71
- obj: { t: "VO", p: "COD_VER", k: "Op" },
72
- value: "Op",
73
- },
74
- BTN_COL: {
75
- obj: { t: "J4", p: "BTN", k: "Button" },
76
- value: "Button",
77
- },
78
- COL2: {
79
- obj: { t: "", p: "", k: "Value 2" },
80
- value: "Value 2",
81
- },
82
- HIDDEN_COL: {
83
- obj: { t: "NR", p: "", k: "33" },
84
- value: "33",
85
- },
86
- SUM_COL: {
87
- obj: { t: "NR", p: "", k: "15" },
88
- value: "15",
89
- },
90
- AVG_COL: {
91
- obj: { t: "NR", p: "", k: "-5" },
92
- value: "-5",
93
- },
94
- MIN_COL: {
95
- obj: { t: "NR", p: "", k: "1000" },
96
- value: "1000",
97
- },
98
- MAX_COL: {
99
- obj: { t: "NR", p: "", k: "12" },
100
- value: "12",
101
- },
102
- DIFF_COL: {
103
- obj: { t: "NR", p: "", k: "-18" },
104
- value: "-18",
105
- },
106
- };
107
- const cells_2_sample_1 = {
108
- COL1: {
109
- obj: { t: "", p: "", k: "Value 3" },
110
- value: "Value 3",
111
- },
112
- VO_COD_VER_COL: {
113
- obj: { t: "VO", p: "COD_VER", k: "Op" },
114
- value: "Op",
115
- },
116
- BTN_COL: {
117
- obj: { t: "J4", p: "BTN", k: "Button" },
118
- value: "Button",
119
- },
120
- COL2: {
121
- obj: { t: "", p: "", k: "Value 4" },
122
- value: "Value 4",
123
- },
124
- HIDDEN_COL: {
125
- obj: { t: "NR", p: "", k: "33" },
126
- value: "33",
127
- },
128
- SUM_COL: {
129
- obj: { t: "NR", p: "", k: "6" },
130
- value: "6",
131
- },
132
- AVG_COL: {
133
- obj: { t: "NR", p: "", k: "-80" },
134
- value: "-80",
135
- },
136
- MIN_COL: {
137
- obj: { t: "NR", p: "", k: "5.5" },
138
- value: "5.5",
139
- },
140
- MAX_COL: {
141
- obj: { t: "NR", p: "", k: "1200" },
142
- value: "1200",
143
- },
144
- DIFF_COL: {
145
- obj: { t: "NR", p: "", k: "-27" },
146
- value: "-27",
147
- },
148
- };
149
- /**
150
- * Sample data for testing Excel generation functionality.
151
- * Contains a table with multiple columns including visible/hidden columns,
152
- * numeric data, and formula columns.
153
- */
154
- export const table_sample_1 = {
155
- smeupDataTable: {
156
- type: SmeupDataStructureType.SmeupDataTable,
157
- columns: columns_sample_1,
158
- rows: [
159
- {
160
- cells: cells_1_sample_1,
161
- },
162
- {
163
- cells: cells_2_sample_1,
164
- },
165
- ],
166
- },
167
- props: {},
168
- };
169
- export const table_sample_2 = {
170
- smeupDataTable: {
171
- type: SmeupDataStructureType.SmeupDataTable,
172
- columns: [
173
- {
174
- name: "1",
175
- title: "1title",
176
- visible: true,
177
- obj: { t: "", p: "" },
178
- },
179
- {
180
- name: "2",
181
- title: "2title",
182
- visible: true,
183
- obj: { t: "", p: "" },
184
- },
185
- {
186
- name: "DSC",
187
- title: "DSCtitle",
188
- visible: true,
189
- obj: { t: "", p: "" },
190
- },
191
- ],
192
- rows: [
193
- {
194
- cells: {
195
- 1: {
196
- obj: { t: "", p: "", k: "" },
197
- value: "1-1",
198
- },
199
- 2: {
200
- obj: { t: "", p: "", k: "" },
201
- value: "2-1",
202
- },
203
- DSC: {
204
- obj: { t: "", p: "", k: "" },
205
- value: "DSC-1",
206
- },
207
- },
208
- },
209
- {
210
- cells: {
211
- 1: {
212
- obj: { t: "", p: "" },
213
- value: "1-2",
214
- },
215
- 2: {
216
- obj: { t: "", p: "" },
217
- value: "2-2",
218
- },
219
- DSC: {
220
- obj: { t: "", p: "" },
221
- value: "DSC-2",
222
- },
223
- },
224
- },
225
- ],
226
- },
227
- props: {
228
- groups: [
229
- { column: "1", visible: true },
230
- { column: "2", visible: true },
231
- ],
232
- totals: [],
233
- },
234
- };
235
- export const tree_grid_sample_1 = {
236
- smeupDataTree: {
237
- type: SmeupDataStructureType.SmeupDataTree,
238
- columns: columns_sample_1,
239
- children: [
240
- {
241
- obj: {
242
- t: "",
243
- p: "",
244
- k: "1LVL.",
245
- },
246
- value: "Node1",
247
- cells: cells_1_sample_1,
248
- children: [
249
- {
250
- obj: {
251
- t: "",
252
- p: "",
253
- k: "2LVL.",
254
- },
255
- value: "Node1",
256
- cells: cells_2_sample_1,
257
- children: [
258
- {
259
- obj: {
260
- t: "",
261
- p: "",
262
- k: "3LVL.",
263
- },
264
- value: "Node1",
265
- cells: cells_1_sample_1,
266
- children: [],
267
- },
268
- ],
269
- },
270
- {
271
- obj: {
272
- t: "",
273
- p: "",
274
- k: "2LVL.",
275
- },
276
- value: "Node2",
277
- cells: cells_2_sample_1,
278
- children: [],
279
- },
280
- ],
281
- },
282
- {
283
- obj: {
284
- t: "",
285
- p: "",
286
- k: "1LVL.",
287
- },
288
- value: "Node2",
289
- cells: cells_1_sample_1,
290
- children: [],
291
- },
292
- ],
293
- },
294
- props: {},
295
- };
296
- // Define table_sample_1 for use in tests
297
- export const totals_sample_1 = {
298
- COL1: "Count",
299
- COL2: "Distinct",
300
- HIDDEN_COL: "Sum",
301
- SUM_COL: "Sum",
302
- AVG_COL: "Average",
303
- MIN_COL: "Min",
304
- MAX_COL: "Max",
305
- DIFF_COL: `${"MATH"}([HIDDEN_COL]-[SUM_COL])`,
306
- };
307
- export const data_table_totals_result_sample_1 = {
308
- COL1: "SUBTOTAL(3,A2:A3)",
309
- HIDDEN_COL: "SUBTOTAL(9,C2:C3)",
310
- SUM_COL: "SUBTOTAL(9,D2:D3)",
311
- AVG_COL: "SUBTOTAL(1,E2:E3)",
312
- MIN_COL: "SUBTOTAL(5,F2:F3)",
313
- MAX_COL: "SUBTOTAL(4,G2:G3)",
314
- DIFF_COL: `(C4-D4)`,
315
- };
316
- export const table_footer_actions = (action, groups, rowsNumber = 1, rowRepetitions = 1) => {
317
- const rows = [];
318
- for (let i = 0; i < rowsNumber; i++) {
319
- const rowObj = {
320
- cells: {
321
- 1: {
322
- obj: { t: "", p: "", k: "" },
323
- value: `1-${i}`,
324
- },
325
- 2: {
326
- obj: { t: "", p: "", k: "" },
327
- value: `2-${i}`,
328
- },
329
- [`${action}`]: {
330
- obj: { t: "NR", p: "", k: "10" },
331
- value: `${i + 1}`,
332
- },
333
- },
334
- id: `${i}`,
335
- };
336
- for (let i = 0; i < rowRepetitions; i++) {
337
- rows.push(rowObj);
338
- }
339
- }
340
- return {
341
- smeupDataTable: {
342
- type: SmeupDataStructureType.SmeupDataTable,
343
- columns: [
344
- {
345
- name: "1",
346
- title: "1title",
347
- visible: true,
348
- obj: { t: "", p: "" },
349
- },
350
- {
351
- name: "2",
352
- title: "2title",
353
- visible: true,
354
- obj: { t: "", p: "" },
355
- },
356
- {
357
- name: `${action}`,
358
- title: `${action}title`,
359
- visible: true,
360
- obj: { t: "NR", p: "" },
361
- },
362
- ],
363
- rows,
364
- },
365
- props: {
366
- groups,
367
- totals: action ? { [`${action}`]: `${action}` } : [],
368
- filter: [],
369
- },
370
- };
371
- };
372
- //# sourceMappingURL=sample-data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sample-data.js","sourceRoot":"","sources":["../../assets/sample-data.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n SmeupDataCell,\n SmeupDataColumn,\n SmeupDataStructureType,\n SmeupDataTable,\n SmeupDataTree,\n} from \"@sme.up/kokos-sdk-node\";\nimport { GenericObject } from \"../src/types/index.js\";\nimport { TotalMode } from \"../src/excel/excel-generator.types.js\";\n\nconst columns_sample_1: SmeupDataColumn[] = [\n {\n name: \"COL1\",\n title: \"Column1\",\n visible: true,\n obj: { t: \"\", p: \"\" },\n },\n {\n name: \"VO_COD_VER_COL\",\n title: \"VO_COD_VER\",\n visible: true,\n obj: { t: \"VO\", p: \"COD_VER\" },\n },\n {\n name: \"BTN_COL\",\n title: \"Button\",\n visible: true,\n obj: { t: \"J4\", p: \"BTN\" },\n },\n {\n name: \"COL2\",\n title: \"Column2\",\n visible: true,\n obj: { t: \"\", p: \"\" },\n },\n {\n name: \"HIDDEN_COL\",\n title: \"Hidden column\",\n visible: false,\n obj: { t: \"NR\", p: \"\" },\n },\n {\n name: \"SUM_COL\",\n title: \"Sum\",\n visible: true,\n obj: { t: \"NR\", p: \"\" },\n },\n {\n name: \"AVG_COL\",\n title: \"Average\",\n visible: true,\n obj: { t: \"NR\", p: \"\" },\n },\n {\n name: \"MIN_COL\",\n title: \"Minimum\",\n visible: true,\n obj: { t: \"NR\", p: \"\" },\n },\n {\n name: \"MAX_COL\",\n title: \"Maximum\",\n visible: true,\n obj: { t: \"NR\", p: \"\" },\n },\n {\n name: \"DIFF_COL\",\n title: \"Difference\",\n visible: true,\n formula: \"([HIDDEN_COL]-[SUM_COL])\",\n obj: { t: \"NR\", p: \"\" },\n },\n];\n\nconst cells_1_sample_1: {\n [key: string]: SmeupDataCell;\n} = {\n COL1: {\n obj: { t: \"\", p: \"\", k: \"Value 1\" },\n value: \"Value 1\",\n },\n VO_COD_VER_COL: {\n obj: { t: \"VO\", p: \"COD_VER\", k: \"Op\" },\n value: \"Op\",\n },\n BTN_COL: {\n obj: { t: \"J4\", p: \"BTN\", k: \"Button\" },\n value: \"Button\",\n },\n COL2: {\n obj: { t: \"\", p: \"\", k: \"Value 2\" },\n value: \"Value 2\",\n },\n HIDDEN_COL: {\n obj: { t: \"NR\", p: \"\", k: \"33\" },\n value: \"33\",\n },\n SUM_COL: {\n obj: { t: \"NR\", p: \"\", k: \"15\" },\n value: \"15\",\n },\n AVG_COL: {\n obj: { t: \"NR\", p: \"\", k: \"-5\" },\n value: \"-5\",\n },\n MIN_COL: {\n obj: { t: \"NR\", p: \"\", k: \"1000\" },\n value: \"1000\",\n },\n MAX_COL: {\n obj: { t: \"NR\", p: \"\", k: \"12\" },\n value: \"12\",\n },\n DIFF_COL: {\n obj: { t: \"NR\", p: \"\", k: \"-18\" },\n value: \"-18\",\n },\n};\n\nconst cells_2_sample_1: {\n [key: string]: SmeupDataCell;\n} = {\n COL1: {\n obj: { t: \"\", p: \"\", k: \"Value 3\" },\n value: \"Value 3\",\n },\n VO_COD_VER_COL: {\n obj: { t: \"VO\", p: \"COD_VER\", k: \"Op\" },\n value: \"Op\",\n },\n BTN_COL: {\n obj: { t: \"J4\", p: \"BTN\", k: \"Button\" },\n value: \"Button\",\n },\n COL2: {\n obj: { t: \"\", p: \"\", k: \"Value 4\" },\n value: \"Value 4\",\n },\n HIDDEN_COL: {\n obj: { t: \"NR\", p: \"\", k: \"33\" },\n value: \"33\",\n },\n SUM_COL: {\n obj: { t: \"NR\", p: \"\", k: \"6\" },\n value: \"6\",\n },\n AVG_COL: {\n obj: { t: \"NR\", p: \"\", k: \"-80\" },\n value: \"-80\",\n },\n MIN_COL: {\n obj: { t: \"NR\", p: \"\", k: \"5.5\" },\n value: \"5.5\",\n },\n MAX_COL: {\n obj: { t: \"NR\", p: \"\", k: \"1200\" },\n value: \"1200\",\n },\n DIFF_COL: {\n obj: { t: \"NR\", p: \"\", k: \"-27\" },\n value: \"-27\",\n },\n};\n\n/**\n * Sample data for testing Excel generation functionality.\n * Contains a table with multiple columns including visible/hidden columns,\n * numeric data, and formula columns.\n */\nexport const table_sample_1: {\n smeupDataTable: SmeupDataTable;\n props: GenericObject;\n} = {\n smeupDataTable: {\n type: SmeupDataStructureType.SmeupDataTable,\n columns: columns_sample_1,\n rows: [\n {\n cells: cells_1_sample_1,\n },\n {\n cells: cells_2_sample_1,\n },\n ],\n } as SmeupDataTable,\n props: {},\n};\n\nexport const table_sample_2 = {\n smeupDataTable: {\n type: SmeupDataStructureType.SmeupDataTable,\n columns: [\n {\n name: \"1\",\n title: \"1title\",\n visible: true,\n obj: { t: \"\", p: \"\" },\n },\n {\n name: \"2\",\n title: \"2title\",\n visible: true,\n obj: { t: \"\", p: \"\" },\n },\n {\n name: \"DSC\",\n title: \"DSCtitle\",\n visible: true,\n obj: { t: \"\", p: \"\" },\n },\n ],\n rows: [\n {\n cells: {\n 1: {\n obj: { t: \"\", p: \"\", k: \"\" },\n value: \"1-1\",\n },\n 2: {\n obj: { t: \"\", p: \"\", k: \"\" },\n value: \"2-1\",\n },\n DSC: {\n obj: { t: \"\", p: \"\", k: \"\" },\n value: \"DSC-1\",\n },\n },\n },\n {\n cells: {\n 1: {\n obj: { t: \"\", p: \"\" },\n value: \"1-2\",\n },\n 2: {\n obj: { t: \"\", p: \"\" },\n value: \"2-2\",\n },\n DSC: {\n obj: { t: \"\", p: \"\" },\n value: \"DSC-2\",\n },\n },\n },\n ],\n } as SmeupDataTable,\n props: {\n groups: [\n { column: \"1\", visible: true },\n { column: \"2\", visible: true },\n ],\n totals: [],\n },\n};\n\nexport const tree_grid_sample_1: {\n smeupDataTree: SmeupDataTree;\n props: GenericObject;\n} = {\n smeupDataTree: {\n type: SmeupDataStructureType.SmeupDataTree,\n columns: columns_sample_1,\n children: [\n {\n obj: {\n t: \"\",\n p: \"\",\n k: \"1LVL.\",\n },\n value: \"Node1\",\n cells: cells_1_sample_1,\n children: [\n {\n obj: {\n t: \"\",\n p: \"\",\n k: \"2LVL.\",\n },\n value: \"Node1\",\n cells: cells_2_sample_1,\n children: [\n {\n obj: {\n t: \"\",\n p: \"\",\n k: \"3LVL.\",\n },\n value: \"Node1\",\n cells: cells_1_sample_1,\n children: [],\n },\n ],\n },\n {\n obj: {\n t: \"\",\n p: \"\",\n k: \"2LVL.\",\n },\n value: \"Node2\",\n cells: cells_2_sample_1,\n children: [],\n },\n ],\n },\n {\n obj: {\n t: \"\",\n p: \"\",\n k: \"1LVL.\",\n },\n value: \"Node2\",\n cells: cells_1_sample_1,\n children: [],\n },\n ],\n },\n props: {},\n};\n\n// Define table_sample_1 for use in tests\nexport const totals_sample_1: { [columnName: string]: TotalMode | string } = {\n COL1: \"Count\" as TotalMode,\n COL2: \"Distinct\" as TotalMode,\n HIDDEN_COL: \"Sum\" as TotalMode,\n SUM_COL: \"Sum\" as TotalMode,\n AVG_COL: \"Average\" as TotalMode,\n MIN_COL: \"Min\" as TotalMode,\n MAX_COL: \"Max\" as TotalMode,\n DIFF_COL: `${\"MATH\" as TotalMode}([HIDDEN_COL]-[SUM_COL])`,\n};\n\nexport const data_table_totals_result_sample_1: { [key: string]: string } = {\n COL1: \"SUBTOTAL(3,A2:A3)\",\n HIDDEN_COL: \"SUBTOTAL(9,C2:C3)\",\n SUM_COL: \"SUBTOTAL(9,D2:D3)\",\n AVG_COL: \"SUBTOTAL(1,E2:E3)\",\n MIN_COL: \"SUBTOTAL(5,F2:F3)\",\n MAX_COL: \"SUBTOTAL(4,G2:G3)\",\n DIFF_COL: `(C4-D4)`,\n};\n\nexport const table_footer_actions = (\n action: string,\n groups: { column: string; visible: boolean }[],\n rowsNumber: number = 1,\n rowRepetitions: number = 1,\n) => {\n const rows: Array<{\n cells: {\n [key: string]: {\n obj: { t: string; p: string; k: string };\n value: string;\n };\n };\n id: string;\n }> = [];\n for (let i = 0; i < rowsNumber; i++) {\n const rowObj = {\n cells: {\n 1: {\n obj: { t: \"\", p: \"\", k: \"\" },\n value: `1-${i}`,\n },\n 2: {\n obj: { t: \"\", p: \"\", k: \"\" },\n value: `2-${i}`,\n },\n [`${action}`]: {\n obj: { t: \"NR\", p: \"\", k: \"10\" },\n value: `${i + 1}`,\n },\n },\n id: `${i}`,\n };\n for (let i = 0; i < rowRepetitions; i++) {\n rows.push(rowObj);\n }\n }\n return {\n smeupDataTable: {\n type: SmeupDataStructureType.SmeupDataTable,\n columns: [\n {\n name: \"1\",\n title: \"1title\",\n visible: true,\n obj: { t: \"\", p: \"\" },\n },\n {\n name: \"2\",\n title: \"2title\",\n visible: true,\n obj: { t: \"\", p: \"\" },\n },\n {\n name: `${action}`,\n title: `${action}title`,\n visible: true,\n obj: { t: \"NR\", p: \"\" },\n },\n ],\n rows,\n } as SmeupDataTable,\n props: {\n groups,\n totals: action ? { [`${action}`]: `${action}` } : [],\n filter: [],\n },\n };\n};\n"]}
package/dist/debug.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/dist/debug.js DELETED
@@ -1,29 +0,0 @@
1
- import { SupportedExportFormats } from "./src/types/index.js";
2
- //import { table_sample_1 } from "./assets/sample-data.js";
3
- import path from "path";
4
- import fs from "fs/promises";
5
- import { dataTableToExcelData } from "./src/excel/excel-generator.js";
6
- async function main() {
7
- const managerData = {
8
- mathLocale: "it-IT",
9
- datesLocale: "it-IT",
10
- themeBackground: "",
11
- };
12
- const dataTableJSON = JSON.parse(await fs.readFile("F:/temp/data-table.json", "utf-8"));
13
- const dataTableProps = {
14
- ...dataTableJSON,
15
- };
16
- delete dataTableProps.data;
17
- const dataTable = {
18
- smeupDataTable: dataTableJSON.data,
19
- props: dataTableProps,
20
- };
21
- console.log("Generating Excel data...");
22
- const excelData = await dataTableToExcelData(dataTable, SupportedExportFormats.XLSX, managerData);
23
- const outputPath = path.resolve("./output/sample-export-debug.xlsx");
24
- console.log("Saving Excel to:", outputPath);
25
- await fs.writeFile(outputPath, excelData);
26
- console.log("Excel file saved successfully at:", outputPath);
27
- }
28
- main().catch(console.error);
29
- //# sourceMappingURL=debug.js.map
package/dist/debug.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAoB,MAAM,sBAAsB,CAAC;AAChF,2DAA2D;AAC3D,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAEtE,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAqB;QACpC,UAAU,EAAE,OAAO;QACnB,WAAW,EAAE,OAAO;QACpB,eAAe,EAAE,EAAE;KACpB,CAAC;IAEF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC9B,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,EAAE,OAAO,CAAC,CACtD,CAAC;IAEF,MAAM,cAAc,GAAG;QACrB,GAAG,aAAa;KACjB,CAAC;IAEF,OAAO,cAAc,CAAC,IAAI,CAAC;IAE3B,MAAM,SAAS,GAAG;QAChB,cAAc,EAAE,aAAa,CAAC,IAAI;QAClC,KAAK,EAAE,cAAc;KACtB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAC1C,SAAS,EACT,sBAAsB,CAAC,IAAI,EAC3B,WAAW,CACZ,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,mCAAmC,EAAE,UAAU,CAAC,CAAC;AAC/D,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC","sourcesContent":["import { SupportedExportFormats, WebupManagerData } from \"./src/types/index.js\";\n//import { table_sample_1 } from \"./assets/sample-data.js\";\nimport path from \"path\";\nimport fs from \"fs/promises\";\nimport { dataTableToExcelData } from \"./src/excel/excel-generator.js\";\n\nasync function main() {\n const managerData: WebupManagerData = {\n mathLocale: \"it-IT\",\n datesLocale: \"it-IT\",\n themeBackground: \"\",\n };\n\n const dataTableJSON = JSON.parse(\n await fs.readFile(\"F:/temp/data-table.json\", \"utf-8\"),\n );\n\n const dataTableProps = {\n ...dataTableJSON,\n };\n\n delete dataTableProps.data;\n\n const dataTable = {\n smeupDataTable: dataTableJSON.data,\n props: dataTableProps,\n };\n\n console.log(\"Generating Excel data...\");\n\n const excelData = await dataTableToExcelData(\n dataTable,\n SupportedExportFormats.XLSX,\n managerData,\n );\n\n const outputPath = path.resolve(\"./output/sample-export-debug.xlsx\");\n console.log(\"Saving Excel to:\", outputPath);\n\n await fs.writeFile(outputPath, excelData);\n console.log(\"Excel file saved successfully at:\", outputPath);\n}\n\nmain().catch(console.error);\n"]}
@@ -1,21 +0,0 @@
1
- import ExcelJS, { Worksheet } from "exceljs";
2
- import { SmeupDataColumn } from "@sme.up/kokos-sdk-node";
3
- import { GenericObject, WebupManagerData } from "../types/index.js";
4
- /**
5
- * Adds creator, creation date to the workbook and creates a sheet
6
- * @param workbook
7
- * @returns void
8
- */
9
- export declare const initializeWorksheet: (workbook: ExcelJS.Workbook) => ExcelJS.Worksheet;
10
- export declare const setHeaderStyling: (worksheet: Worksheet, background?: boolean) => void;
11
- export declare const addFooterTotalsRow: (worksheet: ExcelJS.Worksheet, columns: SmeupDataColumn[], props: GenericObject, webupManagerData: WebupManagerData) => void;
12
- /**
13
- * Returns the formula used in the footer to add Totals at the end of the table
14
- * @param totalOperation string
15
- * @param colIndex string
16
- * @param rowNumber number
17
- * @returns
18
- */
19
- export declare const getTotalFormula: (totalOperation: string, colIndex: number, rowNumber: number, filteredColumns: SmeupDataColumn[], isSmeupFormula: boolean) => string;
20
- export declare const getExcelColumnLetter: (index: number) => string;
21
- export declare const smeupFormulaToExcelFormula: (formula: string, rowNumber: number, filteredColumns: SmeupDataColumn[]) => string;