@nocobase/plugin-action-export 1.7.0-beta.8 → 1.8.0-beta.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 (459) hide show
  1. package/dist/client/index.js +1 -1
  2. package/dist/client/useShared.d.ts +4 -11
  3. package/dist/externalVersion.js +8 -7
  4. package/dist/locale/nl-NL.json +1 -0
  5. package/dist/node_modules/exceljs/LICENSE +22 -0
  6. package/dist/node_modules/exceljs/dist/es5/csv/csv.js +182 -0
  7. package/dist/node_modules/exceljs/dist/es5/csv/line-buffer.js +68 -0
  8. package/dist/node_modules/exceljs/dist/es5/csv/stream-converter.js +110 -0
  9. package/dist/node_modules/exceljs/dist/es5/doc/anchor.js +73 -0
  10. package/dist/node_modules/exceljs/dist/es5/doc/cell.js +961 -0
  11. package/dist/node_modules/exceljs/dist/es5/doc/column.js +274 -0
  12. package/dist/node_modules/exceljs/dist/es5/doc/data-validations.js +18 -0
  13. package/dist/node_modules/exceljs/dist/es5/doc/defined-names.js +173 -0
  14. package/dist/node_modules/exceljs/dist/es5/doc/enums.js +49 -0
  15. package/dist/node_modules/exceljs/dist/es5/doc/image.js +69 -0
  16. package/dist/node_modules/exceljs/dist/es5/doc/modelcontainer.js +16 -0
  17. package/dist/node_modules/exceljs/dist/es5/doc/note.js +64 -0
  18. package/dist/node_modules/exceljs/dist/es5/doc/range.js +229 -0
  19. package/dist/node_modules/exceljs/dist/es5/doc/row.js +382 -0
  20. package/dist/node_modules/exceljs/dist/es5/doc/table.js +443 -0
  21. package/dist/node_modules/exceljs/dist/es5/doc/workbook.js +202 -0
  22. package/dist/node_modules/exceljs/dist/es5/doc/worksheet.js +900 -0
  23. package/dist/node_modules/exceljs/dist/es5/exceljs.bare.js +14 -0
  24. package/dist/node_modules/exceljs/dist/es5/exceljs.browser.js +36 -0
  25. package/dist/node_modules/exceljs/dist/es5/exceljs.nodejs.js +15 -0
  26. package/dist/node_modules/exceljs/dist/es5/index.js +15 -0
  27. package/dist/node_modules/exceljs/dist/es5/stream/xlsx/hyperlink-reader.js +90 -0
  28. package/dist/node_modules/exceljs/dist/es5/stream/xlsx/sheet-comments-writer.js +94 -0
  29. package/dist/node_modules/exceljs/dist/es5/stream/xlsx/sheet-rels-writer.js +94 -0
  30. package/dist/node_modules/exceljs/dist/es5/stream/xlsx/workbook-reader.js +362 -0
  31. package/dist/node_modules/exceljs/dist/es5/stream/xlsx/workbook-writer.js +347 -0
  32. package/dist/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-reader.js +392 -0
  33. package/dist/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-writer.js +652 -0
  34. package/dist/node_modules/exceljs/dist/es5/utils/auto-drain.js +18 -0
  35. package/dist/node_modules/exceljs/dist/es5/utils/browser-buffer-decode.js +15 -0
  36. package/dist/node_modules/exceljs/dist/es5/utils/browser-buffer-encode.js +18 -0
  37. package/dist/node_modules/exceljs/dist/es5/utils/cell-matrix.js +149 -0
  38. package/dist/node_modules/exceljs/dist/es5/utils/col-cache.js +258 -0
  39. package/dist/node_modules/exceljs/dist/es5/utils/copy-style.js +43 -0
  40. package/dist/node_modules/exceljs/dist/es5/utils/encryptor.js +58 -0
  41. package/dist/node_modules/exceljs/dist/es5/utils/iterate-stream.js +46 -0
  42. package/dist/node_modules/exceljs/dist/es5/utils/parse-sax.js +47 -0
  43. package/dist/node_modules/exceljs/dist/es5/utils/shared-formula.js +42 -0
  44. package/dist/node_modules/exceljs/dist/es5/utils/shared-strings.js +32 -0
  45. package/dist/node_modules/exceljs/dist/es5/utils/stream-base64.js +66 -0
  46. package/dist/node_modules/exceljs/dist/es5/utils/stream-buf.js +343 -0
  47. package/dist/node_modules/exceljs/dist/es5/utils/string-buf.js +73 -0
  48. package/dist/node_modules/exceljs/dist/es5/utils/string-builder.js +32 -0
  49. package/dist/node_modules/exceljs/dist/es5/utils/stuttered-pipe.js +61 -0
  50. package/dist/node_modules/exceljs/dist/es5/utils/typed-stack.js +23 -0
  51. package/dist/node_modules/exceljs/dist/es5/utils/under-dash.js +168 -0
  52. package/dist/node_modules/exceljs/dist/es5/utils/utils.js +171 -0
  53. package/dist/node_modules/exceljs/dist/es5/utils/xml-stream.js +151 -0
  54. package/dist/node_modules/exceljs/dist/es5/utils/zip-stream.js +79 -0
  55. package/dist/node_modules/exceljs/dist/es5/xlsx/defaultnumformats.js +230 -0
  56. package/dist/node_modules/exceljs/dist/es5/xlsx/rel-type.js +18 -0
  57. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/base-xform.js +139 -0
  58. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/book/defined-name-xform.js +85 -0
  59. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/book/sheet-xform.js +32 -0
  60. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +24 -0
  61. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-properties-xform.js +27 -0
  62. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-view-xform.js +51 -0
  63. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-xform.js +234 -0
  64. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/comment/comment-xform.js +103 -0
  65. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/comment/comments-xform.js +76 -0
  66. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +35 -0
  67. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +32 -0
  68. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +53 -0
  69. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +97 -0
  70. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-notes-xform.js +107 -0
  71. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-shape-xform.js +92 -0
  72. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +61 -0
  73. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/composite-xform.js +51 -0
  74. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +30 -0
  75. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +27 -0
  76. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/core/app-xform.js +93 -0
  77. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/core/content-types-xform.js +112 -0
  78. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/core/core-xform.js +158 -0
  79. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/core/relationship-xform.js +23 -0
  80. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/core/relationships-xform.js +65 -0
  81. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +47 -0
  82. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +61 -0
  83. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-xform.js +40 -0
  84. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +35 -0
  85. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +62 -0
  86. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/cell-position-xform.js +82 -0
  87. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/drawing-xform.js +98 -0
  88. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +40 -0
  89. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-xform.js +38 -0
  90. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +38 -0
  91. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +59 -0
  92. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  93. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/pic-xform.js +67 -0
  94. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/sp-pr.js +30 -0
  95. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  96. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/list-xform.js +91 -0
  97. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +40 -0
  98. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cell-xform.js +451 -0
  99. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +275 -0
  100. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +25 -0
  101. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +38 -0
  102. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +45 -0
  103. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +77 -0
  104. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +42 -0
  105. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +71 -0
  106. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +22 -0
  107. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +43 -0
  108. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +28 -0
  109. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +88 -0
  110. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +38 -0
  111. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +52 -0
  112. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +43 -0
  113. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +75 -0
  114. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +22 -0
  115. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +66 -0
  116. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +22 -0
  117. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/col-xform.js +78 -0
  118. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/data-validations-xform.js +247 -0
  119. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/dimension-xform.js +28 -0
  120. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/drawing-xform.js +32 -0
  121. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +69 -0
  122. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/header-footer-xform.js +126 -0
  123. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +50 -0
  124. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +26 -0
  125. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merges.js +52 -0
  126. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +35 -0
  127. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +24 -0
  128. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-margins-xform.js +46 -0
  129. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +32 -0
  130. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-xform.js +99 -0
  131. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/picture-xform.js +32 -0
  132. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/print-options-xform.js +45 -0
  133. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +37 -0
  134. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-xform.js +128 -0
  135. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +51 -0
  136. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +83 -0
  137. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +84 -0
  138. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +190 -0
  139. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/table-part-xform.js +32 -0
  140. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/sheet/worksheet-xform.js +513 -0
  141. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/simple/boolean-xform.js +27 -0
  142. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/simple/date-xform.js +58 -0
  143. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/simple/float-xform.js +47 -0
  144. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/simple/integer-xform.js +53 -0
  145. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/simple/string-xform.js +47 -0
  146. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/static-xform.js +61 -0
  147. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +98 -0
  148. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/strings/rich-text-xform.js +92 -0
  149. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-string-xform.js +99 -0
  150. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-strings-xform.js +114 -0
  151. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/strings/text-xform.js +39 -0
  152. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/alignment-xform.js +139 -0
  153. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/border-xform.js +185 -0
  154. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/color-xform.js +66 -0
  155. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/dxf-xform.js +106 -0
  156. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/fill-xform.js +308 -0
  157. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/font-xform.js +175 -0
  158. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/numfmt-xform.js +59 -0
  159. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/protection-xform.js +53 -0
  160. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/style-xform.js +118 -0
  161. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/styles-xform.js +612 -0
  162. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/style/underline-xform.js +46 -0
  163. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/table/auto-filter-xform.js +75 -0
  164. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/table/custom-filter-xform.js +30 -0
  165. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-column-xform.js +89 -0
  166. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-xform.js +28 -0
  167. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/table/table-column-xform.js +42 -0
  168. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/table/table-style-info-xform.js +40 -0
  169. package/dist/node_modules/exceljs/dist/es5/xlsx/xform/table/table-xform.js +123 -0
  170. package/dist/node_modules/exceljs/dist/es5/xlsx/xlsx.js +697 -0
  171. package/dist/node_modules/exceljs/dist/es5/xlsx/xml/theme1.js +5 -0
  172. package/dist/node_modules/exceljs/dist/exceljs.bare.js +55253 -0
  173. package/dist/node_modules/exceljs/dist/exceljs.bare.min.js +45 -0
  174. package/dist/node_modules/exceljs/dist/exceljs.js +59900 -0
  175. package/dist/node_modules/exceljs/dist/exceljs.min.js +45 -0
  176. package/dist/node_modules/exceljs/excel.js +97 -0
  177. package/dist/node_modules/exceljs/index.d.ts +2035 -0
  178. package/dist/node_modules/exceljs/index.ts +2 -0
  179. package/dist/node_modules/exceljs/lib/csv/csv.js +191 -0
  180. package/dist/node_modules/exceljs/lib/csv/line-buffer.js +74 -0
  181. package/dist/node_modules/exceljs/lib/csv/stream-converter.js +135 -0
  182. package/dist/node_modules/exceljs/lib/doc/anchor.js +91 -0
  183. package/dist/node_modules/exceljs/lib/doc/cell.js +1124 -0
  184. package/dist/node_modules/exceljs/lib/doc/column.js +320 -0
  185. package/dist/node_modules/exceljs/lib/doc/data/theme1.json +234 -0
  186. package/dist/node_modules/exceljs/lib/doc/data-validations.js +19 -0
  187. package/dist/node_modules/exceljs/lib/doc/defined-names.js +196 -0
  188. package/dist/node_modules/exceljs/lib/doc/enums.js +48 -0
  189. package/dist/node_modules/exceljs/lib/doc/image.js +59 -0
  190. package/dist/node_modules/exceljs/lib/doc/modelcontainer.js +18 -0
  191. package/dist/node_modules/exceljs/lib/doc/note.js +65 -0
  192. package/dist/node_modules/exceljs/lib/doc/range.js +257 -0
  193. package/dist/node_modules/exceljs/lib/doc/row.js +415 -0
  194. package/dist/node_modules/exceljs/lib/doc/table.js +465 -0
  195. package/dist/node_modules/exceljs/lib/doc/workbook.js +221 -0
  196. package/dist/node_modules/exceljs/lib/doc/worksheet.js +927 -0
  197. package/dist/node_modules/exceljs/lib/exceljs.bare.js +13 -0
  198. package/dist/node_modules/exceljs/lib/exceljs.browser.js +36 -0
  199. package/dist/node_modules/exceljs/lib/exceljs.nodejs.js +14 -0
  200. package/dist/node_modules/exceljs/lib/stream/xlsx/hyperlink-reader.js +83 -0
  201. package/dist/node_modules/exceljs/lib/stream/xlsx/sheet-comments-writer.js +121 -0
  202. package/dist/node_modules/exceljs/lib/stream/xlsx/sheet-rels-writer.js +119 -0
  203. package/dist/node_modules/exceljs/lib/stream/xlsx/workbook-reader.js +337 -0
  204. package/dist/node_modules/exceljs/lib/stream/xlsx/workbook-writer.js +347 -0
  205. package/dist/node_modules/exceljs/lib/stream/xlsx/worksheet-reader.js +374 -0
  206. package/dist/node_modules/exceljs/lib/stream/xlsx/worksheet-writer.js +717 -0
  207. package/dist/node_modules/exceljs/lib/utils/auto-drain.js +15 -0
  208. package/dist/node_modules/exceljs/lib/utils/browser-buffer-decode.js +14 -0
  209. package/dist/node_modules/exceljs/lib/utils/browser-buffer-encode.js +15 -0
  210. package/dist/node_modules/exceljs/lib/utils/cell-matrix.js +165 -0
  211. package/dist/node_modules/exceljs/lib/utils/col-cache.js +287 -0
  212. package/dist/node_modules/exceljs/lib/utils/copy-style.js +43 -0
  213. package/dist/node_modules/exceljs/lib/utils/encryptor.js +55 -0
  214. package/dist/node_modules/exceljs/lib/utils/iterate-stream.js +48 -0
  215. package/dist/node_modules/exceljs/lib/utils/parse-sax.js +30 -0
  216. package/dist/node_modules/exceljs/lib/utils/shared-formula.js +44 -0
  217. package/dist/node_modules/exceljs/lib/utils/shared-strings.js +35 -0
  218. package/dist/node_modules/exceljs/lib/utils/stream-base64.js +72 -0
  219. package/dist/node_modules/exceljs/lib/utils/stream-buf.js +364 -0
  220. package/dist/node_modules/exceljs/lib/utils/string-buf.js +82 -0
  221. package/dist/node_modules/exceljs/lib/utils/string-builder.js +35 -0
  222. package/dist/node_modules/exceljs/lib/utils/stuttered-pipe.js +67 -0
  223. package/dist/node_modules/exceljs/lib/utils/typed-stack.js +24 -0
  224. package/dist/node_modules/exceljs/lib/utils/under-dash.js +184 -0
  225. package/dist/node_modules/exceljs/lib/utils/utils.js +172 -0
  226. package/dist/node_modules/exceljs/lib/utils/xml-stream.js +169 -0
  227. package/dist/node_modules/exceljs/lib/utils/zip-stream.js +87 -0
  228. package/dist/node_modules/exceljs/lib/xlsx/.rels +11 -0
  229. package/dist/node_modules/exceljs/lib/xlsx/calcChain.xml +6 -0
  230. package/dist/node_modules/exceljs/lib/xlsx/core.xml +7 -0
  231. package/dist/node_modules/exceljs/lib/xlsx/defaultnumformats.js +153 -0
  232. package/dist/node_modules/exceljs/lib/xlsx/rel-type.js +21 -0
  233. package/dist/node_modules/exceljs/lib/xlsx/styles.xml +41 -0
  234. package/dist/node_modules/exceljs/lib/xlsx/workbook.xml +16 -0
  235. package/dist/node_modules/exceljs/lib/xlsx/xform/base-xform.js +145 -0
  236. package/dist/node_modules/exceljs/lib/xlsx/xform/book/defined-name-xform.js +91 -0
  237. package/dist/node_modules/exceljs/lib/xlsx/xform/book/sheet-xform.js +34 -0
  238. package/dist/node_modules/exceljs/lib/xlsx/xform/book/workbook-calc-properties-xform.js +26 -0
  239. package/dist/node_modules/exceljs/lib/xlsx/xform/book/workbook-properties-xform.js +29 -0
  240. package/dist/node_modules/exceljs/lib/xlsx/xform/book/workbook-view-xform.js +53 -0
  241. package/dist/node_modules/exceljs/lib/xlsx/xform/book/workbook-xform.js +255 -0
  242. package/dist/node_modules/exceljs/lib/xlsx/xform/comment/comment-xform.js +105 -0
  243. package/dist/node_modules/exceljs/lib/xlsx/xform/comment/comments-xform.js +82 -0
  244. package/dist/node_modules/exceljs/lib/xlsx/xform/comment/style/vml-position-xform.js +39 -0
  245. package/dist/node_modules/exceljs/lib/xlsx/xform/comment/style/vml-protection-xform.js +36 -0
  246. package/dist/node_modules/exceljs/lib/xlsx/xform/comment/vml-anchor-xform.js +60 -0
  247. package/dist/node_modules/exceljs/lib/xlsx/xform/comment/vml-client-data-xform.js +95 -0
  248. package/dist/node_modules/exceljs/lib/xlsx/xform/comment/vml-notes-xform.js +107 -0
  249. package/dist/node_modules/exceljs/lib/xlsx/xform/comment/vml-shape-xform.js +95 -0
  250. package/dist/node_modules/exceljs/lib/xlsx/xform/comment/vml-textbox-xform.js +64 -0
  251. package/dist/node_modules/exceljs/lib/xlsx/xform/composite-xform.js +56 -0
  252. package/dist/node_modules/exceljs/lib/xlsx/xform/core/app-heading-pairs-xform.js +32 -0
  253. package/dist/node_modules/exceljs/lib/xlsx/xform/core/app-titles-of-parts-xform.js +28 -0
  254. package/dist/node_modules/exceljs/lib/xlsx/xform/core/app-xform.js +100 -0
  255. package/dist/node_modules/exceljs/lib/xlsx/xform/core/content-types-xform.js +120 -0
  256. package/dist/node_modules/exceljs/lib/xlsx/xform/core/core-xform.js +136 -0
  257. package/dist/node_modules/exceljs/lib/xlsx/xform/core/relationship-xform.js +25 -0
  258. package/dist/node_modules/exceljs/lib/xlsx/xform/core/relationships-xform.js +73 -0
  259. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/base-cell-anchor-xform.js +48 -0
  260. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/blip-fill-xform.js +71 -0
  261. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/blip-xform.js +42 -0
  262. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/c-nv-pic-pr-xform.js +38 -0
  263. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/c-nv-pr-xform.js +68 -0
  264. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/cell-position-xform.js +77 -0
  265. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/drawing-xform.js +109 -0
  266. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/ext-lst-xform.js +43 -0
  267. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/ext-xform.js +44 -0
  268. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/hlink-click-xform.js +41 -0
  269. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/nv-pic-pr-xform.js +65 -0
  270. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  271. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/pic-xform.js +77 -0
  272. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/sp-pr.js +17 -0
  273. package/dist/node_modules/exceljs/lib/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  274. package/dist/node_modules/exceljs/lib/xlsx/xform/list-xform.js +95 -0
  275. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/auto-filter-xform.js +38 -0
  276. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cell-xform.js +498 -0
  277. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf/cf-rule-xform.js +301 -0
  278. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf/cfvo-xform.js +27 -0
  279. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf/color-scale-xform.js +45 -0
  280. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf/conditional-formatting-xform.js +48 -0
  281. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf/conditional-formattings-xform.js +92 -0
  282. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf/databar-xform.js +49 -0
  283. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +87 -0
  284. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf/formula-xform.js +25 -0
  285. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf/icon-set-xform.js +47 -0
  286. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +27 -0
  287. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +98 -0
  288. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +43 -0
  289. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +62 -0
  290. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +50 -0
  291. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +98 -0
  292. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/f-ext-xform.js +25 -0
  293. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +73 -0
  294. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +25 -0
  295. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/col-xform.js +86 -0
  296. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/data-validations-xform.js +257 -0
  297. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/dimension-xform.js +29 -0
  298. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/drawing-xform.js +33 -0
  299. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/ext-lst-xform.js +86 -0
  300. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/header-footer-xform.js +146 -0
  301. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/hyperlink-xform.js +54 -0
  302. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/merge-cell-xform.js +27 -0
  303. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/merges.js +56 -0
  304. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/outline-properties-xform.js +43 -0
  305. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/page-breaks-xform.js +27 -0
  306. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/page-margins-xform.js +49 -0
  307. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/page-setup-properties-xform.js +35 -0
  308. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/page-setup-xform.js +103 -0
  309. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/picture-xform.js +33 -0
  310. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/print-options-xform.js +49 -0
  311. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/row-breaks-xform.js +39 -0
  312. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/row-xform.js +142 -0
  313. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/sheet-format-properties-xform.js +55 -0
  314. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/sheet-properties-xform.js +90 -0
  315. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/sheet-protection-xform.js +89 -0
  316. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/sheet-view-xform.js +202 -0
  317. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/table-part-xform.js +33 -0
  318. package/dist/node_modules/exceljs/lib/xlsx/xform/sheet/worksheet-xform.js +539 -0
  319. package/dist/node_modules/exceljs/lib/xlsx/xform/simple/boolean-xform.js +31 -0
  320. package/dist/node_modules/exceljs/lib/xlsx/xform/simple/date-xform.js +66 -0
  321. package/dist/node_modules/exceljs/lib/xlsx/xform/simple/float-xform.js +51 -0
  322. package/dist/node_modules/exceljs/lib/xlsx/xform/simple/integer-xform.js +57 -0
  323. package/dist/node_modules/exceljs/lib/xlsx/xform/simple/string-xform.js +51 -0
  324. package/dist/node_modules/exceljs/lib/xlsx/xform/static-xform.js +64 -0
  325. package/dist/node_modules/exceljs/lib/xlsx/xform/strings/phonetic-text-xform.js +98 -0
  326. package/dist/node_modules/exceljs/lib/xlsx/xform/strings/rich-text-xform.js +101 -0
  327. package/dist/node_modules/exceljs/lib/xlsx/xform/strings/shared-string-xform.js +102 -0
  328. package/dist/node_modules/exceljs/lib/xlsx/xform/strings/shared-strings-xform.js +127 -0
  329. package/dist/node_modules/exceljs/lib/xlsx/xform/strings/text-xform.js +44 -0
  330. package/dist/node_modules/exceljs/lib/xlsx/xform/style/alignment-xform.js +172 -0
  331. package/dist/node_modules/exceljs/lib/xlsx/xform/style/border-xform.js +207 -0
  332. package/dist/node_modules/exceljs/lib/xlsx/xform/style/color-xform.js +63 -0
  333. package/dist/node_modules/exceljs/lib/xlsx/xform/style/dxf-xform.js +111 -0
  334. package/dist/node_modules/exceljs/lib/xlsx/xform/style/fill-xform.js +364 -0
  335. package/dist/node_modules/exceljs/lib/xlsx/xform/style/font-xform.js +102 -0
  336. package/dist/node_modules/exceljs/lib/xlsx/xform/style/numfmt-xform.js +63 -0
  337. package/dist/node_modules/exceljs/lib/xlsx/xform/style/protection-xform.js +60 -0
  338. package/dist/node_modules/exceljs/lib/xlsx/xform/style/style-xform.js +125 -0
  339. package/dist/node_modules/exceljs/lib/xlsx/xform/style/styles-xform.js +527 -0
  340. package/dist/node_modules/exceljs/lib/xlsx/xform/style/underline-xform.js +47 -0
  341. package/dist/node_modules/exceljs/lib/xlsx/xform/table/auto-filter-xform.js +81 -0
  342. package/dist/node_modules/exceljs/lib/xlsx/xform/table/custom-filter-xform.js +33 -0
  343. package/dist/node_modules/exceljs/lib/xlsx/xform/table/filter-column-xform.js +96 -0
  344. package/dist/node_modules/exceljs/lib/xlsx/xform/table/filter-xform.js +31 -0
  345. package/dist/node_modules/exceljs/lib/xlsx/xform/table/table-column-xform.js +44 -0
  346. package/dist/node_modules/exceljs/lib/xlsx/xform/table/table-style-info-xform.js +41 -0
  347. package/dist/node_modules/exceljs/lib/xlsx/xform/table/table-xform.js +131 -0
  348. package/dist/node_modules/exceljs/lib/xlsx/xlsx.js +694 -0
  349. package/dist/node_modules/exceljs/lib/xlsx/xml/theme1.js +3 -0
  350. package/dist/node_modules/exceljs/lib/xlsx/xml/theme1.xml +318 -0
  351. package/dist/node_modules/exceljs/node_modules/readable-stream/errors-browser.js +127 -0
  352. package/dist/node_modules/exceljs/node_modules/readable-stream/errors.js +116 -0
  353. package/dist/node_modules/exceljs/node_modules/readable-stream/experimentalWarning.js +17 -0
  354. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  355. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  356. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  357. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  358. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  359. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  360. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  361. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  362. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  363. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  364. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  365. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  366. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  367. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  368. package/dist/node_modules/exceljs/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  369. package/dist/node_modules/exceljs/node_modules/readable-stream/package.json +68 -0
  370. package/dist/node_modules/exceljs/node_modules/readable-stream/readable-browser.js +9 -0
  371. package/dist/node_modules/exceljs/node_modules/readable-stream/readable.js +16 -0
  372. package/dist/node_modules/exceljs/node_modules/tmp/lib/tmp.js +784 -0
  373. package/dist/node_modules/exceljs/node_modules/tmp/package.json +56 -0
  374. package/dist/node_modules/exceljs/node_modules/uuid/dist/bin/uuid +2 -0
  375. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/index.js +9 -0
  376. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/md5.js +215 -0
  377. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  378. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  379. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  380. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/rng.js +19 -0
  381. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  382. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/stringify.js +30 -0
  383. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/v1.js +95 -0
  384. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/v3.js +4 -0
  385. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/v35.js +64 -0
  386. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/v4.js +24 -0
  387. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/v5.js +4 -0
  388. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  389. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-browser/version.js +11 -0
  390. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/index.js +9 -0
  391. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/md5.js +13 -0
  392. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/nil.js +1 -0
  393. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/parse.js +35 -0
  394. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/regex.js +1 -0
  395. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/rng.js +12 -0
  396. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/sha1.js +13 -0
  397. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/stringify.js +29 -0
  398. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/v1.js +95 -0
  399. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/v3.js +4 -0
  400. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/v35.js +64 -0
  401. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/v4.js +24 -0
  402. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/v5.js +4 -0
  403. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/validate.js +7 -0
  404. package/dist/node_modules/exceljs/node_modules/uuid/dist/esm-node/version.js +11 -0
  405. package/dist/node_modules/exceljs/node_modules/uuid/dist/index.js +79 -0
  406. package/dist/node_modules/exceljs/node_modules/uuid/dist/md5-browser.js +223 -0
  407. package/dist/node_modules/exceljs/node_modules/uuid/dist/md5.js +23 -0
  408. package/dist/node_modules/exceljs/node_modules/uuid/dist/nil.js +8 -0
  409. package/dist/node_modules/exceljs/node_modules/uuid/dist/parse.js +45 -0
  410. package/dist/node_modules/exceljs/node_modules/uuid/dist/regex.js +8 -0
  411. package/dist/node_modules/exceljs/node_modules/uuid/dist/rng-browser.js +26 -0
  412. package/dist/node_modules/exceljs/node_modules/uuid/dist/rng.js +24 -0
  413. package/dist/node_modules/exceljs/node_modules/uuid/dist/sha1-browser.js +104 -0
  414. package/dist/node_modules/exceljs/node_modules/uuid/dist/sha1.js +23 -0
  415. package/dist/node_modules/exceljs/node_modules/uuid/dist/stringify.js +39 -0
  416. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuid.min.js +1 -0
  417. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuidNIL.min.js +1 -0
  418. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuidParse.min.js +1 -0
  419. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuidStringify.min.js +1 -0
  420. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuidValidate.min.js +1 -0
  421. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuidVersion.min.js +1 -0
  422. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuidv1.min.js +1 -0
  423. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuidv3.min.js +1 -0
  424. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuidv4.min.js +1 -0
  425. package/dist/node_modules/exceljs/node_modules/uuid/dist/umd/uuidv5.min.js +1 -0
  426. package/dist/node_modules/exceljs/node_modules/uuid/dist/uuid-bin.js +85 -0
  427. package/dist/node_modules/exceljs/node_modules/uuid/dist/v1.js +107 -0
  428. package/dist/node_modules/exceljs/node_modules/uuid/dist/v3.js +16 -0
  429. package/dist/node_modules/exceljs/node_modules/uuid/dist/v35.js +78 -0
  430. package/dist/node_modules/exceljs/node_modules/uuid/dist/v4.js +37 -0
  431. package/dist/node_modules/exceljs/node_modules/uuid/dist/v5.js +16 -0
  432. package/dist/node_modules/exceljs/node_modules/uuid/dist/validate.js +17 -0
  433. package/dist/node_modules/exceljs/node_modules/uuid/dist/version.js +21 -0
  434. package/dist/node_modules/exceljs/node_modules/uuid/package.json +135 -0
  435. package/dist/node_modules/exceljs/package.json +1 -0
  436. package/dist/server/actions/export-xlsx.js +12 -15
  437. package/dist/server/index.d.ts +3 -0
  438. package/dist/server/index.js +10 -1
  439. package/dist/server/services/base-exporter.d.ts +18 -4
  440. package/dist/server/services/base-exporter.js +91 -21
  441. package/dist/server/services/xlsx-exporter.d.ts +14 -4
  442. package/dist/server/services/xlsx-exporter.js +34 -37
  443. package/package.json +2 -2
  444. package/dist/node_modules/xlsx/LICENSE +0 -201
  445. package/dist/node_modules/xlsx/bin/xlsx.njs +0 -310
  446. package/dist/node_modules/xlsx/bower.json +0 -22
  447. package/dist/node_modules/xlsx/dist/cpexcel.d.ts +0 -39
  448. package/dist/node_modules/xlsx/dist/cpexcel.js +0 -1506
  449. package/dist/node_modules/xlsx/dist/shim.min.js +0 -2
  450. package/dist/node_modules/xlsx/dist/xlsx.core.min.js +0 -17
  451. package/dist/node_modules/xlsx/dist/xlsx.extendscript.js +0 -27961
  452. package/dist/node_modules/xlsx/dist/xlsx.full.min.js +0 -24
  453. package/dist/node_modules/xlsx/dist/xlsx.mini.min.js +0 -10
  454. package/dist/node_modules/xlsx/dist/xlsx.zahl.js +0 -4
  455. package/dist/node_modules/xlsx/dist/zahl.d.ts +0 -4
  456. package/dist/node_modules/xlsx/package.json +0 -1
  457. package/dist/node_modules/xlsx/types/index.d.ts +0 -1033
  458. package/dist/node_modules/xlsx/xlsx.js +0 -7
  459. package/dist/node_modules/xlsx/xlsxworker.js +0 -14
