@bilig/excel-import 0.14.14

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 (198) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +165 -0
  3. package/dist/index.d.ts +31 -0
  4. package/dist/index.js +748 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/workbook-import-content-types.d.ts +10 -0
  7. package/dist/workbook-import-content-types.js +30 -0
  8. package/dist/workbook-import-content-types.js.map +1 -0
  9. package/dist/workbook-import-helpers.d.ts +21 -0
  10. package/dist/workbook-import-helpers.js +77 -0
  11. package/dist/workbook-import-helpers.js.map +1 -0
  12. package/dist/workbook-import-preview.d.ts +19 -0
  13. package/dist/workbook-import-preview.js +12 -0
  14. package/dist/workbook-import-preview.js.map +1 -0
  15. package/dist/xlsx-array-formulas.d.ts +6 -0
  16. package/dist/xlsx-array-formulas.js +186 -0
  17. package/dist/xlsx-array-formulas.js.map +1 -0
  18. package/dist/xlsx-axis-entries.d.ts +3 -0
  19. package/dist/xlsx-axis-entries.js +90 -0
  20. package/dist/xlsx-axis-entries.js.map +1 -0
  21. package/dist/xlsx-calculation-settings.d.ts +9 -0
  22. package/dist/xlsx-calculation-settings.js +198 -0
  23. package/dist/xlsx-calculation-settings.js.map +1 -0
  24. package/dist/xlsx-cell-insertion.d.ts +11 -0
  25. package/dist/xlsx-cell-insertion.js +164 -0
  26. package/dist/xlsx-cell-insertion.js.map +1 -0
  27. package/dist/xlsx-cell-metadata.d.ts +15 -0
  28. package/dist/xlsx-cell-metadata.js +380 -0
  29. package/dist/xlsx-cell-metadata.js.map +1 -0
  30. package/dist/xlsx-chart-artifacts.d.ts +7 -0
  31. package/dist/xlsx-chart-artifacts.js +327 -0
  32. package/dist/xlsx-chart-artifacts.js.map +1 -0
  33. package/dist/xlsx-charts.d.ts +4 -0
  34. package/dist/xlsx-charts.js +671 -0
  35. package/dist/xlsx-charts.js.map +1 -0
  36. package/dist/xlsx-comment-vml.d.ts +11 -0
  37. package/dist/xlsx-comment-vml.js +292 -0
  38. package/dist/xlsx-comment-vml.js.map +1 -0
  39. package/dist/xlsx-comments.d.ts +7 -0
  40. package/dist/xlsx-comments.js +120 -0
  41. package/dist/xlsx-comments.js.map +1 -0
  42. package/dist/xlsx-conditional-formats.d.ts +5 -0
  43. package/dist/xlsx-conditional-formats.js +513 -0
  44. package/dist/xlsx-conditional-formats.js.map +1 -0
  45. package/dist/xlsx-control-artifacts.d.ts +7 -0
  46. package/dist/xlsx-control-artifacts.js +404 -0
  47. package/dist/xlsx-control-artifacts.js.map +1 -0
  48. package/dist/xlsx-data-model-artifacts.d.ts +4 -0
  49. package/dist/xlsx-data-model-artifacts.js +240 -0
  50. package/dist/xlsx-data-model-artifacts.js.map +1 -0
  51. package/dist/xlsx-data-table-formulas.d.ts +4 -0
  52. package/dist/xlsx-data-table-formulas.js +138 -0
  53. package/dist/xlsx-data-table-formulas.js.map +1 -0
  54. package/dist/xlsx-defined-names.d.ts +7 -0
  55. package/dist/xlsx-defined-names.js +292 -0
  56. package/dist/xlsx-defined-names.js.map +1 -0
  57. package/dist/xlsx-dimensions.d.ts +4 -0
  58. package/dist/xlsx-dimensions.js +495 -0
  59. package/dist/xlsx-dimensions.js.map +1 -0
  60. package/dist/xlsx-drawing-artifacts.d.ts +7 -0
  61. package/dist/xlsx-drawing-artifacts.js +477 -0
  62. package/dist/xlsx-drawing-artifacts.js.map +1 -0
  63. package/dist/xlsx-escaped-text.d.ts +2 -0
  64. package/dist/xlsx-escaped-text.js +22 -0
  65. package/dist/xlsx-escaped-text.js.map +1 -0
  66. package/dist/xlsx-export-xml.d.ts +8 -0
  67. package/dist/xlsx-export-xml.js +99 -0
  68. package/dist/xlsx-export-xml.js.map +1 -0
  69. package/dist/xlsx-export.d.ts +2 -0
  70. package/dist/xlsx-export.js +800 -0
  71. package/dist/xlsx-export.js.map +1 -0
  72. package/dist/xlsx-external-link-artifacts.d.ts +4 -0
  73. package/dist/xlsx-external-link-artifacts.js +317 -0
  74. package/dist/xlsx-external-link-artifacts.js.map +1 -0
  75. package/dist/xlsx-external-references.d.ts +29 -0
  76. package/dist/xlsx-external-references.js +356 -0
  77. package/dist/xlsx-external-references.js.map +1 -0
  78. package/dist/xlsx-filters.d.ts +4 -0
  79. package/dist/xlsx-filters.js +273 -0
  80. package/dist/xlsx-filters.js.map +1 -0
  81. package/dist/xlsx-formula-translation.d.ts +10 -0
  82. package/dist/xlsx-formula-translation.js +391 -0
  83. package/dist/xlsx-formula-translation.js.map +1 -0
  84. package/dist/xlsx-formulas.d.ts +2 -0
  85. package/dist/xlsx-formulas.js +136 -0
  86. package/dist/xlsx-formulas.js.map +1 -0
  87. package/dist/xlsx-freeze-panes.d.ts +4 -0
  88. package/dist/xlsx-freeze-panes.js +206 -0
  89. package/dist/xlsx-freeze-panes.js.map +1 -0
  90. package/dist/xlsx-hyperlinks.d.ts +5 -0
  91. package/dist/xlsx-hyperlinks.js +64 -0
  92. package/dist/xlsx-hyperlinks.js.map +1 -0
  93. package/dist/xlsx-ignored-errors.d.ts +4 -0
  94. package/dist/xlsx-ignored-errors.js +106 -0
  95. package/dist/xlsx-ignored-errors.js.map +1 -0
  96. package/dist/xlsx-import-cell-styles.d.ts +8 -0
  97. package/dist/xlsx-import-cell-styles.js +255 -0
  98. package/dist/xlsx-import-cell-styles.js.map +1 -0
  99. package/dist/xlsx-import-sheet-metadata.d.ts +40 -0
  100. package/dist/xlsx-import-sheet-metadata.js +41 -0
  101. package/dist/xlsx-import-sheet-metadata.js.map +1 -0
  102. package/dist/xlsx-import-warnings.d.ts +8 -0
  103. package/dist/xlsx-import-warnings.js +44 -0
  104. package/dist/xlsx-import-warnings.js.map +1 -0
  105. package/dist/xlsx-import-workbook-metadata.d.ts +28 -0
  106. package/dist/xlsx-import-workbook-metadata.js +29 -0
  107. package/dist/xlsx-import-workbook-metadata.js.map +1 -0
  108. package/dist/xlsx-macros.d.ts +10 -0
  109. package/dist/xlsx-macros.js +63 -0
  110. package/dist/xlsx-macros.js.map +1 -0
  111. package/dist/xlsx-merge-entries.d.ts +3 -0
  112. package/dist/xlsx-merge-entries.js +17 -0
  113. package/dist/xlsx-merge-entries.js.map +1 -0
  114. package/dist/xlsx-number-formats.d.ts +7 -0
  115. package/dist/xlsx-number-formats.js +222 -0
  116. package/dist/xlsx-number-formats.js.map +1 -0
  117. package/dist/xlsx-pivot-artifacts.d.ts +29 -0
  118. package/dist/xlsx-pivot-artifacts.js +292 -0
  119. package/dist/xlsx-pivot-artifacts.js.map +1 -0
  120. package/dist/xlsx-pivots.d.ts +10 -0
  121. package/dist/xlsx-pivots.js +589 -0
  122. package/dist/xlsx-pivots.js.map +1 -0
  123. package/dist/xlsx-print-page-setup.d.ts +6 -0
  124. package/dist/xlsx-print-page-setup.js +224 -0
  125. package/dist/xlsx-print-page-setup.js.map +1 -0
  126. package/dist/xlsx-printer-settings.d.ts +4 -0
  127. package/dist/xlsx-printer-settings.js +279 -0
  128. package/dist/xlsx-printer-settings.js.map +1 -0
  129. package/dist/xlsx-protected-ranges.d.ts +4 -0
  130. package/dist/xlsx-protected-ranges.js +183 -0
  131. package/dist/xlsx-protected-ranges.js.map +1 -0
  132. package/dist/xlsx-rich-text-artifacts.d.ts +4 -0
  133. package/dist/xlsx-rich-text-artifacts.js +303 -0
  134. package/dist/xlsx-rich-text-artifacts.js.map +1 -0
  135. package/dist/xlsx-sheet-properties.d.ts +4 -0
  136. package/dist/xlsx-sheet-properties.js +89 -0
  137. package/dist/xlsx-sheet-properties.js.map +1 -0
  138. package/dist/xlsx-sheet-protection.d.ts +4 -0
  139. package/dist/xlsx-sheet-protection.js +153 -0
  140. package/dist/xlsx-sheet-protection.js.map +1 -0
  141. package/dist/xlsx-sheet-visibility.d.ts +4 -0
  142. package/dist/xlsx-sheet-visibility.js +53 -0
  143. package/dist/xlsx-sheet-visibility.js.map +1 -0
  144. package/dist/xlsx-slicer-connection-artifacts.d.ts +4 -0
  145. package/dist/xlsx-slicer-connection-artifacts.js +426 -0
  146. package/dist/xlsx-slicer-connection-artifacts.js.map +1 -0
  147. package/dist/xlsx-sorts.d.ts +5 -0
  148. package/dist/xlsx-sorts.js +216 -0
  149. package/dist/xlsx-sorts.js.map +1 -0
  150. package/dist/xlsx-sparklines.d.ts +4 -0
  151. package/dist/xlsx-sparklines.js +115 -0
  152. package/dist/xlsx-sparklines.js.map +1 -0
  153. package/dist/xlsx-style-only-blank-cells.d.ts +3 -0
  154. package/dist/xlsx-style-only-blank-cells.js +96 -0
  155. package/dist/xlsx-style-only-blank-cells.js.map +1 -0
  156. package/dist/xlsx-style-runs.d.ts +12 -0
  157. package/dist/xlsx-style-runs.js +35 -0
  158. package/dist/xlsx-style-runs.js.map +1 -0
  159. package/dist/xlsx-styles.d.ts +25 -0
  160. package/dist/xlsx-styles.js +857 -0
  161. package/dist/xlsx-styles.js.map +1 -0
  162. package/dist/xlsx-tab-colors.d.ts +4 -0
  163. package/dist/xlsx-tab-colors.js +166 -0
  164. package/dist/xlsx-tab-colors.js.map +1 -0
  165. package/dist/xlsx-tables.d.ts +4 -0
  166. package/dist/xlsx-tables.js +371 -0
  167. package/dist/xlsx-tables.js.map +1 -0
  168. package/dist/xlsx-theme-artifacts.d.ts +6 -0
  169. package/dist/xlsx-theme-artifacts.js +126 -0
  170. package/dist/xlsx-theme-artifacts.js.map +1 -0
  171. package/dist/xlsx-threaded-comment-artifacts.d.ts +8 -0
  172. package/dist/xlsx-threaded-comment-artifacts.js +329 -0
  173. package/dist/xlsx-threaded-comment-artifacts.js.map +1 -0
  174. package/dist/xlsx-validations.d.ts +4 -0
  175. package/dist/xlsx-validations.js +542 -0
  176. package/dist/xlsx-validations.js.map +1 -0
  177. package/dist/xlsx-view-state.d.ts +8 -0
  178. package/dist/xlsx-view-state.js +144 -0
  179. package/dist/xlsx-view-state.js.map +1 -0
  180. package/dist/xlsx-workbook-properties.d.ts +5 -0
  181. package/dist/xlsx-workbook-properties.js +388 -0
  182. package/dist/xlsx-workbook-properties.js.map +1 -0
  183. package/dist/xlsx-workbook-protection.d.ts +4 -0
  184. package/dist/xlsx-workbook-protection.js +147 -0
  185. package/dist/xlsx-workbook-protection.js.map +1 -0
  186. package/dist/xlsx-workbook-sheet-paths.d.ts +4 -0
  187. package/dist/xlsx-workbook-sheet-paths.js +96 -0
  188. package/dist/xlsx-workbook-sheet-paths.js.map +1 -0
  189. package/dist/xlsx-worksheet-cells.d.ts +16 -0
  190. package/dist/xlsx-worksheet-cells.js +104 -0
  191. package/dist/xlsx-worksheet-cells.js.map +1 -0
  192. package/dist/xlsx-worksheet-text-values.d.ts +2 -0
  193. package/dist/xlsx-worksheet-text-values.js +136 -0
  194. package/dist/xlsx-worksheet-text-values.js.map +1 -0
  195. package/dist/xlsx-zip.d.ts +6 -0
  196. package/dist/xlsx-zip.js +12 -0
  197. package/dist/xlsx-zip.js.map +1 -0
  198. package/package.json +56 -0
