@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,407 @@
1
+ import { __read } from "tslib";
2
+ import { parse } from "@rowsncolumns/date-parser";
3
+ import { isAFormula, isNil, toDate, toSerial } from "@rowsncolumns/utils";
4
+ export var pattern_percent = "0%";
5
+ export var pattern_percent_decimal = "0.00%";
6
+ export var pattern_currency = '"$"#,##0';
7
+ export var pattern_currency_decimal = '"$"#,##0.00';
8
+ export var date_pattern = "mm/dd/yyyy";
9
+ export var time_pattern_base = "hh:mm:ss";
10
+ export var time_pattern = "hh:mm:ss AM/PM";
11
+ export var time_pattern_short = "h:mm AM/PM";
12
+ var CURRENCY_PATTERN = /^[£$€¥₹]\d+(?:[.,]\d{1,2})?$|^\d+(?:[.,]\d{1,2})?[£$€¥₹]$/;
13
+ var CURRENCY_GROUPING_CHARS = /[,\s]/g;
14
+ var NUMBER_CLEANUP_PATTERN = /[$,%]/gi;
15
+ var NUMBER_CONVERSION_PATTERN = /[^0-9.-]+/g;
16
+ var TRUE_UPPER = "TRUE";
17
+ var FALSE_UPPER = "FALSE";
18
+ var PERCENT_CHAR = "%";
19
+ var PATTERN_SEPARATOR = ";";
20
+ var DECIMAL_CLEANUP_REGEX = /[^0-9.,]/g;
21
+ var DECIMAL_SPLIT_REGEX = /[.]/;
22
+ // const THOUSAND_REGEX = /(\,[#,0]{3})/gi;
23
+ // const THOUSAND_PATTERN = ",##0";
24
+ var ISO_DATE_REGEX = /^(\d{4})[-/.](\d{2})[-/.](\d{2})$/;
25
+ var TIME_REGEX = {
26
+ FULL_WITH_MERIDIAN: /^(\d{1,2}):(\d{1,2}):(\d{1,2})\s*(AM|PM|a|p)$/i,
27
+ FULL: /^(\d{1,2}):(\d{1,2}):(\d{1,2})$/,
28
+ SHORT_WITH_MERIDIAN: /^(\d{1,2}):(\d{1,2})\s*(AM|PM)$/i,
29
+ SHORT: /^(\d{1,2}):(\d{1,2})$/,
30
+ };
31
+ var TIME_FORMATS = {
32
+ FULL_WITH_MERIDIAN: "hh:mm:ss AM/PM",
33
+ FULL: "hh:mm:ss",
34
+ SHORT_WITH_MERIDIAN: "hh:mm AM/PM",
35
+ SHORT: "hh:mm",
36
+ };
37
+ var DECIMAL_REGEX = new RegExp("(?<prefix>[\\d#,]+)(?<decimal>\\.)?(?<suffix>\\d{1,})?", "i");
38
+ export var isCurrency = function (value) {
39
+ if (value === void 0)
40
+ return false;
41
+ var text = String(value).trim();
42
+ var normalized = text.replace(CURRENCY_GROUPING_CHARS, "");
43
+ return CURRENCY_PATTERN.test(normalized);
44
+ };
45
+ export var isBoolean = function (value) {
46
+ if (typeof value === "boolean")
47
+ return true;
48
+ if (typeof value !== "string" && typeof value !== "number")
49
+ return false;
50
+ var upperValue = String(value).toUpperCase();
51
+ return upperValue === TRUE_UPPER || upperValue === FALSE_UPPER;
52
+ };
53
+ export var isPercentage = function (value) {
54
+ if (isNil(value))
55
+ return false;
56
+ var strValue = String(value).trim();
57
+ return strValue.endsWith(PERCENT_CHAR) || strValue.startsWith(PERCENT_CHAR);
58
+ };
59
+ export var cleanNumberValue = function (value) {
60
+ if (typeof value === "number")
61
+ return String(value);
62
+ if (isNil(value)) {
63
+ return "";
64
+ }
65
+ var trimmedValue = String(value).trim();
66
+ if (trimmedValue === "") {
67
+ return "";
68
+ }
69
+ return trimmedValue.replace(NUMBER_CLEANUP_PATTERN, "");
70
+ };
71
+ export var convertToNumber = function (text) {
72
+ if (typeof text === "number") {
73
+ return text;
74
+ }
75
+ return Number(String(text).replace(NUMBER_CONVERSION_PATTERN, ""));
76
+ };
77
+ export var createNumberValue = function (value, numFormatType, locale) {
78
+ if (isNil(value)) {
79
+ return undefined;
80
+ }
81
+ var isDate = numFormatType === "DATE";
82
+ var isDateTime = numFormatType === "DATE_TIME";
83
+ if (typeof value !== "boolean" && (isDate || isDateTime)) {
84
+ if (typeof value === "number") {
85
+ var dateValue_1 = createDateValueFromNumber(value);
86
+ if (!isNil(dateValue_1) && dateValue_1 instanceof Date) {
87
+ return toSerial(dateValue_1);
88
+ }
89
+ }
90
+ var dateValue = isDate
91
+ ? validateDate(value, locale)
92
+ : validateDateTime(value);
93
+ if (dateValue) {
94
+ var _a = dateValue.parts, year = _a.year, month = _a.month, day = _a.day, hour = _a.hour, minute = _a.minute, second = _a.second;
95
+ return toSerial(new Date(year, month, day, hour, minute, second, 0));
96
+ }
97
+ }
98
+ return convertToNumber(value);
99
+ };
100
+ export var createDateValueFromNumber = function (value) {
101
+ if (typeof value === "number") {
102
+ return toDate(value);
103
+ }
104
+ return value;
105
+ };
106
+ export var isNumber = function (value) {
107
+ var sanitizedValue = cleanNumberValue(value);
108
+ if (sanitizedValue === "") {
109
+ return false;
110
+ }
111
+ return !isNaN(Number(sanitizedValue));
112
+ };
113
+ var createZeros = function (len) {
114
+ return Array.from({ length: len })
115
+ .map(function () { return "0"; })
116
+ .join("");
117
+ };
118
+ export var getDecimalPlaces = function (value) {
119
+ var cleanedValue = value.replace(DECIMAL_CLEANUP_REGEX, "");
120
+ var parts = cleanedValue.split(DECIMAL_SPLIT_REGEX);
121
+ if (parts.length === 1) {
122
+ return 0;
123
+ }
124
+ var decimalPart = parts[parts.length - 1];
125
+ return decimalPart.length;
126
+ };
127
+ export var detectDecimalPattern = function (value, defaultPattern) {
128
+ if (defaultPattern === void 0) { defaultPattern = "#"; }
129
+ var str = String(value);
130
+ var hasThousands = str.indexOf(",") !== -1;
131
+ var decimalsLen = getDecimalPlaces(str);
132
+ var numValue = Number(str.replace(/[^0-9.-]/g, ""));
133
+ var needsLeadingZero = Math.abs(numValue) < 1;
134
+ var prefix = hasThousands ? "#,##0" : defaultPattern;
135
+ if (decimalsLen !== 0) {
136
+ if (needsLeadingZero && prefix === "#") {
137
+ prefix = "0";
138
+ }
139
+ return changeDecimals(prefix, decimalsLen, true);
140
+ }
141
+ return prefix;
142
+ };
143
+ export var changeDecimals = function (pattern, changeBy, delta) {
144
+ if (pattern === void 0) { pattern = ""; }
145
+ if (changeBy === void 0) { changeBy = 1; }
146
+ if (delta === void 0) { delta = true; }
147
+ var patterns = pattern.split(PATTERN_SEPARATOR);
148
+ return patterns
149
+ .map(function (p) {
150
+ var match = p.match(DECIMAL_REGEX);
151
+ if (match && match.groups) {
152
+ var _a = match.groups, decimal = _a.decimal, suffix = _a.suffix;
153
+ if (!decimal) {
154
+ var newDecimals = Math.max(changeBy, 0);
155
+ var zeros_1 = createZeros(newDecimals);
156
+ return p.replace(DECIMAL_REGEX, "$1$2".concat(zeros_1.length ? "." + zeros_1 : ""));
157
+ }
158
+ var newSuffix = 0;
159
+ if (suffix) {
160
+ newSuffix = Math.max(delta ? suffix.length + changeBy : changeBy, 0);
161
+ }
162
+ var zeros = createZeros(newSuffix);
163
+ return p.replace(DECIMAL_REGEX, "$1".concat(zeros.length ? "$2" + zeros : ""));
164
+ }
165
+ if (!p) {
166
+ var newDecimals = Math.max(changeBy, 0);
167
+ var zeros = createZeros(newDecimals);
168
+ return "0".concat(zeros.length ? "." + zeros : "");
169
+ }
170
+ return p;
171
+ })
172
+ .join(PATTERN_SEPARATOR);
173
+ };
174
+ export var validateDate = function (value, locale) {
175
+ if (typeof value === "number") {
176
+ var match = ISO_DATE_REGEX.exec(String(value));
177
+ if (match) {
178
+ var _a = __read(match, 4), yearStr = _a[1], monthStr = _a[2], dayStr = _a[3];
179
+ var year = Number(yearStr);
180
+ var month = Number(monthStr) - 1;
181
+ var day = Number(dayStr);
182
+ var dateValue_2 = new Date(year, month, day);
183
+ if (dateValue_2.getFullYear() === year &&
184
+ dateValue_2.getMonth() === month &&
185
+ dateValue_2.getDate() === Number(dayStr)) {
186
+ return {
187
+ format: "yyyy-mm-dd",
188
+ parts: {
189
+ year: year,
190
+ month: month,
191
+ day: day,
192
+ hour: 0,
193
+ minute: 0,
194
+ second: 0,
195
+ },
196
+ };
197
+ }
198
+ }
199
+ }
200
+ if (typeof value !== "string")
201
+ return undefined;
202
+ var result = parse(value, { locale: locale });
203
+ if (!result)
204
+ return undefined;
205
+ var dateValue = result.dateValue;
206
+ return {
207
+ format: result.pattern,
208
+ parts: {
209
+ year: dateValue.getFullYear(),
210
+ month: dateValue.getMonth(),
211
+ day: dateValue.getDate(),
212
+ hour: dateValue.getHours(),
213
+ minute: dateValue.getMinutes(),
214
+ second: dateValue.getSeconds(),
215
+ },
216
+ };
217
+ };
218
+ export var validateDateTime = function (value) {
219
+ if (typeof value !== "string")
220
+ return undefined;
221
+ var str = value.trim();
222
+ var match;
223
+ if ((match = TIME_REGEX.FULL_WITH_MERIDIAN.exec(str))) {
224
+ var hour = parseInt(match[1], 10);
225
+ var minute = parseInt(match[2], 10);
226
+ var second = parseInt(match[3], 10);
227
+ var meridian = match[4];
228
+ if (isValidTimeComponents(hour, minute, second, meridian)) {
229
+ return createTimeResult(TIME_FORMATS.FULL_WITH_MERIDIAN, adjustHour(hour, meridian), minute, second);
230
+ }
231
+ }
232
+ if ((match = TIME_REGEX.FULL.exec(str))) {
233
+ var hour = parseInt(match[1], 10);
234
+ var minute = parseInt(match[2], 10);
235
+ var second = parseInt(match[3], 10);
236
+ if (isValidTimeComponents(hour, minute, second)) {
237
+ return createTimeResult(TIME_FORMATS.FULL, hour, minute, second);
238
+ }
239
+ }
240
+ if ((match = TIME_REGEX.SHORT_WITH_MERIDIAN.exec(str))) {
241
+ var hour = parseInt(match[1], 10);
242
+ var minute = parseInt(match[2], 10);
243
+ var meridian = match[3];
244
+ if (isValidTimeComponents(hour, minute, 0, meridian)) {
245
+ return createTimeResult(TIME_FORMATS.SHORT_WITH_MERIDIAN, adjustHour(hour, meridian), minute, 0);
246
+ }
247
+ }
248
+ if ((match = TIME_REGEX.SHORT.exec(str))) {
249
+ var hour = parseInt(match[1], 10);
250
+ var minute = parseInt(match[2], 10);
251
+ if (isValidTimeComponents(hour, minute, 0)) {
252
+ return createTimeResult(TIME_FORMATS.SHORT, hour, minute, 0);
253
+ }
254
+ }
255
+ return undefined;
256
+ };
257
+ var isValidTimeComponents = function (hour, minute, second, meridian) {
258
+ if (hour > 24 ||
259
+ minute > 59 ||
260
+ second > 59 ||
261
+ ((meridian === null || meridian === void 0 ? void 0 : meridian.toUpperCase()) === "AM" && hour > 12)) {
262
+ return false;
263
+ }
264
+ return true;
265
+ };
266
+ var adjustHour = function (hour, meridian) {
267
+ if ((meridian === null || meridian === void 0 ? void 0 : meridian.toLowerCase().charAt(0)) === "p" && hour < 12) {
268
+ return hour + 12;
269
+ }
270
+ return hour;
271
+ };
272
+ var createTimeResult = function (format, hour, minute, second) {
273
+ var now = new Date();
274
+ return {
275
+ format: format,
276
+ parts: {
277
+ year: now.getFullYear(),
278
+ month: now.getMonth(),
279
+ day: now.getDate(),
280
+ hour: hour,
281
+ minute: minute,
282
+ second: second,
283
+ },
284
+ };
285
+ };
286
+ export var detectDateFormatPattern = function (value, locale) {
287
+ var _a;
288
+ if (!value || (typeof value !== "string" && !(value instanceof Date))) {
289
+ return undefined;
290
+ }
291
+ return (_a = validateDate(value, locale)) === null || _a === void 0 ? void 0 : _a.format;
292
+ };
293
+ export var detectDateTimeFormatPattern = function (value) {
294
+ var _a, _b;
295
+ if (!value || typeof value !== "string") {
296
+ return undefined;
297
+ }
298
+ return (_b = (_a = validateDateTime(value)) === null || _a === void 0 ? void 0 : _a.format) !== null && _b !== void 0 ? _b : time_pattern;
299
+ };
300
+ export var detectNumberFormatType = function (value, locale) {
301
+ if (isCurrency(value)) {
302
+ return "CURRENCY";
303
+ }
304
+ if (isPercentage(value)) {
305
+ return "PERCENT";
306
+ }
307
+ if (isNumber(value)) {
308
+ return "NUMBER";
309
+ }
310
+ if (isValidDate(value, locale)) {
311
+ return "DATE";
312
+ }
313
+ if (isValidDateTime(value)) {
314
+ return "DATE_TIME";
315
+ }
316
+ };
317
+ export var detectNumberFormatPattern = function (value, numberValue, type, locale) {
318
+ var _a, _b;
319
+ if (type === "PERCENT") {
320
+ return detectDecimalPattern(value, pattern_percent);
321
+ }
322
+ if (type === "CURRENCY") {
323
+ return detectDecimalPattern(numberValue, pattern_currency);
324
+ }
325
+ if (type === "DATE") {
326
+ return (_a = detectDateFormatPattern(value, locale)) !== null && _a !== void 0 ? _a : date_pattern;
327
+ }
328
+ if (type === "DATE_TIME") {
329
+ return (_b = detectDateTimeFormatPattern(value)) !== null && _b !== void 0 ? _b : time_pattern;
330
+ }
331
+ if (type === "NUMBER") {
332
+ // An integer zero with no explicit format stays "General" — imported `0`,
333
+ // `00`, and signed zero values with a General number format shouldn't
334
+ // manufacture a `#` pattern that renders the value as blank.
335
+ // Explicit CURRENCY / PERCENT formats keep their own base pattern for
336
+ // zero (handled above), so `$0` stays `"$"#,##0`, not a bare `0`.
337
+ if (value === 0 ||
338
+ (typeof value === "string" && /^[-+]?0+$/.test(value.trim()))) {
339
+ return "General";
340
+ }
341
+ return detectDecimalPattern(value);
342
+ }
343
+ return undefined;
344
+ };
345
+ export var detectValueType = function (value, locale) {
346
+ if (isAFormula(value)) {
347
+ return "formulaValue";
348
+ }
349
+ if (isBoolean(value)) {
350
+ return "boolValue";
351
+ }
352
+ if (isNumber(value) || isValidDate(value, locale) || isValidDateTime(value)) {
353
+ return "numberValue";
354
+ }
355
+ return "stringValue";
356
+ };
357
+ export var detectValueTypeAndPattern = function (value, locale) {
358
+ if (isAFormula(value)) {
359
+ return ["formulaValue"];
360
+ }
361
+ if (isBoolean(value)) {
362
+ return ["boolValue"];
363
+ }
364
+ if (isNumber(value)) {
365
+ var numberValue = convertToNumber(value);
366
+ if (isCurrency(value)) {
367
+ var pattern = detectDecimalPattern(numberValue, pattern_currency);
368
+ return ["numberValue", "CURRENCY", numberValue, pattern];
369
+ }
370
+ if (isPercentage(value)) {
371
+ var pattern = detectDecimalPattern(numberValue, pattern_percent);
372
+ var percentValue = convertToNumber(value) / 100;
373
+ return ["numberValue", "PERCENT", percentValue, pattern];
374
+ }
375
+ return [
376
+ "numberValue",
377
+ "NUMBER",
378
+ convertToNumber(value),
379
+ detectNumberFormatPattern(value, numberValue, "NUMBER", locale),
380
+ ];
381
+ }
382
+ var dateValue = validateDate(value, locale);
383
+ if (dateValue) {
384
+ var _a = dateValue.parts, year = _a.year, month = _a.month, day = _a.day, hour = _a.hour, minute = _a.minute, second = _a.second;
385
+ var numberValue = toSerial(new Date(year, month, day, hour, minute, second, 0));
386
+ return ["numberValue", "DATE", numberValue, dateValue.format];
387
+ }
388
+ var dateTimeValue = validateDateTime(value);
389
+ if (dateTimeValue) {
390
+ var _b = dateTimeValue.parts, year = _b.year, month = _b.month, day = _b.day, hour = _b.hour, minute = _b.minute, second = _b.second;
391
+ var numberValue = toSerial(new Date(year, month, day, hour, minute, second, 0));
392
+ return ["numberValue", "DATE_TIME", numberValue, dateTimeValue.format];
393
+ }
394
+ return ["stringValue"];
395
+ };
396
+ export var isValidDate = function (value, locale) {
397
+ if (!value || (typeof value !== "string" && !(value instanceof Date))) {
398
+ return false;
399
+ }
400
+ return !!validateDate(value, locale);
401
+ };
402
+ export var isValidDateTime = function (value) {
403
+ if (!value || typeof value !== "string") {
404
+ return false;
405
+ }
406
+ return !!validateDateTime(value);
407
+ };
@@ -0,0 +1,5 @@
1
+ import type { IWorkbookPlugin } from "./interface";
2
+ export type PluginFactory = () => IWorkbookPlugin;
3
+ export declare const PARSER_REGISTRY: Record<string, PluginFactory>;
4
+ export declare function getPluginForFile(file: File | string): IWorkbookPlugin;
5
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../excel-parser/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAMnD,MAAM,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAKzD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,eAAe,CAWrE"}
@@ -0,0 +1,21 @@
1
+ import { OdsPlugin } from "./plugins/ods/index";
2
+ import { XlsbPlugin } from "./plugins/xlsb/index";
3
+ import { XlsmPlugin } from "./plugins/xlsm/index";
4
+ import { XlsxPlugin } from "./plugins/xlsx/index";
5
+ export var PARSER_REGISTRY = {
6
+ xlsx: function () { return new XlsxPlugin(); },
7
+ xlsm: function () { return new XlsmPlugin(); },
8
+ xlsb: function () { return new XlsbPlugin(); },
9
+ ods: function () { return new OdsPlugin(); },
10
+ };
11
+ export function getPluginForFile(file) {
12
+ var _a;
13
+ var fileName = typeof file === "string" ? file : file.name;
14
+ var extension = (_a = fileName.split(".").pop()) === null || _a === void 0 ? void 0 : _a.toLowerCase();
15
+ if (extension && PARSER_REGISTRY[extension]) {
16
+ return PARSER_REGISTRY[extension]();
17
+ }
18
+ // Default to xlsx for now if unknown, or maybe throw error?
19
+ // Current behavior assumes everything is xlsx-like
20
+ return new XlsxPlugin();
21
+ }
@@ -0,0 +1,51 @@
1
+ import type { CellFormat, TextFormat } from "@rowsncolumns/spreadsheet";
2
+ /**
3
+ * Excel-like style registry that mirrors Excel's XF (eXtended Format) architecture
4
+ */
5
+ export declare class StyleRegistry {
6
+ private cellXfs;
7
+ private styleXfs;
8
+ private numFmts;
9
+ private fonts;
10
+ private fills;
11
+ private borders;
12
+ constructor();
13
+ /**
14
+ * Register a font and return its index
15
+ */
16
+ registerFont(font: TextFormat): number;
17
+ /**
18
+ * Register a fill and return its index
19
+ */
20
+ registerFill(fill: any): number;
21
+ /**
22
+ * Register a border and return its index
23
+ */
24
+ registerBorder(border: any): number;
25
+ /**
26
+ * Register a number format and return its index
27
+ */
28
+ registerNumberFormat(format: string): number;
29
+ /**
30
+ * Register a cell XF (format) and return its index
31
+ */
32
+ registerCellXf(format: CellFormat): number;
33
+ /**
34
+ * Get a cell XF by index
35
+ */
36
+ getCellXf(index: number): CellFormat;
37
+ /**
38
+ * Export the style registry
39
+ */
40
+ export(): {
41
+ cellXfs: CellFormat[];
42
+ styleXfs: CellFormat[];
43
+ numFmts: {
44
+ [k: string]: string;
45
+ };
46
+ fonts: TextFormat[];
47
+ fills: any[];
48
+ borders: any[];
49
+ };
50
+ }
51
+ //# sourceMappingURL=style-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-registry.d.ts","sourceRoot":"","sources":["../../../excel-parser/style-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAExE;;GAEG;AACH,qBAAa,aAAa;IAExB,OAAO,CAAC,OAAO,CAAoB;IAGnC,OAAO,CAAC,QAAQ,CAAoB;IAGpC,OAAO,CAAC,OAAO,CAAkC;IAGjD,OAAO,CAAC,KAAK,CAAoB;IAGjC,OAAO,CAAC,KAAK,CAAa;IAG1B,OAAO,CAAC,OAAO,CAAa;;IAoB5B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM;IActC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAc/B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM;IAcnC;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAc5C;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM;IAsD1C;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IAMpC;;OAEG;IACH,MAAM;;;;;;;;;;CAUP"}
@@ -0,0 +1,175 @@
1
+ import { __assign, __read, __values } from "tslib";
2
+ /**
3
+ * Excel-like style registry that mirrors Excel's XF (eXtended Format) architecture
4
+ */
5
+ var StyleRegistry = /** @class */ (function () {
6
+ function StyleRegistry() {
7
+ // Store style XF records (cell formats used directly by cells)
8
+ this.cellXfs = [];
9
+ // Store style XF records (named styles that can be applied to cells)
10
+ this.styleXfs = [];
11
+ // Store number formats
12
+ this.numFmts = new Map();
13
+ // Store fonts
14
+ this.fonts = [];
15
+ // Store fills (background colors)
16
+ this.fills = [];
17
+ // Store borders
18
+ this.borders = [];
19
+ // Initialize with default formats
20
+ this.cellXfs.push({}); // Default empty format at index 0
21
+ this.styleXfs.push({}); // Default empty style at index 0
22
+ this.fonts.push({}); // Default font at index 0
23
+ this.fills.push({ patternType: "none" }); // Default fill (none) at index 0
24
+ this.fills.push({ patternType: "gray125" }); // Default fill (gray125) at index 1
25
+ this.borders.push({}); // Default border (none) at index 0
26
+ // Standard number formats (0-49 are built-in in Excel)
27
+ this.numFmts.set(0, "General");
28
+ this.numFmts.set(1, "0");
29
+ this.numFmts.set(2, "0.00");
30
+ this.numFmts.set(3, "#,##0");
31
+ this.numFmts.set(4, "#,##0.00");
32
+ // And so on...
33
+ }
34
+ /**
35
+ * Register a font and return its index
36
+ */
37
+ StyleRegistry.prototype.registerFont = function (font) {
38
+ // Check if font already exists
39
+ var fontStr = JSON.stringify(font);
40
+ for (var i = 0; i < this.fonts.length; i++) {
41
+ if (JSON.stringify(this.fonts[i]) === fontStr) {
42
+ return i;
43
+ }
44
+ }
45
+ // Add new font
46
+ this.fonts.push(font);
47
+ return this.fonts.length - 1;
48
+ };
49
+ /**
50
+ * Register a fill and return its index
51
+ */
52
+ StyleRegistry.prototype.registerFill = function (fill) {
53
+ // Check if fill already exists
54
+ var fillStr = JSON.stringify(fill);
55
+ for (var i = 0; i < this.fills.length; i++) {
56
+ if (JSON.stringify(this.fills[i]) === fillStr) {
57
+ return i;
58
+ }
59
+ }
60
+ // Add new fill
61
+ this.fills.push(fill);
62
+ return this.fills.length - 1;
63
+ };
64
+ /**
65
+ * Register a border and return its index
66
+ */
67
+ StyleRegistry.prototype.registerBorder = function (border) {
68
+ // Check if border already exists
69
+ var borderStr = JSON.stringify(border);
70
+ for (var i = 0; i < this.borders.length; i++) {
71
+ if (JSON.stringify(this.borders[i]) === borderStr) {
72
+ return i;
73
+ }
74
+ }
75
+ // Add new border
76
+ this.borders.push(border);
77
+ return this.borders.length - 1;
78
+ };
79
+ /**
80
+ * Register a number format and return its index
81
+ */
82
+ StyleRegistry.prototype.registerNumberFormat = function (format) {
83
+ var e_1, _a;
84
+ try {
85
+ // Check if format already exists in built-in formats
86
+ for (var _b = __values(this.numFmts.entries()), _c = _b.next(); !_c.done; _c = _b.next()) {
87
+ var _d = __read(_c.value, 2), id = _d[0], fmt = _d[1];
88
+ if (fmt === format) {
89
+ return id;
90
+ }
91
+ }
92
+ }
93
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
94
+ finally {
95
+ try {
96
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
97
+ }
98
+ finally { if (e_1) throw e_1.error; }
99
+ }
100
+ // Assign a new ID (starting from 164 as Excel does for custom formats)
101
+ var newId = 164 + (this.numFmts.size - 50); // 50 is the number of built-in formats
102
+ this.numFmts.set(newId, format);
103
+ return newId;
104
+ };
105
+ /**
106
+ * Register a cell XF (format) and return its index
107
+ */
108
+ StyleRegistry.prototype.registerCellXf = function (format) {
109
+ var _a;
110
+ // Extract components to register individually
111
+ var numFmtId = 0;
112
+ var fontId = 0;
113
+ var fillId = 0;
114
+ var borderId = 0;
115
+ // Register number format if present
116
+ if ((_a = format.numberFormat) === null || _a === void 0 ? void 0 : _a.pattern) {
117
+ numFmtId = this.registerNumberFormat(format.numberFormat.pattern);
118
+ }
119
+ // Register font if present
120
+ if (format.textFormat) {
121
+ fontId = this.registerFont(format.textFormat);
122
+ }
123
+ // Register fill if present
124
+ if (format.backgroundColor) {
125
+ fillId = this.registerFill({
126
+ patternType: "solid",
127
+ fgColor: format.backgroundColor,
128
+ });
129
+ }
130
+ // Register border if present
131
+ if (format.borders) {
132
+ borderId = this.registerBorder(format.borders);
133
+ }
134
+ // Create an XF record with references
135
+ var xfRecord = __assign(__assign({}, format), { _refs: {
136
+ numFmtId: numFmtId,
137
+ fontId: fontId,
138
+ fillId: fillId,
139
+ borderId: borderId,
140
+ } });
141
+ // Check if XF already exists
142
+ var xfStr = JSON.stringify(xfRecord);
143
+ for (var i = 0; i < this.cellXfs.length; i++) {
144
+ if (JSON.stringify(this.cellXfs[i]) === xfStr) {
145
+ return i;
146
+ }
147
+ }
148
+ // Add new XF
149
+ this.cellXfs.push(xfRecord);
150
+ return this.cellXfs.length - 1;
151
+ };
152
+ /**
153
+ * Get a cell XF by index
154
+ */
155
+ StyleRegistry.prototype.getCellXf = function (index) {
156
+ return index >= 0 && index < this.cellXfs.length
157
+ ? this.cellXfs[index]
158
+ : this.cellXfs[0];
159
+ };
160
+ /**
161
+ * Export the style registry
162
+ */
163
+ StyleRegistry.prototype.export = function () {
164
+ return {
165
+ cellXfs: this.cellXfs,
166
+ styleXfs: this.styleXfs,
167
+ numFmts: Object.fromEntries(this.numFmts),
168
+ fonts: this.fonts,
169
+ fills: this.fills,
170
+ borders: this.borders,
171
+ };
172
+ };
173
+ return StyleRegistry;
174
+ }());
175
+ export { StyleRegistry };
@@ -0,0 +1,3 @@
1
+ import type { SpreadsheetTheme } from "@rowsncolumns/spreadsheet";
2
+ export declare const defaultSpreadsheetTheme: SpreadsheetTheme;
3
+ //# sourceMappingURL=theme-default.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-default.d.ts","sourceRoot":"","sources":["../../../excel-parser/theme-default.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAe,MAAM,2BAA2B,CAAC;AAgB/E,eAAO,MAAM,uBAAuB,EAAE,gBAKrC,CAAC"}