@@ -0,0 +1,900 @@
1
+ "use strict";
2
+
3
+ const _ = require('../utils/under-dash');
4
+ const colCache = require('../utils/col-cache');
5
+ const Range = require('./range');
6
+ const Row = require('./row');
7
+ const Column = require('./column');
8
+ const Enums = require('./enums');
9
+ const Image = require('./image');
10
+ const Table = require('./table');
11
+ const DataValidations = require('./data-validations');
12
+ const Encryptor = require('../utils/encryptor');
13
+ const {
14
+ copyStyle
15
+ } = require('../utils/copy-style');
16
+
17
+ // Worksheet requirements
18
+ // Operate as sheet inside workbook or standalone
19
+ // Load and Save from file and stream
20
+ // Access/Add/Delete individual cells
21
+ // Manage column widths and row heights
22
+
23
+ class Worksheet {
24
+ constructor(options) {
25
+ options = options || {};
26
+ this._workbook = options.workbook;
27
+
28
+ // in a workbook, each sheet will have a number
29
+ this.id = options.id;
30
+ this.orderNo = options.orderNo;
31
+
32
+ // and a name
33
+ this.name = options.name;
34
+
35
+ // add a state
36
+ this.state = options.state || 'visible';
37
+
38
+ // rows allows access organised by row. Sparse array of arrays indexed by row-1, col
39
+ // Note: _rows is zero based. Must subtract 1 to go from cell.row to index
40
+ this._rows = [];
41
+
42
+ // column definitions
43
+ this._columns = null;
44
+
45
+ // column keys (addRow convenience): key ==> this._collumns index
46
+ this._keys = {};
47
+
48
+ // keep record of all merges
49
+ this._merges = {};
50
+
51
+ // record of all row and column pageBreaks
52
+ this.rowBreaks = [];
53
+
54
+ // for tabColor, default row height, outline levels, etc
55
+ this.properties = Object.assign({}, {
56
+ defaultRowHeight: 15,
57
+ dyDescent: 55,
58
+ outlineLevelCol: 0,
59
+ outlineLevelRow: 0
60
+ }, options.properties);
61
+
62
+ // for all things printing
63
+ this.pageSetup = Object.assign({}, {
64
+ margins: {
65
+ left: 0.7,
66
+ right: 0.7,
67
+ top: 0.75,
68
+ bottom: 0.75,
69
+ header: 0.3,
70
+ footer: 0.3
71
+ },
72
+ orientation: 'portrait',
73
+ horizontalDpi: 4294967295,
74
+ verticalDpi: 4294967295,
75
+ fitToPage: !!(options.pageSetup && (options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) && !options.pageSetup.scale),
76
+ pageOrder: 'downThenOver',
77
+ blackAndWhite: false,
78
+ draft: false,
79
+ cellComments: 'None',
80
+ errors: 'displayed',
81
+ scale: 100,
82
+ fitToWidth: 1,
83
+ fitToHeight: 1,
84
+ paperSize: undefined,
85
+ showRowColHeaders: false,
86
+ showGridLines: false,
87
+ firstPageNumber: undefined,
88
+ horizontalCentered: false,
89
+ verticalCentered: false,
90
+ rowBreaks: null,
91
+ colBreaks: null
92
+ }, options.pageSetup);
93
+ this.headerFooter = Object.assign({}, {
94
+ differentFirst: false,
95
+ differentOddEven: false,
96
+ oddHeader: null,
97
+ oddFooter: null,
98
+ evenHeader: null,
99
+ evenFooter: null,
100
+ firstHeader: null,
101
+ firstFooter: null
102
+ }, options.headerFooter);
103
+ this.dataValidations = new DataValidations();
104
+
105
+ // for freezepanes, split, zoom, gridlines, etc
106
+ this.views = options.views || [];
107
+ this.autoFilter = options.autoFilter || null;
108
+
109
+ // for images, etc
110
+ this._media = [];
111
+
112
+ // worksheet protection
113
+ this.sheetProtection = null;
114
+
115
+ // for tables
116
+ this.tables = {};
117
+ this.conditionalFormattings = [];
118
+ }
119
+ get name() {
120
+ return this._name;
121
+ }
122
+ set name(name) {
123
+ if (name === undefined) {
124
+ name = `sheet${this.id}`;
125
+ }
126
+ if (this._name === name) return;
127
+ if (typeof name !== 'string') {
128
+ throw new Error('The name has to be a string.');
129
+ }
130
+ if (name === '') {
131
+ throw new Error('The name can\'t be empty.');
132
+ }
133
+ if (name === 'History') {
134
+ throw new Error('The name "History" is protected. Please use a different name.');
135
+ }
136
+
137
+ // Illegal character in worksheet name: asterisk (*), question mark (?),
138
+ // colon (:), forward slash (/ \), or bracket ([])
139
+ if (/[*?:/\\[\]]/.test(name)) {
140
+ throw new Error(`Worksheet name ${name} cannot include any of the following characters: * ? : \\ / [ ]`);
141
+ }
142
+ if (/(^')|('$)/.test(name)) {
143
+ throw new Error(`The first or last character of worksheet name cannot be a single quotation mark: ${name}`);
144
+ }
145
+ if (name && name.length > 31) {
146
+ // eslint-disable-next-line no-console
147
+ console.warn(`Worksheet name ${name} exceeds 31 chars. This will be truncated`);
148
+ name = name.substring(0, 31);
149
+ }
150
+ if (this._workbook._worksheets.find(ws => ws && ws.name.toLowerCase() === name.toLowerCase())) {
151
+ throw new Error(`Worksheet name already exists: ${name}`);
152
+ }
153
+ this._name = name;
154
+ }
155
+ get workbook() {
156
+ return this._workbook;
157
+ }
158
+
159
+ // when you're done with this worksheet, call this to remove from workbook
160
+ destroy() {
161
+ this._workbook.removeWorksheetEx(this);
162
+ }
163
+
164
+ // Get the bounding range of the cells in this worksheet
165
+ get dimensions() {
166
+ const dimensions = new Range();
167
+ this._rows.forEach(row => {
168
+ if (row) {
169
+ const rowDims = row.dimensions;
170
+ if (rowDims) {
171
+ dimensions.expand(row.number, rowDims.min, row.number, rowDims.max);
172
+ }
173
+ }
174
+ });
175
+ return dimensions;
176
+ }
177
+
178
+ // =========================================================================
179
+ // Columns
180
+
181
+ // get the current columns array.
182
+ get columns() {
183
+ return this._columns;
184
+ }
185
+
186
+ // set the columns from an array of column definitions.
187
+ // Note: any headers defined will overwrite existing values.
188
+ set columns(value) {
189
+ // calculate max header row count
190
+ this._headerRowCount = value.reduce((pv, cv) => {
191
+ const headerCount = cv.header && 1 || cv.headers && cv.headers.length || 0;
192
+ return Math.max(pv, headerCount);
193
+ }, 0);
194
+
195
+ // construct Column objects
196
+ let count = 1;
197
+ const columns = this._columns = [];
198
+ value.forEach(defn => {
199
+ const column = new Column(this, count++, false);
200
+ columns.push(column);
201
+ column.defn = defn;
202
+ });
203
+ }
204
+ getColumnKey(key) {
205
+ return this._keys[key];
206
+ }
207
+ setColumnKey(key, value) {
208
+ this._keys[key] = value;
209
+ }
210
+ deleteColumnKey(key) {
211
+ delete this._keys[key];
212
+ }
213
+ eachColumnKey(f) {
214
+ _.each(this._keys, f);
215
+ }
216
+
217
+ // get a single column by col number. If it doesn't exist, create it and any gaps before it
218
+ getColumn(c) {
219
+ if (typeof c === 'string') {
220
+ // if it matches a key'd column, return that
221
+ const col = this._keys[c];
222
+ if (col) return col;
223
+
224
+ // otherwise, assume letter
225
+ c = colCache.l2n(c);
226
+ }
227
+ if (!this._columns) {
228
+ this._columns = [];
229
+ }
230
+ if (c > this._columns.length) {
231
+ let n = this._columns.length + 1;
232
+ while (n <= c) {
233
+ this._columns.push(new Column(this, n++));
234
+ }
235
+ }
236
+ return this._columns[c - 1];
237
+ }
238
+ spliceColumns(start, count) {
239
+ const rows = this._rows;
240
+ const nRows = rows.length;
241
+ for (var _len = arguments.length, inserts = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
242
+ inserts[_key - 2] = arguments[_key];
243
+ }
244
+ if (inserts.length > 0) {
245
+ // must iterate over all rows whether they exist yet or not
246
+ for (let i = 0; i < nRows; i++) {
247
+ const rowArguments = [start, count];
248
+ // eslint-disable-next-line no-loop-func
249
+ inserts.forEach(insert => {
250
+ rowArguments.push(insert[i] || null);
251
+ });
252
+ const row = this.getRow(i + 1);
253
+ // eslint-disable-next-line prefer-spread
254
+ row.splice.apply(row, rowArguments);
255
+ }
256
+ } else {
257
+ // nothing to insert, so just splice all rows
258
+ this._rows.forEach(r => {
259
+ if (r) {
260
+ r.splice(start, count);
261
+ }
262
+ });
263
+ }
264
+
265
+ // splice column definitions
266
+ const nExpand = inserts.length - count;
267
+ const nKeep = start + count;
268
+ const nEnd = this._columns.length;
269
+ if (nExpand < 0) {
270
+ for (let i = start + inserts.length; i <= nEnd; i++) {
271
+ this.getColumn(i).defn = this.getColumn(i - nExpand).defn;
272
+ }
273
+ } else if (nExpand > 0) {
274
+ for (let i = nEnd; i >= nKeep; i--) {
275
+ this.getColumn(i + nExpand).defn = this.getColumn(i).defn;
276
+ }
277
+ }
278
+ for (let i = start; i < start + inserts.length; i++) {
279
+ this.getColumn(i).defn = null;
280
+ }
281
+
282
+ // account for defined names
283
+ this.workbook.definedNames.spliceColumns(this.name, start, count, inserts.length);
284
+ }
285
+ get lastColumn() {
286
+ return this.getColumn(this.columnCount);
287
+ }
288
+ get columnCount() {
289
+ let maxCount = 0;
290
+ this.eachRow(row => {
291
+ maxCount = Math.max(maxCount, row.cellCount);
292
+ });
293
+ return maxCount;
294
+ }
295
+ get actualColumnCount() {
296
+ // performance nightmare - for each row, counts all the columns used
297
+ const counts = [];
298
+ let count = 0;
299
+ this.eachRow(row => {
300
+ row.eachCell(_ref => {
301
+ let {
302
+ col
303
+ } = _ref;
304
+ if (!counts[col]) {
305
+ counts[col] = true;
306
+ count++;
307
+ }
308
+ });
309
+ });
310
+ return count;
311
+ }
312
+
313
+ // =========================================================================
314
+ // Rows
315
+
316
+ _commitRow() {
317
+ // nop - allows streaming reader to fill a document
318
+ }
319
+ get _lastRowNumber() {
320
+ // need to cope with results of splice
321
+ const rows = this._rows;
322
+ let n = rows.length;
323
+ while (n > 0 && rows[n - 1] === undefined) {
324
+ n--;
325
+ }
326
+ return n;
327
+ }
328
+ get _nextRow() {
329
+ return this._lastRowNumber + 1;
330
+ }
331
+ get lastRow() {
332
+ if (this._rows.length) {
333
+ return this._rows[this._rows.length - 1];
334
+ }
335
+ return undefined;
336
+ }
337
+
338
+ // find a row (if exists) by row number
339
+ findRow(r) {
340
+ return this._rows[r - 1];
341
+ }
342
+
343
+ // find multiple rows (if exists) by row number
344
+ findRows(start, length) {
345
+ return this._rows.slice(start - 1, start - 1 + length);
346
+ }
347
+ get rowCount() {
348
+ return this._lastRowNumber;
349
+ }
350
+ get actualRowCount() {
351
+ // counts actual rows that have actual data
352
+ let count = 0;
353
+ this.eachRow(() => {
354
+ count++;
355
+ });
356
+ return count;
357
+ }
358
+
359
+ // get a row by row number.
360
+ getRow(r) {
361
+ let row = this._rows[r - 1];
362
+ if (!row) {
363
+ row = this._rows[r - 1] = new Row(this, r);
364
+ }
365
+ return row;
366
+ }
367
+
368
+ // get multiple rows by row number.
369
+ getRows(start, length) {
370
+ if (length < 1) return undefined;
371
+ const rows = [];
372
+ for (let i = start; i < start + length; i++) {
373
+ rows.push(this.getRow(i));
374
+ }
375
+ return rows;
376
+ }
377
+ addRow(value) {
378
+ let style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'n';
379
+ const rowNo = this._nextRow;
380
+ const row = this.getRow(rowNo);
381
+ row.values = value;
382
+ this._setStyleOption(rowNo, style[0] === 'i' ? style : 'n');
383
+ return row;
384
+ }
385
+ addRows(value) {
386
+ let style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'n';
387
+ const rows = [];
388
+ value.forEach(row => {
389
+ rows.push(this.addRow(row, style));
390
+ });
391
+ return rows;
392
+ }
393
+ insertRow(pos, value) {
394
+ let style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'n';
395
+ this.spliceRows(pos, 0, value);
396
+ this._setStyleOption(pos, style);
397
+ return this.getRow(pos);
398
+ }
399
+ insertRows(pos, values) {
400
+ let style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'n';
401
+ this.spliceRows(pos, 0, ...values);
402
+ if (style !== 'n') {
403
+ // copy over the styles
404
+ for (let i = 0; i < values.length; i++) {
405
+ if (style[0] === 'o' && this.findRow(values.length + pos + i) !== undefined) {
406
+ this._copyStyle(values.length + pos + i, pos + i, style[1] === '+');
407
+ } else if (style[0] === 'i' && this.findRow(pos - 1) !== undefined) {
408
+ this._copyStyle(pos - 1, pos + i, style[1] === '+');
409
+ }
410
+ }
411
+ }
412
+ return this.getRows(pos, values.length);
413
+ }
414
+
415
+ // set row at position to same style as of either pervious row (option 'i') or next row (option 'o')
416
+ _setStyleOption(pos) {
417
+ let style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'n';
418
+ if (style[0] === 'o' && this.findRow(pos + 1) !== undefined) {
419
+ this._copyStyle(pos + 1, pos, style[1] === '+');
420
+ } else if (style[0] === 'i' && this.findRow(pos - 1) !== undefined) {
421
+ this._copyStyle(pos - 1, pos, style[1] === '+');
422
+ }
423
+ }
424
+ _copyStyle(src, dest) {
425
+ let styleEmpty = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
426
+ const rSrc = this.getRow(src);
427
+ const rDst = this.getRow(dest);
428
+ rDst.style = copyStyle(rSrc.style);
429
+ // eslint-disable-next-line no-loop-func
430
+ rSrc.eachCell({
431
+ includeEmpty: styleEmpty
432
+ }, (cell, colNumber) => {
433
+ rDst.getCell(colNumber).style = copyStyle(cell.style);
434
+ });
435
+ rDst.height = rSrc.height;
436
+ }
437
+ duplicateRow(rowNum, count) {
438
+ let insert = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
439
+ // create count duplicates of rowNum
440
+ // either inserting new or overwriting existing rows
441
+
442
+ const rSrc = this._rows[rowNum - 1];
443
+ const inserts = new Array(count).fill(rSrc.values);
444
+ this.spliceRows(rowNum + 1, insert ? 0 : count, ...inserts);
445
+
446
+ // now copy styles...
447
+ for (let i = 0; i < count; i++) {
448
+ const rDst = this._rows[rowNum + i];
449
+ rDst.style = rSrc.style;
450
+ rDst.height = rSrc.height;
451
+ // eslint-disable-next-line no-loop-func
452
+ rSrc.eachCell({
453
+ includeEmpty: true
454
+ }, (cell, colNumber) => {
455
+ rDst.getCell(colNumber).style = cell.style;
456
+ });
457
+ }
458
+ }
459
+ spliceRows(start, count) {
460
+ // same problem as row.splice, except worse.
461
+ const nKeep = start + count;
462
+ for (var _len2 = arguments.length, inserts = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
463
+ inserts[_key2 - 2] = arguments[_key2];
464
+ }
465
+ const nInserts = inserts.length;
466
+ const nExpand = nInserts - count;
467
+ const nEnd = this._rows.length;
468
+ let i;
469
+ let rSrc;
470
+ if (nExpand < 0) {
471
+ // remove rows
472
+ if (start === nEnd) {
473
+ this._rows[nEnd - 1] = undefined;
474
+ }
475
+ for (i = nKeep; i <= nEnd; i++) {
476
+ rSrc = this._rows[i - 1];
477
+ if (rSrc) {
478
+ const rDst = this.getRow(i + nExpand);
479
+ rDst.values = rSrc.values;
480
+ rDst.style = rSrc.style;
481
+ rDst.height = rSrc.height;
482
+ // eslint-disable-next-line no-loop-func
483
+ rSrc.eachCell({
484
+ includeEmpty: true
485
+ }, (cell, colNumber) => {
486
+ rDst.getCell(colNumber).style = cell.style;
487
+ });
488
+ this._rows[i - 1] = undefined;
489
+ } else {
490
+ this._rows[i + nExpand - 1] = undefined;
491
+ }
492
+ }
493
+ } else if (nExpand > 0) {
494
+ // insert new cells
495
+ for (i = nEnd; i >= nKeep; i--) {
496
+ rSrc = this._rows[i - 1];
497
+ if (rSrc) {
498
+ const rDst = this.getRow(i + nExpand);
499
+ rDst.values = rSrc.values;
500
+ rDst.style = rSrc.style;
501
+ rDst.height = rSrc.height;
502
+ // eslint-disable-next-line no-loop-func
503
+ rSrc.eachCell({
504
+ includeEmpty: true
505
+ }, (cell, colNumber) => {
506
+ rDst.getCell(colNumber).style = cell.style;
507
+
508
+ // remerge cells accounting for insert offset
509
+ if (cell._value.constructor.name === 'MergeValue') {
510
+ const cellToBeMerged = this.getRow(cell._row._number + nInserts).getCell(colNumber);
511
+ const prevMaster = cell._value._master;
512
+ const newMaster = this.getRow(prevMaster._row._number + nInserts).getCell(prevMaster._column._number);
513
+ cellToBeMerged.merge(newMaster);
514
+ }
515
+ });
516
+ } else {
517
+ this._rows[i + nExpand - 1] = undefined;
518
+ }
519
+ }
520
+ }
521
+
522
+ // now copy over the new values
523
+ for (i = 0; i < nInserts; i++) {
524
+ const rDst = this.getRow(start + i);
525
+ rDst.style = {};
526
+ rDst.values = inserts[i];
527
+ }
528
+
529
+ // account for defined names
530
+ this.workbook.definedNames.spliceRows(this.name, start, count, nInserts);
531
+ }
532
+
533
+ // iterate over every row in the worksheet, including maybe empty rows
534
+ eachRow(options, iteratee) {
535
+ if (!iteratee) {
536
+ iteratee = options;
537
+ options = undefined;
538
+ }
539
+ if (options && options.includeEmpty) {
540
+ const n = this._rows.length;
541
+ for (let i = 1; i <= n; i++) {
542
+ iteratee(this.getRow(i), i);
543
+ }
544
+ } else {
545
+ this._rows.forEach(row => {
546
+ if (row && row.hasValues) {
547
+ iteratee(row, row.number);
548
+ }
549
+ });
550
+ }
551
+ }
552
+
553
+ // return all rows as sparse array
554
+ getSheetValues() {
555
+ const rows = [];
556
+ this._rows.forEach(row => {
557
+ if (row) {
558
+ rows[row.number] = row.values;
559
+ }
560
+ });
561
+ return rows;
562
+ }
563
+
564
+ // =========================================================================
565
+ // Cells
566
+
567
+ // returns the cell at [r,c] or address given by r. If not found, return undefined
568
+ findCell(r, c) {
569
+ const address = colCache.getAddress(r, c);
570
+ const row = this._rows[address.row - 1];
571
+ return row ? row.findCell(address.col) : undefined;
572
+ }
573
+
574
+ // return the cell at [r,c] or address given by r. If not found, create a new one.
575
+ getCell(r, c) {
576
+ const address = colCache.getAddress(r, c);
577
+ const row = this.getRow(address.row);
578
+ return row.getCellEx(address);
579
+ }
580
+
581
+ // =========================================================================
582
+ // Merge
583
+
584
+ // convert the range defined by ['tl:br'], [tl,br] or [t,l,b,r] into a single 'merged' cell
585
+ mergeCells() {
586
+ for (var _len3 = arguments.length, cells = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
587
+ cells[_key3] = arguments[_key3];
588
+ }
589
+ const dimensions = new Range(cells);
590
+ this._mergeCellsInternal(dimensions);
591
+ }
592
+ mergeCellsWithoutStyle() {
593
+ for (var _len4 = arguments.length, cells = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
594
+ cells[_key4] = arguments[_key4];
595
+ }
596
+ const dimensions = new Range(cells);
597
+ this._mergeCellsInternal(dimensions, true);
598
+ }
599
+ _mergeCellsInternal(dimensions, ignoreStyle) {
600
+ // check cells aren't already merged
601
+ _.each(this._merges, merge => {
602
+ if (merge.intersects(dimensions)) {
603
+ throw new Error('Cannot merge already merged cells');
604
+ }
605
+ });
606
+
607
+ // apply merge
608
+ const master = this.getCell(dimensions.top, dimensions.left);
609
+ for (let i = dimensions.top; i <= dimensions.bottom; i++) {
610
+ for (let j = dimensions.left; j <= dimensions.right; j++) {
611
+ // merge all but the master cell
612
+ if (i > dimensions.top || j > dimensions.left) {
613
+ this.getCell(i, j).merge(master, ignoreStyle);
614
+ }
615
+ }
616
+ }
617
+
618
+ // index merge
619
+ this._merges[master.address] = dimensions;
620
+ }
621
+ _unMergeMaster(master) {
622
+ // master is always top left of a rectangle
623
+ const merge = this._merges[master.address];
624
+ if (merge) {
625
+ for (let i = merge.top; i <= merge.bottom; i++) {
626
+ for (let j = merge.left; j <= merge.right; j++) {
627
+ this.getCell(i, j).unmerge();
628
+ }
629
+ }
630
+ delete this._merges[master.address];
631
+ }
632
+ }
633
+ get hasMerges() {
634
+ // return true if this._merges has a merge object
635
+ return _.some(this._merges, Boolean);
636
+ }
637
+
638
+ // scan the range defined by ['tl:br'], [tl,br] or [t,l,b,r] and if any cell is part of a merge,
639
+ // un-merge the group. Note this function can affect multiple merges and merge-blocks are
640
+ // atomic - either they're all merged or all un-merged.
641
+ unMergeCells() {
642
+ for (var _len5 = arguments.length, cells = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
643
+ cells[_key5] = arguments[_key5];
644
+ }
645
+ const dimensions = new Range(cells);
646
+
647
+ // find any cells in that range and unmerge them
648
+ for (let i = dimensions.top; i <= dimensions.bottom; i++) {
649
+ for (let j = dimensions.left; j <= dimensions.right; j++) {
650
+ const cell = this.findCell(i, j);
651
+ if (cell) {
652
+ if (cell.type === Enums.ValueType.Merge) {
653
+ // this cell merges to another master
654
+ this._unMergeMaster(cell.master);
655
+ } else if (this._merges[cell.address]) {
656
+ // this cell is a master
657
+ this._unMergeMaster(cell);
658
+ }
659
+ }
660
+ }
661
+ }
662
+ }
663
+
664
+ // ===========================================================================
665
+ // Shared/Array Formula
666
+ fillFormula(range, formula, results) {
667
+ let shareType = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'shared';
668
+ // Define formula for top-left cell and share to rest
669
+ const decoded = colCache.decode(range);
670
+ const {
671
+ top,
672
+ left,
673
+ bottom,
674
+ right
675
+ } = decoded;
676
+ const width = right - left + 1;
677
+ const masterAddress = colCache.encodeAddress(top, left);
678
+ const isShared = shareType === 'shared';
679
+
680
+ // work out result accessor
681
+ let getResult;
682
+ if (typeof results === 'function') {
683
+ getResult = results;
684
+ } else if (Array.isArray(results)) {
685
+ if (Array.isArray(results[0])) {
686
+ getResult = (row, col) => results[row - top][col - left];
687
+ } else {
688
+ // eslint-disable-next-line no-mixed-operators
689
+ getResult = (row, col) => results[(row - top) * width + (col - left)];
690
+ }
691
+ } else {
692
+ getResult = () => undefined;
693
+ }
694
+ let first = true;
695
+ for (let r = top; r <= bottom; r++) {
696
+ for (let c = left; c <= right; c++) {
697
+ if (first) {
698
+ this.getCell(r, c).value = {
699
+ shareType,
700
+ formula,
701
+ ref: range,
702
+ result: getResult(r, c)
703
+ };
704
+ first = false;
705
+ } else {
706
+ this.getCell(r, c).value = isShared ? {
707
+ sharedFormula: masterAddress,
708
+ result: getResult(r, c)
709
+ } : getResult(r, c);
710
+ }
711
+ }
712
+ }
713
+ }
714
+
715
+ // =========================================================================
716
+ // Images
717
+ addImage(imageId, range) {
718
+ const model = {
719
+ type: 'image',
720
+ imageId,
721
+ range
722
+ };
723
+ this._media.push(new Image(this, model));
724
+ }
725
+ getImages() {
726
+ return this._media.filter(m => m.type === 'image');
727
+ }
728
+ addBackgroundImage(imageId) {
729
+ const model = {
730
+ type: 'background',
731
+ imageId
732
+ };
733
+ this._media.push(new Image(this, model));
734
+ }
735
+ getBackgroundImageId() {
736
+ const image = this._media.find(m => m.type === 'background');
737
+ return image && image.imageId;
738
+ }
739
+
740
+ // =========================================================================
741
+ // Worksheet Protection
742
+ protect(password, options) {
743
+ // TODO: make this function truly async
744
+ // perhaps marshal to worker thread or something
745
+ return new Promise(resolve => {
746
+ this.sheetProtection = {
747
+ sheet: true
748
+ };
749
+ if (options && 'spinCount' in options) {
750
+ // force spinCount to be integer >= 0
751
+ options.spinCount = Number.isFinite(options.spinCount) ? Math.round(Math.max(0, options.spinCount)) : 100000;
752
+ }
753
+ if (password) {
754
+ this.sheetProtection.algorithmName = 'SHA-512';
755
+ this.sheetProtection.saltValue = Encryptor.randomBytes(16).toString('base64');
756
+ this.sheetProtection.spinCount = options && 'spinCount' in options ? options.spinCount : 100000; // allow user specified spinCount
757
+ this.sheetProtection.hashValue = Encryptor.convertPasswordToHash(password, 'SHA512', this.sheetProtection.saltValue, this.sheetProtection.spinCount);
758
+ }
759
+ if (options) {
760
+ this.sheetProtection = Object.assign(this.sheetProtection, options);
761
+ if (!password && 'spinCount' in options) {
762
+ delete this.sheetProtection.spinCount;
763
+ }
764
+ }
765
+ resolve();
766
+ });
767
+ }
768
+ unprotect() {
769
+ this.sheetProtection = null;
770
+ }
771
+
772
+ // =========================================================================
773
+ // Tables
774
+ addTable(model) {
775
+ const table = new Table(this, model);
776
+ this.tables[model.name] = table;
777
+ return table;
778
+ }
779
+ getTable(name) {
780
+ return this.tables[name];
781
+ }
782
+ removeTable(name) {
783
+ delete this.tables[name];
784
+ }
785
+ getTables() {
786
+ return Object.values(this.tables);
787
+ }
788
+
789
+ // ===========================================================================
790
+ // Conditional Formatting
791
+ addConditionalFormatting(cf) {
792
+ this.conditionalFormattings.push(cf);
793
+ }
794
+ removeConditionalFormatting(filter) {
795
+ if (typeof filter === 'number') {
796
+ this.conditionalFormattings.splice(filter, 1);
797
+ } else if (filter instanceof Function) {
798
+ this.conditionalFormattings = this.conditionalFormattings.filter(filter);
799
+ } else {
800
+ this.conditionalFormattings = [];
801
+ }
802
+ }
803
+
804
+ // ===========================================================================
805
+ // Deprecated
806
+ get tabColor() {
807
+ // eslint-disable-next-line no-console
808
+ console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');
809
+ return this.properties.tabColor;
810
+ }
811
+ set tabColor(value) {
812
+ // eslint-disable-next-line no-console
813
+ console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');
814
+ this.properties.tabColor = value;
815
+ }
816
+
817
+ // ===========================================================================
818
+ // Model
819
+
820
+ get model() {
821
+ const model = {
822
+ id: this.id,
823
+ name: this.name,
824
+ dataValidations: this.dataValidations.model,
825
+ properties: this.properties,
826
+ state: this.state,
827
+ pageSetup: this.pageSetup,
828
+ headerFooter: this.headerFooter,
829
+ rowBreaks: this.rowBreaks,
830
+ views: this.views,
831
+ autoFilter: this.autoFilter,
832
+ media: this._media.map(medium => medium.model),
833
+ sheetProtection: this.sheetProtection,
834
+ tables: Object.values(this.tables).map(table => table.model),
835
+ conditionalFormattings: this.conditionalFormattings
836
+ };
837
+
838
+ // =================================================
839
+ // columns
840
+ model.cols = Column.toModel(this.columns);
841
+
842
+ // ==========================================================
843
+ // Rows
844
+ const rows = model.rows = [];
845
+ const dimensions = model.dimensions = new Range();
846
+ this._rows.forEach(row => {
847
+ const rowModel = row && row.model;
848
+ if (rowModel) {
849
+ dimensions.expand(rowModel.number, rowModel.min, rowModel.number, rowModel.max);
850
+ rows.push(rowModel);
851
+ }
852
+ });
853
+
854
+ // ==========================================================
855
+ // Merges
856
+ model.merges = [];
857
+ _.each(this._merges, merge => {
858
+ model.merges.push(merge.range);
859
+ });
860
+ return model;
861
+ }
862
+ _parseRows(model) {
863
+ this._rows = [];
864
+ model.rows.forEach(rowModel => {
865
+ const row = new Row(this, rowModel.number);
866
+ this._rows[row.number - 1] = row;
867
+ row.model = rowModel;
868
+ });
869
+ }
870
+ _parseMergeCells(model) {
871
+ _.each(model.mergeCells, merge => {
872
+ // Do not merge styles when importing an Excel file
873
+ // since each cell may have different styles intentionally.
874
+ this.mergeCellsWithoutStyle(merge);
875
+ });
876
+ }
877
+ set model(value) {
878
+ this.name = value.name;
879
+ this._columns = Column.fromModel(this, value.cols);
880
+ this._parseRows(value);
881
+ this._parseMergeCells(value);
882
+ this.dataValidations = new DataValidations(value.dataValidations);
883
+ this.properties = value.properties;
884
+ this.pageSetup = value.pageSetup;
885
+ this.headerFooter = value.headerFooter;
886
+ this.views = value.views;
887
+ this.autoFilter = value.autoFilter;
888
+ this._media = value.media.map(medium => new Image(this, medium));
889
+ this.sheetProtection = value.sheetProtection;
890
+ this.tables = value.tables.reduce((tables, table) => {
891
+ const t = new Table();
892
+ t.model = table;
893
+ tables[table.name] = t;
894
+ return tables;
895
+ }, {});
896
+ this.conditionalFormattings = value.conditionalFormattings;
897
+ }
898
+ }
899
+ module.exports = Worksheet;
900
+ //# sourceMappingURL=worksheet.js.map