@sme.up/doc-alchemist 1.0.0-SNAPSHOT-20250613100107

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 (47) hide show
  1. package/README.md +129 -0
  2. package/dist/assets/sample-data.d.ts +21 -0
  3. package/dist/assets/sample-data.js +235 -0
  4. package/dist/assets/sample-data.js.map +1 -0
  5. package/dist/debug.d.ts +1 -0
  6. package/dist/debug.js +20 -0
  7. package/dist/debug.js.map +1 -0
  8. package/dist/index.d.ts +4 -0
  9. package/dist/index.js +4 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/src/excel/excel-generator.d.ts +14 -0
  12. package/dist/src/excel/excel-generator.js +415 -0
  13. package/dist/src/excel/excel-generator.js.map +1 -0
  14. package/dist/src/excel/excel-generator.types.d.ts +21 -0
  15. package/dist/src/excel/excel-generator.types.js +26 -0
  16. package/dist/src/excel/excel-generator.types.js.map +1 -0
  17. package/dist/src/index.d.ts +1 -0
  18. package/dist/src/index.js +2 -0
  19. package/dist/src/index.js.map +1 -0
  20. package/dist/src/pdf/pdf-generator.d.ts +6 -0
  21. package/dist/src/pdf/pdf-generator.js +5 -0
  22. package/dist/src/pdf/pdf-generator.js.map +1 -0
  23. package/dist/src/types/index.d.ts +38 -0
  24. package/dist/src/types/index.js +15 -0
  25. package/dist/src/types/index.js.map +1 -0
  26. package/dist/src/utils/datastructure-utility.d.ts +2 -0
  27. package/dist/src/utils/datastructure-utility.js +5 -0
  28. package/dist/src/utils/datastructure-utility.js.map +1 -0
  29. package/dist/src/utils/dates-utility.d.ts +10 -0
  30. package/dist/src/utils/dates-utility.js +55 -0
  31. package/dist/src/utils/dates-utility.js.map +1 -0
  32. package/dist/src/utils/generator-utility.d.ts +31 -0
  33. package/dist/src/utils/generator-utility.js +113 -0
  34. package/dist/src/utils/generator-utility.js.map +1 -0
  35. package/dist/src/utils/math-utility.d.ts +10 -0
  36. package/dist/src/utils/math-utility.js +161 -0
  37. package/dist/src/utils/math-utility.js.map +1 -0
  38. package/dist/src/utils/objects-utility.d.ts +4 -0
  39. package/dist/src/utils/objects-utility.js +16 -0
  40. package/dist/src/utils/objects-utility.js.map +1 -0
  41. package/dist/src/utils/regex-utility.d.ts +1 -0
  42. package/dist/src/utils/regex-utility.js +4 -0
  43. package/dist/src/utils/regex-utility.js.map +1 -0
  44. package/dist/tests/excel-generator.test.d.ts +17 -0
  45. package/dist/tests/excel-generator.test.js +287 -0
  46. package/dist/tests/excel-generator.test.js.map +1 -0
  47. package/package.json +44 -0
