@rowsncolumns/toolkit 24.4.1

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 (456) hide show
  1. package/LICENSE.md +100 -0
  2. package/Readme.md +27 -0
  3. package/dist/cjs/autofilter-condition.d.ts +43 -0
  4. package/dist/cjs/autofilter-condition.d.ts.map +1 -0
  5. package/dist/cjs/autofilter-condition.js +155 -0
  6. package/dist/cjs/csv-export.d.ts +49 -0
  7. package/dist/cjs/csv-export.d.ts.map +1 -0
  8. package/dist/cjs/csv-export.js +142 -0
  9. package/dist/cjs/csv-import-worker.d.ts +16 -0
  10. package/dist/cjs/csv-import-worker.d.ts.map +1 -0
  11. package/dist/cjs/csv-import-worker.js +60 -0
  12. package/dist/cjs/csv-import.d.ts +38 -0
  13. package/dist/cjs/csv-import.d.ts.map +1 -0
  14. package/dist/cjs/csv-import.js +166 -0
  15. package/dist/cjs/csv-parser/helpers.d.ts +14 -0
  16. package/dist/cjs/csv-parser/helpers.d.ts.map +1 -0
  17. package/dist/cjs/csv-parser/helpers.js +145 -0
  18. package/dist/cjs/csv-parser/types.d.ts +66 -0
  19. package/dist/cjs/csv-parser/types.d.ts.map +1 -0
  20. package/dist/cjs/csv-parser/types.js +14 -0
  21. package/dist/cjs/csv-parser/worker.d.ts +2 -0
  22. package/dist/cjs/csv-parser/worker.d.ts.map +1 -0
  23. package/dist/cjs/csv-parser/worker.js +200 -0
  24. package/dist/cjs/excel-export.d.ts +11 -0
  25. package/dist/cjs/excel-export.d.ts.map +1 -0
  26. package/dist/cjs/excel-export.js +22 -0
  27. package/dist/cjs/excel-import-session.d.ts +51 -0
  28. package/dist/cjs/excel-import-session.d.ts.map +1 -0
  29. package/dist/cjs/excel-import-session.js +307 -0
  30. package/dist/cjs/excel-import-worker.d.ts +7 -0
  31. package/dist/cjs/excel-import-worker.d.ts.map +1 -0
  32. package/dist/cjs/excel-import-worker.js +119 -0
  33. package/dist/cjs/excel-parser/builtin-numfmts.d.ts +24 -0
  34. package/dist/cjs/excel-parser/builtin-numfmts.d.ts.map +1 -0
  35. package/dist/cjs/excel-parser/builtin-numfmts.js +63 -0
  36. package/dist/cjs/excel-parser/cfb-decryptor.d.ts +53 -0
  37. package/dist/cjs/excel-parser/cfb-decryptor.d.ts.map +1 -0
  38. package/dist/cjs/excel-parser/cfb-decryptor.js +553 -0
  39. package/dist/cjs/excel-parser/cfb-encryptor.d.ts +23 -0
  40. package/dist/cjs/excel-parser/cfb-encryptor.d.ts.map +1 -0
  41. package/dist/cjs/excel-parser/cfb-encryptor.js +200 -0
  42. package/dist/cjs/excel-parser/dv-cell-stamp.d.ts +29 -0
  43. package/dist/cjs/excel-parser/dv-cell-stamp.d.ts.map +1 -0
  44. package/dist/cjs/excel-parser/dv-cell-stamp.js +239 -0
  45. package/dist/cjs/excel-parser/helpers.d.ts +28 -0
  46. package/dist/cjs/excel-parser/helpers.d.ts.map +1 -0
  47. package/dist/cjs/excel-parser/helpers.js +188 -0
  48. package/dist/cjs/excel-parser/interface.d.ts +179 -0
  49. package/dist/cjs/excel-parser/interface.d.ts.map +1 -0
  50. package/dist/cjs/excel-parser/interface.js +1 -0
  51. package/dist/cjs/excel-parser/plugins/base/index.d.ts +31 -0
  52. package/dist/cjs/excel-parser/plugins/base/index.d.ts.map +1 -0
  53. package/dist/cjs/excel-parser/plugins/base/index.js +101 -0
  54. package/dist/cjs/excel-parser/plugins/ods/conditional-formatting.d.ts +16 -0
  55. package/dist/cjs/excel-parser/plugins/ods/conditional-formatting.d.ts.map +1 -0
  56. package/dist/cjs/excel-parser/plugins/ods/conditional-formatting.js +488 -0
  57. package/dist/cjs/excel-parser/plugins/ods/data-validations.d.ts +15 -0
  58. package/dist/cjs/excel-parser/plugins/ods/data-validations.d.ts.map +1 -0
  59. package/dist/cjs/excel-parser/plugins/ods/data-validations.js +353 -0
  60. package/dist/cjs/excel-parser/plugins/ods/formula.d.ts +8 -0
  61. package/dist/cjs/excel-parser/plugins/ods/formula.d.ts.map +1 -0
  62. package/dist/cjs/excel-parser/plugins/ods/formula.js +82 -0
  63. package/dist/cjs/excel-parser/plugins/ods/index.d.ts +122 -0
  64. package/dist/cjs/excel-parser/plugins/ods/index.d.ts.map +1 -0
  65. package/dist/cjs/excel-parser/plugins/ods/index.js +3642 -0
  66. package/dist/cjs/excel-parser/plugins/ods/sparklines.d.ts +25 -0
  67. package/dist/cjs/excel-parser/plugins/ods/sparklines.d.ts.map +1 -0
  68. package/dist/cjs/excel-parser/plugins/ods/sparklines.js +221 -0
  69. package/dist/cjs/excel-parser/plugins/ods/styles.d.ts +60 -0
  70. package/dist/cjs/excel-parser/plugins/ods/styles.d.ts.map +1 -0
  71. package/dist/cjs/excel-parser/plugins/ods/styles.js +808 -0
  72. package/dist/cjs/excel-parser/plugins/ods/types.d.ts +7 -0
  73. package/dist/cjs/excel-parser/plugins/ods/types.d.ts.map +1 -0
  74. package/dist/cjs/excel-parser/plugins/ods/types.js +1 -0
  75. package/dist/cjs/excel-parser/plugins/xls/index.d.ts +5 -0
  76. package/dist/cjs/excel-parser/plugins/xls/index.d.ts.map +1 -0
  77. package/dist/cjs/excel-parser/plugins/xls/index.js +19 -0
  78. package/dist/cjs/excel-parser/plugins/xlsb/biff-record-reader.d.ts +13 -0
  79. package/dist/cjs/excel-parser/plugins/xlsb/biff-record-reader.d.ts.map +1 -0
  80. package/dist/cjs/excel-parser/plugins/xlsb/biff-record-reader.js +49 -0
  81. package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts +117 -0
  82. package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts.map +1 -0
  83. package/dist/cjs/excel-parser/plugins/xlsb/index.js +2972 -0
  84. package/dist/cjs/excel-parser/plugins/xlsb/rgce-parser.d.ts +18 -0
  85. package/dist/cjs/excel-parser/plugins/xlsb/rgce-parser.d.ts.map +1 -0
  86. package/dist/cjs/excel-parser/plugins/xlsb/rgce-parser.js +527 -0
  87. package/dist/cjs/excel-parser/plugins/xlsm/index.d.ts +5 -0
  88. package/dist/cjs/excel-parser/plugins/xlsm/index.d.ts.map +1 -0
  89. package/dist/cjs/excel-parser/plugins/xlsm/index.js +10 -0
  90. package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts +60 -0
  91. package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts.map +1 -0
  92. package/dist/cjs/excel-parser/plugins/xlsx/charts.js +2178 -0
  93. package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.d.ts +18 -0
  94. package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -0
  95. package/dist/cjs/excel-parser/plugins/xlsx/conditional-formatting.js +620 -0
  96. package/dist/cjs/excel-parser/plugins/xlsx/data-validations.d.ts +4 -0
  97. package/dist/cjs/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -0
  98. package/dist/cjs/excel-parser/plugins/xlsx/data-validations.js +515 -0
  99. package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts +39 -0
  100. package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -0
  101. package/dist/cjs/excel-parser/plugins/xlsx/drawing.js +941 -0
  102. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +320 -0
  103. package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -0
  104. package/dist/cjs/excel-parser/plugins/xlsx/index.js +6056 -0
  105. package/dist/cjs/excel-parser/plugins/xlsx/numfmt.d.ts +2 -0
  106. package/dist/cjs/excel-parser/plugins/xlsx/numfmt.d.ts.map +1 -0
  107. package/dist/cjs/excel-parser/plugins/xlsx/numfmt.js +3 -0
  108. package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts +40 -0
  109. package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -0
  110. package/dist/cjs/excel-parser/plugins/xlsx/pivots.js +342 -0
  111. package/dist/cjs/excel-parser/plugins/xlsx/relationships.d.ts +8 -0
  112. package/dist/cjs/excel-parser/plugins/xlsx/relationships.d.ts.map +1 -0
  113. package/dist/cjs/excel-parser/plugins/xlsx/relationships.js +26 -0
  114. package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts +26 -0
  115. package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -0
  116. package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.js +59 -0
  117. package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts +44 -0
  118. package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -0
  119. package/dist/cjs/excel-parser/plugins/xlsx/styles.js +1377 -0
  120. package/dist/cjs/excel-parser/plugins/xlsx/theme.d.ts +50 -0
  121. package/dist/cjs/excel-parser/plugins/xlsx/theme.d.ts.map +1 -0
  122. package/dist/cjs/excel-parser/plugins/xlsx/theme.js +150 -0
  123. package/dist/cjs/excel-parser/plugins/xlsx/threaded-comments.d.ts +47 -0
  124. package/dist/cjs/excel-parser/plugins/xlsx/threaded-comments.d.ts.map +1 -0
  125. package/dist/cjs/excel-parser/plugins/xlsx/threaded-comments.js +141 -0
  126. package/dist/cjs/excel-parser/plugins/xlsx/value-type-detection.d.ts +44 -0
  127. package/dist/cjs/excel-parser/plugins/xlsx/value-type-detection.d.ts.map +1 -0
  128. package/dist/cjs/excel-parser/plugins/xlsx/value-type-detection.js +407 -0
  129. package/dist/cjs/excel-parser/registry.d.ts +5 -0
  130. package/dist/cjs/excel-parser/registry.d.ts.map +1 -0
  131. package/dist/cjs/excel-parser/registry.js +21 -0
  132. package/dist/cjs/excel-parser/style-registry.d.ts +51 -0
  133. package/dist/cjs/excel-parser/style-registry.d.ts.map +1 -0
  134. package/dist/cjs/excel-parser/style-registry.js +175 -0
  135. package/dist/cjs/excel-parser/theme-default.d.ts +3 -0
  136. package/dist/cjs/excel-parser/theme-default.d.ts.map +1 -0
  137. package/dist/cjs/excel-parser/theme-default.js +19 -0
  138. package/dist/cjs/excel-parser/types.d.ts +365 -0
  139. package/dist/cjs/excel-parser/types.d.ts.map +1 -0
  140. package/dist/cjs/excel-parser/types.js +59 -0
  141. package/dist/cjs/excel-parser/utils.d.ts +6 -0
  142. package/dist/cjs/excel-parser/utils.d.ts.map +1 -0
  143. package/dist/cjs/excel-parser/utils.js +30 -0
  144. package/dist/cjs/excel-parser/workbook.d.ts +51 -0
  145. package/dist/cjs/excel-parser/workbook.d.ts.map +1 -0
  146. package/dist/cjs/excel-parser/workbook.js +317 -0
  147. package/dist/cjs/excel-parser/worker.d.ts +2 -0
  148. package/dist/cjs/excel-parser/worker.d.ts.map +1 -0
  149. package/dist/cjs/excel-parser/worker.js +1149 -0
  150. package/dist/cjs/excel-parser/zip-parser-streaming.d.ts +13 -0
  151. package/dist/cjs/excel-parser/zip-parser-streaming.d.ts.map +1 -0
  152. package/dist/cjs/excel-parser/zip-parser-streaming.js +200 -0
  153. package/dist/cjs/excel-parser/zip-parser.d.ts +11 -0
  154. package/dist/cjs/excel-parser/zip-parser.d.ts.map +1 -0
  155. package/dist/cjs/excel-parser/zip-parser.js +49 -0
  156. package/dist/cjs/exporter/invalid-data-validation.d.ts +19 -0
  157. package/dist/cjs/exporter/invalid-data-validation.d.ts.map +1 -0
  158. package/dist/cjs/exporter/invalid-data-validation.js +39 -0
  159. package/dist/cjs/exporter/ods/ods-export.d.ts +26 -0
  160. package/dist/cjs/exporter/ods/ods-export.d.ts.map +1 -0
  161. package/dist/cjs/exporter/ods/ods-export.js +3714 -0
  162. package/dist/cjs/exporter/ods/sparkline-builder.d.ts +33 -0
  163. package/dist/cjs/exporter/ods/sparkline-builder.d.ts.map +1 -0
  164. package/dist/cjs/exporter/ods/sparkline-builder.js +221 -0
  165. package/dist/cjs/exporter/xlsx/chart-builder.d.ts +3 -0
  166. package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -0
  167. package/dist/cjs/exporter/xlsx/chart-builder.js +1901 -0
  168. package/dist/cjs/exporter/xlsx/chart-templates.d.ts +1781 -0
  169. package/dist/cjs/exporter/xlsx/chart-templates.d.ts.map +1 -0
  170. package/dist/cjs/exporter/xlsx/chart-templates.js +1798 -0
  171. package/dist/cjs/exporter/xlsx/future-functions.d.ts +10 -0
  172. package/dist/cjs/exporter/xlsx/future-functions.d.ts.map +1 -0
  173. package/dist/cjs/exporter/xlsx/future-functions.js +264 -0
  174. package/dist/cjs/exporter/xlsx/pivot-builder.d.ts +58 -0
  175. package/dist/cjs/exporter/xlsx/pivot-builder.d.ts.map +1 -0
  176. package/dist/cjs/exporter/xlsx/pivot-builder.js +277 -0
  177. package/dist/cjs/exporter/xlsx/power-query-builder.d.ts +26 -0
  178. package/dist/cjs/exporter/xlsx/power-query-builder.d.ts.map +1 -0
  179. package/dist/cjs/exporter/xlsx/power-query-builder.js +306 -0
  180. package/dist/cjs/exporter/xlsx/slicer-builder.d.ts +11 -0
  181. package/dist/cjs/exporter/xlsx/slicer-builder.d.ts.map +1 -0
  182. package/dist/cjs/exporter/xlsx/slicer-builder.js +87 -0
  183. package/dist/cjs/exporter/xlsx/sparkline-builder.d.ts +61 -0
  184. package/dist/cjs/exporter/xlsx/sparkline-builder.d.ts.map +1 -0
  185. package/dist/cjs/exporter/xlsx/sparkline-builder.js +489 -0
  186. package/dist/cjs/exporter/xlsx/style-builder.d.ts +93 -0
  187. package/dist/cjs/exporter/xlsx/style-builder.d.ts.map +1 -0
  188. package/dist/cjs/exporter/xlsx/style-builder.js +813 -0
  189. package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts +58 -0
  190. package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -0
  191. package/dist/cjs/exporter/xlsx/threaded-comments-builder.js +189 -0
  192. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts +121 -0
  193. package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -0
  194. package/dist/cjs/exporter/xlsx/xlsx-export.js +4596 -0
  195. package/dist/cjs/helpers/theme-xml-generator.d.ts +8 -0
  196. package/dist/cjs/helpers/theme-xml-generator.d.ts.map +1 -0
  197. package/dist/cjs/helpers/theme-xml-generator.js +33 -0
  198. package/dist/cjs/helpers.d.ts +34 -0
  199. package/dist/cjs/helpers.d.ts.map +1 -0
  200. package/dist/cjs/helpers.js +189 -0
  201. package/dist/cjs/index.d.ts +16 -0
  202. package/dist/cjs/index.d.ts.map +1 -0
  203. package/dist/cjs/index.js +15 -0
  204. package/dist/cjs/indexed-colors.d.ts +2 -0
  205. package/dist/cjs/indexed-colors.d.ts.map +1 -0
  206. package/dist/cjs/indexed-colors.js +75 -0
  207. package/dist/cjs/ods-export.d.ts +24 -0
  208. package/dist/cjs/ods-export.d.ts.map +1 -0
  209. package/dist/cjs/ods-export.js +23 -0
  210. package/dist/cjs/parse.d.ts +24 -0
  211. package/dist/cjs/parse.d.ts.map +1 -0
  212. package/dist/cjs/parse.js +68 -0
  213. package/dist/cjs/power-query.d.ts +41 -0
  214. package/dist/cjs/power-query.d.ts.map +1 -0
  215. package/dist/cjs/power-query.js +22 -0
  216. package/dist/cjs/server.d.ts +9 -0
  217. package/dist/cjs/server.d.ts.map +1 -0
  218. package/dist/cjs/server.js +8 -0
  219. package/dist/cjs/theme1.d.ts +3 -0
  220. package/dist/cjs/theme1.d.ts.map +1 -0
  221. package/dist/cjs/theme1.js +2 -0
  222. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  223. package/dist/cjs/types.d.ts +14 -0
  224. package/dist/cjs/types.d.ts.map +1 -0
  225. package/dist/cjs/types.js +14 -0
  226. package/dist/cjs/vitest.config.d.ts +3 -0
  227. package/dist/cjs/vitest.config.d.ts.map +1 -0
  228. package/dist/cjs/vitest.config.js +16 -0
  229. package/dist/esm/autofilter-condition.d.ts +43 -0
  230. package/dist/esm/autofilter-condition.d.ts.map +1 -0
  231. package/dist/esm/autofilter-condition.js +145 -0
  232. package/dist/esm/csv-export.d.ts +49 -0
  233. package/dist/esm/csv-export.d.ts.map +1 -0
  234. package/dist/esm/csv-export.js +126 -0
  235. package/dist/esm/csv-import-worker.d.ts +16 -0
  236. package/dist/esm/csv-import-worker.d.ts.map +1 -0
  237. package/dist/esm/csv-import-worker.js +60 -0
  238. package/dist/esm/csv-import.d.ts +38 -0
  239. package/dist/esm/csv-import.d.ts.map +1 -0
  240. package/dist/esm/csv-import.js +132 -0
  241. package/dist/esm/csv-parser/helpers.d.ts +14 -0
  242. package/dist/esm/csv-parser/helpers.d.ts.map +1 -0
  243. package/dist/esm/csv-parser/helpers.js +0 -0
  244. package/dist/esm/csv-parser/types.d.ts +66 -0
  245. package/dist/esm/csv-parser/types.d.ts.map +1 -0
  246. package/dist/esm/csv-parser/types.js +14 -0
  247. package/dist/esm/csv-parser/worker.d.ts +2 -0
  248. package/dist/esm/csv-parser/worker.d.ts.map +1 -0
  249. package/dist/esm/csv-parser/worker.js +154 -0
  250. package/dist/esm/excel-export.d.ts +11 -0
  251. package/dist/esm/excel-export.d.ts.map +1 -0
  252. package/dist/esm/excel-export.js +13 -0
  253. package/dist/esm/excel-import-session.d.ts +51 -0
  254. package/dist/esm/excel-import-session.d.ts.map +1 -0
  255. package/dist/esm/excel-import-session.js +255 -0
  256. package/dist/esm/excel-import-worker.d.ts +7 -0
  257. package/dist/esm/excel-import-worker.d.ts.map +1 -0
  258. package/dist/esm/excel-import-worker.js +116 -0
  259. package/dist/esm/excel-parser/builtin-numfmts.d.ts +24 -0
  260. package/dist/esm/excel-parser/builtin-numfmts.d.ts.map +1 -0
  261. package/dist/esm/excel-parser/builtin-numfmts.js +59 -0
  262. package/dist/esm/excel-parser/cfb-decryptor.d.ts +53 -0
  263. package/dist/esm/excel-parser/cfb-decryptor.d.ts.map +1 -0
  264. package/dist/esm/excel-parser/cfb-decryptor.js +493 -0
  265. package/dist/esm/excel-parser/cfb-encryptor.d.ts +23 -0
  266. package/dist/esm/excel-parser/cfb-encryptor.d.ts.map +1 -0
  267. package/dist/esm/excel-parser/cfb-encryptor.js +181 -0
  268. package/dist/esm/excel-parser/dv-cell-stamp.d.ts +29 -0
  269. package/dist/esm/excel-parser/dv-cell-stamp.d.ts.map +1 -0
  270. package/dist/esm/excel-parser/dv-cell-stamp.js +155 -0
  271. package/dist/esm/excel-parser/helpers.d.ts +28 -0
  272. package/dist/esm/excel-parser/helpers.d.ts.map +1 -0
  273. package/dist/esm/excel-parser/helpers.js +160 -0
  274. package/dist/esm/excel-parser/interface.d.ts +179 -0
  275. package/dist/esm/excel-parser/interface.d.ts.map +1 -0
  276. package/dist/esm/excel-parser/interface.js +1 -0
  277. package/dist/esm/excel-parser/plugins/base/index.d.ts +31 -0
  278. package/dist/esm/excel-parser/plugins/base/index.d.ts.map +1 -0
  279. package/dist/esm/excel-parser/plugins/base/index.js +64 -0
  280. package/dist/esm/excel-parser/plugins/ods/conditional-formatting.d.ts +16 -0
  281. package/dist/esm/excel-parser/plugins/ods/conditional-formatting.d.ts.map +1 -0
  282. package/dist/esm/excel-parser/plugins/ods/conditional-formatting.js +405 -0
  283. package/dist/esm/excel-parser/plugins/ods/data-validations.d.ts +15 -0
  284. package/dist/esm/excel-parser/plugins/ods/data-validations.d.ts.map +1 -0
  285. package/dist/esm/excel-parser/plugins/ods/data-validations.js +331 -0
  286. package/dist/esm/excel-parser/plugins/ods/formula.d.ts +8 -0
  287. package/dist/esm/excel-parser/plugins/ods/formula.d.ts.map +1 -0
  288. package/dist/esm/excel-parser/plugins/ods/formula.js +82 -0
  289. package/dist/esm/excel-parser/plugins/ods/index.d.ts +122 -0
  290. package/dist/esm/excel-parser/plugins/ods/index.d.ts.map +1 -0
  291. package/dist/esm/excel-parser/plugins/ods/index.js +2896 -0
  292. package/dist/esm/excel-parser/plugins/ods/sparklines.d.ts +25 -0
  293. package/dist/esm/excel-parser/plugins/ods/sparklines.d.ts.map +1 -0
  294. package/dist/esm/excel-parser/plugins/ods/sparklines.js +188 -0
  295. package/dist/esm/excel-parser/plugins/ods/styles.d.ts +60 -0
  296. package/dist/esm/excel-parser/plugins/ods/styles.d.ts.map +1 -0
  297. package/dist/esm/excel-parser/plugins/ods/styles.js +732 -0
  298. package/dist/esm/excel-parser/plugins/ods/types.d.ts +7 -0
  299. package/dist/esm/excel-parser/plugins/ods/types.d.ts.map +1 -0
  300. package/dist/esm/excel-parser/plugins/ods/types.js +1 -0
  301. package/dist/esm/excel-parser/plugins/xls/index.d.ts +5 -0
  302. package/dist/esm/excel-parser/plugins/xls/index.d.ts.map +1 -0
  303. package/dist/esm/excel-parser/plugins/xls/index.js +7 -0
  304. package/dist/esm/excel-parser/plugins/xlsb/biff-record-reader.d.ts +13 -0
  305. package/dist/esm/excel-parser/plugins/xlsb/biff-record-reader.d.ts.map +1 -0
  306. package/dist/esm/excel-parser/plugins/xlsb/biff-record-reader.js +48 -0
  307. package/dist/esm/excel-parser/plugins/xlsb/index.d.ts +117 -0
  308. package/dist/esm/excel-parser/plugins/xlsb/index.d.ts.map +1 -0
  309. package/dist/esm/excel-parser/plugins/xlsb/index.js +2339 -0
  310. package/dist/esm/excel-parser/plugins/xlsb/rgce-parser.d.ts +18 -0
  311. package/dist/esm/excel-parser/plugins/xlsb/rgce-parser.d.ts.map +1 -0
  312. package/dist/esm/excel-parser/plugins/xlsb/rgce-parser.js +522 -0
  313. package/dist/esm/excel-parser/plugins/xlsm/index.d.ts +5 -0
  314. package/dist/esm/excel-parser/plugins/xlsm/index.d.ts.map +1 -0
  315. package/dist/esm/excel-parser/plugins/xlsm/index.js +6 -0
  316. package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts +60 -0
  317. package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts.map +1 -0
  318. package/dist/esm/excel-parser/plugins/xlsx/charts.js +2036 -0
  319. package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.d.ts +18 -0
  320. package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.d.ts.map +1 -0
  321. package/dist/esm/excel-parser/plugins/xlsx/conditional-formatting.js +621 -0
  322. package/dist/esm/excel-parser/plugins/xlsx/data-validations.d.ts +4 -0
  323. package/dist/esm/excel-parser/plugins/xlsx/data-validations.d.ts.map +1 -0
  324. package/dist/esm/excel-parser/plugins/xlsx/data-validations.js +493 -0
  325. package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts +39 -0
  326. package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -0
  327. package/dist/esm/excel-parser/plugins/xlsx/drawing.js +905 -0
  328. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +320 -0
  329. package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -0
  330. package/dist/esm/excel-parser/plugins/xlsx/index.js +4654 -0
  331. package/dist/esm/excel-parser/plugins/xlsx/numfmt.d.ts +2 -0
  332. package/dist/esm/excel-parser/plugins/xlsx/numfmt.d.ts.map +1 -0
  333. package/dist/esm/excel-parser/plugins/xlsx/numfmt.js +3 -0
  334. package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts +40 -0
  335. package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -0
  336. package/dist/esm/excel-parser/plugins/xlsx/pivots.js +254 -0
  337. package/dist/esm/excel-parser/plugins/xlsx/relationships.d.ts +8 -0
  338. package/dist/esm/excel-parser/plugins/xlsx/relationships.d.ts.map +1 -0
  339. package/dist/esm/excel-parser/plugins/xlsx/relationships.js +13 -0
  340. package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts +26 -0
  341. package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -0
  342. package/dist/esm/excel-parser/plugins/xlsx/sheet-views.js +64 -0
  343. package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts +44 -0
  344. package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -0
  345. package/dist/esm/excel-parser/plugins/xlsx/styles.js +1365 -0
  346. package/dist/esm/excel-parser/plugins/xlsx/theme.d.ts +50 -0
  347. package/dist/esm/excel-parser/plugins/xlsx/theme.d.ts.map +1 -0
  348. package/dist/esm/excel-parser/plugins/xlsx/theme.js +127 -0
  349. package/dist/esm/excel-parser/plugins/xlsx/threaded-comments.d.ts +47 -0
  350. package/dist/esm/excel-parser/plugins/xlsx/threaded-comments.d.ts.map +1 -0
  351. package/dist/esm/excel-parser/plugins/xlsx/threaded-comments.js +103 -0
  352. package/dist/esm/excel-parser/plugins/xlsx/value-type-detection.d.ts +44 -0
  353. package/dist/esm/excel-parser/plugins/xlsx/value-type-detection.d.ts.map +1 -0
  354. package/dist/esm/excel-parser/plugins/xlsx/value-type-detection.js +399 -0
  355. package/dist/esm/excel-parser/registry.d.ts +5 -0
  356. package/dist/esm/excel-parser/registry.d.ts.map +1 -0
  357. package/dist/esm/excel-parser/registry.js +20 -0
  358. package/dist/esm/excel-parser/style-registry.d.ts +51 -0
  359. package/dist/esm/excel-parser/style-registry.d.ts.map +1 -0
  360. package/dist/esm/excel-parser/style-registry.js +163 -0
  361. package/dist/esm/excel-parser/theme-default.d.ts +3 -0
  362. package/dist/esm/excel-parser/theme-default.d.ts.map +1 -0
  363. package/dist/esm/excel-parser/theme-default.js +19 -0
  364. package/dist/esm/excel-parser/types.d.ts +365 -0
  365. package/dist/esm/excel-parser/types.d.ts.map +1 -0
  366. package/dist/esm/excel-parser/types.js +59 -0
  367. package/dist/esm/excel-parser/utils.d.ts +6 -0
  368. package/dist/esm/excel-parser/utils.d.ts.map +1 -0
  369. package/dist/esm/excel-parser/utils.js +25 -0
  370. package/dist/esm/excel-parser/workbook.d.ts +51 -0
  371. package/dist/esm/excel-parser/workbook.d.ts.map +1 -0
  372. package/dist/esm/excel-parser/workbook.js +192 -0
  373. package/dist/esm/excel-parser/worker.d.ts +2 -0
  374. package/dist/esm/excel-parser/worker.d.ts.map +1 -0
  375. package/dist/esm/excel-parser/worker.js +862 -0
  376. package/dist/esm/excel-parser/zip-parser-streaming.d.ts +13 -0
  377. package/dist/esm/excel-parser/zip-parser-streaming.d.ts.map +1 -0
  378. package/dist/esm/excel-parser/zip-parser-streaming.js +119 -0
  379. package/dist/esm/excel-parser/zip-parser.d.ts +11 -0
  380. package/dist/esm/excel-parser/zip-parser.d.ts.map +1 -0
  381. package/dist/esm/excel-parser/zip-parser.js +43 -0
  382. package/dist/esm/exporter/invalid-data-validation.d.ts +19 -0
  383. package/dist/esm/exporter/invalid-data-validation.d.ts.map +1 -0
  384. package/dist/esm/exporter/invalid-data-validation.js +37 -0
  385. package/dist/esm/exporter/ods/ods-export.d.ts +26 -0
  386. package/dist/esm/exporter/ods/ods-export.d.ts.map +1 -0
  387. package/dist/esm/exporter/ods/ods-export.js +3238 -0
  388. package/dist/esm/exporter/ods/sparkline-builder.d.ts +33 -0
  389. package/dist/esm/exporter/ods/sparkline-builder.d.ts.map +1 -0
  390. package/dist/esm/exporter/ods/sparkline-builder.js +165 -0
  391. package/dist/esm/exporter/xlsx/chart-builder.d.ts +3 -0
  392. package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -0
  393. package/dist/esm/exporter/xlsx/chart-builder.js +1805 -0
  394. package/dist/esm/exporter/xlsx/chart-templates.d.ts +1781 -0
  395. package/dist/esm/exporter/xlsx/chart-templates.d.ts.map +1 -0
  396. package/dist/esm/exporter/xlsx/chart-templates.js +1798 -0
  397. package/dist/esm/exporter/xlsx/future-functions.d.ts +10 -0
  398. package/dist/esm/exporter/xlsx/future-functions.d.ts.map +1 -0
  399. package/dist/esm/exporter/xlsx/future-functions.js +264 -0
  400. package/dist/esm/exporter/xlsx/pivot-builder.d.ts +58 -0
  401. package/dist/esm/exporter/xlsx/pivot-builder.d.ts.map +1 -0
  402. package/dist/esm/exporter/xlsx/pivot-builder.js +230 -0
  403. package/dist/esm/exporter/xlsx/power-query-builder.d.ts +26 -0
  404. package/dist/esm/exporter/xlsx/power-query-builder.d.ts.map +1 -0
  405. package/dist/esm/exporter/xlsx/power-query-builder.js +257 -0
  406. package/dist/esm/exporter/xlsx/slicer-builder.d.ts +11 -0
  407. package/dist/esm/exporter/xlsx/slicer-builder.d.ts.map +1 -0
  408. package/dist/esm/exporter/xlsx/slicer-builder.js +84 -0
  409. package/dist/esm/exporter/xlsx/sparkline-builder.d.ts +61 -0
  410. package/dist/esm/exporter/xlsx/sparkline-builder.d.ts.map +1 -0
  411. package/dist/esm/exporter/xlsx/sparkline-builder.js +437 -0
  412. package/dist/esm/exporter/xlsx/style-builder.d.ts +93 -0
  413. package/dist/esm/exporter/xlsx/style-builder.d.ts.map +1 -0
  414. package/dist/esm/exporter/xlsx/style-builder.js +795 -0
  415. package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts +58 -0
  416. package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -0
  417. package/dist/esm/exporter/xlsx/threaded-comments-builder.js +175 -0
  418. package/dist/esm/exporter/xlsx/xlsx-export.d.ts +121 -0
  419. package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -0
  420. package/dist/esm/exporter/xlsx/xlsx-export.js +4062 -0
  421. package/dist/esm/helpers/theme-xml-generator.d.ts +8 -0
  422. package/dist/esm/helpers/theme-xml-generator.d.ts.map +1 -0
  423. package/dist/esm/helpers/theme-xml-generator.js +33 -0
  424. package/dist/esm/helpers.d.ts +34 -0
  425. package/dist/esm/helpers.d.ts.map +1 -0
  426. package/dist/esm/helpers.js +182 -0
  427. package/dist/esm/index.d.ts +16 -0
  428. package/dist/esm/index.d.ts.map +1 -0
  429. package/dist/esm/index.js +15 -0
  430. package/dist/esm/indexed-colors.d.ts +2 -0
  431. package/dist/esm/indexed-colors.d.ts.map +1 -0
  432. package/dist/esm/indexed-colors.js +75 -0
  433. package/dist/esm/ods-export.d.ts +24 -0
  434. package/dist/esm/ods-export.d.ts.map +1 -0
  435. package/dist/esm/ods-export.js +12 -0
  436. package/dist/esm/parse.d.ts +24 -0
  437. package/dist/esm/parse.d.ts.map +1 -0
  438. package/dist/esm/parse.js +55 -0
  439. package/dist/esm/power-query.d.ts +41 -0
  440. package/dist/esm/power-query.d.ts.map +1 -0
  441. package/dist/esm/power-query.js +19 -0
  442. package/dist/esm/server.d.ts +9 -0
  443. package/dist/esm/server.d.ts.map +1 -0
  444. package/dist/esm/server.js +8 -0
  445. package/dist/esm/theme1.d.ts +3 -0
  446. package/dist/esm/theme1.d.ts.map +1 -0
  447. package/dist/esm/theme1.js +2 -0
  448. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  449. package/dist/esm/types.d.ts +14 -0
  450. package/dist/esm/types.d.ts.map +1 -0
  451. package/dist/esm/types.js +14 -0
  452. package/dist/esm/vitest.config.d.ts +3 -0
  453. package/dist/esm/vitest.config.d.ts.map +1 -0
  454. package/dist/esm/vitest.config.js +16 -0
  455. package/package.json +62 -0
  456. package/xlsx.d.ts +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kDAAkD,CAAC;AAE7F,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { detectValueTypeAndPattern } from "./excel-parser/plugins/xlsx/value-type-detection";
