@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,2 @@
1
+ export { BUILTIN_NUMFMT_BY_ID as standardExcelFormatCodeById } from "../../builtin-numfmts";
2
+ //# sourceMappingURL=numfmt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numfmt.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/numfmt.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,IAAI,2BAA2B,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Backwards-compatible export. The canonical table lives in
2
+ // `excel-parser/builtin-numfmts.ts` so the exporter can share it.
3
+ export { BUILTIN_NUMFMT_BY_ID as standardExcelFormatCodeById } from "../../builtin-numfmts";
@@ -0,0 +1,40 @@
1
+ /**
2
+ * XLSX pivot table parser — Phase D1.
3
+ *
4
+ * Parses two XML families:
5
+ * 1. xl/pivotTables/pivotTable<N>.xml (layout: rows/cols/values)
6
+ * 2. xl/pivotCache/pivotCacheDefinition<N>.xml (field names + source range)
7
+ *
8
+ * `xl/pivotCache/pivotCacheRecords<N>.xml` (the cached source data)
9
+ * is intentionally skipped — pivots in the host calculator pull
10
+ * live data from the sheet via the source range, so the cache
11
+ * records are redundant. Excel itself ignores stale caches when
12
+ * `refreshOnLoad="1"` is set.
13
+ *
14
+ * Output shape matches @rowsncolumns/spreadsheet `PivotTable` so
15
+ * imported pivots drop straight into `onChangePivotTables`.
16
+ */
17
+ import type { PivotTable } from "@rowsncolumns/spreadsheet";
18
+ import type { XMLParser } from "fast-xml-parser";
19
+ import type { StreamingZipParser } from "../../zip-parser-streaming";
20
+ type SheetPivotRel = {
21
+ /** Relationship target → xl/pivotTables/pivotTable<N>.xml */
22
+ target: string;
23
+ };
24
+ /**
25
+ * Top-level: parse every pivotTable referenced by a worksheet's
26
+ * relationships. Returns a flat PivotTable[] (host attaches them
27
+ * to the host's `pivotTables` state).
28
+ */
29
+ export declare const parsePivotTablesForSheet: (options: {
30
+ zipParser: StreamingZipParser;
31
+ xmlParser: XMLParser;
32
+ sheetRels: SheetPivotRel[];
33
+ /** ID we'll stamp on imported pivots. Host can normalize later. */
34
+ nextPivotId: () => string;
35
+ /** Map XLSX sheet name → host numeric sheetId. */
36
+ getSheetId: (sheetName: string) => number | undefined;
37
+ defaultSheetId: number;
38
+ }) => Promise<PivotTable[]>;
39
+ export {};
40
+ //# sourceMappingURL=pivots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pivots.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/pivots.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AASrE,KAAK,aAAa,GAAG;IACnB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA6OF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,GACnC,SAAS;IACP,SAAS,EAAE,kBAAkB,CAAC;IAC9B,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,mEAAmE;IACnE,WAAW,EAAE,MAAM,MAAM,CAAC;IAC1B,kDAAkD;IAClD,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,cAAc,EAAE,MAAM,CAAC;CACxB,KACA,OAAO,CAAC,UAAU,EAAE,CAoEtB,CAAC"}
@@ -0,0 +1,342 @@
1
+ import { __awaiter, __generator, __read, __values } from "tslib";
2
+ var asArray = function (value) {
3
+ if (value === undefined || value === null)
4
+ return [];
5
+ return Array.isArray(value) ? value : [value];
6
+ };
7
+ var stripSheetPrefix = function (ref) {
8
+ var _a;
9
+ // Source refs in XLSX include the sheet, e.g. "Sheet1!$A$1:$D$100".
10
+ // Quoted sheets: "'Sheet 1'!$A$1:$D$100".
11
+ var m = ref.match(/^(?:'([^']+)'|([^!]+))!(.+)$/);
12
+ if (!m)
13
+ return { a1: ref };
14
+ return { sheet: (_a = m[1]) !== null && _a !== void 0 ? _a : m[2], a1: m[3] };
15
+ };
16
+ var parseA1Range = function (a1) {
17
+ // Accept "$A$1:$D$100", "A1:D100", "A1" (single cell), etc.
18
+ var range = a1.replace(/\$/g, "");
19
+ var _a = __read(range.split(":"), 2), s = _a[0], e = _a[1];
20
+ var startCell = parseA1Cell(s);
21
+ var endCell = e ? parseA1Cell(e) : startCell;
22
+ if (!startCell || !endCell)
23
+ return null;
24
+ return {
25
+ startCol: startCell.col,
26
+ endCol: endCell.col,
27
+ startRow: startCell.row,
28
+ endRow: endCell.row,
29
+ };
30
+ };
31
+ var parseA1Cell = function (cell) {
32
+ var e_1, _a;
33
+ var m = cell.match(/^([A-Za-z]+)(\d+)$/);
34
+ if (!m)
35
+ return null;
36
+ var col = 0;
37
+ try {
38
+ for (var _b = __values(m[1].toUpperCase()), _c = _b.next(); !_c.done; _c = _b.next()) {
39
+ var ch = _c.value;
40
+ col = col * 26 + (ch.charCodeAt(0) - 64);
41
+ }
42
+ }
43
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
44
+ finally {
45
+ try {
46
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
47
+ }
48
+ finally { if (e_1) throw e_1.error; }
49
+ }
50
+ return { col: col, row: Number(m[2]) };
51
+ };
52
+ /**
53
+ * Map XLSX subtotal/aggregator name to our PivotValueSummarizeFunction.
54
+ * XLSX uses `subtotal="sum"|"average"|...`; we map "average" → "avg".
55
+ */
56
+ var normalizeAggFunc = function (raw) {
57
+ var _a;
58
+ var map = {
59
+ sum: "sum",
60
+ count: "counta",
61
+ countNums: "count",
62
+ average: "avg",
63
+ min: "min",
64
+ max: "max",
65
+ product: "product",
66
+ stdDev: "stddev",
67
+ stdDevp: "stddevp",
68
+ var: "var",
69
+ varp: "varp",
70
+ };
71
+ return (_a = map[raw !== null && raw !== void 0 ? raw : "sum"]) !== null && _a !== void 0 ? _a : "sum";
72
+ };
73
+ /**
74
+ * Parse one pivotCacheDefinition XML into a (sourceRange, fields) pair.
75
+ * Source range is resolved sheet-relative; the caller maps the sheet
76
+ * name to its numeric sheetId.
77
+ */
78
+ var parsePivotCacheDefinition = function (cacheXml) {
79
+ var _a, _b, _c, _d, _e, _f;
80
+ var cacheDef = (_a = cacheXml === null || cacheXml === void 0 ? void 0 : cacheXml.pivotCacheDefinition) !== null && _a !== void 0 ? _a : cacheXml === null || cacheXml === void 0 ? void 0 : cacheXml["x:pivotCacheDefinition"];
81
+ if (!cacheDef)
82
+ return { fields: [] };
83
+ // cacheSource → worksheetSource@ref
84
+ var cacheSource = (_b = cacheDef.cacheSource) !== null && _b !== void 0 ? _b : cacheDef["x:cacheSource"];
85
+ var wsSource = (_c = cacheSource === null || cacheSource === void 0 ? void 0 : cacheSource.worksheetSource) !== null && _c !== void 0 ? _c : cacheSource === null || cacheSource === void 0 ? void 0 : cacheSource["x:worksheetSource"];
86
+ var sourceRef = ((_d = wsSource === null || wsSource === void 0 ? void 0 : wsSource.a$) === null || _d === void 0 ? void 0 : _d.ref) || (wsSource === null || wsSource === void 0 ? void 0 : wsSource["@_ref"]);
87
+ var cacheFields = (_e = cacheDef.cacheFields) !== null && _e !== void 0 ? _e : cacheDef["x:cacheFields"];
88
+ var rawFieldList = asArray((_f = cacheFields === null || cacheFields === void 0 ? void 0 : cacheFields.cacheField) !== null && _f !== void 0 ? _f : cacheFields === null || cacheFields === void 0 ? void 0 : cacheFields["x:cacheField"]);
89
+ var fields = rawFieldList.map(function (cf) {
90
+ var e_2, _a, e_3, _b, e_4, _c;
91
+ var _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
92
+ var name = ((_d = cf.a$) === null || _d === void 0 ? void 0 : _d.name) || cf["@_name"] || "";
93
+ var sharedItemsNode = (_e = cf.sharedItems) !== null && _e !== void 0 ? _e : cf["x:sharedItems"];
94
+ var items = [];
95
+ if (sharedItemsNode) {
96
+ try {
97
+ for (var _q = __values(asArray((_f = sharedItemsNode.s) !== null && _f !== void 0 ? _f : sharedItemsNode["x:s"])), _r = _q.next(); !_r.done; _r = _q.next()) {
98
+ var s = _r.value;
99
+ items.push(String((_j = (_h = (_g = s.a$) === null || _g === void 0 ? void 0 : _g.v) !== null && _h !== void 0 ? _h : s["@_v"]) !== null && _j !== void 0 ? _j : ""));
100
+ }
101
+ }
102
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
103
+ finally {
104
+ try {
105
+ if (_r && !_r.done && (_a = _q.return)) _a.call(_q);
106
+ }
107
+ finally { if (e_2) throw e_2.error; }
108
+ }
109
+ try {
110
+ for (var _s = __values(asArray((_k = sharedItemsNode.n) !== null && _k !== void 0 ? _k : sharedItemsNode["x:n"])), _t = _s.next(); !_t.done; _t = _s.next()) {
111
+ var n = _t.value;
112
+ items.push(Number((_o = (_m = (_l = n.a$) === null || _l === void 0 ? void 0 : _l.v) !== null && _m !== void 0 ? _m : n["@_v"]) !== null && _o !== void 0 ? _o : 0));
113
+ }
114
+ }
115
+ catch (e_3_1) { e_3 = { error: e_3_1 }; }
116
+ finally {
117
+ try {
118
+ if (_t && !_t.done && (_b = _s.return)) _b.call(_s);
119
+ }
120
+ finally { if (e_3) throw e_3.error; }
121
+ }
122
+ try {
123
+ for (var _u = __values(asArray((_p = sharedItemsNode.m) !== null && _p !== void 0 ? _p : sharedItemsNode["x:m"])), _v = _u.next(); !_v.done; _v = _u.next()) {
124
+ var _1 = _v.value;
125
+ items.push(null);
126
+ }
127
+ }
128
+ catch (e_4_1) { e_4 = { error: e_4_1 }; }
129
+ finally {
130
+ try {
131
+ if (_v && !_v.done && (_c = _u.return)) _c.call(_u);
132
+ }
133
+ finally { if (e_4) throw e_4.error; }
134
+ }
135
+ }
136
+ return { name: name, sharedItems: items.length > 0 ? items : undefined };
137
+ });
138
+ return { sourceRef: sourceRef, fields: fields };
139
+ };
140
+ /**
141
+ * Parse a single pivotTable.xml into a PivotTable record. Needs the
142
+ * cacheDefinition pre-parsed so we can resolve field-name indices.
143
+ */
144
+ var parsePivotTableXml = function (pivotXml, cacheDef, getSheetId, defaultSheetId, pivotId) {
145
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
146
+ var pt = (_a = pivotXml === null || pivotXml === void 0 ? void 0 : pivotXml.pivotTableDefinition) !== null && _a !== void 0 ? _a : pivotXml === null || pivotXml === void 0 ? void 0 : pivotXml["x:pivotTableDefinition"];
147
+ if (!pt)
148
+ return null;
149
+ var name = ((_b = pt.a$) === null || _b === void 0 ? void 0 : _b.name) || pt["@_name"];
150
+ // location@ref → rendered range on the worksheet
151
+ var location = (_c = pt.location) !== null && _c !== void 0 ? _c : pt["x:location"];
152
+ var locRef = ((_d = location === null || location === void 0 ? void 0 : location.a$) === null || _d === void 0 ? void 0 : _d.ref) || (location === null || location === void 0 ? void 0 : location["@_ref"]);
153
+ var locRange = locRef ? parseA1Range(locRef) : null;
154
+ if (!locRange)
155
+ return null;
156
+ // Number of header rows / row-label columns gives us the data
157
+ // origin within the rendered range — but PivotTable only stores
158
+ // the target (top-left) and the full pivotRange.
159
+ var targetSheetId = defaultSheetId;
160
+ var targetPosition = {
161
+ sheetId: targetSheetId,
162
+ rowIndex: locRange.startRow,
163
+ columnIndex: locRange.startCol,
164
+ };
165
+ var pivotRange = {
166
+ sheetId: targetSheetId,
167
+ startRowIndex: locRange.startRow,
168
+ endRowIndex: locRange.endRow,
169
+ startColumnIndex: locRange.startCol,
170
+ endColumnIndex: locRange.endCol,
171
+ };
172
+ // Source range from cacheDef
173
+ var source;
174
+ if (cacheDef.sourceRef) {
175
+ var _l = stripSheetPrefix(cacheDef.sourceRef), sheet = _l.sheet, a1 = _l.a1;
176
+ var sourceRange = parseA1Range(a1);
177
+ if (sourceRange) {
178
+ var resolved = sheet ? getSheetId(sheet) : undefined;
179
+ var sId = typeof resolved === "number" ? resolved : targetSheetId;
180
+ source = {
181
+ sheetId: sId,
182
+ startRowIndex: sourceRange.startRow,
183
+ endRowIndex: sourceRange.endRow,
184
+ startColumnIndex: sourceRange.startCol,
185
+ endColumnIndex: sourceRange.endCol,
186
+ };
187
+ }
188
+ }
189
+ // Row + Column field axes — arrays of field indices into cacheFields.
190
+ var readAxis = function (key) {
191
+ var _a, _b;
192
+ var node = (_a = pt[key]) !== null && _a !== void 0 ? _a : pt["x:".concat(key)];
193
+ if (!node)
194
+ return [];
195
+ var fields = asArray((_b = node.field) !== null && _b !== void 0 ? _b : node["x:field"]);
196
+ return fields
197
+ .map(function (f) { var _a, _b; return Number((_b = (_a = f.a$) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : f["@_x"]); })
198
+ .filter(function (n) { return Number.isFinite(n); });
199
+ };
200
+ var rowIndices = readAxis("rowFields");
201
+ var colIndices = readAxis("colFields");
202
+ // dataFields → value fields. Each has fld (cache-field index)
203
+ // and an optional subtotal aggregator.
204
+ var dataFieldsNode = (_e = pt.dataFields) !== null && _e !== void 0 ? _e : pt["x:dataFields"];
205
+ var dataFieldList = asArray((_f = dataFieldsNode === null || dataFieldsNode === void 0 ? void 0 : dataFieldsNode.dataField) !== null && _f !== void 0 ? _f : dataFieldsNode === null || dataFieldsNode === void 0 ? void 0 : dataFieldsNode["x:dataField"]);
206
+ var fieldNameAt = function (idx) { var _a; return (_a = cacheDef.fields[idx]) === null || _a === void 0 ? void 0 : _a.name; };
207
+ var rows = rowIndices
208
+ .map(function (idx) { return fieldNameAt(idx); })
209
+ .filter(function (n) { return !!n && n !== "Values" && n !== ""; })
210
+ .map(function (field) { return ({ field: field, displayName: field }); });
211
+ var columns = colIndices
212
+ .map(function (idx) { return fieldNameAt(idx); })
213
+ .filter(function (n) { return !!n && n !== "Values" && n !== ""; })
214
+ .map(function (field) { return ({ field: field, displayName: field }); });
215
+ var values = dataFieldList
216
+ .map(function (d) {
217
+ var _a, _b, _c, _d;
218
+ var idx = Number((_b = (_a = d.a$) === null || _a === void 0 ? void 0 : _a.fld) !== null && _b !== void 0 ? _b : d["@_fld"]);
219
+ var field = fieldNameAt(idx);
220
+ if (!field)
221
+ return null;
222
+ var aggFunc = normalizeAggFunc(((_c = d.a$) === null || _c === void 0 ? void 0 : _c.subtotal) || d["@_subtotal"]);
223
+ var displayName = ((_d = d.a$) === null || _d === void 0 ? void 0 : _d.name) || d["@_name"] || "".concat(aggFunc, " of ").concat(field);
224
+ return { field: field, displayName: displayName, aggFunc: aggFunc };
225
+ })
226
+ .filter(function (v) { return v !== null; });
227
+ // Display toggles (Phase A1 — round-trip these so the editor
228
+ // checkboxes pick up the imported values).
229
+ // XLSX: rowGrandTotals / colGrandTotals default to "1" (true).
230
+ var showRowGT = ((_h = (_g = pt.a$) === null || _g === void 0 ? void 0 : _g.rowGrandTotals) !== null && _h !== void 0 ? _h : pt["@_rowGrandTotals"]) !== "0";
231
+ var showColGT = ((_k = (_j = pt.a$) === null || _j === void 0 ? void 0 : _j.colGrandTotals) !== null && _k !== void 0 ? _k : pt["@_colGrandTotals"]) !== "0";
232
+ return {
233
+ pivotId: pivotId,
234
+ name: name,
235
+ source: source,
236
+ targetPosition: targetPosition,
237
+ pivotRange: pivotRange,
238
+ rows: rows,
239
+ columns: columns,
240
+ values: values,
241
+ showRowGrandTotals: showRowGT,
242
+ showColumnGrandTotals: showColGT,
243
+ // Subtotal default on individual fields → leave true.
244
+ showSubtotals: true,
245
+ };
246
+ };
247
+ /**
248
+ * Top-level: parse every pivotTable referenced by a worksheet's
249
+ * relationships. Returns a flat PivotTable[] (host attaches them
250
+ * to the host's `pivotTables` state).
251
+ */
252
+ export var parsePivotTablesForSheet = function (options) { return __awaiter(void 0, void 0, void 0, function () {
253
+ var zipParser, xmlParser, sheetRels, nextPivotId, getSheetId, defaultSheetId, out, sheetRels_1, sheetRels_1_1, rel, pivotTablePath, pivotTableXmlText, pivotXml, pivotDir, fileName, pivotRelsPath, pivotRelsText, cacheDef, pivotRels, relList, cacheRel, cachePath, cacheText, _a, pivot, e_5_1;
254
+ var e_5, _b;
255
+ var _c, _d;
256
+ return __generator(this, function (_e) {
257
+ switch (_e.label) {
258
+ case 0:
259
+ zipParser = options.zipParser, xmlParser = options.xmlParser, sheetRels = options.sheetRels, nextPivotId = options.nextPivotId, getSheetId = options.getSheetId, defaultSheetId = options.defaultSheetId;
260
+ out = [];
261
+ _e.label = 1;
262
+ case 1:
263
+ _e.trys.push([1, 11, 12, 13]);
264
+ sheetRels_1 = __values(sheetRels), sheetRels_1_1 = sheetRels_1.next();
265
+ _e.label = 2;
266
+ case 2:
267
+ if (!!sheetRels_1_1.done) return [3 /*break*/, 10];
268
+ rel = sheetRels_1_1.value;
269
+ pivotTablePath = rel.target.startsWith("/")
270
+ ? rel.target.slice(1)
271
+ : rel.target.startsWith("../")
272
+ ? "xl/".concat(rel.target.slice(3))
273
+ : "xl/worksheets/".concat(rel.target);
274
+ return [4 /*yield*/, zipParser.getText(pivotTablePath)];
275
+ case 3:
276
+ pivotTableXmlText = _e.sent();
277
+ if (!pivotTableXmlText)
278
+ return [3 /*break*/, 9];
279
+ pivotXml = xmlParser.parse(pivotTableXmlText);
280
+ pivotDir = pivotTablePath.substring(0, pivotTablePath.lastIndexOf("/"));
281
+ fileName = pivotTablePath.split("/").pop();
282
+ pivotRelsPath = "".concat(pivotDir, "/_rels/").concat(fileName, ".rels");
283
+ return [4 /*yield*/, zipParser.getText(pivotRelsPath)];
284
+ case 4:
285
+ pivotRelsText = _e.sent();
286
+ cacheDef = { fields: [] };
287
+ if (!pivotRelsText) return [3 /*break*/, 8];
288
+ pivotRels = xmlParser.parse(pivotRelsText);
289
+ relList = asArray((_c = pivotRels === null || pivotRels === void 0 ? void 0 : pivotRels.Relationships) === null || _c === void 0 ? void 0 : _c.Relationship);
290
+ cacheRel = relList.find(function (r) {
291
+ var _a;
292
+ var type = ((_a = r.a$) === null || _a === void 0 ? void 0 : _a.Type) || r["@_Type"] || "";
293
+ return type.endsWith("pivotCacheDefinition");
294
+ });
295
+ if (!cacheRel) return [3 /*break*/, 8];
296
+ cachePath = ((_d = cacheRel.a$) === null || _d === void 0 ? void 0 : _d.Target) || cacheRel["@_Target"];
297
+ if (cachePath === null || cachePath === void 0 ? void 0 : cachePath.startsWith("../")) {
298
+ cachePath = "xl/".concat(cachePath.slice(3));
299
+ }
300
+ else if (cachePath === null || cachePath === void 0 ? void 0 : cachePath.startsWith("/")) {
301
+ cachePath = cachePath.slice(1);
302
+ }
303
+ else if (cachePath && !cachePath.startsWith("xl/")) {
304
+ cachePath = "".concat(pivotDir, "/").concat(cachePath);
305
+ }
306
+ if (!cachePath) return [3 /*break*/, 6];
307
+ return [4 /*yield*/, zipParser.getText(cachePath)];
308
+ case 5:
309
+ _a = _e.sent();
310
+ return [3 /*break*/, 7];
311
+ case 6:
312
+ _a = undefined;
313
+ _e.label = 7;
314
+ case 7:
315
+ cacheText = _a;
316
+ if (cacheText) {
317
+ cacheDef = parsePivotCacheDefinition(xmlParser.parse(cacheText));
318
+ }
319
+ _e.label = 8;
320
+ case 8:
321
+ pivot = parsePivotTableXml(pivotXml, cacheDef, getSheetId, defaultSheetId, nextPivotId());
322
+ if (pivot)
323
+ out.push(pivot);
324
+ _e.label = 9;
325
+ case 9:
326
+ sheetRels_1_1 = sheetRels_1.next();
327
+ return [3 /*break*/, 2];
328
+ case 10: return [3 /*break*/, 13];
329
+ case 11:
330
+ e_5_1 = _e.sent();
331
+ e_5 = { error: e_5_1 };
332
+ return [3 /*break*/, 13];
333
+ case 12:
334
+ try {
335
+ if (sheetRels_1_1 && !sheetRels_1_1.done && (_b = sheetRels_1.return)) _b.call(sheetRels_1);
336
+ }
337
+ finally { if (e_5) throw e_5.error; }
338
+ return [7 /*endfinally*/];
339
+ case 13: return [2 /*return*/, out];
340
+ }
341
+ });
342
+ }); };
@@ -0,0 +1,8 @@
1
+ export interface Relationship {
2
+ id: string;
3
+ type: string;
4
+ target: string;
5
+ mode?: string;
6
+ }
7
+ export declare const getRelationsById: (xml: any) => Record<string, Relationship>;
8
+ //# sourceMappingURL=relationships.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/relationships.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,gBAAgB,GAAI,KAAK,GAAG,iCAaxC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { __values } from "tslib";
2
+ export var getRelationsById = function (xml) {
3
+ var e_1, _a;
4
+ var _b;
5
+ var rels = {};
6
+ try {
7
+ for (var _c = __values(((_b = xml.Relationships) === null || _b === void 0 ? void 0 : _b.Relationship) || []), _d = _c.next(); !_d.done; _d = _c.next()) {
8
+ var relationship = _d.value;
9
+ var id = relationship.a$.Id;
10
+ rels[id] = {
11
+ id: id,
12
+ type: relationship.a$.Type,
13
+ target: relationship.a$.Target,
14
+ mode: relationship.a$.TargetMode,
15
+ };
16
+ }
17
+ }
18
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
19
+ finally {
20
+ try {
21
+ if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
22
+ }
23
+ finally { if (e_1) throw e_1.error; }
24
+ }
25
+ return rels;
26
+ };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Extracts view properties from Excel sheet view data:
3
+ * - frozen rows / columns count
4
+ * - showGridLines (gridline visibility)
5
+ * - showRowColHeaders (row/column header visibility)
6
+ * - showZeros (whether zero values render in cells)
7
+ * - zoomScale (integer percent, 10-400; undefined = use Excel default 100)
8
+ *
9
+ * Works with both single sheet view and multiple sheet views.
10
+ *
11
+ * Defaults match Excel's defaults when the attribute is absent:
12
+ * showGridLines = true, showRowColHeaders = true, showZeros = true,
13
+ * zoomScale = undefined (consumers should treat as 100).
14
+ */
15
+ export type SheetViewProperties = {
16
+ frozenRowCount: number;
17
+ frozenColumnCount: number;
18
+ /** Saved scroll position of the unfrozen pane (`<pane topLeftCell>`). */
19
+ paneTopLeftCell?: string;
20
+ showGridLines: boolean;
21
+ showRowColHeaders: boolean;
22
+ showZeros: boolean;
23
+ zoomScale?: number;
24
+ };
25
+ export declare function extractSheetViewProperties(sheetViewData: any): SheetViewProperties;
26
+ //# sourceMappingURL=sheet-views.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-views.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/sheet-views.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAKF,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,GAAG,GACjB,mBAAmB,CAqErB"}
@@ -0,0 +1,59 @@
1
+ import { __assign } from "tslib";
2
+ var isFalseAttr = function (val) {
3
+ return val === "0" || val === "false" || val === false;
4
+ };
5
+ export function extractSheetViewProperties(sheetViewData) {
6
+ var defaults = {
7
+ frozenRowCount: 0,
8
+ frozenColumnCount: 0,
9
+ showGridLines: true,
10
+ showRowColHeaders: true,
11
+ showZeros: true,
12
+ };
13
+ if (!sheetViewData)
14
+ return defaults;
15
+ // Handle multiple sheet views (array of sheet views)
16
+ var sheetViews = Array.isArray(sheetViewData)
17
+ ? sheetViewData
18
+ : "sheetViews" in sheetViewData
19
+ ? Array.isArray(sheetViewData.sheetViews)
20
+ ? sheetViewData.sheetViews
21
+ : [sheetViewData.sheetViews]
22
+ : [sheetViewData];
23
+ var firstView = sheetViews[0];
24
+ var sheetView = "sheetView" in firstView ? firstView.sheetView : firstView;
25
+ var frozenRowCount = 0;
26
+ var frozenColumnCount = 0;
27
+ var paneTopLeftCell;
28
+ // Process pane information if available
29
+ if (sheetView.pane) {
30
+ var pane = sheetView.pane.a$ || sheetView.pane;
31
+ if (pane.ySplit) {
32
+ frozenRowCount = parseInt(pane.ySplit, 10);
33
+ }
34
+ if (pane.xSplit) {
35
+ frozenColumnCount = parseInt(pane.xSplit, 10);
36
+ }
37
+ if (pane.state !== "frozen" && pane.state !== "frozenSplit") {
38
+ frozenRowCount = 0;
39
+ frozenColumnCount = 0;
40
+ }
41
+ else if (typeof pane.topLeftCell === "string" && pane.topLeftCell) {
42
+ // The saved scroll position of the unfrozen quadrant. Preserved so an
43
+ // untouched import/export doesn't snap the view back to the freeze
44
+ // anchor.
45
+ paneTopLeftCell = pane.topLeftCell;
46
+ }
47
+ }
48
+ var viewAttrs = sheetView.a$ || {};
49
+ // zoomScale: Excel clamps to 10-400. Omit (= use default) when absent
50
+ // or out of range, so we don't lie about what the file contained.
51
+ var zoomScale;
52
+ if (viewAttrs.zoomScale != null && viewAttrs.zoomScale !== "") {
53
+ var parsed = parseInt(String(viewAttrs.zoomScale), 10);
54
+ if (Number.isFinite(parsed) && parsed >= 10 && parsed <= 400) {
55
+ zoomScale = parsed;
56
+ }
57
+ }
58
+ return __assign(__assign(__assign({ frozenRowCount: frozenRowCount, frozenColumnCount: frozenColumnCount }, (paneTopLeftCell ? { paneTopLeftCell: paneTopLeftCell } : {})), { showGridLines: !isFalseAttr(viewAttrs.showGridLines), showRowColHeaders: !isFalseAttr(viewAttrs.showRowColHeaders), showZeros: !isFalseAttr(viewAttrs.showZeros) }), (zoomScale !== undefined ? { zoomScale: zoomScale } : {}));
59
+ }
@@ -0,0 +1,44 @@
1
+ import type { GridRange } from "@rowsncolumns/common-types";
2
+ import type { CellData, Color, ExtendedValue, TextFormat } from "@rowsncolumns/spreadsheet";
3
+ import type { WorkBook } from "../../workbook";
4
+ import type { WorkbookStyles } from "./index";
5
+ type MergeCellContext = {
6
+ range: GridRange;
7
+ rowCellsByColumnIndex: Map<number, any>;
8
+ };
9
+ /**
10
+ * Extract cell value and format information from Excel cell data
11
+ * @param {Object} cell - The cell object from the sheet data
12
+ * @param {WorkBook} workbook - The workbook object containing shared strings
13
+ * @returns {Object} Object containing value and cellFormat properties
14
+ */
15
+ export declare function getCellValueAndFormat(cell: any, workbook: WorkBook, enableCellXfsRegistry?: boolean, enableSharedStrings?: boolean, activeSheetName?: string, mergeContext?: MergeCellContext): CellData | null;
16
+ /**
17
+ * Build a format-only CellData for a style index that a cell inherits from
18
+ * its row (`<row customFormat="1" s="N">`) or column (`<col style="N">`)
19
+ * rather than carrying itself. Excel paints such styles across every cell
20
+ * of the row/column even where no `<c>` element exists, so the importer
21
+ * materializes them as phantom cells. Returns null when the style resolves
22
+ * to an empty format (nothing to paint or inherit).
23
+ */
24
+ export declare function getCellDataForStyleIndex(styleIndex: number, workbook: WorkBook, enableCellXfsRegistry?: boolean): CellData | null;
25
+ export declare const getExtendedValue: (rawValue: any) => ExtendedValue | undefined;
26
+ /**
27
+ * Resolve the xf for a cell and extract its protection flags. Returns
28
+ * undefined when the cell has no style or the style is at Excel defaults.
29
+ */
30
+ export declare function extractCellProtection(cell: any, workbookStyles: WorkbookStyles): {
31
+ locked?: boolean;
32
+ hidden?: boolean;
33
+ } | undefined;
34
+ /**
35
+ * Parse a raw styles.xml `<font>` node into a TextFormat. Also used for the
36
+ * workbook default font (fonts[0]) so the exporter can round-trip it.
37
+ */
38
+ export declare function fontNodeToTextFormat(font: any, workbookStyles: WorkbookStyles): TextFormat | null;
39
+ /**
40
+ * Extract color information
41
+ */
42
+ export declare function extractColor(colorObj: any, indexedColors?: Array<string | undefined>): Color | undefined | null;
43
+ export {};
44
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAS,MAAM,4BAA4B,CAAC;AACnE,OAAO,KAAK,EAGV,QAAQ,EAER,KAAK,EAEL,aAAa,EAIb,UAAU,EACX,MAAM,2BAA2B,CAAC;AAKnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAuD9C,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzC,CAAC;AAEF;;;;;GAKG;AAEH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,UAAQ,EAC7B,mBAAmB,UAAQ,EAC3B,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,gBAAgB,GAC9B,QAAQ,GAAG,IAAI,CAwJjB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,UAAQ,GAC5B,QAAQ,GAAG,IAAI,CAoBjB;AAED,eAAO,MAAM,gBAAgB,GAAI,UAAU,GAAG,KAAG,aAAa,GAAG,SAShE,CAAC;AAuTF;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,GAAG,EACT,cAAc,EAAE,cAAc,GAC7B;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAUpD;AAuMD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,GAAG,EACT,cAAc,EAAE,cAAc,GAC7B,UAAU,GAAG,IAAI,CAwFnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,GAAG,EACb,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GACxC,KAAK,GAAG,SAAS,GAAG,IAAI,CA8C1B"}