@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,8 @@
1
+ import type { SpreadsheetTheme } from "@rowsncolumns/spreadsheet";
2
+ /**
3
+ * Generates Excel theme XML from SpreadsheetTheme
4
+ * @param theme - The spreadsheet theme object
5
+ * @returns XML string for Excel theme
6
+ */
7
+ export declare function generateThemeXml(theme: SpreadsheetTheme): string;
8
+ //# sourceMappingURL=theme-xml-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-xml-generator.d.ts","sourceRoot":"","sources":["../../../helpers/theme-xml-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAWlE;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAqBhE"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Converts a hex color to RGB format without the # prefix
3
+ * @param hexColor - Hex color string (e.g., "#5B9BD5")
4
+ * @returns RGB color string without # (e.g., "5B9BD5")
5
+ */
6
+ function hexToRgb(hexColor) {
7
+ return hexColor.replace("#", "").toUpperCase();
8
+ }
9
+ /**
10
+ * Generates Excel theme XML from SpreadsheetTheme
11
+ * @param theme - The spreadsheet theme object
12
+ * @returns XML string for Excel theme
13
+ */
14
+ export function generateThemeXml(theme) {
15
+ const { name, primaryFontFamily, themeColors } = theme;
16
+ // Heading (major) typeface. Themes imported before headingFontFamily
17
+ // existed carry only primaryFontFamily — write it to both slots, the
18
+ // prior behavior.
19
+ const headingFontFamily = theme.headingFontFamily || primaryFontFamily;
20
+ // Map theme colors to Excel color scheme elements
21
+ const text1 = hexToRgb(themeColors.text1 || "#000000");
22
+ const background1 = hexToRgb(themeColors.background1 || "#FFFFFF");
23
+ const text2 = hexToRgb(themeColors.text2 || "#44546A");
24
+ const background2 = hexToRgb(themeColors.background2 || "#E7E6E6");
25
+ const accent1 = hexToRgb(themeColors.accent1 || "#5B9BD5");
26
+ const accent2 = hexToRgb(themeColors.accent2 || "#ED7D31");
27
+ const accent3 = hexToRgb(themeColors.accent3 || "#A5A5A5");
28
+ const accent4 = hexToRgb(themeColors.accent4 || "#FFC000");
29
+ const accent5 = hexToRgb(themeColors.accent5 || "#4472C4");
30
+ const accent6 = hexToRgb(themeColors.accent6 || "#70AD47");
31
+ const hyperlink = hexToRgb(themeColors.hyperlink || "#0563C1");
32
+ return `<?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="${name}"><a:themeElements><a:clrScheme name="${name}"><a:dk1><a:srgbClr val="${text1}"/></a:dk1><a:lt1><a:srgbClr val="${background1}"/></a:lt1><a:dk2><a:srgbClr val="${text2}"/></a:dk2><a:lt2><a:srgbClr val="${background2}"/></a:lt2><a:accent1><a:srgbClr val="${accent1}"/></a:accent1><a:accent2><a:srgbClr val="${accent2}"/></a:accent2><a:accent3><a:srgbClr val="${accent3}"/></a:accent3><a:accent4><a:srgbClr val="${accent4}"/></a:accent4><a:accent5><a:srgbClr val="${accent5}"/></a:accent5><a:accent6><a:srgbClr val="${accent6}"/></a:accent6><a:hlink><a:srgbClr val="${hyperlink}"/></a:hlink><a:folHlink><a:srgbClr val="${hyperlink}"/></a:folHlink></a:clrScheme><a:fontScheme name="${name}"><a:majorFont><a:latin typeface="${headingFontFamily}"/><a:ea typeface="${headingFontFamily}"/><a:cs typeface="${headingFontFamily}"/></a:majorFont><a:minorFont><a:latin typeface="${primaryFontFamily}"/><a:ea typeface="${primaryFontFamily}"/><a:cs typeface="${primaryFontFamily}"/></a:minorFont></a:fontScheme><a:fmtScheme name="${name}"><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>`;
33
+ }
@@ -0,0 +1,34 @@
1
+ import type { CellInterface, GridRange } from "@rowsncolumns/common-types";
2
+ export declare const formulaToRelativeReference: (formula: string | undefined, sourceCell: CellInterface, destinationCell: CellInterface, options?: {
3
+ exclusionRange?: GridRange;
4
+ ignoreCircular?: boolean;
5
+ }) => string | undefined;
6
+ export declare const imageUrlToBase64: (imageUrl: string) => Promise<string | undefined>;
7
+ export declare const createDownloadableFile: (filename: string, urlOrBlob: Blob | string) => string | Blob | undefined;
8
+ export declare const toArrayBuffer: (data: ArrayBuffer | Uint8Array) => ArrayBuffer;
9
+ export declare const charsToPixel: (chars: number) => number;
10
+ export declare const pixelToCharacters: (px: number) => number;
11
+ export declare const columnCharsToPixel: (chars: number) => number;
12
+ export declare const columnPixelToChars: (pixel: number) => number;
13
+ /**
14
+ * Get range from address reference with minimal processing
15
+ */
16
+ export declare function getRangeFromAddressRef(addressRef: string | undefined): {
17
+ startRowIndex: number;
18
+ startColumnIndex: number;
19
+ endRowIndex: number;
20
+ endColumnIndex: number;
21
+ } | undefined;
22
+ /**
23
+ * Checks if a File object is an Excel file
24
+ * @param file - The File object to check
25
+ * @returns boolean - true if the file is an Excel file, false otherwise
26
+ */
27
+ export declare function isExcelFile(file: File): boolean;
28
+ /**
29
+ * Checks if a File object is a CSV file
30
+ * @param file - The File object to check
31
+ * @returns boolean - true if the file is a CSV file, false otherwise
32
+ */
33
+ export declare function isCSVFile(file: File): boolean;
34
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA+B3E,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,GAAG,SAAS,EAC3B,YAAY,aAAa,EACzB,iBAAiB,aAAa,EAC9B,UAAU;IACR,cAAc,CAAC,EAAE,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,KACA,MAAM,GAAG,SA8BX,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,GAAG,SAAS,CAiB5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,UAAU,MAAM,EAChB,WAAW,IAAI,GAAG,MAAM,8BAazB,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,WAAW,GAAG,UAAU,KAAG,WAO9D,CAAC;AAIF,eAAO,MAAM,YAAY,GAAI,OAAO,MAAM,WAAiC,CAAC;AAC5E,eAAO,MAAM,iBAAiB,GAAI,IAAI,MAAM,WAA+B,CAAC;AAoB5E,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,WACrB,CAAC;AAE5B,eAAO,MAAM,kBAAkB,GAAI,OAAO,MAAM,WAClB,CAAC;AAE/B;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS;;;;;cAwBpE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAsB/C;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAe7C"}
@@ -0,0 +1,182 @@
1
+ import { addressToCell, canUseDOM } from "@rowsncolumns/utils";
2
+ // ---- Formula helpers ----
3
+ import { alpha2number, number2Alpha } from "@rowsncolumns/utils";
4
+ const CELL_ADDR_RE = /(?:'[^']+'!?|[^'!\s]+!?)?(\$?[A-Z]+\$?\d+)(?::(\$?[A-Z]+\$?\d+))?/g;
5
+ const parseAddr = (addr) => {
6
+ const m = /^(\$?)([A-Z]+)(\$?)(\d+)$/.exec(addr);
7
+ if (!m)
8
+ return null;
9
+ const [, absCol, colAlpha, absRow, rowStr] = m;
10
+ return {
11
+ col: alpha2number(colAlpha),
12
+ row: parseInt(rowStr, 10),
13
+ absCol: absCol === "$",
14
+ absRow: absRow === "$",
15
+ };
16
+ };
17
+ const formatAddr = (row, col, absCol, absRow) => {
18
+ const colAlpha = number2Alpha(Math.max(0, col - 1));
19
+ const rowNum = Math.max(1, row);
20
+ return `${absCol ? "$" : ""}${colAlpha}${absRow ? "$" : ""}${rowNum}`;
21
+ };
22
+ export const formulaToRelativeReference = (formula, sourceCell, destinationCell, options) => {
23
+ if (!formula)
24
+ return formula;
25
+ if (sourceCell.rowIndex === destinationCell.rowIndex &&
26
+ sourceCell.columnIndex === destinationCell.columnIndex) {
27
+ return formula;
28
+ }
29
+ const dRow = destinationCell.rowIndex - sourceCell.rowIndex;
30
+ const dCol = destinationCell.columnIndex - sourceCell.columnIndex;
31
+ return formula.replace(CELL_ADDR_RE, (match, left, right) => {
32
+ // Only adjust the A1 parts, keep any sheet prefixes as-is
33
+ const adjustOne = (addr) => {
34
+ const p = parseAddr(addr);
35
+ if (!p)
36
+ return addr;
37
+ const newRow = p.absRow ? p.row : p.row + dRow;
38
+ const newCol = p.absCol ? p.col : p.col + dCol;
39
+ return formatAddr(newRow, newCol, p.absCol, p.absRow);
40
+ };
41
+ if (right) {
42
+ // Range A1:B2
43
+ const leftAdjusted = adjustOne(left);
44
+ const rightAdjusted = adjustOne(right);
45
+ return match.replace(left, leftAdjusted).replace(right, rightAdjusted);
46
+ }
47
+ const singleAdjusted = adjustOne(left);
48
+ return match.replace(left, singleAdjusted);
49
+ });
50
+ };
51
+ export const imageUrlToBase64 = async (imageUrl) => {
52
+ return new Promise((resolve, reject) => {
53
+ const xhr = new XMLHttpRequest();
54
+ xhr.onload = function () {
55
+ const reader = new FileReader();
56
+ reader.onloadend = function () {
57
+ resolve(reader.result);
58
+ };
59
+ reader.readAsDataURL(xhr.response);
60
+ };
61
+ xhr.onerror = function () {
62
+ reject();
63
+ };
64
+ xhr.open("GET", imageUrl);
65
+ xhr.responseType = "blob";
66
+ xhr.send();
67
+ });
68
+ };
69
+ export const createDownloadableFile = (filename, urlOrBlob) => {
70
+ if (!canUseDOM) {
71
+ return urlOrBlob;
72
+ }
73
+ const url = urlOrBlob instanceof Blob
74
+ ? window.URL.createObjectURL(urlOrBlob)
75
+ : urlOrBlob;
76
+ const anchor = document.createElement("a");
77
+ anchor.href = url;
78
+ anchor.download = filename;
79
+ anchor.dispatchEvent(new MouseEvent("click"));
80
+ };
81
+ export const toArrayBuffer = (data) => {
82
+ if (data instanceof Uint8Array) {
83
+ const bytes = new Uint8Array(data.byteLength);
84
+ bytes.set(data);
85
+ return bytes.buffer;
86
+ }
87
+ return data;
88
+ };
89
+ // 10 = 65 pixels
90
+ export const charsToPixel = (chars) => Math.ceil((96 / 72) * chars);
91
+ export const pixelToCharacters = (px) => Math.floor((72 / 96) * px);
92
+ // 33.25 (excels) = 265 (google sheets)
93
+ // export const dimensionToPixel = (chWidth: number) =>
94
+ // Math.ceil((265 / 33.25) * chWidth);
95
+ // export const pixelToDimension = (chWidth: number) =>
96
+ // Math.ceil((33.25 / 265) * chWidth);
97
+ // // const dimensionToPixel = (chWidth: number) => (72 / 30) * chWidth;
98
+ // Excel column-width / pixel conversion. Excel's rendered column box
99
+ // includes a 5-pixel padding around the MDW (max-digit-width, 7 px for
100
+ // Calibri 11), so the default width 8.43 renders at 64 px (8.43 × 7 + 5).
101
+ // We keep the +5 padding form so a round-trip pixels → width → pixels is
102
+ // an identity for the values Excel itself produces.
103
+ //
104
+ // pixels = floor(widthChars × 7 + 5)
105
+ // widthChars = (pixels − 5) / 7
106
+ //
107
+ // The "pure" ECMA-376 §18.3.1.13 formula omits the 5px padding and gives
108
+ // 59 for default-width columns instead of Excel's actual 64.
109
+ export const columnCharsToPixel = (chars) => Math.floor(chars * 7 + 5);
110
+ export const columnPixelToChars = (pixel) => Math.max(0, (pixel - 5) / 7);
111
+ /**
112
+ * Get range from address reference with minimal processing
113
+ */
114
+ export function getRangeFromAddressRef(addressRef) {
115
+ if (!addressRef)
116
+ return undefined;
117
+ try {
118
+ const cleanAddress = addressRef.replace(/\$/gi, "");
119
+ const [from, to] = cleanAddress.split(":");
120
+ const topBound = addressToCell(from);
121
+ if (!topBound)
122
+ return undefined;
123
+ // If no "to" part exists (single cell), use the same cell for both start and end
124
+ const bottomBound = to ? addressToCell(to) : topBound;
125
+ if (!bottomBound)
126
+ return undefined;
127
+ return {
128
+ startRowIndex: topBound.rowIndex,
129
+ startColumnIndex: topBound.columnIndex,
130
+ endRowIndex: bottomBound.rowIndex,
131
+ endColumnIndex: bottomBound.columnIndex,
132
+ };
133
+ }
134
+ catch (err) {
135
+ console.warn("Error parsing address reference:", err);
136
+ return undefined;
137
+ }
138
+ }
139
+ /**
140
+ * Checks if a File object is an Excel file
141
+ * @param file - The File object to check
142
+ * @returns boolean - true if the file is an Excel file, false otherwise
143
+ */
144
+ export function isExcelFile(file) {
145
+ const excelMimeTypes = [
146
+ "application/vnd.ms-excel", // .xls
147
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", // .xlsx
148
+ "application/vnd.ms-excel.sheet.binary.macroenabled.12", // .xlsb
149
+ "application/vnd.ms-excel.sheet.macroenabled.12", // .xlsm
150
+ "application/vnd.ms-excel.template.macroenabled.12", // .xltm
151
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.template", // .xltx
152
+ "application/vnd.oasis.opendocument.spreadsheet", // ods
153
+ ];
154
+ const excelExtensions = [".xls", ".xlsx", ".xlsb", ".xlsm", ".xltx", ".xltm"];
155
+ const fileType = file.type.toLowerCase();
156
+ // Check MIME type first
157
+ if (excelMimeTypes.includes(fileType)) {
158
+ return true;
159
+ }
160
+ // Fallback to file extension check (in case MIME type is not set correctly)
161
+ const fileName = file.name.toLowerCase();
162
+ return excelExtensions.some((ext) => fileName.endsWith(ext));
163
+ }
164
+ /**
165
+ * Checks if a File object is a CSV file
166
+ * @param file - The File object to check
167
+ * @returns boolean - true if the file is a CSV file, false otherwise
168
+ */
169
+ export function isCSVFile(file) {
170
+ const csvMimeTypes = [
171
+ "text/csv",
172
+ "application/csv",
173
+ "text/comma-separated-values",
174
+ ];
175
+ // Check MIME type first
176
+ if (csvMimeTypes.includes(file.type)) {
177
+ return true;
178
+ }
179
+ // Fallback to file extension check
180
+ const fileName = file.name.toLowerCase();
181
+ return fileName.endsWith(".csv");
182
+ }
@@ -0,0 +1,16 @@
1
+ export { createRowDataFromCSVFile, createRowDataFromCSVString, createCellDataArrayFromCSVString, parseCSV, } from "./csv-import";
2
+ export { createCSVFromSheetData, exportToCSV } from "./csv-export";
3
+ export { createRowDataFromFile, readImageFileAsDataUri, getImageDimensionsFromUrl, SUPPORTED_FILE_TYPES, } from "./parse";
4
+ export { exportToExcel } from "./excel-export";
5
+ export { createExcelFile } from "./exporter/xlsx/xlsx-export";
6
+ export { createODSFile, exportToODS } from "./ods-export";
7
+ export { createDownloadableFile, isCSVFile, isExcelFile } from "./helpers";
8
+ export { createExcelImportWorker } from "./excel-import-worker";
9
+ export { createExcelImportSession, type ExcelImportSession, type ExcelSessionLoadSheetOptions, type ExcelSessionOpenResult, type ExcelSessionOpenSuccess, type ExcelSessionPasswordRequired, type ExcelSessionSheetChunk, type ExcelSessionSheetComplete, } from "./excel-import-session";
10
+ export { createCSVImportWorker } from "./csv-import-worker";
11
+ export { RequestType, ResponseType, type WorkerRequest, type WorkerResponse, type ExternalLink, type SheetCatalogEntry, } from "./excel-parser/types";
12
+ export { CsvRequestType, CsvResponseType, type CsvWorkerRequest, type CsvWorkerResponse, } from "./csv-parser/types";
13
+ export { readExcelFile } from "./excel-parser/helpers";
14
+ export { WorkBook } from "./excel-parser/workbook";
15
+ export { hasPowerQueryParts, type PowerQueryCustomXmlItem, type PowerQueryParts, type PowerQueryTable, type PowerQueryTableColumn, } from "./power-query";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,gCAAgC,EAChC,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EACL,wBAAwB,EACxB,KAAK,kBAAkB,EACvB,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,4BAA4B,EACjC,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,eAAe,EACf,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,qBAAqB,GAC3B,MAAM,eAAe,CAAC"}
@@ -0,0 +1,15 @@
1
+ export { createRowDataFromCSVFile, createRowDataFromCSVString, createCellDataArrayFromCSVString, parseCSV, } from "./csv-import";
2
+ export { createCSVFromSheetData, exportToCSV } from "./csv-export";
3
+ export { createRowDataFromFile, readImageFileAsDataUri, getImageDimensionsFromUrl, SUPPORTED_FILE_TYPES, } from "./parse";
4
+ export { exportToExcel } from "./excel-export";
5
+ export { createExcelFile } from "./exporter/xlsx/xlsx-export";
6
+ export { createODSFile, exportToODS } from "./ods-export";
7
+ export { createDownloadableFile, isCSVFile, isExcelFile } from "./helpers";
8
+ export { createExcelImportWorker } from "./excel-import-worker";
9
+ export { createExcelImportSession, } from "./excel-import-session";
10
+ export { createCSVImportWorker } from "./csv-import-worker";
11
+ export { RequestType, ResponseType, } from "./excel-parser/types";
12
+ export { CsvRequestType, CsvResponseType, } from "./csv-parser/types";
13
+ export { readExcelFile } from "./excel-parser/helpers";
14
+ export { WorkBook } from "./excel-parser/workbook";
15
+ export { hasPowerQueryParts, } from "./power-query";
@@ -0,0 +1,2 @@
1
+ export declare const IndexedColors: readonly string[];
2
+ //# sourceMappingURL=indexed-colors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexed-colors.d.ts","sourceRoot":"","sources":["../../indexed-colors.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,mBAyExB,CAAC"}
@@ -0,0 +1,75 @@
1
+ // Excel indexed colors mapping used for legacy color references
2
+ export const IndexedColors = Object.freeze([
3
+ // 0-7
4
+ "#000000",
5
+ "#FFFFFF",
6
+ "#FF0000",
7
+ "#00FF00",
8
+ "#0000FF",
9
+ "#FFFF00",
10
+ "#FF00FF",
11
+ "#00FFFF",
12
+ // 8-15
13
+ "#000000",
14
+ "#FFFFFF",
15
+ "#FF0000",
16
+ "#00FF00",
17
+ "#0000FF",
18
+ "#FFFF00",
19
+ "#FF00FF",
20
+ "#00FFFF",
21
+ // 16-23
22
+ "#800000",
23
+ "#008000",
24
+ "#000080",
25
+ "#808000",
26
+ "#800080",
27
+ "#008080",
28
+ "#C0C0C0",
29
+ "#808080",
30
+ // 24-31
31
+ "#9999FF",
32
+ "#993366",
33
+ "#FFFFCC",
34
+ "#CCFFFF",
35
+ "#660066",
36
+ "#FF8080",
37
+ "#0066CC",
38
+ "#CCCCFF",
39
+ // 32-39
40
+ "#000080",
41
+ "#FF00FF",
42
+ "#FFFF00",
43
+ "#00FFFF",
44
+ "#800080",
45
+ "#800000",
46
+ "#008080",
47
+ "#0000FF",
48
+ // 40-47
49
+ "#00CCFF",
50
+ "#CCFFFF",
51
+ "#CCFFCC",
52
+ "#FFFF99",
53
+ "#99CCFF",
54
+ "#FF99CC",
55
+ "#CC99FF",
56
+ "#FFCC99",
57
+ // 48-55
58
+ "#3366FF",
59
+ "#33CCCC",
60
+ "#99CC00",
61
+ "#FFCC00",
62
+ "#FF9900",
63
+ "#FF6600",
64
+ "#666699",
65
+ "#969696",
66
+ // 56-63
67
+ "#003366",
68
+ "#339966",
69
+ "#003300",
70
+ "#333300",
71
+ "#993300",
72
+ "#993366",
73
+ "#333399",
74
+ "#333333",
75
+ ]);
@@ -0,0 +1,24 @@
1
+ import type { CellData, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, EmbeddedObject, NamedRange, Sheet, SpreadsheetTheme, TableView } from "@rowsncolumns/spreadsheet";
2
+ import type { Citation, IterativeCalculationOptions } from "@rowsncolumns/common-types";
3
+ import type { CellXfs, SharedStrings } from "@rowsncolumns/spreadsheet-state";
4
+ import { type SheetData } from "@rowsncolumns/common-types";
5
+ export type ExportOdsProps<S extends Sheet, T extends CellData, C extends Citation> = {
6
+ sheets: S[];
7
+ sheetData: SheetData<T>;
8
+ sharedStrings?: SharedStrings;
9
+ tables?: TableView[];
10
+ conditionalFormats?: ConditionalFormatRule[];
11
+ dataValidations?: DataValidationRuleRecord[];
12
+ cellXfs?: CellXfs | null;
13
+ theme?: SpreadsheetTheme;
14
+ embeds?: EmbeddedObject[];
15
+ charts?: EmbeddedChart[];
16
+ namedRanges?: NamedRange[];
17
+ iterativeCalculationOptions?: IterativeCalculationOptions;
18
+ citations?: Citation[];
19
+ };
20
+ export declare const createODSFile: <S extends Sheet, T extends CellData, C extends Citation>(props: ExportOdsProps<S, T, C>) => Promise<ArrayBuffer>;
21
+ export declare const exportToODS: <S extends Sheet, T extends CellData, C extends Citation>({ filename, ...rest }: ExportOdsProps<S, T, C> & {
22
+ filename: string;
23
+ }) => Promise<string | Blob | undefined>;
24
+ //# sourceMappingURL=ods-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ods-export.d.ts","sourceRoot":"","sources":["../../ods-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,cAAc,EACd,UAAU,EACV,KAAK,EACL,gBAAgB,EAChB,SAAS,EACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,QAAQ,EACR,2BAA2B,EAC5B,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAK5D,MAAM,MAAM,cAAc,CACxB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,IAChB;IACF,MAAM,EAAE,CAAC,EAAE,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;IAC7C,eAAe,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC7C,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,MAAM,CAAC,EAAE,cAAc,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;IAC3B,2BAA2B,CAAC,EAAE,2BAA2B,CAAC;IAC1D,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,aAAa,GACxB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,EAElB,OAAO,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,yBAG/B,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,CAAC,SAAS,KAAK,EACf,CAAC,SAAS,QAAQ,EAClB,CAAC,SAAS,QAAQ,EAClB,uBAGC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,uCAMhD,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { createODSFile as createOdsExport } from "./exporter/ods/ods-export";
2
+ import { createDownloadableFile, toArrayBuffer } from "./helpers";
3
+ export const createODSFile = async (props) => {
4
+ return createOdsExport(props);
5
+ };
6
+ export const exportToODS = async ({ filename, ...rest }) => {
7
+ const buffer = await createOdsExport(rest);
8
+ const blob = new Blob([toArrayBuffer(buffer)], {
9
+ type: "application/vnd.oasis.opendocument.spreadsheet",
10
+ });
11
+ return createDownloadableFile(`${filename}.ods`, blob);
12
+ };
@@ -0,0 +1,24 @@
1
+ import type { CellData } from "@rowsncolumns/spreadsheet";
2
+ export declare enum SUPPORTED_FILE_TYPES {
3
+ CSV = "text/csv",
4
+ CSV_TAB_SEPARATED = "text/tab-separated-values",
5
+ XLS = "application/vnd.ms-excel",
6
+ EXCEL = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
7
+ XLSB = "application/vnd.ms-excel.sheet.binary.macroenabled.12",
8
+ XLSM = "application/vnd.ms-excel.sheet.macroenabled.12",
9
+ ODS = "application/vnd.oasis.opendocument.spreadsheet"
10
+ }
11
+ /**
12
+ * Parse CSV file object
13
+ * @param file
14
+ * @returns
15
+ */
16
+ export declare const createRowDataFromFile: <T extends CellData>(file: File, locale: string) => Promise<import("@rowsncolumns/common-types").RowData<T>[]>;
17
+ /**
18
+ * Read file as data URI
19
+ * @param file
20
+ * @returns
21
+ */
22
+ export declare const readImageFileAsDataUri: (file: File) => Promise<[uri: string, width: number, height: number]>;
23
+ export declare const getImageDimensionsFromUrl: (url: string) => Promise<[width: number, height: number] | undefined>;
24
+ //# sourceMappingURL=parse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAI1D,oBAAY,oBAAoB;IAC9B,GAAG,aAAa;IAChB,iBAAiB,8BAA8B;IAC/C,GAAG,6BAA6B;IAChC,KAAK,sEAAsE;IAC3E,IAAI,0DAA0D;IAC9D,IAAI,mDAAmD;IACvD,GAAG,mDAAmD;CACvD;AAED;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAU,CAAC,SAAS,QAAQ,EAC5D,MAAM,IAAI,EACV,QAAQ,MAAM,+DAWf,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAU,MAAM,IAAI,0DAmBtD,CAAC;AAEF,eAAO,MAAM,yBAAyB,GACpC,KAAK,MAAM,KACV,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAQrD,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { createRowDataFromCSVFile } from "./csv-import";
2
+ export var SUPPORTED_FILE_TYPES;
3
+ (function (SUPPORTED_FILE_TYPES) {
4
+ SUPPORTED_FILE_TYPES["CSV"] = "text/csv";
5
+ SUPPORTED_FILE_TYPES["CSV_TAB_SEPARATED"] = "text/tab-separated-values";
6
+ SUPPORTED_FILE_TYPES["XLS"] = "application/vnd.ms-excel";
7
+ SUPPORTED_FILE_TYPES["EXCEL"] = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
8
+ SUPPORTED_FILE_TYPES["XLSB"] = "application/vnd.ms-excel.sheet.binary.macroenabled.12";
9
+ SUPPORTED_FILE_TYPES["XLSM"] = "application/vnd.ms-excel.sheet.macroenabled.12";
10
+ SUPPORTED_FILE_TYPES["ODS"] = "application/vnd.oasis.opendocument.spreadsheet";
11
+ })(SUPPORTED_FILE_TYPES || (SUPPORTED_FILE_TYPES = {}));
12
+ /**
13
+ * Parse CSV file object
14
+ * @param file
15
+ * @returns
16
+ */
17
+ export const createRowDataFromFile = async (file, locale) => {
18
+ const type = file.type;
19
+ switch (type) {
20
+ case SUPPORTED_FILE_TYPES.CSV:
21
+ case SUPPORTED_FILE_TYPES.CSV_TAB_SEPARATED:
22
+ return createRowDataFromCSVFile(file, true, locale);
23
+ default:
24
+ throw "File type is not support";
25
+ }
26
+ };
27
+ /**
28
+ * Read file as data URI
29
+ * @param file
30
+ * @returns
31
+ */
32
+ export const readImageFileAsDataUri = async (file) => {
33
+ let resolver;
34
+ const sheetPromise = new Promise((resolve) => (resolver = resolve));
35
+ const reader = new FileReader();
36
+ reader.onload = async () => {
37
+ const image = new Image();
38
+ image.onload = () => {
39
+ resolver([reader.result, image.width, image.height]);
40
+ };
41
+ image.src = reader.result;
42
+ };
43
+ /* Start reading the file */
44
+ reader.readAsDataURL(file);
45
+ return sheetPromise;
46
+ };
47
+ export const getImageDimensionsFromUrl = async (url) => {
48
+ return new Promise((resolve, reject) => {
49
+ const img = new Image();
50
+ img.onload = () => resolve([img.naturalWidth, img.naturalHeight]);
51
+ img.onerror = (err) => reject(err);
52
+ img.crossOrigin = "anonymous";
53
+ img.src = url;
54
+ });
55
+ };
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Power Query preservation envelope — the workbook's Get & Transform machinery, preserved as
3
+ * verbatim part XML so a round-tripped file keeps its queries. The JS mirror of the Rust engine's
4
+ * `LoadDocument.powerQuery` wire shape (`rnc-import`'s `queries` module / `rnc-export`'s
5
+ * `inject_power_query`), so an envelope read by either importer can be re-emitted by either
6
+ * exporter.
7
+ *
8
+ * Excel persists Power Query across three part families, none of which the engine evaluates:
9
+ * - `customXml/item{N}.xml` — the `<DataMashup>` blob ([MS-QDEFF]: the M source for every query +
10
+ * its load metadata), paired with `customXml/itemProps{N}.xml`, related from `xl/workbook.xml`.
11
+ * - `xl/connections.xml` — one `<connection>` per loaded query (`Provider=Microsoft.Mashup.OleDb.1`).
12
+ * - `xl/queryTables/queryTable{N}.xml` — binds a connection to the ListObject it fills; related FROM
13
+ * the table part, whose `<tableColumn>`s carry `queryTableFieldId`s.
14
+ */
15
+ /** A preserved DataMashup `customXml` item + its `itemProps` part (verbatim XML). */
16
+ export type PowerQueryCustomXmlItem = {
17
+ itemXml: string;
18
+ propsXml?: string;
19
+ };
20
+ /** One `<tableColumn>` of the original query table (original `id` + `queryTableFieldId`). */
21
+ export type PowerQueryTableColumn = {
22
+ name: string;
23
+ /** The original `<tableColumn id=…>` — the queryTable part's `tableColumnId`s reference these. */
24
+ id: string;
25
+ queryTableFieldId?: string;
26
+ };
27
+ /** A preserved `queryTable` part plus its original table linkage (title match key + column ids). */
28
+ export type PowerQueryTable = {
29
+ tableTitle: string;
30
+ partXml: string;
31
+ columns: PowerQueryTableColumn[];
32
+ };
33
+ /** The whole preservation envelope. Every field optional — absent families were absent on import. */
34
+ export type PowerQueryParts = {
35
+ customXmlParts?: PowerQueryCustomXmlItem[];
36
+ connectionsXml?: string;
37
+ queryTables?: PowerQueryTable[];
38
+ };
39
+ /** Whether the envelope carries anything worth emitting. */
40
+ export declare const hasPowerQueryParts: (parts: PowerQueryParts | undefined | null) => parts is PowerQueryParts;
41
+ //# sourceMappingURL=power-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"power-query.d.ts","sourceRoot":"","sources":["../../power-query.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,qFAAqF;AACrF,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,6FAA6F;AAC7F,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,kGAAkG;IAClG,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,oGAAoG;AACpG,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AAEF,qGAAqG;AACrG,MAAM,MAAM,eAAe,GAAG;IAC5B,cAAc,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,eAAe,EAAE,CAAC;CACjC,CAAC;AAEF,4DAA4D;AAC5D,eAAO,MAAM,kBAAkB,GAC7B,OAAO,eAAe,GAAG,SAAS,GAAG,IAAI,KACxC,KAAK,IAAI,eAMT,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Power Query preservation envelope — the workbook's Get & Transform machinery, preserved as
3
+ * verbatim part XML so a round-tripped file keeps its queries. The JS mirror of the Rust engine's
4
+ * `LoadDocument.powerQuery` wire shape (`rnc-import`'s `queries` module / `rnc-export`'s
5
+ * `inject_power_query`), so an envelope read by either importer can be re-emitted by either
6
+ * exporter.
7
+ *
8
+ * Excel persists Power Query across three part families, none of which the engine evaluates:
9
+ * - `customXml/item{N}.xml` — the `<DataMashup>` blob ([MS-QDEFF]: the M source for every query +
10
+ * its load metadata), paired with `customXml/itemProps{N}.xml`, related from `xl/workbook.xml`.
11
+ * - `xl/connections.xml` — one `<connection>` per loaded query (`Provider=Microsoft.Mashup.OleDb.1`).
12
+ * - `xl/queryTables/queryTable{N}.xml` — binds a connection to the ListObject it fills; related FROM
13
+ * the table part, whose `<tableColumn>`s carry `queryTableFieldId`s.
14
+ */
15
+ /** Whether the envelope carries anything worth emitting. */
16
+ export const hasPowerQueryParts = (parts) => Boolean(parts &&
17
+ ((parts.customXmlParts?.length ?? 0) > 0 ||
18
+ parts.connectionsXml ||
19
+ (parts.queryTables?.length ?? 0) > 0));
@@ -0,0 +1,9 @@
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, type WorkerRequest, type WorkerResponse, } from "./excel-parser/types";
6
+ export { createCSVFromSheetData } from "./csv-export";
7
+ export { createODSFile } from "./ods-export";
8
+ export { createExcelFile } from "./exporter/xlsx/xlsx-export";
9
+ //# sourceMappingURL=server.d.ts.map
@@ -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