2
+ export { WorkBook } from "./excel-parser/workbook";
3
+ export { readExcelFile } from "./excel-parser/helpers";
4
+ export { buildCellData } from "./csv-parser/helpers";
5
+ export { RequestType, ResponseType, } from "./excel-parser/types";
6
+ export { createCSVFromSheetData } from "./csv-export";
7
+ export { createODSFile } from "./ods-export";
8
+ export { createExcelFile } from "./exporter/xlsx/xlsx-export";
@@ -0,0 +1,3 @@
1
+ declare const _default: "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" name=\"Office Theme\"><a:themeElements><a:clrScheme name=\"Office\"><a:dk1><a:srgbClr val=\"000000\"/></a:dk1><a:lt1><a:srgbClr val=\"FFFFFF\"/></a:lt1><a:dk2><a:srgbClr val=\"000000\"/></a:dk2><a:lt2><a:srgbClr val=\"FFFFFF\"/></a:lt2><a:accent1><a:srgbClr val=\"365BB7\"/></a:accent1><a:accent2><a:srgbClr val=\"E66826\"/></a:accent2><a:accent3><a:srgbClr val=\"949494\"/></a:accent3><a:accent4><a:srgbClr val=\"FDB506\"/></a:accent4><a:accent5><a:srgbClr val=\"4B87CB\"/></a:accent5><a:accent6><a:srgbClr val=\"60A038\"/></a:accent6><a:hlink><a:srgbClr val=\"0B4CB4\"/></a:hlink><a:folHlink><a:srgbClr val=\"1155CC\"/></a:folHlink></a:clrScheme><a:fontScheme name=\"Office\"><a:majorFont><a:latin typeface=\"Arial\"/><a:ea typeface=\"Arial\"/><a:cs typeface=\"Arial\"/></a:majorFont><a:minorFont><a:latin typeface=\"Arial\"/><a:ea typeface=\"Arial\"/><a:cs typeface=\"Arial\"/></a:minorFont></a:fontScheme><a:fmtScheme name=\"Office\"><a:fillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"110000\"/><a:satMod val=\"105000\"/><a:tint val=\"67000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"103000\"/><a:tint val=\"73000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"109000\"/><a:tint val=\"81000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:satMod val=\"103000\"/><a:lumMod val=\"102000\"/><a:tint val=\"94000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:satMod val=\"110000\"/><a:lumMod val=\"100000\"/><a:shade val=\"100000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"99000\"/><a:satMod val=\"120000\"/><a:shade val=\"78000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w=\"6350\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln><a:ln w=\"12700\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln><a:ln w=\"19050\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"57150\" dist=\"19050\" dir=\"5400000\" algn=\"ctr\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"63000\"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:solidFill><a:schemeClr val=\"phClr\"><a:tint val=\"95000\"/><a:satMod val=\"170000\"/></a:schemeClr></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"93000\"/><a:satMod val=\"150000\"/><a:shade val=\"98000\"/><a:lumMod val=\"102000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:tint val=\"98000\"/><a:satMod val=\"130000\"/><a:shade val=\"90000\"/><a:lumMod val=\"103000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"63000\"/><a:satMod val=\"120000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements></a:theme>";
2
+ export default _default;
3
+ //# sourceMappingURL=theme1.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme1.d.ts","sourceRoot":"","sources":["../../theme1.ts"],"names":[],"mappings":";AACA,wBACsrH"}
@@ -0,0 +1,2 @@
1
+ /* eslint-disable */
2
+ export default "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" name=\"Office Theme\"><a:themeElements><a:clrScheme name=\"Office\"><a:dk1><a:srgbClr val=\"000000\"/></a:dk1><a:lt1><a:srgbClr val=\"FFFFFF\"/></a:lt1><a:dk2><a:srgbClr val=\"000000\"/></a:dk2><a:lt2><a:srgbClr val=\"FFFFFF\"/></a:lt2><a:accent1><a:srgbClr val=\"365BB7\"/></a:accent1><a:accent2><a:srgbClr val=\"E66826\"/></a:accent2><a:accent3><a:srgbClr val=\"949494\"/></a:accent3><a:accent4><a:srgbClr val=\"FDB506\"/></a:accent4><a:accent5><a:srgbClr val=\"4B87CB\"/></a:accent5><a:accent6><a:srgbClr val=\"60A038\"/></a:accent6><a:hlink><a:srgbClr val=\"0B4CB4\"/></a:hlink><a:folHlink><a:srgbClr val=\"1155CC\"/></a:folHlink></a:clrScheme><a:fontScheme name=\"Office\"><a:majorFont><a:latin typeface=\"Arial\"/><a:ea typeface=\"Arial\"/><a:cs typeface=\"Arial\"/></a:majorFont><a:minorFont><a:latin typeface=\"Arial\"/><a:ea typeface=\"Arial\"/><a:cs typeface=\"Arial\"/></a:minorFont></a:fontScheme><a:fmtScheme name=\"Office\"><a:fillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"110000\"/><a:satMod val=\"105000\"/><a:tint val=\"67000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"103000\"/><a:tint val=\"73000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"105000\"/><a:satMod val=\"109000\"/><a:tint val=\"81000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:satMod val=\"103000\"/><a:lumMod val=\"102000\"/><a:tint val=\"94000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:satMod val=\"110000\"/><a:lumMod val=\"100000\"/><a:shade val=\"100000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:lumMod val=\"99000\"/><a:satMod val=\"120000\"/><a:shade val=\"78000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w=\"6350\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln><a:ln w=\"12700\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln><a:ln w=\"19050\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/><a:miter lim=\"800000\"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst/></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"57150\" dist=\"19050\" dir=\"5400000\" algn=\"ctr\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"63000\"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:solidFill><a:schemeClr val=\"phClr\"><a:tint val=\"95000\"/><a:satMod val=\"170000\"/></a:schemeClr></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"93000\"/><a:satMod val=\"150000\"/><a:shade val=\"98000\"/><a:lumMod val=\"102000\"/></a:schemeClr></a:gs><a:gs pos=\"50000\"><a:schemeClr val=\"phClr\"><a:tint val=\"98000\"/><a:satMod val=\"130000\"/><a:shade val=\"90000\"/><a:lumMod val=\"103000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"63000\"/><a:satMod val=\"120000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"5400000\" scaled=\"0\"/></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements></a:theme>";
@@ -0,0 +1 @@
1
+ {"root":["../../autofilter-condition.ts","../../csv-export.ts","../../csv-import-worker.ts","../../csv-import.ts","../../excel-export.ts","../../excel-import-session.ts","../../excel-import-worker.ts","../../helpers.ts","../../index.ts","../../indexed-colors.ts","../../ods-export.ts","../../parse.ts","../../power-query.ts","../../server.ts","../../theme1.ts","../../types.ts","../../vitest.config.ts","../../xlsx.d.ts","../../csv-parser/helpers.ts","../../csv-parser/types.ts","../../csv-parser/worker.ts","../../excel-parser/builtin-numfmts.ts","../../excel-parser/cfb-decryptor.ts","../../excel-parser/cfb-encryptor.ts","../../excel-parser/dv-cell-stamp.ts","../../excel-parser/helpers.ts","../../excel-parser/interface.ts","../../excel-parser/registry.ts","../../excel-parser/style-registry.ts","../../excel-parser/theme-default.ts","../../excel-parser/types.ts","../../excel-parser/utils.ts","../../excel-parser/workbook.ts","../../excel-parser/worker.ts","../../excel-parser/zip-parser-streaming.ts","../../excel-parser/zip-parser.ts","../../excel-parser/plugins/base/index.ts","../../excel-parser/plugins/ods/conditional-formatting.ts","../../excel-parser/plugins/ods/data-validations.ts","../../excel-parser/plugins/ods/formula.ts","../../excel-parser/plugins/ods/index.ts","../../excel-parser/plugins/ods/sparklines.ts","../../excel-parser/plugins/ods/styles.ts","../../excel-parser/plugins/ods/types.ts","../../excel-parser/plugins/xls/index.ts","../../excel-parser/plugins/xlsb/biff-record-reader.ts","../../excel-parser/plugins/xlsb/index.ts","../../excel-parser/plugins/xlsb/rgce-parser.ts","../../excel-parser/plugins/xlsm/index.ts","../../excel-parser/plugins/xlsx/charts.ts","../../excel-parser/plugins/xlsx/conditional-formatting.ts","../../excel-parser/plugins/xlsx/data-validations.ts","../../excel-parser/plugins/xlsx/drawing.ts","../../excel-parser/plugins/xlsx/index.ts","../../excel-parser/plugins/xlsx/numfmt.ts","../../excel-parser/plugins/xlsx/pivots.ts","../../excel-parser/plugins/xlsx/relationships.ts","../../excel-parser/plugins/xlsx/sheet-views.ts","../../excel-parser/plugins/xlsx/styles.ts","../../excel-parser/plugins/xlsx/theme.ts","../../excel-parser/plugins/xlsx/threaded-comments.ts","../../excel-parser/plugins/xlsx/value-type-detection.ts","../../exporter/invalid-data-validation.ts","../../exporter/ods/ods-export.ts","../../exporter/ods/sparkline-builder.ts","../../exporter/xlsx/chart-builder.ts","../../exporter/xlsx/chart-templates.ts","../../exporter/xlsx/future-functions.ts","../../exporter/xlsx/pivot-builder.ts","../../exporter/xlsx/power-query-builder.ts","../../exporter/xlsx/slicer-builder.ts","../../exporter/xlsx/sparkline-builder.ts","../../exporter/xlsx/style-builder.ts","../../exporter/xlsx/threaded-comments-builder.ts","../../exporter/xlsx/xlsx-export.ts","../../helpers/theme-xml-generator.ts"],"version":"5.8.3"}
@@ -0,0 +1,14 @@
1
+ export declare enum ValueType {
2
+ Null = 0,
3
+ Merge = 1,
4
+ Number = 2,
5
+ String = 3,
6
+ Date = 4,
7
+ Hyperlink = 5,
8
+ Formula = 6,
9
+ SharedString = 7,
10
+ RichText = 8,
11
+ Boolean = 9,
12
+ Error = 10
13
+ }
14
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../types.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,IAAI,IAAI;IACR,KAAK,IAAI;IACT,MAAM,IAAI;IACV,MAAM,IAAI;IACV,IAAI,IAAI;IACR,SAAS,IAAI;IACb,OAAO,IAAI;IACX,YAAY,IAAI;IAChB,QAAQ,IAAI;IACZ,OAAO,IAAI;IACX,KAAK,KAAK;CACX"}
@@ -0,0 +1,14 @@
1
+ export var ValueType;
2
+ (function (ValueType) {
3
+ ValueType[ValueType["Null"] = 0] = "Null";
4
+ ValueType[ValueType["Merge"] = 1] = "Merge";
5
+ ValueType[ValueType["Number"] = 2] = "Number";
6
+ ValueType[ValueType["String"] = 3] = "String";
7
+ ValueType[ValueType["Date"] = 4] = "Date";
8
+ ValueType[ValueType["Hyperlink"] = 5] = "Hyperlink";
9
+ ValueType[ValueType["Formula"] = 6] = "Formula";
10
+ ValueType[ValueType["SharedString"] = 7] = "SharedString";
11
+ ValueType[ValueType["RichText"] = 8] = "RichText";
12
+ ValueType[ValueType["Boolean"] = 9] = "Boolean";
13
+ ValueType[ValueType["Error"] = 10] = "Error";
14
+ })(ValueType || (ValueType = {}));
@@ -0,0 +1,3 @@
1
+ declare const _default: import("vite").UserConfig;
2
+ export default _default;
3
+ //# sourceMappingURL=vitest.config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../../vitest.config.ts"],"names":[],"mappings":";AAEA,wBAcG"}
@@ -0,0 +1,16 @@
1
+ import { defineConfig } from "vitest/config";
2
+ export default defineConfig({
3
+ test: {
4
+ globals: true,
5
+ environment: "node",
6
+ deps: {
7
+ inline: ["konva", "react-konva"],
8
+ },
9
+ },
10
+ // Prefer the ESM build of react-konva (avoid its CJS wrapper that requires konva)
11
+ resolve: {
12
+ alias: {
13
+ "react-konva": "react-konva/es/ReactKonvaCore.js",
14
+ },
15
+ },
16
+ });
@@ -0,0 +1,43 @@
1
+ import type { ConditionType } from "@rowsncolumns/common-types";
2
+ /**
3
+ * Bidirectional mapping between the in-app AutoFilter `filterCriteria.condition`
4
+ * ({type, values}) and Excel's `<customFilters>` / `<dynamicFilter>` XML.
5
+ *
6
+ * Excel autoFilter supports three condition shapes (besides value-list /
7
+ * color / icon): customFilter comparisons (number/text/date), two-filter
8
+ * AND/OR ranges (between / not-between), and dynamicFilter (relative dates +
9
+ * above/below average). This module keeps export and import symmetric so a
10
+ * condition filter survives an XLSX round-trip (previously dropped both ways).
11
+ *
12
+ * Round-trip fidelity note: Excel's customFilter has no number-vs-date tag, so
13
+ * date comparison filters re-import as the NUMBER_* equivalent. The comparison
14
+ * itself (>, <, between, …) — and therefore which rows stay visible — is
15
+ * preserved, which is the point.
16
+ */
17
+ type ConditionValue = {
18
+ userEnteredValue: string;
19
+ };
20
+ export type AutoFilterCondition = {
21
+ type: ConditionType;
22
+ values: ConditionValue[];
23
+ };
24
+ export type RawCustomFilter = {
25
+ operator?: string;
26
+ val?: string;
27
+ };
28
+ /**
29
+ * Build the `<customFilters>` / `<dynamicFilter>` XML for a filter condition,
30
+ * or `null` when the condition type has no AutoFilter representation (BLANK /
31
+ * ERROR / CUSTOM_FORMULA / ONE_OF_* / DATE_LAST_7_DAYS / …) — the caller then
32
+ * falls back to a value-list `<filters>`.
33
+ */
34
+ export declare const buildAutoFilterConditionXml: (condition: {
35
+ type?: ConditionType | null;
36
+ values?: ConditionValue[] | null;
37
+ } | null | undefined) => string | null;
38
+ /** Map an Excel `<dynamicFilter type=…>` back to a condition, or null. */
39
+ export declare const dynamicFilterToCondition: (type: string | undefined) => AutoFilterCondition | null;
40
+ /** Map Excel `<customFilters>` children back to a condition, or null. */
41
+ export declare const customFiltersToCondition: (filters: RawCustomFilter[], and: boolean) => AutoFilterCondition | null;
42
+ export {};
43
+ //# sourceMappingURL=autofilter-condition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autofilter-condition.d.ts","sourceRoot":"","sources":["../../autofilter-condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAEhE;;;;;;;;;;;;;;GAcG;AAEH,KAAK,cAAc,GAAG;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC;AACnD,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAmElE;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,GACtC,WAAW;IAAE,IAAI,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAAC,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,KAC9F,MAAM,GAAG,IA4BX,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,wBAAwB,GACnC,MAAM,MAAM,GAAG,SAAS,KACvB,mBAAmB,GAAG,IAIxB,CAAC;AAIF,yEAAyE;AACzE,eAAO,MAAM,wBAAwB,GACnC,SAAS,eAAe,EAAE,EAC1B,KAAK,OAAO,KACX,mBAAmB,GAAG,IA6CxB,CAAC"}
@@ -0,0 +1,145 @@
1
+ const escapeXml = (value) => String(value)
2
+ .replace(/&/g, "&amp;")
3
+ .replace(/</g, "&lt;")
4
+ .replace(/>/g, "&gt;")
5
+ .replace(/"/g, "&quot;")
6
+ .replace(/'/g, "&apos;");
7
+ // condition type -> Excel dynamicFilter `type` attribute
8
+ const DYNAMIC_BY_TYPE = {
9
+ DATE_TODAY: "today",
10
+ DATE_YESTERDAY: "yesterday",
11
+ DATE_TOMORROW: "tomorrow",
12
+ DATE_THIS_WEEK: "thisWeek",
13
+ DATE_LAST_WEEK: "lastWeek",
14
+ DATE_NEXT_WEEK: "nextWeek",
15
+ DATE_THIS_MONTH: "thisMonth",
16
+ DATE_LAST_MONTH: "lastMonth",
17
+ DATE_NEXT_MONTH: "nextMonth",
18
+ NUMBER_ABOVE_AVERAGE: "aboveAverage",
19
+ NUMBER_BELOW_AVERAGE: "belowAverage",
20
+ };
21
+ const TYPE_BY_DYNAMIC = Object.fromEntries(Object.entries(DYNAMIC_BY_TYPE).map(([k, v]) => [v, k]));
22
+ // condition type -> single customFilter operator (number + date comparisons)
23
+ const OPERATOR_BY_TYPE = {
24
+ NUMBER_GREATER: "greaterThan",
25
+ DATE_AFTER: "greaterThan",
26
+ NUMBER_GREATER_THAN_EQ: "greaterThanOrEqual",
27
+ DATE_ON_OR_AFTER: "greaterThanOrEqual",
28
+ NUMBER_LESS: "lessThan",
29
+ DATE_BEFORE: "lessThan",
30
+ NUMBER_LESS_THAN_EQ: "lessThanOrEqual",
31
+ DATE_ON_OR_BEFORE: "lessThanOrEqual",
32
+ NUMBER_EQ: "equal",
33
+ DATE_EQ: "equal",
34
+ NUMBER_NOT_EQ: "notEqual",
35
+ DATE_NOT_EQ: "notEqual",
36
+ };
37
+ const TYPE_BY_OPERATOR = {
38
+ greaterThan: "NUMBER_GREATER",
39
+ greaterThanOrEqual: "NUMBER_GREATER_THAN_EQ",
40
+ lessThan: "NUMBER_LESS",
41
+ lessThanOrEqual: "NUMBER_LESS_THAN_EQ",
42
+ equal: "NUMBER_EQ",
43
+ notEqual: "NUMBER_NOT_EQ",
44
+ };
45
+ // text condition type -> {operator, how to wrap the value with wildcards}
46
+ const TEXT_WRAP = {
47
+ TEXT_EQ: { op: "equal", wrap: (v) => v },
48
+ TEXT_NOT_EQ: { op: "notEqual", wrap: (v) => v },
49
+ TEXT_CONTAINS: { op: "equal", wrap: (v) => `*${v}*` },
50
+ TEXT_NOT_CONTAINS: { op: "notEqual", wrap: (v) => `*${v}*` },
51
+ TEXT_STARTS_WITH: { op: "equal", wrap: (v) => `${v}*` },
52
+ TEXT_ENDS_WITH: { op: "equal", wrap: (v) => `*${v}` },
53
+ };
54
+ const customFilterXml = (operator, val) => `<customFilter operator="${operator}" val="${escapeXml(val)}"/>`;
55
+ /**
56
+ * Build the `<customFilters>` / `<dynamicFilter>` XML for a filter condition,
57
+ * or `null` when the condition type has no AutoFilter representation (BLANK /
58
+ * ERROR / CUSTOM_FORMULA / ONE_OF_* / DATE_LAST_7_DAYS / …) — the caller then
59
+ * falls back to a value-list `<filters>`.
60
+ */
61
+ export const buildAutoFilterConditionXml = (condition) => {
62
+ const type = condition?.type;
63
+ if (!type)
64
+ return null;
65
+ const values = condition?.values ?? [];
66
+ const v0 = values[0]?.userEnteredValue;
67
+ const v1 = values[1]?.userEnteredValue;
68
+ const dynamic = DYNAMIC_BY_TYPE[type];
69
+ if (dynamic)
70
+ return `<dynamicFilter type="${dynamic}"/>`;
71
+ if (type === "NUMBER_BETWEEN" || type === "DATE_BETWEEN") {
72
+ if (v0 == null || v1 == null)
73
+ return null;
74
+ return `<customFilters and="1">${customFilterXml("greaterThanOrEqual", v0)}${customFilterXml("lessThanOrEqual", v1)}</customFilters>`;
75
+ }
76
+ if (type === "NUMBER_NOT_BETWEEN" || type === "DATE_NOT_BETWEEN") {
77
+ if (v0 == null || v1 == null)
78
+ return null;
79
+ return `<customFilters>${customFilterXml("lessThan", v0)}${customFilterXml("greaterThan", v1)}</customFilters>`;
80
+ }
81
+ const op = OPERATOR_BY_TYPE[type];
82
+ if (op && v0 != null) {
83
+ return `<customFilters>${customFilterXml(op, v0)}</customFilters>`;
84
+ }
85
+ const text = TEXT_WRAP[type];
86
+ if (text && v0 != null) {
87
+ return `<customFilters>${customFilterXml(text.op, text.wrap(v0))}</customFilters>`;
88
+ }
89
+ return null;
90
+ };
91
+ /** Map an Excel `<dynamicFilter type=…>` back to a condition, or null. */
92
+ export const dynamicFilterToCondition = (type) => {
93
+ if (!type)
94
+ return null;
95
+ const conditionType = TYPE_BY_DYNAMIC[type];
96
+ return conditionType ? { type: conditionType, values: [] } : null;
97
+ };
98
+ const isNumeric = (v) => v !== "" && !Number.isNaN(Number(v));
99
+ /** Map Excel `<customFilters>` children back to a condition, or null. */
100
+ export const customFiltersToCondition = (filters, and) => {
101
+ const valid = filters.filter((f) => f && f.val !== undefined);
102
+ if (valid.length === 0)
103
+ return null;
104
+ // Two filters => a range (between when AND, not-between when OR).
105
+ if (valid.length >= 2) {
106
+ const v0 = String(valid[0].val ?? "");
107
+ const v1 = String(valid[1].val ?? "");
108
+ return {
109
+ type: and ? "NUMBER_BETWEEN" : "NUMBER_NOT_BETWEEN",
110
+ values: [{ userEnteredValue: v0 }, { userEnteredValue: v1 }],
111
+ };
112
+ }
113
+ const operator = valid[0].operator ?? "equal";
114
+ const val = String(valid[0].val ?? "");
115
+ // Text wildcards: equal/notEqual carrying * map back to contains/starts/ends.
116
+ if ((operator === "equal" || operator === "notEqual") && /[*?]/.test(val)) {
117
+ const negated = operator === "notEqual";
118
+ const lead = val.startsWith("*");
119
+ const trail = val.endsWith("*");
120
+ const core = val.replace(/^\*/, "").replace(/\*$/, "");
121
+ if (lead && trail) {
122
+ return {
123
+ type: negated ? "TEXT_NOT_CONTAINS" : "TEXT_CONTAINS",
124
+ values: [{ userEnteredValue: core }],
125
+ };
126
+ }
127
+ if (trail) {
128
+ return { type: "TEXT_STARTS_WITH", values: [{ userEnteredValue: core }] };
129
+ }
130
+ if (lead) {
131
+ return { type: "TEXT_ENDS_WITH", values: [{ userEnteredValue: core }] };
132
+ }
133
+ }
134
+ let conditionType = TYPE_BY_OPERATOR[operator];
135
+ if (!conditionType)
136
+ return null;
137
+ // A non-numeric equal/notEqual is a text equality, not a numeric one.
138
+ if (!isNumeric(val)) {
139
+ if (operator === "equal")
140
+ conditionType = "TEXT_EQ";
141
+ else if (operator === "notEqual")
142
+ conditionType = "TEXT_NOT_EQ";
143
+ }
144
+ return { type: conditionType, values: [{ userEnteredValue: val }] };
145
+ };
@@ -0,0 +1,49 @@
1
+ import type { CellData, Sheet } from "@rowsncolumns/spreadsheet";
2
+ import type { RowData, RowDataWithValue } from "@rowsncolumns/common-types";
3
+ import { type SharedStrings } from "@rowsncolumns/spreadsheet-state";
4
+ type ExportCSVProps<T extends CellData | null> = {
5
+ rowData: (RowData<T | null> | RowDataWithValue<T | null> | null)[];
6
+ sharedStrings?: SharedStrings;
7
+ config?: {
8
+ delimiter?: string;
9
+ /**
10
+ * Prepend a UTF-8 byte-order mark to the exported file. Output is
11
+ * always UTF-8; the BOM only helps Excel detect the encoding when
12
+ * double-clicking a .csv (otherwise it assumes the ANSI codepage).
13
+ */
14
+ includeBom?: boolean;
15
+ skipEmptyLines?: boolean;
16
+ header?: boolean;
17
+ };
18
+ /**
19
+ * Optional context for deriving formatted values on formula cells that
20
+ * don't carry a persisted `fv` (the new contract for formula cells).
21
+ * When provided, formula cells with no `fv` get their value formatted
22
+ * using the precedent-derived number format (same logic as the renderer
23
+ * uses).
24
+ */
25
+ derivationContext?: {
26
+ sheetId: number;
27
+ sheetData: Record<string | number, any>;
28
+ sheets?: Sheet[];
29
+ locale?: string;
30
+ /**
31
+ * Map of styleId -> CellFormat. Required when precedent cells'
32
+ * `uf` is a `{ sid }` style reference (xlsx-imported workbooks),
33
+ * otherwise the derive helper can't resolve the styleId.
34
+ */
35
+ cellXfs?: Map<string | number, any> | null;
36
+ };
37
+ };
38
+ /**
39
+ * Create csv string from sheetData using XLSX
40
+ * @param rowData
41
+ * @param config
42
+ * @returns
43
+ */
44
+ export declare const createCSVFromSheetData: <T extends CellData | null>(rowData: ExportCSVProps<T>["rowData"], sharedStrings?: ExportCSVProps<T>["sharedStrings"], config?: ExportCSVProps<T>["config"], derivationContext?: ExportCSVProps<T>["derivationContext"]) => string;
45
+ export declare const exportToCSV: <T extends CellData | null>({ filename, rowData, sharedStrings, config, derivationContext, }: ExportCSVProps<T> & {
46
+ filename: string;
47
+ }) => string | Blob | undefined;
48
+ export {};
49
+ //# sourceMappingURL=csv-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-export.d.ts","sourceRoot":"","sources":["../../csv-export.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAgB,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,iCAAiC,CAAC;AAoBzC,KAAK,cAAc,CAAC,CAAC,SAAS,QAAQ,GAAG,IAAI,IAAI;IAC/C,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;IACnE,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;;WAIG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;;WAIG;QACH,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;KAC5C,CAAC;CACH,CAAC;AAgHF;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,SAAS,QAAQ,GAAG,IAAI,EAC9D,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EACrC,gBAAgB,cAAc,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,EAClD,SAAS,cAAc,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EACpC,oBAAoB,cAAc,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,WAgD3D,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,QAAQ,GAAG,IAAI,EAAE,kEAMpD,cAAc,CAAC,CAAC,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,8BAU1C,CAAC"}
@@ -0,0 +1,126 @@
1
+ import { tokenize as defaultTokenizer } from "@rowsncolumns/calculator";
2
+ import { CellXfsRegistry, deriveEffectiveNumberFormatFromFormula, createFormattedValue, detectValueType, } from "@rowsncolumns/spreadsheet-state";
3
+ import { getCellEffectiveValue, getCellFormattedValue, getCellUserEnteredFormat, getCellUserEnteredValue, getExtendedValueBool, getExtendedValueFormula, getExtendedValueNumber, getExtendedValueString, isNil, } from "@rowsncolumns/utils";
4
+ const isStyleRef = (value) => !!value && typeof value === "object" && ("sid" in value);
5
+ import * as XLSX from "xlsx";
6
+ import { isInvalidDataValidationError } from "./exporter/invalid-data-validation";
7
+ import { createDownloadableFile } from "./helpers";
8
+ const cellHasFormula = (cell) => {
9
+ if (!cell)
10
+ return false;
11
+ return !!getExtendedValueFormula(getCellUserEnteredValue(cell));
12
+ };
13
+ const resolveCellNumberFormat = (cell) => {
14
+ if (!cell)
15
+ return undefined;
16
+ const uf = getCellUserEnteredFormat(cell);
17
+ if (!uf || isStyleRef(uf))
18
+ return undefined;
19
+ return uf.numberFormat ?? undefined;
20
+ };
21
+ const deriveFormulaCellFv = (cell, rowIndex, columnIndex, ctx) => {
22
+ const ev = getCellEffectiveValue(cell);
23
+ if (!ev)
24
+ return undefined;
25
+ const errorValue = ev.ev;
26
+ // The data-validation Invalid marker is UI-only — never render it as an
27
+ // error; fall through to the cell's real value below.
28
+ if (errorValue && !isInvalidDataValidationError(errorValue)) {
29
+ return errorValue.name ?? "#ERROR!";
30
+ }
31
+ // Prefer uf.numberFormat; fall back to derivation from precedents.
32
+ let numberFormat = resolveCellNumberFormat(cell);
33
+ if (!numberFormat) {
34
+ const formula = getExtendedValueFormula(getCellUserEnteredValue(cell));
35
+ if (formula && ctx.sheetData) {
36
+ const sheetIdByName = new Map();
37
+ for (const s of ctx.sheets ?? []) {
38
+ if (s?.title)
39
+ sheetIdByName.set(s.title, s.sheetId);
40
+ }
41
+ // Real CellXfsRegistry so the helper can resolve precedent cells
42
+ // whose `uf` is a `{ sid }` style reference.
43
+ const cellXfsRegistry = ctx.cellXfs
44
+ ? new CellXfsRegistry(ctx.cellXfs)
45
+ : undefined;
46
+ numberFormat =
47
+ deriveEffectiveNumberFormatFromFormula(formula, ctx.sheetId, rowIndex, columnIndex, ctx.sheetData, (input) => defaultTokenizer(input), (name) => sheetIdByName.get(name) ?? ctx.sheetId, ctx.locale, cellXfsRegistry, undefined, getExtendedValueNumber(ev) ?? null) ?? undefined;
48
+ }
49
+ }
50
+ const value = getExtendedValueNumber(ev) ??
51
+ getExtendedValueString(ev) ??
52
+ getExtendedValueBool(ev);
53
+ if (value == null)
54
+ return undefined;
55
+ const valueType = detectValueType(value, ctx.locale) ?? "stringValue";
56
+ return (createFormattedValue(value, valueType, numberFormat?.pattern ?? "General", ctx.locale) ?? String(value));
57
+ };
58
+ const getCellFormattedValueInternal = (cell, rowIndex, columnIndex, sharedStrings, derivationContext) => {
59
+ const sharedStringIndex = cell?.ss;
60
+ const sharedStringValue = !isNil(sharedStringIndex) && sharedStrings
61
+ ? sharedStrings.get(String(sharedStringIndex))
62
+ : undefined;
63
+ if (sharedStringValue != null) {
64
+ // Rich shared-string entries (`{ text, runs }`) collapse to their
65
+ // plain text in CSV — formatting can't survive the format anyway.
66
+ return typeof sharedStringValue === "string"
67
+ ? sharedStringValue
68
+ : sharedStringValue.text;
69
+ }
70
+ const formattedValue = getCellFormattedValue(cell);
71
+ if (formattedValue != null) {
72
+ return formattedValue;
73
+ }
74
+ // Formula cells no longer persist `fv`. If the caller provided
75
+ // derivation context, compute it on the fly.
76
+ if (cellHasFormula(cell) && derivationContext) {
77
+ return deriveFormulaCellFv(cell, rowIndex, columnIndex, derivationContext);
78
+ }
79
+ return undefined;
80
+ };
81
+ /**
82
+ * Create csv string from sheetData using XLSX
83
+ * @param rowData
84
+ * @param config
85
+ * @returns
86
+ */
87
+ export const createCSVFromSheetData = (rowData, sharedStrings, config, derivationContext) => {
88
+ const rowCount = rowData?.length ?? 0;
89
+ // First pass: find max column with actual data to avoid trailing commas
90
+ let maxColumn = 0;
91
+ for (let rowIndex = 1; rowIndex <= rowCount; rowIndex++) {
92
+ const rowValues = rowData[rowIndex]?.values;
93
+ if (rowValues) {
94
+ for (let col = rowValues.length - 1; col >= 1; col--) {
95
+ if (rowValues[col] != null) {
96
+ maxColumn = Math.max(maxColumn, col);
97
+ break;
98
+ }
99
+ }
100
+ }
101
+ }
102
+ const worksheetData = [];
103
+ for (let rowIndex = 1; rowIndex <= rowCount; rowIndex++) {
104
+ const rowValues = rowData[rowIndex]?.values;
105
+ const rowCells = [];
106
+ for (let columnIndex = 1; columnIndex <= maxColumn; columnIndex++) {
107
+ const cell = rowValues?.[columnIndex];
108
+ rowCells.push((getCellFormattedValueInternal(cell, rowIndex, columnIndex, sharedStrings, derivationContext) ?? ""));
109
+ }
110
+ worksheetData.push(rowCells);
111
+ }
112
+ // Create worksheet from 2D array
113
+ const worksheet = XLSX.utils.aoa_to_sheet(worksheetData);
114
+ // Convert to CSV string
115
+ return XLSX.utils.sheet_to_csv(worksheet, {
116
+ FS: config?.delimiter || ",", // Field separator
117
+ RS: "\n", // Record separator
118
+ skipHidden: true,
119
+ });
120
+ };
121
+ export const exportToCSV = ({ filename, rowData, sharedStrings, config, derivationContext, }) => {
122
+ const csv = createCSVFromSheetData(rowData, sharedStrings, config, derivationContext);
123
+ const content = config?.includeBom ? "\uFEFF" + csv : csv;
124
+ const blob = new Blob([content], { type: "text/csv;charset=utf-8;" });
125
+ return createDownloadableFile(`${filename}.csv`, blob);
126
+ };
@@ -0,0 +1,16 @@
1
+ import { Observable } from "rxjs";
2
+ import type { CsvWorkerResponse } from "./csv-parser/types";
3
+ export declare const createCSVImportWorker: (file: File | ArrayBuffer, options: {
4
+ pageSize: number;
5
+ startRowIndex: number;
6
+ startColumnIndex: number;
7
+ preserveFormatting?: boolean;
8
+ locale?: string;
9
+ enableSharedStrings?: boolean;
10
+ enableCellXfsRegistry?: boolean;
11
+ enableBackpressure?: boolean;
12
+ }) => {
13
+ observable: Observable<CsvWorkerResponse>;
14
+ sendMessage: (message: any) => void;
15
+ };
16
+ //# sourceMappingURL=csv-import-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-import-worker.d.ts","sourceRoot":"","sources":["../../csv-import-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,MAAM,CAAC;AAE3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAiB5D,eAAO,MAAM,qBAAqB,GAChC,MAAM,IAAI,GAAG,WAAW,EACxB,SAAS;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;;2BAmD6B,GAAG;CAQlC,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { Observable, Subject } from "rxjs";
2
+ import { CsvRequestType, CsvResponseType } from "./csv-parser/types";
3
+ const getWorkerErrorMessage = (error) => {
4
+ if (error instanceof ErrorEvent) {
5
+ const parts = [error.message || "Worker runtime error"];
6
+ if (error.filename) {
7
+ const line = error.lineno ? `:${error.lineno}` : "";
8
+ const col = error.colno ? `:${error.colno}` : "";
9
+ parts.push(`(${error.filename}${line}${col})`);
10
+ }
11
+ return parts.join(" ");
12
+ }
13
+ return "Worker failed to load or crashed. Check worker URL resolution and browser console/network logs.";
14
+ };
15
+ export const createCSVImportWorker = (file, options) => {
16
+ // Hosts whose bundlers can't resolve the `new URL(...)` worker specifier
17
+ // (e.g. turbopack) can supply their own worker constructor via the global.
18
+ const workerFactories = globalThis.__ATHENA_TOOLKIT_WORKER_FACTORIES;
19
+ const worker = workerFactories?.csv?.() ??
20
+ new Worker(new URL("@rowsncolumns/toolkit/csv-worker", import.meta.url), {
21
+ type: "module",
22
+ });
23
+ const subject = new Subject();
24
+ worker.onmessage = (e) => {
25
+ subject.next(e.data);
26
+ };
27
+ worker.onerror = (error) => {
28
+ subject.next({
29
+ responseType: CsvResponseType.ERROR,
30
+ error: getWorkerErrorMessage(error),
31
+ });
32
+ subject.complete();
33
+ };
34
+ worker.postMessage({
35
+ requestType: CsvRequestType.PARSE_CSV,
36
+ file,
37
+ pageSize: options.pageSize,
38
+ startRowIndex: options.startRowIndex,
39
+ startColumnIndex: options.startColumnIndex,
40
+ preserveFormatting: options.preserveFormatting,
41
+ locale: options.locale,
42
+ enableSharedStrings: options.enableSharedStrings,
43
+ enableCellXfsRegistry: options.enableCellXfsRegistry,
44
+ enableBackpressure: options.enableBackpressure,
45
+ });
46
+ const observable = new Observable((observer) => {
47
+ const subscription = subject.subscribe(observer);
48
+ return () => {
49
+ subscription.unsubscribe();
50
+ worker.terminate();
51
+ };
52
+ });
53
+ const sendMessage = (message) => {
54
+ worker.postMessage(message);
55
+ };
56
+ return {
57
+ observable,
58
+ sendMessage,
59
+ };
60
+ };
@@ -0,0 +1,38 @@
1
+ import type { CellData } from "@rowsncolumns/spreadsheet";
2
+ import type { RowData } from "@rowsncolumns/common-types";
3
+ type BomEncoding = "utf-8" | "utf-16le" | "utf-16be";
4
+ /**
5
+ * Sniff a byte-order mark at the start of a CSV byte stream.
6
+ * Returns the encoding the BOM declares, or `undefined` when no BOM
7
+ * is present (in which case bytes are treated as UTF-8).
8
+ */
9
+ export declare const detectCSVBomEncoding: (bytes: Uint8Array) => BomEncoding | undefined;
10
+ /**
11
+ * Parse csv string into a 2d array
12
+ * https://stackoverflow.com/a/14991797
13
+ * @param str
14
+ * @returns
15
+ */
16
+ export declare const parseCSV: (input: string | File) => Promise<string[][] | undefined>;
17
+ /**
18
+ * Create sheet data from csv string
19
+ * @param csv
20
+ * @param delimiter
21
+ * @returns
22
+ */
23
+ export declare const createRowDataFromCSVString: <T extends CellData>(csv: string | File, preserveFormatting: boolean | undefined, locale: string | undefined) => Promise<RowData<T>[]>;
24
+ /**
25
+ * Parse CSV file object
26
+ * @param file
27
+ * @returns
28
+ */
29
+ export declare const createRowDataFromCSVFile: <T extends CellData>(file: File, preserveFormatting: boolean | undefined, locale: string | undefined) => Promise<RowData<T>[]>;
30
+ /**
31
+ * Create sheet data from csv string
32
+ * @param csv
33
+ * @param delimiter
34
+ * @returns
35
+ */
36
+ export declare const createCellDataArrayFromCSVString: <T extends CellData>(csv: string, locale: string | undefined) => Promise<T[][]>;
37
+ export {};
38
+ //# sourceMappingURL=csv-import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-import.d.ts","sourceRoot":"","sources":["../../csv-import.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAK1D,KAAK,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAC/B,OAAO,UAAU,KAChB,WAAW,GAAG,SAchB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,OAAO,MAAM,GAAG,IAAI,KACnB,OAAO,CAAC,MAAM,EAAE,EAAE,GAAG,SAAS,CAoChC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,GAAU,CAAC,SAAS,QAAQ,EACjE,KAAK,MAAM,GAAG,IAAI,EAClB,uCAAyB,EACzB,QAAQ,MAAM,GAAG,SAAS,0BA+B3B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GAAU,CAAC,SAAS,QAAQ,EAC/D,MAAM,IAAI,EACV,uCAAyB,EACzB,QAAQ,MAAM,GAAG,SAAS,0BACwC,CAAC;AAErE;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,GAAU,CAAC,SAAS,QAAQ,EACvE,KAAK,MAAM,EACX,QAAQ,MAAM,GAAG,SAAS,mBAuB3B,CAAC"}