package/README.md ADDED
@@ -0,0 +1,129 @@
1
+ # Doc Alchemist
2
+
3
+ A TypeScript library for generating Excel documents from SmeupDataTable structures. This library provides powerful data transformation and export capabilities with support for formulas, styling, grouping, and totals.
4
+
5
+ ## Features
6
+
7
+ - **Excel Export**: Generate `.xlsx` `.csv` and `.txt` files with full formatting support
8
+
9
+ ## Installation
10
+
11
+ ```
12
+ npm install @sme.up/doc-alchemist
13
+ ```
14
+
15
+ ## Quick Start
16
+
17
+ ```typescript
18
+ import { dataTableToExcel } from "@sme.up/doc-alchemist";
19
+ import { SupportedExportFormats } from "@sme.up/doc-alchemist";
20
+
21
+ // Your data in SmeupDataTable format
22
+ const data = {
23
+ smeupDataTable: {
24
+ columns: [
25
+ { name: "COL1", title: "Column 1", visible: true, obj: { t: "", p: "" } },
26
+ {
27
+ name: "COL2",
28
+ title: "Column 2",
29
+ visible: true,
30
+ obj: { t: "NR", p: "" },
31
+ },
32
+ ],
33
+ rows: [
34
+ {
35
+ cells: {
36
+ COL1: { value: "Sample Data", obj: { t: "", p: "", k: "" } },
37
+ COL2: { value: "123", obj: { t: "NR", p: "", k: "123" } },
38
+ },
39
+ },
40
+ ],
41
+ },
42
+ props: {
43
+ totals: {},
44
+ groups: [],
45
+ filter: [],
46
+ },
47
+ };
48
+
49
+ // Generate Excel data
50
+ const excelBuffer = dataTableToExcelData(data, SupportedExportFormats.XLSX, {});
51
+
52
+ const outputPath = path.resolve("./output/sample-export-debug.xlsx");
53
+
54
+ // Save to file
55
+ await fs.writeFile(outputPath, excelBuffer);
56
+ ```
57
+
58
+ ## API Reference
59
+
60
+ ### Main Functions
61
+
62
+ #### `dataTableToExcelData(data, format, managerData)`
63
+
64
+ Converts SmeupDataTable to Excel binary data.
65
+
66
+ **Parameters:**
67
+
68
+ - `data`: Object containing `smeupDataTable` and `props`
69
+ - `format`: Export format (`SupportedExportFormats.XLSX`)
70
+ - `managerData`: Configuration object with locale and theme settings
71
+
72
+ **Returns:** `Promise<Buffer | Uint8Array>` instance
73
+
74
+ ### Setup
75
+
76
+ ```bash
77
+ # Clone the repository
78
+ git clone <repository-url>
79
+ cd doc-alchemist
80
+
81
+ # Install dependencies
82
+ npm install
83
+ ```
84
+
85
+ ### Running the Example
86
+
87
+ ```bash
88
+ # Run the main example (generates sample Excel file)
89
+ npm start
90
+
91
+ # Output will be saved to ./output/sample-export.xlsx
92
+ ```
93
+
94
+ ### Testing
95
+
96
+ ```bash
97
+ # Run all tests
98
+ npm test
99
+ ```
100
+
101
+ # Debugging
102
+
103
+ ### VS Code Debug Configuration
104
+
105
+ The project includes comprehensive VS Code debug configurations:
106
+
107
+ #### Available Debug Configurations:
108
+
109
+ 1. **Debug debug.ts** - Debug the main example file
110
+ 2. **Debug Specific Test File** - Debug currently open test file
111
+
112
+ #### Setting up Debug Session:
113
+
114
+ 1. **Open VS Code** in the project directory
115
+ 2. **Open Debug Panel** (Ctrl+Shift+D)
116
+ 3. **Select configuration** from dropdown
117
+ 4. **Set breakpoints** in your TypeScript files
118
+ 5. **Press F5** to start debugging
119
+
120
+ ### Code Style
121
+
122
+ - Use TypeScript strict mode
123
+ - Follow existing code formatting
124
+ - Write tests for new features
125
+ - Use meaningful variable and function names
126
+
127
+ ---
128
+
129
+ **Note**: This library is designed to work with SmeupDataTable structures and requires the `@sme.up/kokos-sdk-node` package for type definitions.
@@ -0,0 +1,21 @@
1
+ import { SmeupDataTable } from "@sme.up/kokos-sdk-node";
2
+ import { GenericObject } from "../src/types/index.js";
3
+ /**
4
+ * Sample data for testing Excel generation functionality.
5
+ * Contains a table with multiple columns including visible/hidden columns,
6
+ * numeric data, and formula columns.
7
+ */
8
+ export declare const table_sample_1: {
9
+ smeupDataTable: SmeupDataTable;
10
+ props: GenericObject;
11
+ };
12
+ export declare const table_sample_2: {
13
+ smeupDataTable: SmeupDataTable;
14
+ props: {
15
+ groups: {
16
+ column: string;
17
+ visible: boolean;
18
+ }[];
19
+ totals: never[];
20
+ };
21
+ };
@@ -0,0 +1,235 @@
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
+ //# sourceMappingURL=sample-data.js.map
@@ -0,0 +1 @@
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} from \"@sme.up/kokos-sdk-node\";\nimport { GenericObject } from \"../src/types/index.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"]}
@@ -0,0 +1 @@
1
+ export {};
package/dist/debug.js ADDED
@@ -0,0 +1,20 @@
1
+ import { SupportedExportFormats } from "./src/types/index.js";
2
+ import { dataTableToExcelData } from "./src/excel/excel-generator.js";
3
+ import { table_sample_1 } from "./assets/sample-data.js";
4
+ import path from "path";
5
+ import fs from "fs/promises";
6
+ async function main() {
7
+ const managerData = {
8
+ mathLocale: "it-IT",
9
+ datesLocale: "it-IT",
10
+ themeBackground: "",
11
+ };
12
+ console.log("Generating Excel data...");
13
+ const excelData = await dataTableToExcelData(table_sample_1, SupportedExportFormats.XLSX, managerData);
14
+ const outputPath = path.resolve("./output/sample-export-debug.xlsx");
15
+ console.log("Saving Excel to:", outputPath);
16
+ await fs.writeFile(outputPath, excelData);
17
+ console.log("Excel file saved successfully at:", outputPath);
18
+ }
19
+ main().catch(console.error);
20
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../debug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAoB,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,aAAa,CAAC;AAE7B,KAAK,UAAU,IAAI;IACjB,MAAM,WAAW,GAAqB;QACpC,UAAU,EAAE,OAAO;QACnB,WAAW,EAAE,OAAO;QACpB,eAAe,EAAE,EAAE;KACpB,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAExC,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAC1C,cAAc,EACd,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\";\nimport { dataTableToExcelData } from \"./src/excel/excel-generator.js\";\nimport { table_sample_1 } from \"./assets/sample-data.js\";\nimport path from \"path\";\nimport fs from \"fs/promises\";\n\nasync function main() {\n const managerData: WebupManagerData = {\n mathLocale: \"it-IT\",\n datesLocale: \"it-IT\",\n themeBackground: \"\",\n };\n\n console.log(\"Generating Excel data...\");\n\n const excelData = await dataTableToExcelData(\n table_sample_1,\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"]}
@@ -0,0 +1,4 @@
1
+ export { dataTableToExcelData } from "./src/excel/excel-generator.js";
2
+ export type { WebupManagerData, GenericObject } from "./src/types/index.js";
3
+ export { SupportedExportFormats } from "./src/types/index.js";
4
+ export type { SmeupDataTable } from "@sme.up/kokos-sdk-node";
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ // Public API exports
2
+ export { dataTableToExcelData } from "./src/excel/excel-generator.js";
3
+ export { SupportedExportFormats } from "./src/types/index.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAKtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC","sourcesContent":["// Public API exports\nexport { dataTableToExcelData } from \"./src/excel/excel-generator.js\";\n\n// Export types that users might need\nexport type { WebupManagerData, GenericObject } from \"./src/types/index.js\";\n\nexport { SupportedExportFormats } from \"./src/types/index.js\";\n\n// Re-export useful types from kokos-sdk-node if needed\nexport type { SmeupDataTable } from \"@sme.up/kokos-sdk-node\";\n"]}
@@ -0,0 +1,14 @@
1
+ import { SmeupDataColumn, SmeupDataNode, SmeupDataRow, SmeupDataTable } from "@sme.up/kokos-sdk-node";
2
+ import ExcelJS from "exceljs";
3
+ import { GenericObject, WebupManagerData, SupportedExportFormats } from "../types/index.js";
4
+ export declare const dataTableToExcelData: (component: {
5
+ smeupDataTable: SmeupDataTable;
6
+ props: GenericObject;
7
+ }, fileFormat: SupportedExportFormats, webupManagerData: WebupManagerData) => Promise<Buffer | Uint8Array>;
8
+ export declare const dataTableToExcelWorkbook: (component: {
9
+ smeupDataTable: SmeupDataTable;
10
+ props: GenericObject;
11
+ }, fileFormat: SupportedExportFormats, webupManagerData: WebupManagerData) => ExcelJS.Workbook;
12
+ export declare const smeupFormulaToExcelFormula: (formula: string, rowNumber: number, filteredColumns: SmeupDataColumn[]) => string;
13
+ export declare const addStyleToExceljsRow: (exceljsRow: ExcelJS.Row, columns: SmeupDataColumn[], row: SmeupDataRow | SmeupDataNode) => void;
14
+ export declare const getExcelNumFormat: (cellDecimals: number, cellIntegers: number) => string;