@@ -0,0 +1,495 @@
1
+ import { unzipSync, zipSync } from 'fflate';
2
+ import { escapeXmlAttribute, getZipText, setXmlAttribute, setZipText } from './xlsx-export-xml.js';
3
+ const worksheetRowElementPattern = /<row\b[^>]*\/>|<row\b[^>]*>[\s\S]*?<\/row>/gu;
4
+ const worksheetRowOpeningTagPattern = /^<row\b[^>]*\/>|^<row\b[^>]*>/u;
5
+ function finitePositiveNumber(value) {
6
+ return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : undefined;
7
+ }
8
+ function finiteNonNegativeInteger(value) {
9
+ return typeof value === 'number' && Number.isSafeInteger(value) && value >= 0 ? value : undefined;
10
+ }
11
+ function optionalBoolean(value) {
12
+ return typeof value === 'boolean' ? value : undefined;
13
+ }
14
+ function formatXmlNumber(value) {
15
+ return Number.isInteger(value) ? String(value) : String(Number(value.toFixed(12)));
16
+ }
17
+ function formatXmlBoolean(value) {
18
+ return value ? '1' : '0';
19
+ }
20
+ function xmlAttribute(name, value) {
21
+ return value === undefined ? '' : ` ${name}="${escapeXmlAttribute(value)}"`;
22
+ }
23
+ function removeXmlAttribute(tag, name) {
24
+ return tag.replace(new RegExp(`\\s${name}="[^"]*"`, 'u'), '');
25
+ }
26
+ function readXmlAttribute(tag, name) {
27
+ const doubleQuoted = new RegExp(`\\b${name}="([^"]*)"`, 'u').exec(tag);
28
+ if (doubleQuoted) {
29
+ return doubleQuoted[1] ?? null;
30
+ }
31
+ const singleQuoted = new RegExp(`\\b${name}='([^']*)'`, 'u').exec(tag);
32
+ return singleQuoted?.[1] ?? null;
33
+ }
34
+ function readXmlNumberAttribute(tag, name) {
35
+ const raw = readXmlAttribute(tag, name);
36
+ if (raw === null || raw.trim().length === 0) {
37
+ return null;
38
+ }
39
+ const number = Number(raw);
40
+ return Number.isFinite(number) ? number : null;
41
+ }
42
+ function readXmlPositiveIntegerAttribute(tag, name) {
43
+ const number = readXmlNumberAttribute(tag, name);
44
+ return number !== null && Number.isSafeInteger(number) && number > 0 ? number : null;
45
+ }
46
+ function readXmlOptionalBooleanAttribute(tag, name) {
47
+ const raw = readXmlAttribute(tag, name);
48
+ if (raw === null) {
49
+ return undefined;
50
+ }
51
+ return raw === '1' || raw.toLowerCase() === 'true';
52
+ }
53
+ function hasExactRowGeometry(row) {
54
+ return (row.styleIndex !== undefined ||
55
+ row.xlsxHeight !== undefined ||
56
+ row.customFormat !== undefined ||
57
+ row.customHeight !== undefined ||
58
+ row.outlineLevel !== undefined ||
59
+ row.collapsed !== undefined ||
60
+ row.thickTop !== undefined ||
61
+ row.thickBottom !== undefined);
62
+ }
63
+ function hasExactColumnGeometry(column) {
64
+ return (column.styleIndex !== undefined ||
65
+ column.xlsxWidth !== undefined ||
66
+ column.customFormat !== undefined ||
67
+ column.customWidth !== undefined ||
68
+ column.bestFit !== undefined ||
69
+ column.outlineLevel !== undefined ||
70
+ column.collapsed !== undefined);
71
+ }
72
+ function expandExportRowMetadataRecord(row) {
73
+ if (!Number.isSafeInteger(row.start) ||
74
+ row.start < 0 ||
75
+ !Number.isSafeInteger(row.count) ||
76
+ row.count <= 0 ||
77
+ !hasExactRowGeometry(row)) {
78
+ return [];
79
+ }
80
+ const xlsxHeight = finitePositiveNumber(row.xlsxHeight ?? undefined);
81
+ const size = finitePositiveNumber(row.size ?? undefined);
82
+ const hidden = optionalBoolean(row.hidden);
83
+ const styleIndex = finiteNonNegativeInteger(row.styleIndex ?? undefined);
84
+ const customFormat = optionalBoolean(row.customFormat);
85
+ const customHeight = optionalBoolean(row.customHeight);
86
+ const outlineLevel = finiteNonNegativeInteger(row.outlineLevel ?? undefined);
87
+ const collapsed = optionalBoolean(row.collapsed);
88
+ const thickTop = optionalBoolean(row.thickTop);
89
+ const thickBottom = optionalBoolean(row.thickBottom);
90
+ return Array.from({ length: row.count }, (_entry, offset) => ({
91
+ rowNumber: row.start + offset + 1,
92
+ ...(size !== undefined ? { size } : {}),
93
+ ...(hidden !== undefined ? { hidden } : {}),
94
+ ...(styleIndex !== undefined ? { styleIndex } : {}),
95
+ ...(xlsxHeight !== undefined ? { xlsxHeight } : {}),
96
+ ...(customFormat !== undefined ? { customFormat } : {}),
97
+ ...(customHeight !== undefined ? { customHeight } : {}),
98
+ ...(outlineLevel !== undefined ? { outlineLevel } : {}),
99
+ ...(collapsed !== undefined ? { collapsed } : {}),
100
+ ...(thickTop !== undefined ? { thickTop } : {}),
101
+ ...(thickBottom !== undefined ? { thickBottom } : {}),
102
+ exact: true,
103
+ }));
104
+ }
105
+ function normalizeExportRowMetadata(rows, rowMetadata) {
106
+ const exactRows = rowMetadata?.flatMap((row) => expandExportRowMetadataRecord(row)).toSorted((left, right) => left.rowNumber - right.rowNumber) ?? [];
107
+ if (!rows || rows.length === 0) {
108
+ return exactRows;
109
+ }
110
+ const exactRowNumbers = new Set(exactRows.map((row) => row.rowNumber));
111
+ const fallbackRows = rows.flatMap((row) => {
112
+ if (!Number.isSafeInteger(row.index) || row.index < 0) {
113
+ return [];
114
+ }
115
+ const rowNumber = row.index + 1;
116
+ if (exactRowNumbers.has(rowNumber)) {
117
+ return [];
118
+ }
119
+ const size = finitePositiveNumber(row.size ?? undefined);
120
+ if (size === undefined && row.hidden !== true) {
121
+ return [];
122
+ }
123
+ return [
124
+ {
125
+ rowNumber,
126
+ ...(size !== undefined ? { size } : {}),
127
+ ...(row.hidden === true ? { hidden: true } : {}),
128
+ exact: false,
129
+ },
130
+ ];
131
+ });
132
+ return [...exactRows, ...fallbackRows].toSorted((left, right) => left.rowNumber - right.rowNumber);
133
+ }
134
+ function normalizeExportColumnMetadata(columnMetadata) {
135
+ if (!columnMetadata || columnMetadata.length === 0) {
136
+ return [];
137
+ }
138
+ return columnMetadata
139
+ .flatMap((column) => {
140
+ if (!Number.isSafeInteger(column.start) ||
141
+ column.start < 0 ||
142
+ !Number.isSafeInteger(column.count) ||
143
+ column.count <= 0 ||
144
+ !hasExactColumnGeometry(column)) {
145
+ return [];
146
+ }
147
+ const xlsxWidth = finitePositiveNumber(column.xlsxWidth ?? undefined);
148
+ const styleIndex = finiteNonNegativeInteger(column.styleIndex ?? undefined);
149
+ const customFormat = optionalBoolean(column.customFormat);
150
+ if (xlsxWidth === undefined && styleIndex === undefined && customFormat === undefined) {
151
+ return [];
152
+ }
153
+ const customWidth = optionalBoolean(column.customWidth);
154
+ const bestFit = optionalBoolean(column.bestFit);
155
+ const hidden = optionalBoolean(column.hidden);
156
+ const outlineLevel = finiteNonNegativeInteger(column.outlineLevel ?? undefined);
157
+ const collapsed = optionalBoolean(column.collapsed);
158
+ const normalized = {
159
+ start: column.start,
160
+ count: column.count,
161
+ ...(styleIndex !== undefined ? { styleIndex } : {}),
162
+ ...(xlsxWidth !== undefined ? { xlsxWidth } : {}),
163
+ ...(customFormat !== undefined ? { customFormat } : {}),
164
+ ...(customWidth !== undefined ? { customWidth } : {}),
165
+ ...(bestFit !== undefined ? { bestFit } : {}),
166
+ ...(hidden !== undefined ? { hidden } : {}),
167
+ ...(outlineLevel !== undefined ? { outlineLevel } : {}),
168
+ ...(collapsed !== undefined ? { collapsed } : {}),
169
+ };
170
+ return [normalized];
171
+ })
172
+ .toSorted((left, right) => left.start - right.start || left.count - right.count);
173
+ }
174
+ function parseExistingColumnMetadata(sheetXml) {
175
+ return [...sheetXml.matchAll(/<col\b[^>]*\/?>/gu)].flatMap((match) => {
176
+ const columnTag = match[0];
177
+ const min = readXmlPositiveIntegerAttribute(columnTag, 'min');
178
+ const max = readXmlPositiveIntegerAttribute(columnTag, 'max') ?? min;
179
+ if (min === null || max === null || max < min) {
180
+ return [];
181
+ }
182
+ const xlsxWidth = finitePositiveNumber(readXmlNumberAttribute(columnTag, 'width') ?? undefined);
183
+ const styleIndex = finiteNonNegativeInteger(readXmlNumberAttribute(columnTag, 'style') ?? undefined);
184
+ const customFormat = readXmlOptionalBooleanAttribute(columnTag, 'customFormat');
185
+ const customWidth = readXmlOptionalBooleanAttribute(columnTag, 'customWidth');
186
+ const bestFit = readXmlOptionalBooleanAttribute(columnTag, 'bestFit');
187
+ const hidden = readXmlOptionalBooleanAttribute(columnTag, 'hidden');
188
+ const outlineLevel = finiteNonNegativeInteger(readXmlNumberAttribute(columnTag, 'outlineLevel') ?? undefined);
189
+ const collapsed = readXmlOptionalBooleanAttribute(columnTag, 'collapsed');
190
+ if (xlsxWidth === undefined &&
191
+ styleIndex === undefined &&
192
+ customFormat === undefined &&
193
+ customWidth === undefined &&
194
+ bestFit === undefined &&
195
+ hidden === undefined &&
196
+ outlineLevel === undefined &&
197
+ collapsed === undefined) {
198
+ return [];
199
+ }
200
+ const column = {
201
+ start: min - 1,
202
+ count: max - min + 1,
203
+ ...(styleIndex !== undefined ? { styleIndex } : {}),
204
+ ...(xlsxWidth !== undefined ? { xlsxWidth } : {}),
205
+ ...(customFormat !== undefined ? { customFormat } : {}),
206
+ ...(customWidth !== undefined ? { customWidth } : {}),
207
+ ...(bestFit !== undefined ? { bestFit } : {}),
208
+ ...(hidden !== undefined ? { hidden } : {}),
209
+ ...(outlineLevel !== undefined ? { outlineLevel } : {}),
210
+ ...(collapsed !== undefined ? { collapsed } : {}),
211
+ };
212
+ return [column];
213
+ });
214
+ }
215
+ function columnRangeEnd(column) {
216
+ return column.start + column.count - 1;
217
+ }
218
+ function subtractColumnRanges(column, exactColumns) {
219
+ let segments = [{ start: column.start, count: column.count }];
220
+ for (const exactColumn of exactColumns) {
221
+ const exactStart = exactColumn.start;
222
+ const exactEnd = columnRangeEnd(exactColumn);
223
+ segments = segments.flatMap((segment) => {
224
+ const segmentEnd = columnRangeEnd(segment);
225
+ if (segmentEnd < exactStart || segment.start > exactEnd) {
226
+ return [segment];
227
+ }
228
+ const output = [];
229
+ if (segment.start < exactStart) {
230
+ output.push({ start: segment.start, count: exactStart - segment.start });
231
+ }
232
+ if (segmentEnd > exactEnd) {
233
+ output.push({ start: exactEnd + 1, count: segmentEnd - exactEnd });
234
+ }
235
+ return output;
236
+ });
237
+ }
238
+ return segments.map((segment) => {
239
+ const output = {
240
+ start: segment.start,
241
+ count: segment.count,
242
+ };
243
+ if (column.styleIndex !== undefined) {
244
+ output.styleIndex = column.styleIndex;
245
+ }
246
+ if (column.xlsxWidth !== undefined) {
247
+ output.xlsxWidth = column.xlsxWidth;
248
+ }
249
+ if (column.customFormat !== undefined) {
250
+ output.customFormat = column.customFormat;
251
+ }
252
+ if (column.customWidth !== undefined) {
253
+ output.customWidth = column.customWidth;
254
+ }
255
+ if (column.bestFit !== undefined) {
256
+ output.bestFit = column.bestFit;
257
+ }
258
+ if (column.hidden !== undefined) {
259
+ output.hidden = column.hidden;
260
+ }
261
+ if (column.outlineLevel !== undefined) {
262
+ output.outlineLevel = column.outlineLevel;
263
+ }
264
+ if (column.collapsed !== undefined) {
265
+ output.collapsed = column.collapsed;
266
+ }
267
+ return output;
268
+ });
269
+ }
270
+ function buildSheetFormatPrXml(sheetFormatPr) {
271
+ if (!sheetFormatPr) {
272
+ return null;
273
+ }
274
+ const baseColWidth = finiteNonNegativeInteger(sheetFormatPr.baseColWidth ?? undefined);
275
+ const defaultColWidth = finitePositiveNumber(sheetFormatPr.defaultColWidth ?? undefined);
276
+ const defaultRowHeight = finitePositiveNumber(sheetFormatPr.defaultRowHeight ?? undefined);
277
+ const customHeight = optionalBoolean(sheetFormatPr.customHeight);
278
+ const outlineLevelRow = finiteNonNegativeInteger(sheetFormatPr.outlineLevelRow ?? undefined);
279
+ const outlineLevelCol = finiteNonNegativeInteger(sheetFormatPr.outlineLevelCol ?? undefined);
280
+ const thickTop = optionalBoolean(sheetFormatPr.thickTop);
281
+ const thickBottom = optionalBoolean(sheetFormatPr.thickBottom);
282
+ const attributes = [
283
+ xmlAttribute('baseColWidth', baseColWidth !== undefined ? formatXmlNumber(baseColWidth) : undefined),
284
+ xmlAttribute('defaultColWidth', defaultColWidth !== undefined ? formatXmlNumber(defaultColWidth) : undefined),
285
+ xmlAttribute('defaultRowHeight', defaultRowHeight !== undefined ? formatXmlNumber(defaultRowHeight) : undefined),
286
+ xmlAttribute('customHeight', customHeight !== undefined ? formatXmlBoolean(customHeight) : undefined),
287
+ xmlAttribute('outlineLevelRow', outlineLevelRow !== undefined ? formatXmlNumber(outlineLevelRow) : undefined),
288
+ xmlAttribute('outlineLevelCol', outlineLevelCol !== undefined ? formatXmlNumber(outlineLevelCol) : undefined),
289
+ xmlAttribute('thickTop', thickTop !== undefined ? formatXmlBoolean(thickTop) : undefined),
290
+ xmlAttribute('thickBottom', thickBottom !== undefined ? formatXmlBoolean(thickBottom) : undefined),
291
+ ].join('');
292
+ return attributes.length > 0 ? `<sheetFormatPr${attributes}/>` : null;
293
+ }
294
+ function applySheetFormatPr(sheetXml, sheetFormatPr) {
295
+ const sheetFormatPrXml = buildSheetFormatPrXml(sheetFormatPr);
296
+ if (!sheetFormatPrXml) {
297
+ return sheetXml;
298
+ }
299
+ const existingPattern = /<sheetFormatPr\b[^>]*(?:\/>|>[\s\S]*?<\/sheetFormatPr>)/u;
300
+ if (existingPattern.test(sheetXml)) {
301
+ return sheetXml.replace(existingPattern, sheetFormatPrXml);
302
+ }
303
+ const insertPattern = /<cols\b|<sheetData\b|<\/worksheet>/u;
304
+ const match = insertPattern.exec(sheetXml);
305
+ return match ? `${sheetXml.slice(0, match.index)}${sheetFormatPrXml}${sheetXml.slice(match.index)}` : sheetXml;
306
+ }
307
+ function buildColumnsXml(columns) {
308
+ const columnXml = columns
309
+ .map((column) => {
310
+ const min = column.start + 1;
311
+ const max = column.start + column.count;
312
+ return [
313
+ '<col',
314
+ xmlAttribute('min', String(min)),
315
+ xmlAttribute('max', String(max)),
316
+ xmlAttribute('style', column.styleIndex !== undefined ? formatXmlNumber(column.styleIndex) : undefined),
317
+ xmlAttribute('width', column.xlsxWidth !== undefined ? formatXmlNumber(column.xlsxWidth) : undefined),
318
+ xmlAttribute('customFormat', column.customFormat !== undefined ? formatXmlBoolean(column.customFormat) : undefined),
319
+ xmlAttribute('customWidth', column.customWidth !== undefined ? formatXmlBoolean(column.customWidth) : undefined),
320
+ xmlAttribute('bestFit', column.bestFit !== undefined ? formatXmlBoolean(column.bestFit) : undefined),
321
+ xmlAttribute('hidden', column.hidden !== undefined ? formatXmlBoolean(column.hidden) : undefined),
322
+ xmlAttribute('outlineLevel', column.outlineLevel !== undefined ? formatXmlNumber(column.outlineLevel) : undefined),
323
+ xmlAttribute('collapsed', column.collapsed !== undefined ? formatXmlBoolean(column.collapsed) : undefined),
324
+ '/>',
325
+ ].join('');
326
+ })
327
+ .join('');
328
+ return `<cols>${columnXml}</cols>`;
329
+ }
330
+ function applyColumnMetadata(sheetXml, columns) {
331
+ if (columns.length === 0) {
332
+ return sheetXml;
333
+ }
334
+ const existingColumns = parseExistingColumnMetadata(sheetXml).flatMap((column) => subtractColumnRanges(column, columns));
335
+ const columnsXml = buildColumnsXml([...columns, ...existingColumns].toSorted((left, right) => left.start - right.start || left.count - right.count));
336
+ const existingPattern = /<cols\b[^>]*(?:\/>|>[\s\S]*?<\/cols>)/u;
337
+ if (existingPattern.test(sheetXml)) {
338
+ return sheetXml.replace(existingPattern, columnsXml);
339
+ }
340
+ const match = /<sheetData\b|<\/worksheet>/u.exec(sheetXml);
341
+ return match ? `${sheetXml.slice(0, match.index)}${columnsXml}${sheetXml.slice(match.index)}` : sheetXml;
342
+ }
343
+ function readRowNumber(rowTag) {
344
+ const match = /\br="([0-9]+)"/u.exec(rowTag);
345
+ if (!match) {
346
+ return null;
347
+ }
348
+ const rowNumber = Number(match[1]);
349
+ return Number.isSafeInteger(rowNumber) && rowNumber > 0 ? rowNumber : null;
350
+ }
351
+ function clearManagedRowAttributes(rowTag) {
352
+ return ['s', 'customFormat', 'ht', 'customHeight', 'hidden', 'outlineLevel', 'collapsed', 'thickTop', 'thickBot'].reduce((tag, attribute) => removeXmlAttribute(tag, attribute), rowTag);
353
+ }
354
+ function applyRowMetadata(rowTag, row) {
355
+ let nextTag = clearManagedRowAttributes(rowTag);
356
+ const height = row.xlsxHeight ?? row.size;
357
+ if (row.styleIndex !== undefined) {
358
+ nextTag = setXmlAttribute(nextTag, 's', formatXmlNumber(row.styleIndex));
359
+ }
360
+ if (row.customFormat !== undefined) {
361
+ nextTag = setXmlAttribute(nextTag, 'customFormat', formatXmlBoolean(row.customFormat));
362
+ }
363
+ if (height !== undefined) {
364
+ nextTag = setXmlAttribute(nextTag, 'ht', formatXmlNumber(height));
365
+ if (!row.exact || row.customHeight !== undefined) {
366
+ nextTag = setXmlAttribute(nextTag, 'customHeight', formatXmlBoolean(row.customHeight ?? true));
367
+ }
368
+ }
369
+ else if (row.customHeight !== undefined) {
370
+ nextTag = setXmlAttribute(nextTag, 'customHeight', formatXmlBoolean(row.customHeight));
371
+ }
372
+ if (row.hidden !== undefined) {
373
+ nextTag = setXmlAttribute(nextTag, 'hidden', formatXmlBoolean(row.hidden));
374
+ }
375
+ if (row.outlineLevel !== undefined) {
376
+ nextTag = setXmlAttribute(nextTag, 'outlineLevel', formatXmlNumber(row.outlineLevel));
377
+ }
378
+ if (row.collapsed !== undefined) {
379
+ nextTag = setXmlAttribute(nextTag, 'collapsed', formatXmlBoolean(row.collapsed));
380
+ }
381
+ if (row.thickTop !== undefined) {
382
+ nextTag = setXmlAttribute(nextTag, 'thickTop', formatXmlBoolean(row.thickTop));
383
+ }
384
+ if (row.thickBottom !== undefined) {
385
+ nextTag = setXmlAttribute(nextTag, 'thickBot', formatXmlBoolean(row.thickBottom));
386
+ }
387
+ return nextTag;
388
+ }
389
+ function buildEmptyRowXml(row) {
390
+ let rowTag = `<row r="${escapeXmlAttribute(String(row.rowNumber))}"/>`;
391
+ rowTag = applyRowMetadata(rowTag, row);
392
+ return rowTag;
393
+ }
394
+ function updateExistingRowXml(rowXml, row) {
395
+ const openingTag = worksheetRowOpeningTagPattern.exec(rowXml)?.[0];
396
+ if (!openingTag) {
397
+ return rowXml;
398
+ }
399
+ if (openingTag.endsWith('/>')) {
400
+ return applyRowMetadata(openingTag, row);
401
+ }
402
+ const rowBody = rowXml.slice(openingTag.length, -'</row>'.length);
403
+ return rowBody.trim().length === 0 ? buildEmptyRowXml(row) : `${applyRowMetadata(openingTag, row)}${rowBody}</row>`;
404
+ }
405
+ function upsertWorksheetRowMetadata(sheetXml, rows) {
406
+ const rowsByNumber = new Map(rows.map((row) => [row.rowNumber, row]));
407
+ const sortedMissingRows = [...rowsByNumber.values()].toSorted((left, right) => left.rowNumber - right.rowNumber);
408
+ const selfClosingSheetDataMatch = /<sheetData\b([^>]*)\/>/u.exec(sheetXml);
409
+ if (selfClosingSheetDataMatch) {
410
+ const rowXml = sortedMissingRows.map(buildEmptyRowXml).join('');
411
+ return sheetXml.replace(/<sheetData\b([^>]*)\/>/u, (_match, attributes) => `<sheetData${attributes}>${rowXml}</sheetData>`);
412
+ }
413
+ const sheetDataMatch = /<sheetData\b[^>]*>[\s\S]*?<\/sheetData>/u.exec(sheetXml);
414
+ if (!sheetDataMatch) {
415
+ return sheetXml;
416
+ }
417
+ const sheetDataXml = sheetDataMatch[0];
418
+ const sheetDataOpeningTag = /^<sheetData\b[^>]*>/u.exec(sheetDataXml)?.[0];
419
+ if (!sheetDataOpeningTag || !sheetDataXml.endsWith('</sheetData>')) {
420
+ return sheetXml;
421
+ }
422
+ const bodyStart = sheetDataOpeningTag.length;
423
+ const bodyEnd = sheetDataXml.length - '</sheetData>'.length;
424
+ const sheetDataBody = sheetDataXml.slice(bodyStart, bodyEnd);
425
+ let outputBody = '';
426
+ let lastIndex = 0;
427
+ let missingIndex = 0;
428
+ for (const match of sheetDataBody.matchAll(worksheetRowElementPattern)) {
429
+ const rowXml = match[0];
430
+ const existingRowNumber = readRowNumber(rowXml);
431
+ outputBody += sheetDataBody.slice(lastIndex, match.index);
432
+ if (existingRowNumber !== null) {
433
+ while (missingIndex < sortedMissingRows.length && sortedMissingRows[missingIndex].rowNumber < existingRowNumber) {
434
+ outputBody += buildEmptyRowXml(sortedMissingRows[missingIndex]);
435
+ missingIndex += 1;
436
+ }
437
+ const row = rowsByNumber.get(existingRowNumber);
438
+ outputBody += row ? updateExistingRowXml(rowXml, row) : rowXml;
439
+ if (row) {
440
+ while (missingIndex < sortedMissingRows.length && sortedMissingRows[missingIndex].rowNumber <= existingRowNumber) {
441
+ missingIndex += 1;
442
+ }
443
+ }
444
+ }
445
+ else {
446
+ outputBody += rowXml;
447
+ }
448
+ lastIndex = match.index + rowXml.length;
449
+ }
450
+ outputBody += sheetDataBody.slice(lastIndex);
451
+ while (missingIndex < sortedMissingRows.length) {
452
+ outputBody += buildEmptyRowXml(sortedMissingRows[missingIndex]);
453
+ missingIndex += 1;
454
+ }
455
+ const updatedSheetDataXml = `${sheetDataOpeningTag}${outputBody}</sheetData>`;
456
+ return `${sheetXml.slice(0, sheetDataMatch.index)}${updatedSheetDataXml}${sheetXml.slice(sheetDataMatch.index + sheetDataXml.length)}`;
457
+ }
458
+ export function hasExportWorksheetDimensions(snapshot) {
459
+ return snapshot.sheets.some((sheet) => {
460
+ const metadata = sheet.metadata;
461
+ return (metadata?.sheetFormatPr !== undefined ||
462
+ normalizeExportColumnMetadata(metadata?.columnMetadata).length > 0 ||
463
+ normalizeExportRowMetadata(metadata?.rows, metadata?.rowMetadata).length > 0);
464
+ });
465
+ }
466
+ export function applyExportWorksheetDimensionsToWorksheetXml(sheetXml, metadata) {
467
+ const sheetFormatXml = applySheetFormatPr(sheetXml, metadata?.sheetFormatPr);
468
+ const columnXml = applyColumnMetadata(sheetFormatXml, normalizeExportColumnMetadata(metadata?.columnMetadata));
469
+ const normalizedRows = normalizeExportRowMetadata(metadata?.rows, metadata?.rowMetadata);
470
+ return normalizedRows.length > 0 ? upsertWorksheetRowMetadata(columnXml, normalizedRows) : columnXml;
471
+ }
472
+ export function addExportWorksheetDimensionsToXlsxBytes(bytes, snapshot) {
473
+ if (!hasExportWorksheetDimensions(snapshot)) {
474
+ return bytes;
475
+ }
476
+ const zip = unzipSync(bytes);
477
+ let changed = false;
478
+ snapshot.sheets
479
+ .toSorted((left, right) => left.order - right.order)
480
+ .forEach((sheet, sheetIndex) => {
481
+ const sheetPath = `xl/worksheets/sheet${String(sheetIndex + 1)}.xml`;
482
+ const sheetXml = getZipText(zip, sheetPath);
483
+ if (!sheetXml) {
484
+ return;
485
+ }
486
+ const updatedSheetXml = applyExportWorksheetDimensionsToWorksheetXml(sheetXml, sheet.metadata);
487
+ if (updatedSheetXml === sheetXml) {
488
+ return;
489
+ }
490
+ setZipText(zip, sheetPath, updatedSheetXml);
491
+ changed = true;
492
+ });
493
+ return changed ? zipSync(zip) : bytes;
494
+ }
495
+ //# sourceMappingURL=xlsx-dimensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xlsx-dimensions.js","sourceRoot":"","sources":["../src/xlsx-dimensions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { WorkbookDrawingArtifactsSnapshot, WorkbookSheetDrawingArtifactsSnapshot, WorkbookSnapshot } from '@bilig/protocol';
2
+ import { type XlsxZipSource } from './xlsx-zip.js';
3
+ export declare function readImportedWorkbookDrawingArtifacts(source: XlsxZipSource, sheetNames: readonly string[]): {
4
+ readonly artifacts: WorkbookDrawingArtifactsSnapshot | undefined;
5
+ readonly sheetArtifactsByName: Map<string, WorkbookSheetDrawingArtifactsSnapshot>;
6
+ };
7
+ export declare function addExportDrawingArtifactsToXlsxBytes(bytes: Uint8Array, snapshot: WorkbookSnapshot): Uint8Array;