@zergai/ztc 0.2.5-dev.36050816660 → 0.2.6-dev.36101352252

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 (366) hide show
  1. package/THIRD_PARTY_NOTICES.md +16 -5
  2. package/dist/zlm-embed.mjs +1 -1
  3. package/node_modules/exceljs/LICENSE +0 -1
  4. package/node_modules/exceljs/index.d.ts +6 -6
  5. package/node_modules/exceljs/package.json +1 -46
  6. package/package.json +10 -4
  7. package/{node_modules/exceljs/dist → packages/exceljs}/LICENSE +0 -1
  8. package/packages/exceljs/PROVENANCE.md +18 -0
  9. package/packages/exceljs/excel.js +13 -0
  10. package/packages/exceljs/index.d.ts +2035 -0
  11. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/csv/csv.js +97 -88
  12. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/csv/line-buffer.js +12 -6
  13. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/csv/stream-converter.js +30 -5
  14. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/anchor.js +26 -8
  15. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/cell.js +245 -82
  16. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/column.js +53 -7
  17. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/data-validations.js +5 -4
  18. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/defined-names.js +38 -15
  19. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/enums.js +7 -8
  20. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/image.js +13 -23
  21. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/modelcontainer.js +3 -1
  22. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/note.js +19 -18
  23. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/range.js +91 -63
  24. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/row.js +86 -53
  25. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/table.js +63 -41
  26. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/workbook.js +43 -24
  27. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/doc/worksheet.js +150 -123
  28. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/exceljs.bare.js +3 -4
  29. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/exceljs.browser.js +4 -4
  30. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/exceljs.nodejs.js +5 -6
  31. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/stream/xlsx/hyperlink-reader.js +16 -23
  32. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/stream/xlsx/sheet-comments-writer.js +35 -8
  33. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/stream/xlsx/sheet-rels-writer.js +34 -9
  34. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/stream/xlsx/workbook-reader.js +52 -77
  35. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/stream/xlsx/workbook-writer.js +101 -101
  36. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/stream/xlsx/worksheet-reader.js +52 -70
  37. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/stream/xlsx/worksheet-writer.js +161 -96
  38. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/auto-drain.js +3 -6
  39. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/browser-buffer-decode.js +2 -3
  40. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/browser-buffer-encode.js +3 -6
  41. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/cell-matrix.js +34 -18
  42. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/col-cache.js +62 -33
  43. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/copy-style.js +12 -12
  44. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/encryptor.js +3 -6
  45. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/iterate-stream.js +6 -4
  46. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/parse-sax.js +6 -23
  47. package/packages/exceljs/lib/utils/shared-formula.js +44 -0
  48. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/shared-strings.js +6 -3
  49. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/stream-base64.js +17 -11
  50. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/stream-buf.js +33 -12
  51. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/string-buf.js +14 -5
  52. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/string-builder.js +6 -3
  53. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/stuttered-pipe.js +9 -3
  54. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/typed-stack.js +4 -3
  55. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/under-dash.js +30 -14
  56. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/utils.js +28 -27
  57. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/xml-stream.js +23 -5
  58. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/utils/zip-stream.js +22 -14
  59. package/packages/exceljs/lib/xlsx/.rels +11 -0
  60. package/packages/exceljs/lib/xlsx/calcChain.xml +6 -0
  61. package/packages/exceljs/lib/xlsx/core.xml +7 -0
  62. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/defaultnumformats.js +61 -138
  63. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/rel-type.js +9 -6
  64. package/packages/exceljs/lib/xlsx/styles.xml +41 -0
  65. package/packages/exceljs/lib/xlsx/workbook.xml +16 -0
  66. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/base-xform.js +27 -21
  67. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/book/defined-name-xform.js +11 -5
  68. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/book/sheet-xform.js +7 -5
  69. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/book/workbook-calc-properties-xform.js +6 -4
  70. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/book/workbook-properties-xform.js +7 -5
  71. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/book/workbook-view-xform.js +11 -9
  72. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/book/workbook-xform.js +45 -24
  73. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/comment/comment-xform.js +11 -9
  74. package/packages/exceljs/lib/xlsx/xform/comment/comments-xform.js +82 -0
  75. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/comment/style/vml-position-xform.js +7 -3
  76. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/comment/style/vml-protection-xform.js +7 -3
  77. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/comment/vml-anchor-xform.js +11 -4
  78. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/comment/vml-client-data-xform.js +22 -24
  79. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/comment/vml-notes-xform.js +21 -21
  80. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/comment/vml-shape-xform.js +22 -19
  81. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/comment/vml-textbox-xform.js +17 -14
  82. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/composite-xform.js +8 -3
  83. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/core/app-heading-pairs-xform.js +9 -7
  84. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/core/app-titles-of-parts-xform.js +8 -7
  85. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/core/app-xform.js +23 -16
  86. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/core/content-types-xform.js +36 -28
  87. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/core/core-xform.js +33 -55
  88. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/core/relationship-xform.js +5 -3
  89. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/core/relationships-xform.js +13 -5
  90. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/base-cell-anchor-xform.js +6 -5
  91. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/blip-fill-xform.js +14 -4
  92. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/blip-xform.js +7 -5
  93. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/c-nv-pic-pr-xform.js +7 -4
  94. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/c-nv-pr-xform.js +11 -5
  95. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/cell-position-xform.js +15 -20
  96. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/drawing-xform.js +20 -9
  97. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/ext-lst-xform.js +8 -5
  98. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/ext-xform.js +13 -7
  99. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/hlink-click-xform.js +9 -6
  100. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/nv-pic-pr-xform.js +10 -4
  101. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/one-cell-anchor-xform.js +15 -15
  102. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/pic-xform.js +14 -4
  103. package/packages/exceljs/lib/xlsx/xform/drawing/sp-pr.js +17 -0
  104. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/drawing/two-cell-anchor-xform.js +15 -15
  105. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/list-xform.js +18 -14
  106. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/auto-filter-xform.js +8 -10
  107. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cell-xform.js +118 -71
  108. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf/cf-rule-xform.js +64 -38
  109. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf/cfvo-xform.js +7 -5
  110. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf/color-scale-xform.js +13 -6
  111. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf/conditional-formatting-xform.js +15 -12
  112. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf/conditional-formattings-xform.js +19 -4
  113. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf/databar-xform.js +13 -6
  114. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +22 -6
  115. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf/formula-xform.js +6 -3
  116. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf/icon-set-xform.js +14 -10
  117. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +8 -9
  118. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +26 -16
  119. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +11 -6
  120. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +17 -7
  121. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +11 -4
  122. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +41 -18
  123. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf-ext/f-ext-xform.js +6 -3
  124. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +18 -11
  125. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +6 -3
  126. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/col-xform.js +14 -6
  127. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/data-validations-xform.js +123 -113
  128. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/dimension-xform.js +7 -6
  129. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/drawing-xform.js +8 -7
  130. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/ext-lst-xform.js +23 -6
  131. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/header-footer-xform.js +23 -3
  132. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/hyperlink-xform.js +10 -6
  133. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/merge-cell-xform.js +7 -6
  134. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/merges.js +8 -4
  135. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/outline-properties-xform.js +14 -6
  136. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/page-breaks-xform.js +6 -3
  137. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/page-margins-xform.js +8 -5
  138. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/page-setup-properties-xform.js +8 -5
  139. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/page-setup-xform.js +9 -5
  140. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/picture-xform.js +8 -7
  141. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/print-options-xform.js +9 -5
  142. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/row-breaks-xform.js +7 -5
  143. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/row-xform.js +22 -8
  144. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/sheet-format-properties-xform.js +9 -5
  145. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/sheet-properties-xform.js +11 -4
  146. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/sheet-protection-xform.js +10 -5
  147. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/sheet-view-xform.js +39 -27
  148. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/table-part-xform.js +8 -7
  149. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/sheet/worksheet-xform.js +138 -112
  150. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/simple/boolean-xform.js +7 -3
  151. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/simple/date-xform.js +22 -14
  152. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/simple/float-xform.js +7 -3
  153. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/simple/integer-xform.js +7 -3
  154. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/simple/string-xform.js +7 -3
  155. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/static-xform.js +6 -3
  156. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/strings/phonetic-text-xform.js +20 -20
  157. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/strings/rich-text-xform.js +13 -4
  158. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/strings/shared-string-xform.js +18 -15
  159. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/strings/shared-strings-xform.js +18 -5
  160. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/strings/text-xform.js +9 -4
  161. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/alignment-xform.js +42 -9
  162. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/border-xform.js +52 -30
  163. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/color-xform.js +9 -12
  164. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/dxf-xform.js +14 -9
  165. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/fill-xform.js +86 -30
  166. package/packages/exceljs/lib/xlsx/xform/style/font-xform.js +102 -0
  167. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/numfmt-xform.js +13 -9
  168. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/protection-xform.js +12 -5
  169. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/style-xform.js +13 -6
  170. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/styles-xform.js +123 -208
  171. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/style/underline-xform.js +13 -12
  172. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/table/auto-filter-xform.js +17 -11
  173. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/table/custom-filter-xform.js +8 -5
  174. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/table/filter-column-xform.js +19 -12
  175. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/table/filter-xform.js +8 -5
  176. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/table/table-column-xform.js +10 -8
  177. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/table/table-style-info-xform.js +9 -8
  178. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xform/table/table-xform.js +20 -12
  179. package/{node_modules/exceljs/dist/es5 → packages/exceljs/lib}/xlsx/xlsx.js +197 -200
  180. package/packages/exceljs/lib/xlsx/xml/theme1.js +3 -0
  181. package/packages/exceljs/lib/xlsx/xml/theme1.xml +318 -0
  182. package/packages/exceljs/package.json +104 -0
  183. package/packages/sim-graph/package.json +3 -0
  184. package/node_modules/exceljs/README.md +0 -3023
  185. package/node_modules/exceljs/README_zh.md +0 -2878
  186. package/node_modules/exceljs/dist/es5/csv/csv.js.map +0 -1
  187. package/node_modules/exceljs/dist/es5/csv/line-buffer.js.map +0 -1
  188. package/node_modules/exceljs/dist/es5/csv/stream-converter.js.map +0 -1
  189. package/node_modules/exceljs/dist/es5/doc/anchor.js.map +0 -1
  190. package/node_modules/exceljs/dist/es5/doc/cell.js.map +0 -1
  191. package/node_modules/exceljs/dist/es5/doc/column.js.map +0 -1
  192. package/node_modules/exceljs/dist/es5/doc/data-validations.js.map +0 -1
  193. package/node_modules/exceljs/dist/es5/doc/defined-names.js.map +0 -1
  194. package/node_modules/exceljs/dist/es5/doc/enums.js.map +0 -1
  195. package/node_modules/exceljs/dist/es5/doc/image.js.map +0 -1
  196. package/node_modules/exceljs/dist/es5/doc/modelcontainer.js.map +0 -1
  197. package/node_modules/exceljs/dist/es5/doc/note.js.map +0 -1
  198. package/node_modules/exceljs/dist/es5/doc/range.js.map +0 -1
  199. package/node_modules/exceljs/dist/es5/doc/row.js.map +0 -1
  200. package/node_modules/exceljs/dist/es5/doc/table.js.map +0 -1
  201. package/node_modules/exceljs/dist/es5/doc/workbook.js.map +0 -1
  202. package/node_modules/exceljs/dist/es5/doc/worksheet.js.map +0 -1
  203. package/node_modules/exceljs/dist/es5/exceljs.bare.js.map +0 -1
  204. package/node_modules/exceljs/dist/es5/exceljs.browser.js.map +0 -1
  205. package/node_modules/exceljs/dist/es5/exceljs.nodejs.js.map +0 -1
  206. package/node_modules/exceljs/dist/es5/index.js +0 -15
  207. package/node_modules/exceljs/dist/es5/stream/xlsx/hyperlink-reader.js.map +0 -1
  208. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-comments-writer.js.map +0 -1
  209. package/node_modules/exceljs/dist/es5/stream/xlsx/sheet-rels-writer.js.map +0 -1
  210. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-reader.js.map +0 -1
  211. package/node_modules/exceljs/dist/es5/stream/xlsx/workbook-writer.js.map +0 -1
  212. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-reader.js.map +0 -1
  213. package/node_modules/exceljs/dist/es5/stream/xlsx/worksheet-writer.js.map +0 -1
  214. package/node_modules/exceljs/dist/es5/utils/auto-drain.js.map +0 -1
  215. package/node_modules/exceljs/dist/es5/utils/browser-buffer-decode.js.map +0 -1
  216. package/node_modules/exceljs/dist/es5/utils/browser-buffer-encode.js.map +0 -1
  217. package/node_modules/exceljs/dist/es5/utils/cell-matrix.js.map +0 -1
  218. package/node_modules/exceljs/dist/es5/utils/col-cache.js.map +0 -1
  219. package/node_modules/exceljs/dist/es5/utils/copy-style.js.map +0 -1
  220. package/node_modules/exceljs/dist/es5/utils/encryptor.js.map +0 -1
  221. package/node_modules/exceljs/dist/es5/utils/iterate-stream.js.map +0 -1
  222. package/node_modules/exceljs/dist/es5/utils/parse-sax.js.map +0 -1
  223. package/node_modules/exceljs/dist/es5/utils/shared-formula.js +0 -42
  224. package/node_modules/exceljs/dist/es5/utils/shared-formula.js.map +0 -1
  225. package/node_modules/exceljs/dist/es5/utils/shared-strings.js.map +0 -1
  226. package/node_modules/exceljs/dist/es5/utils/stream-base64.js.map +0 -1
  227. package/node_modules/exceljs/dist/es5/utils/stream-buf.js.map +0 -1
  228. package/node_modules/exceljs/dist/es5/utils/string-buf.js.map +0 -1
  229. package/node_modules/exceljs/dist/es5/utils/string-builder.js.map +0 -1
  230. package/node_modules/exceljs/dist/es5/utils/stuttered-pipe.js.map +0 -1
  231. package/node_modules/exceljs/dist/es5/utils/typed-stack.js.map +0 -1
  232. package/node_modules/exceljs/dist/es5/utils/under-dash.js.map +0 -1
  233. package/node_modules/exceljs/dist/es5/utils/utils.js.map +0 -1
  234. package/node_modules/exceljs/dist/es5/utils/xml-stream.js.map +0 -1
  235. package/node_modules/exceljs/dist/es5/utils/zip-stream.js.map +0 -1
  236. package/node_modules/exceljs/dist/es5/xlsx/defaultnumformats.js.map +0 -1
  237. package/node_modules/exceljs/dist/es5/xlsx/rel-type.js.map +0 -1
  238. package/node_modules/exceljs/dist/es5/xlsx/xform/base-xform.js.map +0 -1
  239. package/node_modules/exceljs/dist/es5/xlsx/xform/book/defined-name-xform.js.map +0 -1
  240. package/node_modules/exceljs/dist/es5/xlsx/xform/book/sheet-xform.js.map +0 -1
  241. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +0 -1
  242. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +0 -1
  243. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +0 -1
  244. package/node_modules/exceljs/dist/es5/xlsx/xform/book/workbook-xform.js.map +0 -1
  245. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comment-xform.js.map +0 -1
  246. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comments-xform.js +0 -76
  247. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/comments-xform.js.map +0 -1
  248. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +0 -1
  249. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +0 -1
  250. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +0 -1
  251. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +0 -1
  252. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +0 -1
  253. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +0 -1
  254. package/node_modules/exceljs/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +0 -1
  255. package/node_modules/exceljs/dist/es5/xlsx/xform/composite-xform.js.map +0 -1
  256. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +0 -1
  257. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +0 -1
  258. package/node_modules/exceljs/dist/es5/xlsx/xform/core/app-xform.js.map +0 -1
  259. package/node_modules/exceljs/dist/es5/xlsx/xform/core/content-types-xform.js.map +0 -1
  260. package/node_modules/exceljs/dist/es5/xlsx/xform/core/core-xform.js.map +0 -1
  261. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationship-xform.js.map +0 -1
  262. package/node_modules/exceljs/dist/es5/xlsx/xform/core/relationships-xform.js.map +0 -1
  263. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +0 -1
  264. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +0 -1
  265. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/blip-xform.js.map +0 -1
  266. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +0 -1
  267. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +0 -1
  268. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +0 -1
  269. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +0 -1
  270. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +0 -1
  271. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/ext-xform.js.map +0 -1
  272. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +0 -1
  273. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +0 -1
  274. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +0 -1
  275. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/pic-xform.js.map +0 -1
  276. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/sp-pr.js +0 -30
  277. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/sp-pr.js.map +0 -1
  278. package/node_modules/exceljs/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +0 -1
  279. package/node_modules/exceljs/dist/es5/xlsx/xform/list-xform.js.map +0 -1
  280. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +0 -1
  281. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cell-xform.js.map +0 -1
  282. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +0 -1
  283. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +0 -1
  284. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +0 -1
  285. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +0 -1
  286. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +0 -1
  287. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +0 -1
  288. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +0 -1
  289. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +0 -1
  290. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +0 -1
  291. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +0 -1
  292. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +0 -1
  293. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +0 -1
  294. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +0 -1
  295. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +0 -1
  296. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +0 -1
  297. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +0 -1
  298. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +0 -1
  299. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +0 -1
  300. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/col-xform.js.map +0 -1
  301. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +0 -1
  302. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +0 -1
  303. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +0 -1
  304. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +0 -1
  305. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +0 -1
  306. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +0 -1
  307. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +0 -1
  308. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/merges.js.map +0 -1
  309. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +0 -1
  310. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +0 -1
  311. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +0 -1
  312. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +0 -1
  313. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +0 -1
  314. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/picture-xform.js.map +0 -1
  315. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +0 -1
  316. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +0 -1
  317. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/row-xform.js.map +0 -1
  318. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +0 -1
  319. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +0 -1
  320. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +0 -1
  321. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +0 -1
  322. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +0 -1
  323. package/node_modules/exceljs/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +0 -1
  324. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/boolean-xform.js.map +0 -1
  325. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/date-xform.js.map +0 -1
  326. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/float-xform.js.map +0 -1
  327. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/integer-xform.js.map +0 -1
  328. package/node_modules/exceljs/dist/es5/xlsx/xform/simple/string-xform.js.map +0 -1
  329. package/node_modules/exceljs/dist/es5/xlsx/xform/static-xform.js.map +0 -1
  330. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +0 -1
  331. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +0 -1
  332. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +0 -1
  333. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +0 -1
  334. package/node_modules/exceljs/dist/es5/xlsx/xform/strings/text-xform.js.map +0 -1
  335. package/node_modules/exceljs/dist/es5/xlsx/xform/style/alignment-xform.js.map +0 -1
  336. package/node_modules/exceljs/dist/es5/xlsx/xform/style/border-xform.js.map +0 -1
  337. package/node_modules/exceljs/dist/es5/xlsx/xform/style/color-xform.js.map +0 -1
  338. package/node_modules/exceljs/dist/es5/xlsx/xform/style/dxf-xform.js.map +0 -1
  339. package/node_modules/exceljs/dist/es5/xlsx/xform/style/fill-xform.js.map +0 -1
  340. package/node_modules/exceljs/dist/es5/xlsx/xform/style/font-xform.js +0 -175
  341. package/node_modules/exceljs/dist/es5/xlsx/xform/style/font-xform.js.map +0 -1
  342. package/node_modules/exceljs/dist/es5/xlsx/xform/style/numfmt-xform.js.map +0 -1
  343. package/node_modules/exceljs/dist/es5/xlsx/xform/style/protection-xform.js.map +0 -1
  344. package/node_modules/exceljs/dist/es5/xlsx/xform/style/style-xform.js.map +0 -1
  345. package/node_modules/exceljs/dist/es5/xlsx/xform/style/styles-xform.js.map +0 -1
  346. package/node_modules/exceljs/dist/es5/xlsx/xform/style/underline-xform.js.map +0 -1
  347. package/node_modules/exceljs/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +0 -1
  348. package/node_modules/exceljs/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +0 -1
  349. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-column-xform.js.map +0 -1
  350. package/node_modules/exceljs/dist/es5/xlsx/xform/table/filter-xform.js.map +0 -1
  351. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-column-xform.js.map +0 -1
  352. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +0 -1
  353. package/node_modules/exceljs/dist/es5/xlsx/xform/table/table-xform.js.map +0 -1
  354. package/node_modules/exceljs/dist/es5/xlsx/xlsx.js.map +0 -1
  355. package/node_modules/exceljs/dist/es5/xlsx/xml/theme1.js +0 -5
  356. package/node_modules/exceljs/dist/es5/xlsx/xml/theme1.js.map +0 -1
  357. package/node_modules/exceljs/dist/exceljs.bare.js +0 -55253
  358. package/node_modules/exceljs/dist/exceljs.bare.js.map +0 -761
  359. package/node_modules/exceljs/dist/exceljs.bare.min.js +0 -45
  360. package/node_modules/exceljs/dist/exceljs.bare.min.js.map +0 -1
  361. package/node_modules/exceljs/dist/exceljs.js +0 -59900
  362. package/node_modules/exceljs/dist/exceljs.js.map +0 -1083
  363. package/node_modules/exceljs/dist/exceljs.min.js +0 -45
  364. package/node_modules/exceljs/dist/exceljs.min.js.map +0 -1
  365. package/node_modules/exceljs/index.ts +0 -2
  366. package/node_modules/exceljs/lib/doc/data/theme1.json +0 -234
@@ -1 +0,0 @@
1
- {"version":3,"file":"worksheet.js","names":["_","require","colCache","Range","Row","Column","Enums","Image","Table","DataValidations","Encryptor","copyStyle","Worksheet","constructor","options","_workbook","workbook","id","orderNo","name","state","_rows","_columns","_keys","_merges","rowBreaks","properties","Object","assign","defaultRowHeight","dyDescent","outlineLevelCol","outlineLevelRow","pageSetup","margins","left","right","top","bottom","header","footer","orientation","horizontalDpi","verticalDpi","fitToPage","fitToWidth","fitToHeight","scale","pageOrder","blackAndWhite","draft","cellComments","errors","paperSize","undefined","showRowColHeaders","showGridLines","firstPageNumber","horizontalCentered","verticalCentered","colBreaks","headerFooter","differentFirst","differentOddEven","oddHeader","oddFooter","evenHeader","evenFooter","firstHeader","firstFooter","dataValidations","views","autoFilter","_media","sheetProtection","tables","conditionalFormattings","_name","Error","test","length","console","warn","substring","_worksheets","find","ws","toLowerCase","destroy","removeWorksheetEx","dimensions","forEach","row","rowDims","expand","number","min","max","columns","value","_headerRowCount","reduce","pv","cv","headerCount","headers","Math","count","defn","column","push","getColumnKey","key","setColumnKey","deleteColumnKey","eachColumnKey","f","each","getColumn","c","col","l2n","n","spliceColumns","start","rows","nRows","_len","arguments","inserts","Array","_key","i","rowArguments","insert","getRow","splice","apply","r","nExpand","nKeep","nEnd","definedNames","lastColumn","columnCount","maxCount","eachRow","cellCount","actualColumnCount","counts","eachCell","_ref","_commitRow","_lastRowNumber","_nextRow","lastRow","findRow","findRows","slice","rowCount","actualRowCount","getRows","addRow","style","rowNo","values","_setStyleOption","addRows","insertRow","pos","spliceRows","insertRows","_copyStyle","src","dest","styleEmpty","rSrc","rDst","includeEmpty","cell","colNumber","getCell","height","duplicateRow","rowNum","fill","_len2","_key2","nInserts","_value","cellToBeMerged","_row","_number","prevMaster","_master","newMaster","_column","merge","iteratee","hasValues","getSheetValues","findCell","address","getAddress","getCellEx","mergeCells","_len3","cells","_key3","_mergeCellsInternal","mergeCellsWithoutStyle","_len4","_key4","ignoreStyle","intersects","master","j","_unMergeMaster","unmerge","hasMerges","some","Boolean","unMergeCells","_len5","_key5","type","ValueType","Merge","fillFormula","range","formula","results","shareType","decoded","decode","width","masterAddress","encodeAddress","isShared","getResult","isArray","first","ref","result","sharedFormula","addImage","imageId","model","getImages","filter","m","addBackgroundImage","getBackgroundImageId","image","protect","password","Promise","resolve","sheet","spinCount","Number","isFinite","round","algorithmName","saltValue","randomBytes","toString","hashValue","convertPasswordToHash","unprotect","addTable","table","getTable","removeTable","getTables","addConditionalFormatting","cf","removeConditionalFormatting","Function","tabColor","trace","media","map","medium","cols","toModel","rowModel","merges","_parseRows","_parseMergeCells","fromModel","t","module","exports"],"sources":["../../../lib/doc/worksheet.js"],"sourcesContent":["const _ = require('../utils/under-dash');\n\nconst colCache = require('../utils/col-cache');\nconst Range = require('./range');\nconst Row = require('./row');\nconst Column = require('./column');\nconst Enums = require('./enums');\nconst Image = require('./image');\nconst Table = require('./table');\nconst DataValidations = require('./data-validations');\nconst Encryptor = require('../utils/encryptor');\nconst {copyStyle} = require('../utils/copy-style');\n\n// Worksheet requirements\n// Operate as sheet inside workbook or standalone\n// Load and Save from file and stream\n// Access/Add/Delete individual cells\n// Manage column widths and row heights\n\nclass Worksheet {\n constructor(options) {\n options = options || {};\n this._workbook = options.workbook;\n\n // in a workbook, each sheet will have a number\n this.id = options.id;\n this.orderNo = options.orderNo;\n\n // and a name\n this.name = options.name;\n\n // add a state\n this.state = options.state || 'visible';\n\n // rows allows access organised by row. Sparse array of arrays indexed by row-1, col\n // Note: _rows is zero based. Must subtract 1 to go from cell.row to index\n this._rows = [];\n\n // column definitions\n this._columns = null;\n\n // column keys (addRow convenience): key ==> this._collumns index\n this._keys = {};\n\n // keep record of all merges\n this._merges = {};\n\n // record of all row and column pageBreaks\n this.rowBreaks = [];\n\n // for tabColor, default row height, outline levels, etc\n this.properties = Object.assign(\n {},\n {\n defaultRowHeight: 15,\n dyDescent: 55,\n outlineLevelCol: 0,\n outlineLevelRow: 0,\n },\n options.properties\n );\n\n // for all things printing\n this.pageSetup = Object.assign(\n {},\n {\n margins: {left: 0.7, right: 0.7, top: 0.75, bottom: 0.75, header: 0.3, footer: 0.3},\n orientation: 'portrait',\n horizontalDpi: 4294967295,\n verticalDpi: 4294967295,\n fitToPage: !!(\n options.pageSetup &&\n (options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) &&\n !options.pageSetup.scale\n ),\n pageOrder: 'downThenOver',\n blackAndWhite: false,\n draft: false,\n cellComments: 'None',\n errors: 'displayed',\n scale: 100,\n fitToWidth: 1,\n fitToHeight: 1,\n paperSize: undefined,\n showRowColHeaders: false,\n showGridLines: false,\n firstPageNumber: undefined,\n horizontalCentered: false,\n verticalCentered: false,\n rowBreaks: null,\n colBreaks: null,\n },\n options.pageSetup\n );\n\n this.headerFooter = Object.assign(\n {},\n {\n differentFirst: false,\n differentOddEven: false,\n oddHeader: null,\n oddFooter: null,\n evenHeader: null,\n evenFooter: null,\n firstHeader: null,\n firstFooter: null,\n },\n options.headerFooter\n );\n\n this.dataValidations = new DataValidations();\n\n // for freezepanes, split, zoom, gridlines, etc\n this.views = options.views || [];\n\n this.autoFilter = options.autoFilter || null;\n\n // for images, etc\n this._media = [];\n\n // worksheet protection\n this.sheetProtection = null;\n\n // for tables\n this.tables = {};\n\n this.conditionalFormattings = [];\n }\n\n get name() {\n return this._name;\n }\n\n set name(name) {\n if (name === undefined) {\n name = `sheet${this.id}`;\n }\n\n if (this._name === name) return;\n\n if (typeof name !== 'string') {\n throw new Error('The name has to be a string.');\n }\n\n if (name === '') {\n throw new Error('The name can\\'t be empty.');\n }\n\n if (name === 'History') {\n throw new Error('The name \"History\" is protected. Please use a different name.');\n }\n\n // Illegal character in worksheet name: asterisk (*), question mark (?),\n // colon (:), forward slash (/ \\), or bracket ([])\n if (/[*?:/\\\\[\\]]/.test(name)) {\n throw new Error(`Worksheet name ${name} cannot include any of the following characters: * ? : \\\\ / [ ]`);\n }\n\n if (/(^')|('$)/.test(name)) {\n throw new Error(`The first or last character of worksheet name cannot be a single quotation mark: ${name}`);\n }\n\n if (name && name.length > 31) {\n // eslint-disable-next-line no-console\n console.warn(`Worksheet name ${name} exceeds 31 chars. This will be truncated`);\n name = name.substring(0, 31);\n }\n\n if (this._workbook._worksheets.find(ws => ws && ws.name.toLowerCase() === name.toLowerCase())) {\n throw new Error(`Worksheet name already exists: ${name}`);\n }\n\n this._name = name;\n }\n\n get workbook() {\n return this._workbook;\n }\n\n // when you're done with this worksheet, call this to remove from workbook\n destroy() {\n this._workbook.removeWorksheetEx(this);\n }\n\n // Get the bounding range of the cells in this worksheet\n get dimensions() {\n const dimensions = new Range();\n this._rows.forEach(row => {\n if (row) {\n const rowDims = row.dimensions;\n if (rowDims) {\n dimensions.expand(row.number, rowDims.min, row.number, rowDims.max);\n }\n }\n });\n return dimensions;\n }\n\n // =========================================================================\n // Columns\n\n // get the current columns array.\n get columns() {\n return this._columns;\n }\n\n // set the columns from an array of column definitions.\n // Note: any headers defined will overwrite existing values.\n set columns(value) {\n // calculate max header row count\n this._headerRowCount = value.reduce((pv, cv) => {\n const headerCount = (cv.header && 1) || (cv.headers && cv.headers.length) || 0;\n return Math.max(pv, headerCount);\n }, 0);\n\n // construct Column objects\n let count = 1;\n const columns = (this._columns = []);\n value.forEach(defn => {\n const column = new Column(this, count++, false);\n columns.push(column);\n column.defn = defn;\n });\n }\n\n getColumnKey(key) {\n return this._keys[key];\n }\n\n setColumnKey(key, value) {\n this._keys[key] = value;\n }\n\n deleteColumnKey(key) {\n delete this._keys[key];\n }\n\n eachColumnKey(f) {\n _.each(this._keys, f);\n }\n\n // get a single column by col number. If it doesn't exist, create it and any gaps before it\n getColumn(c) {\n if (typeof c === 'string') {\n // if it matches a key'd column, return that\n const col = this._keys[c];\n if (col) return col;\n\n // otherwise, assume letter\n c = colCache.l2n(c);\n }\n if (!this._columns) {\n this._columns = [];\n }\n if (c > this._columns.length) {\n let n = this._columns.length + 1;\n while (n <= c) {\n this._columns.push(new Column(this, n++));\n }\n }\n return this._columns[c - 1];\n }\n\n spliceColumns(start, count, ...inserts) {\n const rows = this._rows;\n const nRows = rows.length;\n if (inserts.length > 0) {\n // must iterate over all rows whether they exist yet or not\n for (let i = 0; i < nRows; i++) {\n const rowArguments = [start, count];\n // eslint-disable-next-line no-loop-func\n inserts.forEach(insert => {\n rowArguments.push(insert[i] || null);\n });\n const row = this.getRow(i + 1);\n // eslint-disable-next-line prefer-spread\n row.splice.apply(row, rowArguments);\n }\n } else {\n // nothing to insert, so just splice all rows\n this._rows.forEach(r => {\n if (r) {\n r.splice(start, count);\n }\n });\n }\n\n // splice column definitions\n const nExpand = inserts.length - count;\n const nKeep = start + count;\n const nEnd = this._columns.length;\n if (nExpand < 0) {\n for (let i = start + inserts.length; i <= nEnd; i++) {\n this.getColumn(i).defn = this.getColumn(i - nExpand).defn;\n }\n } else if (nExpand > 0) {\n for (let i = nEnd; i >= nKeep; i--) {\n this.getColumn(i + nExpand).defn = this.getColumn(i).defn;\n }\n }\n for (let i = start; i < start + inserts.length; i++) {\n this.getColumn(i).defn = null;\n }\n\n // account for defined names\n this.workbook.definedNames.spliceColumns(this.name, start, count, inserts.length);\n }\n\n get lastColumn() {\n return this.getColumn(this.columnCount);\n }\n\n get columnCount() {\n let maxCount = 0;\n this.eachRow(row => {\n maxCount = Math.max(maxCount, row.cellCount);\n });\n return maxCount;\n }\n\n get actualColumnCount() {\n // performance nightmare - for each row, counts all the columns used\n const counts = [];\n let count = 0;\n this.eachRow(row => {\n row.eachCell(({col}) => {\n if (!counts[col]) {\n counts[col] = true;\n count++;\n }\n });\n });\n return count;\n }\n\n // =========================================================================\n // Rows\n\n _commitRow() {\n // nop - allows streaming reader to fill a document\n }\n\n get _lastRowNumber() {\n // need to cope with results of splice\n const rows = this._rows;\n let n = rows.length;\n while (n > 0 && rows[n - 1] === undefined) {\n n--;\n }\n return n;\n }\n\n get _nextRow() {\n return this._lastRowNumber + 1;\n }\n\n get lastRow() {\n if (this._rows.length) {\n return this._rows[this._rows.length - 1];\n }\n return undefined;\n }\n\n // find a row (if exists) by row number\n findRow(r) {\n return this._rows[r - 1];\n }\n\n // find multiple rows (if exists) by row number\n findRows(start, length) {\n return this._rows.slice(start - 1, start - 1 + length);\n }\n\n get rowCount() {\n return this._lastRowNumber;\n }\n\n get actualRowCount() {\n // counts actual rows that have actual data\n let count = 0;\n this.eachRow(() => {\n count++;\n });\n return count;\n }\n\n // get a row by row number.\n getRow(r) {\n let row = this._rows[r - 1];\n if (!row) {\n row = this._rows[r - 1] = new Row(this, r);\n }\n return row;\n }\n\n // get multiple rows by row number.\n getRows(start, length) {\n if (length < 1) return undefined;\n const rows = [];\n for (let i = start; i < start + length; i++) {\n rows.push(this.getRow(i));\n }\n return rows;\n }\n\n addRow(value, style = 'n') {\n const rowNo = this._nextRow;\n const row = this.getRow(rowNo);\n row.values = value;\n this._setStyleOption(rowNo, style[0] === 'i' ? style : 'n');\n return row;\n }\n\n addRows(value, style = 'n') {\n const rows = [];\n value.forEach(row => {\n rows.push(this.addRow(row, style));\n });\n return rows;\n }\n\n insertRow(pos, value, style = 'n') {\n this.spliceRows(pos, 0, value);\n this._setStyleOption(pos, style);\n return this.getRow(pos);\n }\n\n insertRows(pos, values, style = 'n') {\n this.spliceRows(pos, 0, ...values);\n if (style !== 'n') {\n // copy over the styles\n for (let i = 0; i < values.length; i++) {\n if (style[0] === 'o' && this.findRow(values.length + pos + i) !== undefined) {\n this._copyStyle(values.length + pos + i, pos + i, style[1] === '+');\n } else if (style[0] === 'i' && this.findRow(pos - 1) !== undefined) {\n this._copyStyle(pos - 1, pos + i, style[1] === '+');\n }\n }\n }\n return this.getRows(pos, values.length);\n }\n\n // set row at position to same style as of either pervious row (option 'i') or next row (option 'o')\n _setStyleOption(pos, style = 'n') {\n if (style[0] === 'o' && this.findRow(pos + 1) !== undefined) {\n this._copyStyle(pos + 1, pos, style[1] === '+');\n } else if (style[0] === 'i' && this.findRow(pos - 1) !== undefined) {\n this._copyStyle(pos - 1, pos, style[1] === '+');\n }\n }\n\n _copyStyle(src, dest, styleEmpty = false) {\n const rSrc = this.getRow(src);\n const rDst = this.getRow(dest);\n rDst.style = copyStyle(rSrc.style);\n // eslint-disable-next-line no-loop-func\n rSrc.eachCell({includeEmpty: styleEmpty}, (cell, colNumber) => {\n rDst.getCell(colNumber).style = copyStyle(cell.style);\n });\n rDst.height = rSrc.height;\n }\n\n duplicateRow(rowNum, count, insert = false) {\n // create count duplicates of rowNum\n // either inserting new or overwriting existing rows\n\n const rSrc = this._rows[rowNum - 1];\n const inserts = new Array(count).fill(rSrc.values);\n this.spliceRows(rowNum + 1, insert ? 0 : count, ...inserts);\n\n // now copy styles...\n for (let i = 0; i < count; i++) {\n const rDst = this._rows[rowNum + i];\n rDst.style = rSrc.style;\n rDst.height = rSrc.height;\n // eslint-disable-next-line no-loop-func\n rSrc.eachCell({includeEmpty: true}, (cell, colNumber) => {\n rDst.getCell(colNumber).style = cell.style;\n });\n }\n }\n\n spliceRows(start, count, ...inserts) {\n // same problem as row.splice, except worse.\n const nKeep = start + count;\n const nInserts = inserts.length;\n const nExpand = nInserts - count;\n const nEnd = this._rows.length;\n let i;\n let rSrc;\n if (nExpand < 0) {\n // remove rows\n if (start === nEnd) {\n this._rows[nEnd - 1] = undefined;\n }\n for (i = nKeep; i <= nEnd; i++) {\n rSrc = this._rows[i - 1];\n if (rSrc) {\n const rDst = this.getRow(i + nExpand);\n rDst.values = rSrc.values;\n rDst.style = rSrc.style;\n rDst.height = rSrc.height;\n // eslint-disable-next-line no-loop-func\n rSrc.eachCell({includeEmpty: true}, (cell, colNumber) => {\n rDst.getCell(colNumber).style = cell.style;\n });\n this._rows[i - 1] = undefined;\n } else {\n this._rows[i + nExpand - 1] = undefined;\n }\n }\n } else if (nExpand > 0) {\n // insert new cells\n for (i = nEnd; i >= nKeep; i--) {\n rSrc = this._rows[i - 1];\n if (rSrc) {\n const rDst = this.getRow(i + nExpand);\n rDst.values = rSrc.values;\n rDst.style = rSrc.style;\n rDst.height = rSrc.height;\n // eslint-disable-next-line no-loop-func\n rSrc.eachCell({includeEmpty: true}, (cell, colNumber) => {\n rDst.getCell(colNumber).style = cell.style;\n\n // remerge cells accounting for insert offset\n if (cell._value.constructor.name === 'MergeValue') {\n const cellToBeMerged = this.getRow(cell._row._number + nInserts).getCell(colNumber);\n const prevMaster = cell._value._master;\n const newMaster = this.getRow(prevMaster._row._number + nInserts).getCell(prevMaster._column._number);\n cellToBeMerged.merge(newMaster);\n }\n });\n } else {\n this._rows[i + nExpand - 1] = undefined;\n }\n }\n }\n\n // now copy over the new values\n for (i = 0; i < nInserts; i++) {\n const rDst = this.getRow(start + i);\n rDst.style = {};\n rDst.values = inserts[i];\n }\n\n // account for defined names\n this.workbook.definedNames.spliceRows(this.name, start, count, nInserts);\n }\n\n // iterate over every row in the worksheet, including maybe empty rows\n eachRow(options, iteratee) {\n if (!iteratee) {\n iteratee = options;\n options = undefined;\n }\n if (options && options.includeEmpty) {\n const n = this._rows.length;\n for (let i = 1; i <= n; i++) {\n iteratee(this.getRow(i), i);\n }\n } else {\n this._rows.forEach(row => {\n if (row && row.hasValues) {\n iteratee(row, row.number);\n }\n });\n }\n }\n\n // return all rows as sparse array\n getSheetValues() {\n const rows = [];\n this._rows.forEach(row => {\n if (row) {\n rows[row.number] = row.values;\n }\n });\n return rows;\n }\n\n // =========================================================================\n // Cells\n\n // returns the cell at [r,c] or address given by r. If not found, return undefined\n findCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this._rows[address.row - 1];\n return row ? row.findCell(address.col) : undefined;\n }\n\n // return the cell at [r,c] or address given by r. If not found, create a new one.\n getCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this.getRow(address.row);\n return row.getCellEx(address);\n }\n\n // =========================================================================\n // Merge\n\n // convert the range defined by ['tl:br'], [tl,br] or [t,l,b,r] into a single 'merged' cell\n mergeCells(...cells) {\n const dimensions = new Range(cells);\n this._mergeCellsInternal(dimensions);\n }\n\n mergeCellsWithoutStyle(...cells) {\n const dimensions = new Range(cells);\n this._mergeCellsInternal(dimensions, true);\n }\n\n _mergeCellsInternal(dimensions, ignoreStyle) {\n // check cells aren't already merged\n _.each(this._merges, merge => {\n if (merge.intersects(dimensions)) {\n throw new Error('Cannot merge already merged cells');\n }\n });\n\n // apply merge\n const master = this.getCell(dimensions.top, dimensions.left);\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\n for (let j = dimensions.left; j <= dimensions.right; j++) {\n // merge all but the master cell\n if (i > dimensions.top || j > dimensions.left) {\n this.getCell(i, j).merge(master, ignoreStyle);\n }\n }\n }\n\n // index merge\n this._merges[master.address] = dimensions;\n }\n\n _unMergeMaster(master) {\n // master is always top left of a rectangle\n const merge = this._merges[master.address];\n if (merge) {\n for (let i = merge.top; i <= merge.bottom; i++) {\n for (let j = merge.left; j <= merge.right; j++) {\n this.getCell(i, j).unmerge();\n }\n }\n delete this._merges[master.address];\n }\n }\n\n get hasMerges() {\n // return true if this._merges has a merge object\n return _.some(this._merges, Boolean);\n }\n\n // scan the range defined by ['tl:br'], [tl,br] or [t,l,b,r] and if any cell is part of a merge,\n // un-merge the group. Note this function can affect multiple merges and merge-blocks are\n // atomic - either they're all merged or all un-merged.\n unMergeCells(...cells) {\n const dimensions = new Range(cells);\n\n // find any cells in that range and unmerge them\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\n for (let j = dimensions.left; j <= dimensions.right; j++) {\n const cell = this.findCell(i, j);\n if (cell) {\n if (cell.type === Enums.ValueType.Merge) {\n // this cell merges to another master\n this._unMergeMaster(cell.master);\n } else if (this._merges[cell.address]) {\n // this cell is a master\n this._unMergeMaster(cell);\n }\n }\n }\n }\n }\n\n // ===========================================================================\n // Shared/Array Formula\n fillFormula(range, formula, results, shareType = 'shared') {\n // Define formula for top-left cell and share to rest\n const decoded = colCache.decode(range);\n const {top, left, bottom, right} = decoded;\n const width = right - left + 1;\n const masterAddress = colCache.encodeAddress(top, left);\n const isShared = shareType === 'shared';\n\n // work out result accessor\n let getResult;\n if (typeof results === 'function') {\n getResult = results;\n } else if (Array.isArray(results)) {\n if (Array.isArray(results[0])) {\n getResult = (row, col) => results[row - top][col - left];\n } else {\n // eslint-disable-next-line no-mixed-operators\n getResult = (row, col) => results[(row - top) * width + (col - left)];\n }\n } else {\n getResult = () => undefined;\n }\n let first = true;\n for (let r = top; r <= bottom; r++) {\n for (let c = left; c <= right; c++) {\n if (first) {\n this.getCell(r, c).value = {\n shareType,\n formula,\n ref: range,\n result: getResult(r, c),\n };\n first = false;\n } else {\n this.getCell(r, c).value = isShared\n ? {\n sharedFormula: masterAddress,\n result: getResult(r, c),\n }\n : getResult(r, c);\n }\n }\n }\n }\n\n // =========================================================================\n // Images\n addImage(imageId, range) {\n const model = {\n type: 'image',\n imageId,\n range,\n };\n this._media.push(new Image(this, model));\n }\n\n getImages() {\n return this._media.filter(m => m.type === 'image');\n }\n\n addBackgroundImage(imageId) {\n const model = {\n type: 'background',\n imageId,\n };\n this._media.push(new Image(this, model));\n }\n\n getBackgroundImageId() {\n const image = this._media.find(m => m.type === 'background');\n return image && image.imageId;\n }\n\n // =========================================================================\n // Worksheet Protection\n protect(password, options) {\n // TODO: make this function truly async\n // perhaps marshal to worker thread or something\n return new Promise(resolve => {\n this.sheetProtection = {\n sheet: true,\n };\n if (options && 'spinCount' in options) {\n // force spinCount to be integer >= 0\n options.spinCount = Number.isFinite(options.spinCount) ? Math.round(Math.max(0, options.spinCount)) : 100000;\n }\n if (password) {\n this.sheetProtection.algorithmName = 'SHA-512';\n this.sheetProtection.saltValue = Encryptor.randomBytes(16).toString('base64');\n this.sheetProtection.spinCount = options && 'spinCount' in options ? options.spinCount : 100000; // allow user specified spinCount\n this.sheetProtection.hashValue = Encryptor.convertPasswordToHash(\n password,\n 'SHA512',\n this.sheetProtection.saltValue,\n this.sheetProtection.spinCount\n );\n }\n if (options) {\n this.sheetProtection = Object.assign(this.sheetProtection, options);\n if (!password && 'spinCount' in options) {\n delete this.sheetProtection.spinCount;\n }\n }\n resolve();\n });\n }\n\n unprotect() {\n this.sheetProtection = null;\n }\n\n // =========================================================================\n // Tables\n addTable(model) {\n const table = new Table(this, model);\n this.tables[model.name] = table;\n return table;\n }\n\n getTable(name) {\n return this.tables[name];\n }\n\n removeTable(name) {\n delete this.tables[name];\n }\n\n getTables() {\n return Object.values(this.tables);\n }\n\n // ===========================================================================\n // Conditional Formatting\n addConditionalFormatting(cf) {\n this.conditionalFormattings.push(cf);\n }\n\n removeConditionalFormatting(filter) {\n if (typeof filter === 'number') {\n this.conditionalFormattings.splice(filter, 1);\n } else if (filter instanceof Function) {\n this.conditionalFormattings = this.conditionalFormattings.filter(filter);\n } else {\n this.conditionalFormattings = [];\n }\n }\n\n // ===========================================================================\n // Deprecated\n get tabColor() {\n // eslint-disable-next-line no-console\n console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');\n return this.properties.tabColor;\n }\n\n set tabColor(value) {\n // eslint-disable-next-line no-console\n console.trace('worksheet.tabColor property is now deprecated. Please use worksheet.properties.tabColor');\n this.properties.tabColor = value;\n }\n\n // ===========================================================================\n // Model\n\n get model() {\n const model = {\n id: this.id,\n name: this.name,\n dataValidations: this.dataValidations.model,\n properties: this.properties,\n state: this.state,\n pageSetup: this.pageSetup,\n headerFooter: this.headerFooter,\n rowBreaks: this.rowBreaks,\n views: this.views,\n autoFilter: this.autoFilter,\n media: this._media.map(medium => medium.model),\n sheetProtection: this.sheetProtection,\n tables: Object.values(this.tables).map(table => table.model),\n conditionalFormattings: this.conditionalFormattings,\n };\n\n // =================================================\n // columns\n model.cols = Column.toModel(this.columns);\n\n // ==========================================================\n // Rows\n const rows = (model.rows = []);\n const dimensions = (model.dimensions = new Range());\n this._rows.forEach(row => {\n const rowModel = row && row.model;\n if (rowModel) {\n dimensions.expand(rowModel.number, rowModel.min, rowModel.number, rowModel.max);\n rows.push(rowModel);\n }\n });\n\n // ==========================================================\n // Merges\n model.merges = [];\n _.each(this._merges, merge => {\n model.merges.push(merge.range);\n });\n\n return model;\n }\n\n _parseRows(model) {\n this._rows = [];\n model.rows.forEach(rowModel => {\n const row = new Row(this, rowModel.number);\n this._rows[row.number - 1] = row;\n row.model = rowModel;\n });\n }\n\n _parseMergeCells(model) {\n _.each(model.mergeCells, merge => {\n // Do not merge styles when importing an Excel file\n // since each cell may have different styles intentionally.\n this.mergeCellsWithoutStyle(merge);\n });\n }\n\n set model(value) {\n this.name = value.name;\n this._columns = Column.fromModel(this, value.cols);\n this._parseRows(value);\n\n this._parseMergeCells(value);\n this.dataValidations = new DataValidations(value.dataValidations);\n this.properties = value.properties;\n this.pageSetup = value.pageSetup;\n this.headerFooter = value.headerFooter;\n this.views = value.views;\n this.autoFilter = value.autoFilter;\n this._media = value.media.map(medium => new Image(this, medium));\n this.sheetProtection = value.sheetProtection;\n this.tables = value.tables.reduce((tables, table) => {\n const t = new Table();\n t.model = table;\n tables[table.name] = t;\n return tables;\n }, {});\n this.conditionalFormattings = value.conditionalFormattings;\n }\n}\n\nmodule.exports = Worksheet;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"exceljs.bare.js","names":["ExcelJS","Workbook","require","Enums","Object","keys","forEach","key","module","exports"],"sources":["../../lib/exceljs.bare.js"],"sourcesContent":["// this bundle is built without polyfill leaving apps the freedom to add their own\nconst ExcelJS = {\n Workbook: require('./doc/workbook'),\n};\n\n// Object.assign mono-fill\nconst Enums = require('./doc/enums');\n\nObject.keys(Enums).forEach(key => {\n ExcelJS[key] = Enums[key];\n});\n\nmodule.exports = ExcelJS;\n"],"mappings":";;AAAA;AACA,MAAMA,OAAO,GAAG;EACdC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB;AACpC,CAAC;;AAED;AACA,MAAMC,KAAK,GAAGD,OAAO,CAAC,aAAa,CAAC;AAEpCE,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,OAAO,CAACC,GAAG,IAAI;EAChCP,OAAO,CAACO,GAAG,CAAC,GAAGJ,KAAK,CAACI,GAAG,CAAC;AAC3B,CAAC,CAAC;AAEFC,MAAM,CAACC,OAAO,GAAGT,OAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"exceljs.browser.js","names":["require","ExcelJS","Workbook","Enums","Object","keys","forEach","key","module","exports"],"sources":["../../lib/exceljs.browser.js"],"sourcesContent":["/* eslint-disable import/no-extraneous-dependencies,node/no-unpublished-require */\nrequire('core-js/modules/es.promise');\nrequire('core-js/modules/es.promise.finally');\nrequire('core-js/modules/es.object.assign');\nrequire('core-js/modules/es.object.keys');\nrequire('core-js/modules/es.object.values');\nrequire('core-js/modules/es.symbol');\nrequire('core-js/modules/es.symbol.async-iterator');\n// required by core-js/modules/es.promise Promise.all\nrequire('core-js/modules/es.array.iterator');\n// required by node_modules/saxes/saxes.js SaxesParser.captureTo\nrequire('core-js/modules/es.array.includes');\n// required by lib/doc/workbook.js Workbook.model\nrequire('core-js/modules/es.array.find-index');\n// required by lib/doc/workbook.js Workbook.addWorksheet and Workbook.getWorksheet\nrequire('core-js/modules/es.array.find');\n// required by node_modules/saxes/saxes.js SaxesParser.getCode10\nrequire('core-js/modules/es.string.from-code-point');\n// required by lib/xlsx/xform/sheet/data-validations-xform.js DataValidationsXform.parseClose\nrequire('core-js/modules/es.string.includes');\n// required by lib/utils/utils.js utils.validInt and lib/csv/csv.js CSV.read\nrequire('core-js/modules/es.number.is-nan');\nrequire('regenerator-runtime/runtime');\n\nconst ExcelJS = {\n Workbook: require('./doc/workbook'),\n};\n\n// Object.assign mono-fill\nconst Enums = require('./doc/enums');\n\nObject.keys(Enums).forEach(key => {\n ExcelJS[key] = Enums[key];\n});\n\nmodule.exports = ExcelJS;\n"],"mappings":";;AAAA;AACAA,OAAO,CAAC,4BAA4B,CAAC;AACrCA,OAAO,CAAC,oCAAoC,CAAC;AAC7CA,OAAO,CAAC,kCAAkC,CAAC;AAC3CA,OAAO,CAAC,gCAAgC,CAAC;AACzCA,OAAO,CAAC,kCAAkC,CAAC;AAC3CA,OAAO,CAAC,2BAA2B,CAAC;AACpCA,OAAO,CAAC,0CAA0C,CAAC;AACnD;AACAA,OAAO,CAAC,mCAAmC,CAAC;AAC5C;AACAA,OAAO,CAAC,mCAAmC,CAAC;AAC5C;AACAA,OAAO,CAAC,qCAAqC,CAAC;AAC9C;AACAA,OAAO,CAAC,+BAA+B,CAAC;AACxC;AACAA,OAAO,CAAC,2CAA2C,CAAC;AACpD;AACAA,OAAO,CAAC,oCAAoC,CAAC;AAC7C;AACAA,OAAO,CAAC,kCAAkC,CAAC;AAC3CA,OAAO,CAAC,6BAA6B,CAAC;AAEtC,MAAMC,OAAO,GAAG;EACdC,QAAQ,EAAEF,OAAO,CAAC,gBAAgB;AACpC,CAAC;;AAED;AACA,MAAMG,KAAK,GAAGH,OAAO,CAAC,aAAa,CAAC;AAEpCI,MAAM,CAACC,IAAI,CAACF,KAAK,CAAC,CAACG,OAAO,CAACC,GAAG,IAAI;EAChCN,OAAO,CAACM,GAAG,CAAC,GAAGJ,KAAK,CAACI,GAAG,CAAC;AAC3B,CAAC,CAAC;AAEFC,MAAM,CAACC,OAAO,GAAGR,OAAO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"exceljs.nodejs.js","names":["ExcelJS","Workbook","require","ModelContainer","stream","xlsx","WorkbookWriter","WorkbookReader","Object","assign","module","exports"],"sources":["../../lib/exceljs.nodejs.js"],"sourcesContent":["const ExcelJS = {\n Workbook: require('./doc/workbook'),\n ModelContainer: require('./doc/modelcontainer'),\n stream: {\n xlsx: {\n WorkbookWriter: require('./stream/xlsx/workbook-writer'),\n WorkbookReader: require('./stream/xlsx/workbook-reader'),\n },\n },\n};\n\nObject.assign(ExcelJS, require('./doc/enums'));\n\nmodule.exports = ExcelJS;\n"],"mappings":";;AAAA,MAAMA,OAAO,GAAG;EACdC,QAAQ,EAAEC,OAAO,CAAC,gBAAgB,CAAC;EACnCC,cAAc,EAAED,OAAO,CAAC,sBAAsB,CAAC;EAC/CE,MAAM,EAAE;IACNC,IAAI,EAAE;MACJC,cAAc,EAAEJ,OAAO,CAAC,+BAA+B,CAAC;MACxDK,cAAc,EAAEL,OAAO,CAAC,+BAA+B;IACzD;EACF;AACF,CAAC;AAEDM,MAAM,CAACC,MAAM,CAACT,OAAO,EAAEE,OAAO,CAAC,aAAa,CAAC,CAAC;AAE9CQ,MAAM,CAACC,OAAO,GAAGX,OAAO"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
-
3
- const ExcelJS = {
4
- Workbook: require('./doc/workbook'),
5
- ModelContainer: require('./doc/modelcontainer'),
6
- stream: {
7
- xlsx: {
8
- WorkbookWriter: require('./stream/xlsx/workbook-writer'),
9
- WorkbookReader: require('./stream/xlsx/workbook-reader')
10
- }
11
- }
12
- };
13
- Object.assign(ExcelJS, require('./doc/enums'));
14
- module.exports = ExcelJS;
15
- //# sourceMappingURL=exceljs.nodejs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hyperlink-reader.js","names":["EventEmitter","require","parseSax","Enums","RelType","HyperlinkReader","constructor","_ref","workbook","id","iterator","options","count","hyperlinks","length","each","fn","forEach","read","emitHyperlinks","emit","events","eventType","value","node","name","rId","attributes","Id","Type","Hyperlink","relationship","type","RelationshipType","Styles","target","Target","targetMode","TargetMode","error","module","exports"],"sources":["../../../../lib/stream/xlsx/hyperlink-reader.js"],"sourcesContent":["const {EventEmitter} = require('events');\nconst parseSax = require('../../utils/parse-sax');\n\nconst Enums = require('../../doc/enums');\nconst RelType = require('../../xlsx/rel-type');\n\nclass HyperlinkReader extends EventEmitter {\n constructor({workbook, id, iterator, options}) {\n super();\n\n this.workbook = workbook;\n this.id = id;\n this.iterator = iterator;\n this.options = options;\n }\n\n get count() {\n return (this.hyperlinks && this.hyperlinks.length) || 0;\n }\n\n each(fn) {\n return this.hyperlinks.forEach(fn);\n }\n\n async read() {\n const {iterator, options} = this;\n let emitHyperlinks = false;\n let hyperlinks = null;\n switch (options.hyperlinks) {\n case 'emit':\n emitHyperlinks = true;\n break;\n case 'cache':\n this.hyperlinks = hyperlinks = {};\n break;\n default:\n break;\n }\n\n if (!emitHyperlinks && !hyperlinks) {\n this.emit('finished');\n return;\n }\n\n try {\n for await (const events of parseSax(iterator)) {\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n const node = value;\n if (node.name === 'Relationship') {\n const rId = node.attributes.Id;\n switch (node.attributes.Type) {\n case RelType.Hyperlink:\n {\n const relationship = {\n type: Enums.RelationshipType.Styles,\n rId,\n target: node.attributes.Target,\n targetMode: node.attributes.TargetMode,\n };\n if (emitHyperlinks) {\n this.emit('hyperlink', relationship);\n } else {\n hyperlinks[relationship.rId] = relationship;\n }\n }\n break;\n\n default:\n break;\n }\n }\n }\n }\n }\n this.emit('finished');\n } catch (error) {\n this.emit('error', error);\n }\n }\n}\n\nmodule.exports = HyperlinkReader;\n"],"mappings":";;AAAA,MAAM;EAACA;AAAY,CAAC,GAAGC,OAAO,CAAC,QAAQ,CAAC;AACxC,MAAMC,QAAQ,GAAGD,OAAO,CAAC,uBAAuB,CAAC;AAEjD,MAAME,KAAK,GAAGF,OAAO,CAAC,iBAAiB,CAAC;AACxC,MAAMG,OAAO,GAAGH,OAAO,CAAC,qBAAqB,CAAC;AAE9C,MAAMI,eAAe,SAASL,YAAY,CAAC;EACzCM,WAAWA,CAAAC,IAAA,EAAoC;IAAA,IAAnC;MAACC,QAAQ;MAAEC,EAAE;MAAEC,QAAQ;MAAEC;IAAO,CAAC,GAAAJ,IAAA;IAC3C,KAAK,CAAC,CAAC;IAEP,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACC,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,OAAO,GAAGA,OAAO;EACxB;EAEA,IAAIC,KAAKA,CAAA,EAAG;IACV,OAAQ,IAAI,CAACC,UAAU,IAAI,IAAI,CAACA,UAAU,CAACC,MAAM,IAAK,CAAC;EACzD;EAEAC,IAAIA,CAACC,EAAE,EAAE;IACP,OAAO,IAAI,CAACH,UAAU,CAACI,OAAO,CAACD,EAAE,CAAC;EACpC;EAEA,MAAME,IAAIA,CAAA,EAAG;IACX,MAAM;MAACR,QAAQ;MAAEC;IAAO,CAAC,GAAG,IAAI;IAChC,IAAIQ,cAAc,GAAG,KAAK;IAC1B,IAAIN,UAAU,GAAG,IAAI;IACrB,QAAQF,OAAO,CAACE,UAAU;MACxB,KAAK,MAAM;QACTM,cAAc,GAAG,IAAI;QACrB;MACF,KAAK,OAAO;QACV,IAAI,CAACN,UAAU,GAAGA,UAAU,GAAG,CAAC,CAAC;QACjC;MACF;QACE;IACJ;IAEA,IAAI,CAACM,cAAc,IAAI,CAACN,UAAU,EAAE;MAClC,IAAI,CAACO,IAAI,CAAC,UAAU,CAAC;MACrB;IACF;IAEA,IAAI;MACF,WAAW,MAAMC,MAAM,IAAInB,QAAQ,CAACQ,QAAQ,CAAC,EAAE;QAC7C,KAAK,MAAM;UAACY,SAAS;UAAEC;QAAK,CAAC,IAAIF,MAAM,EAAE;UACvC,IAAIC,SAAS,KAAK,SAAS,EAAE;YAC3B,MAAME,IAAI,GAAGD,KAAK;YAClB,IAAIC,IAAI,CAACC,IAAI,KAAK,cAAc,EAAE;cAChC,MAAMC,GAAG,GAAGF,IAAI,CAACG,UAAU,CAACC,EAAE;cAC9B,QAAQJ,IAAI,CAACG,UAAU,CAACE,IAAI;gBAC1B,KAAKzB,OAAO,CAAC0B,SAAS;kBACpB;oBACE,MAAMC,YAAY,GAAG;sBACnBC,IAAI,EAAE7B,KAAK,CAAC8B,gBAAgB,CAACC,MAAM;sBACnCR,GAAG;sBACHS,MAAM,EAAEX,IAAI,CAACG,UAAU,CAACS,MAAM;sBAC9BC,UAAU,EAAEb,IAAI,CAACG,UAAU,CAACW;oBAC9B,CAAC;oBACD,IAAInB,cAAc,EAAE;sBAClB,IAAI,CAACC,IAAI,CAAC,WAAW,EAAEW,YAAY,CAAC;oBACtC,CAAC,MAAM;sBACLlB,UAAU,CAACkB,YAAY,CAACL,GAAG,CAAC,GAAGK,YAAY;oBAC7C;kBACF;kBACA;gBAEF;kBACE;cACJ;YACF;UACF;QACF;MACF;MACA,IAAI,CAACX,IAAI,CAAC,UAAU,CAAC;IACvB,CAAC,CAAC,OAAOmB,KAAK,EAAE;MACd,IAAI,CAACnB,IAAI,CAAC,OAAO,EAAEmB,KAAK,CAAC;IAC3B;EACF;AACF;AAEAC,MAAM,CAACC,OAAO,GAAGpC,eAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-comments-writer.js","names":["XmlStream","require","RelType","colCache","CommentXform","VmlShapeXform","SheetCommentsWriter","constructor","worksheet","sheetRelsWriter","options","id","count","_worksheet","_workbook","workbook","_sheetRelsWriter","commentsStream","_commentsStream","_openStream","vmlStream","_vmlStream","_addRelationships","commentRel","Type","Comments","Target","addRelationship","vmlDrawingRel","VmlDrawing","vmlRelId","_addCommentRefs","commentRefs","push","commentName","vmlDrawing","_writeOpen","write","_writeComment","comment","index","commentXform","commentsXmlStream","render","xml","vmlShapeXform","vmlXmlStream","_writeClose","addComments","comments","length","startedData","forEach","item","refAddress","decodeAddress","ref","commit","end","module","exports"],"sources":["../../../../lib/stream/xlsx/sheet-comments-writer.js"],"sourcesContent":["const XmlStream = require('../../utils/xml-stream');\nconst RelType = require('../../xlsx/rel-type');\nconst colCache = require('../../utils/col-cache');\nconst CommentXform = require('../../xlsx/xform/comment/comment-xform');\nconst VmlShapeXform = require('../../xlsx/xform/comment/vml-shape-xform');\n\nclass SheetCommentsWriter {\n constructor(worksheet, sheetRelsWriter, options) {\n // in a workbook, each sheet will have a number\n this.id = options.id;\n this.count = 0;\n this._worksheet = worksheet;\n this._workbook = options.workbook;\n this._sheetRelsWriter = sheetRelsWriter;\n }\n\n get commentsStream() {\n if (!this._commentsStream) {\n // eslint-disable-next-line no-underscore-dangle\n this._commentsStream = this._workbook._openStream(`/xl/comments${this.id}.xml`);\n }\n return this._commentsStream;\n }\n\n get vmlStream() {\n if (!this._vmlStream) {\n // eslint-disable-next-line no-underscore-dangle\n this._vmlStream = this._workbook._openStream(`xl/drawings/vmlDrawing${this.id}.vml`);\n }\n return this._vmlStream;\n }\n\n _addRelationships() {\n const commentRel = {\n Type: RelType.Comments,\n Target: `../comments${this.id}.xml`,\n };\n this._sheetRelsWriter.addRelationship(commentRel);\n\n const vmlDrawingRel = {\n Type: RelType.VmlDrawing,\n Target: `../drawings/vmlDrawing${this.id}.vml`,\n };\n this.vmlRelId = this._sheetRelsWriter.addRelationship(vmlDrawingRel);\n }\n\n _addCommentRefs() {\n this._workbook.commentRefs.push({\n commentName: `comments${this.id}`,\n vmlDrawing: `vmlDrawing${this.id}`,\n });\n }\n\n _writeOpen() {\n this.commentsStream.write(\n '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>' +\n '<comments xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\">' +\n '<authors><author>Author</author></authors>' +\n '<commentList>'\n );\n this.vmlStream.write(\n '<?xml version=\"1.0\" encoding=\"UTF-8\"?>' +\n '<xml xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\">' +\n '<o:shapelayout v:ext=\"edit\">' +\n '<o:idmap v:ext=\"edit\" data=\"1\" />' +\n '</o:shapelayout>' +\n '<v:shapetype id=\"_x0000_t202\" coordsize=\"21600,21600\" o:spt=\"202\" path=\"m,l,21600r21600,l21600,xe\">' +\n '<v:stroke joinstyle=\"miter\" />' +\n '<v:path gradientshapeok=\"t\" o:connecttype=\"rect\" />' +\n '</v:shapetype>'\n );\n }\n\n _writeComment(comment, index) {\n const commentXform = new CommentXform();\n const commentsXmlStream = new XmlStream();\n commentXform.render(commentsXmlStream, comment);\n this.commentsStream.write(commentsXmlStream.xml);\n\n const vmlShapeXform = new VmlShapeXform();\n const vmlXmlStream = new XmlStream();\n vmlShapeXform.render(vmlXmlStream, comment, index);\n this.vmlStream.write(vmlXmlStream.xml);\n }\n\n _writeClose() {\n this.commentsStream.write('</commentList></comments>');\n this.vmlStream.write('</xml>');\n }\n\n addComments(comments) {\n if (comments && comments.length) {\n if (!this.startedData) {\n this._worksheet.comments = [];\n this._writeOpen();\n this._addRelationships();\n this._addCommentRefs();\n this.startedData = true;\n }\n\n comments.forEach(item => {\n item.refAddress = colCache.decodeAddress(item.ref);\n });\n\n comments.forEach(comment => {\n this._writeComment(comment, this.count);\n this.count += 1;\n });\n }\n }\n\n commit() {\n if (this.count) {\n this._writeClose();\n this.commentsStream.end();\n this.vmlStream.end();\n }\n }\n}\n\nmodule.exports = SheetCommentsWriter;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sheet-rels-writer.js","names":["utils","require","RelType","HyperlinksProxy","constructor","sheetRelsWriter","writer","push","hyperlink","addHyperlink","SheetRelsWriter","options","id","count","_hyperlinks","_workbook","workbook","stream","_stream","_openStream","length","each","fn","forEach","hyperlinksProxy","_hyperlinksProxy","relationship","Target","target","Type","Hyperlink","TargetMode","rId","_writeRelationship","address","addMedia","media","addRelationship","rel","commit","_writeClose","end","_writeOpen","write","xmlEncode","module","exports"],"sources":["../../../../lib/stream/xlsx/sheet-rels-writer.js"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nconst utils = require('../../utils/utils');\nconst RelType = require('../../xlsx/rel-type');\n\nclass HyperlinksProxy {\n constructor(sheetRelsWriter) {\n this.writer = sheetRelsWriter;\n }\n\n push(hyperlink) {\n this.writer.addHyperlink(hyperlink);\n }\n}\n\nclass SheetRelsWriter {\n constructor(options) {\n // in a workbook, each sheet will have a number\n this.id = options.id;\n\n // count of all relationships\n this.count = 0;\n\n // keep record of all hyperlinks\n this._hyperlinks = [];\n\n this._workbook = options.workbook;\n }\n\n get stream() {\n if (!this._stream) {\n // eslint-disable-next-line no-underscore-dangle\n this._stream = this._workbook._openStream(`/xl/worksheets/_rels/sheet${this.id}.xml.rels`);\n }\n return this._stream;\n }\n\n get length() {\n return this._hyperlinks.length;\n }\n\n each(fn) {\n return this._hyperlinks.forEach(fn);\n }\n\n get hyperlinksProxy() {\n return this._hyperlinksProxy || (this._hyperlinksProxy = new HyperlinksProxy(this));\n }\n\n addHyperlink(hyperlink) {\n // Write to stream\n const relationship = {\n Target: hyperlink.target,\n Type: RelType.Hyperlink,\n TargetMode: 'External',\n };\n const rId = this._writeRelationship(relationship);\n\n // store sheet stuff for later\n this._hyperlinks.push({\n rId,\n address: hyperlink.address,\n });\n }\n\n addMedia(media) {\n return this._writeRelationship(media);\n }\n\n addRelationship(rel) {\n return this._writeRelationship(rel);\n }\n\n commit() {\n if (this.count) {\n // write xml utro\n this._writeClose();\n // and close stream\n this.stream.end();\n }\n }\n\n // ================================================================================\n _writeOpen() {\n this.stream.write(\n `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n <Relationships xmlns=\"http://schemas.openxmlformats.org/package/2006/relationships\">`\n );\n }\n\n _writeRelationship(relationship) {\n if (!this.count) {\n this._writeOpen();\n }\n\n const rId = `rId${++this.count}`;\n\n if (relationship.TargetMode) {\n this.stream.write(\n `<Relationship Id=\"${rId}\"` +\n ` Type=\"${relationship.Type}\"` +\n ` Target=\"${utils.xmlEncode(relationship.Target)}\"` +\n ` TargetMode=\"${relationship.TargetMode}\"` +\n '/>'\n );\n } else {\n this.stream.write(\n `<Relationship Id=\"${rId}\" Type=\"${relationship.Type}\" Target=\"${relationship.Target}\"/>`\n );\n }\n\n return rId;\n }\n\n _writeClose() {\n this.stream.write('</Relationships>');\n }\n}\n\nmodule.exports = SheetRelsWriter;\n"],"mappings":";;AAAA;AACA,MAAMA,KAAK,GAAGC,OAAO,CAAC,mBAAmB,CAAC;AAC1C,MAAMC,OAAO,GAAGD,OAAO,CAAC,qBAAqB,CAAC;AAE9C,MAAME,eAAe,CAAC;EACpBC,WAAWA,CAACC,eAAe,EAAE;IAC3B,IAAI,CAACC,MAAM,GAAGD,eAAe;EAC/B;EAEAE,IAAIA,CAACC,SAAS,EAAE;IACd,IAAI,CAACF,MAAM,CAACG,YAAY,CAACD,SAAS,CAAC;EACrC;AACF;AAEA,MAAME,eAAe,CAAC;EACpBN,WAAWA,CAACO,OAAO,EAAE;IACnB;IACA,IAAI,CAACC,EAAE,GAAGD,OAAO,CAACC,EAAE;;IAEpB;IACA,IAAI,CAACC,KAAK,GAAG,CAAC;;IAEd;IACA,IAAI,CAACC,WAAW,GAAG,EAAE;IAErB,IAAI,CAACC,SAAS,GAAGJ,OAAO,CAACK,QAAQ;EACnC;EAEA,IAAIC,MAAMA,CAAA,EAAG;IACX,IAAI,CAAC,IAAI,CAACC,OAAO,EAAE;MACjB;MACA,IAAI,CAACA,OAAO,GAAG,IAAI,CAACH,SAAS,CAACI,WAAW,CAAE,6BAA4B,IAAI,CAACP,EAAG,WAAU,CAAC;IAC5F;IACA,OAAO,IAAI,CAACM,OAAO;EACrB;EAEA,IAAIE,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACN,WAAW,CAACM,MAAM;EAChC;EAEAC,IAAIA,CAACC,EAAE,EAAE;IACP,OAAO,IAAI,CAACR,WAAW,CAACS,OAAO,CAACD,EAAE,CAAC;EACrC;EAEA,IAAIE,eAAeA,CAAA,EAAG;IACpB,OAAO,IAAI,CAACC,gBAAgB,KAAK,IAAI,CAACA,gBAAgB,GAAG,IAAItB,eAAe,CAAC,IAAI,CAAC,CAAC;EACrF;EAEAM,YAAYA,CAACD,SAAS,EAAE;IACtB;IACA,MAAMkB,YAAY,GAAG;MACnBC,MAAM,EAAEnB,SAAS,CAACoB,MAAM;MACxBC,IAAI,EAAE3B,OAAO,CAAC4B,SAAS;MACvBC,UAAU,EAAE;IACd,CAAC;IACD,MAAMC,GAAG,GAAG,IAAI,CAACC,kBAAkB,CAACP,YAAY,CAAC;;IAEjD;IACA,IAAI,CAACZ,WAAW,CAACP,IAAI,CAAC;MACpByB,GAAG;MACHE,OAAO,EAAE1B,SAAS,CAAC0B;IACrB,CAAC,CAAC;EACJ;EAEAC,QAAQA,CAACC,KAAK,EAAE;IACd,OAAO,IAAI,CAACH,kBAAkB,CAACG,KAAK,CAAC;EACvC;EAEAC,eAAeA,CAACC,GAAG,EAAE;IACnB,OAAO,IAAI,CAACL,kBAAkB,CAACK,GAAG,CAAC;EACrC;EAEAC,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAAC1B,KAAK,EAAE;MACd;MACA,IAAI,CAAC2B,WAAW,CAAC,CAAC;MAClB;MACA,IAAI,CAACvB,MAAM,CAACwB,GAAG,CAAC,CAAC;IACnB;EACF;;EAEA;EACAC,UAAUA,CAAA,EAAG;IACX,IAAI,CAACzB,MAAM,CAAC0B,KAAK,CACd;AACP,4FACI,CAAC;EACH;EAEAV,kBAAkBA,CAACP,YAAY,EAAE;IAC/B,IAAI,CAAC,IAAI,CAACb,KAAK,EAAE;MACf,IAAI,CAAC6B,UAAU,CAAC,CAAC;IACnB;IAEA,MAAMV,GAAG,GAAI,MAAK,EAAE,IAAI,CAACnB,KAAM,EAAC;IAEhC,IAAIa,YAAY,CAACK,UAAU,EAAE;MAC3B,IAAI,CAACd,MAAM,CAAC0B,KAAK,CACd,qBAAoBX,GAAI,GAAE,GACxB,UAASN,YAAY,CAACG,IAAK,GAAE,GAC7B,YAAW7B,KAAK,CAAC4C,SAAS,CAAClB,YAAY,CAACC,MAAM,CAAE,GAAE,GAClD,gBAAeD,YAAY,CAACK,UAAW,GAAE,GAC1C,IACJ,CAAC;IACH,CAAC,MAAM;MACL,IAAI,CAACd,MAAM,CAAC0B,KAAK,CACd,qBAAoBX,GAAI,WAAUN,YAAY,CAACG,IAAK,aAAYH,YAAY,CAACC,MAAO,KACvF,CAAC;IACH;IAEA,OAAOK,GAAG;EACZ;EAEAQ,WAAWA,CAAA,EAAG;IACZ,IAAI,CAACvB,MAAM,CAAC0B,KAAK,CAAC,kBAAkB,CAAC;EACvC;AACF;AAEAE,MAAM,CAACC,OAAO,GAAGpC,eAAe"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"workbook-reader.js","names":["fs","require","EventEmitter","PassThrough","Readable","nodeStream","unzip","tmp","iterateStream","parseSax","StyleManager","WorkbookXform","RelationshipsXform","WorksheetReader","HyperlinkReader","setGracefulCleanup","WorkbookReader","constructor","input","options","arguments","length","undefined","worksheets","sharedStrings","hyperlinks","styles","entries","init","_getStream","createReadStream","Error","read","eventType","value","parse","emit","error","Symbol","asyncIterator","stream","zip","Parse","forceStream","pipe","waitingWorkSheets","entry","match","sheetNo","path","_parseRels","_parseWorkbook","_parseSharedStrings","_parseStyles","workbookRels","_parseWorksheet","Promise","resolve","reject","file","err","fd","tempFileCleanupCallback","push","tempStream","createWriteStream","on","_parseHyperlinks","autodrain","fileStream","_emitEntry","payload","xform","parseStream","type","workbook","properties","map","workbookPr","model","text","richText","index","font","events","node","name","bold","charset","parseInt","attributes","color","rgb","argb","val","theme","family","italic","outline","size","underline","vertAlign","iterator","id","worksheetReader","matchingRel","find","rel","Target","matchingSheet","sheets","sheet","rId","Id","state","hyperlinksReader","Options","module","exports"],"sources":["../../../../lib/stream/xlsx/workbook-reader.js"],"sourcesContent":["const fs = require('fs');\nconst {EventEmitter} = require('events');\nconst {PassThrough, Readable} = require('readable-stream');\nconst nodeStream = require('stream');\nconst unzip = require('unzipper');\nconst tmp = require('tmp');\nconst iterateStream = require('../../utils/iterate-stream');\nconst parseSax = require('../../utils/parse-sax');\n\nconst StyleManager = require('../../xlsx/xform/style/styles-xform');\nconst WorkbookXform = require('../../xlsx/xform/book/workbook-xform');\nconst RelationshipsXform = require('../../xlsx/xform/core/relationships-xform');\n\nconst WorksheetReader = require('./worksheet-reader');\nconst HyperlinkReader = require('./hyperlink-reader');\n\ntmp.setGracefulCleanup();\n\nclass WorkbookReader extends EventEmitter {\n constructor(input, options = {}) {\n super();\n\n this.input = input;\n\n this.options = {\n worksheets: 'emit',\n sharedStrings: 'cache',\n hyperlinks: 'ignore',\n styles: 'ignore',\n entries: 'ignore',\n ...options,\n };\n\n this.styles = new StyleManager();\n this.styles.init();\n }\n\n _getStream(input) {\n if (input instanceof nodeStream.Readable || input instanceof Readable) {\n return input;\n }\n if (typeof input === 'string') {\n return fs.createReadStream(input);\n }\n throw new Error(`Could not recognise input: ${input}`);\n }\n\n async read(input, options) {\n try {\n for await (const {eventType, value} of this.parse(input, options)) {\n switch (eventType) {\n case 'shared-strings':\n this.emit(eventType, value);\n break;\n case 'worksheet':\n this.emit(eventType, value);\n await value.read();\n break;\n case 'hyperlinks':\n this.emit(eventType, value);\n break;\n }\n }\n this.emit('end');\n this.emit('finished');\n } catch (error) {\n this.emit('error', error);\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const {eventType, value} of this.parse()) {\n if (eventType === 'worksheet') {\n yield value;\n }\n }\n }\n\n async *parse(input, options) {\n if (options) this.options = options;\n const stream = (this.stream = this._getStream(input || this.input));\n const zip = unzip.Parse({forceStream: true});\n stream.pipe(zip);\n\n // worksheets, deferred for parsing after shared strings reading\n const waitingWorkSheets = [];\n\n for await (const entry of iterateStream(zip)) {\n let match;\n let sheetNo;\n switch (entry.path) {\n case '_rels/.rels':\n break;\n case 'xl/_rels/workbook.xml.rels':\n await this._parseRels(entry);\n break;\n case 'xl/workbook.xml':\n await this._parseWorkbook(entry);\n break;\n case 'xl/sharedStrings.xml':\n yield* this._parseSharedStrings(entry);\n break;\n case 'xl/styles.xml':\n await this._parseStyles(entry);\n break;\n default:\n if (entry.path.match(/xl\\/worksheets\\/sheet\\d+[.]xml/)) {\n match = entry.path.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/);\n sheetNo = match[1];\n if (this.sharedStrings && this.workbookRels) {\n yield* this._parseWorksheet(iterateStream(entry), sheetNo);\n } else {\n // create temp file for each worksheet\n await new Promise((resolve, reject) => {\n tmp.file((err, path, fd, tempFileCleanupCallback) => {\n if (err) {\n return reject(err);\n }\n waitingWorkSheets.push({sheetNo, path, tempFileCleanupCallback});\n\n const tempStream = fs.createWriteStream(path);\n tempStream.on('error', reject);\n entry.pipe(tempStream);\n return tempStream.on('finish', () => {\n return resolve();\n });\n });\n });\n }\n } else if (entry.path.match(/xl\\/worksheets\\/_rels\\/sheet\\d+[.]xml.rels/)) {\n match = entry.path.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/);\n sheetNo = match[1];\n yield* this._parseHyperlinks(iterateStream(entry), sheetNo);\n }\n break;\n }\n entry.autodrain();\n }\n\n for (const {sheetNo, path, tempFileCleanupCallback} of waitingWorkSheets) {\n let fileStream = fs.createReadStream(path);\n // TODO: Remove once node v8 is deprecated\n // Detect and upgrade old fileStreams\n if (!fileStream[Symbol.asyncIterator]) {\n fileStream = fileStream.pipe(new PassThrough());\n }\n yield* this._parseWorksheet(fileStream, sheetNo);\n tempFileCleanupCallback();\n }\n }\n\n _emitEntry(payload) {\n if (this.options.entries === 'emit') {\n this.emit('entry', payload);\n }\n }\n\n async _parseRels(entry) {\n const xform = new RelationshipsXform();\n this.workbookRels = await xform.parseStream(iterateStream(entry));\n }\n\n async _parseWorkbook(entry) {\n this._emitEntry({type: 'workbook'});\n\n const workbook = new WorkbookXform();\n await workbook.parseStream(iterateStream(entry));\n\n this.properties = workbook.map.workbookPr;\n this.model = workbook.model;\n }\n\n async *_parseSharedStrings(entry) {\n this._emitEntry({type: 'shared-strings'});\n switch (this.options.sharedStrings) {\n case 'cache':\n this.sharedStrings = [];\n break;\n case 'emit':\n break;\n default:\n return;\n }\n\n let text = null;\n let richText = [];\n let index = 0;\n let font = null;\n for await (const events of parseSax(iterateStream(entry))) {\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n const node = value;\n switch (node.name) {\n case 'b':\n font = font || {};\n font.bold = true;\n break;\n case 'charset':\n font = font || {};\n font.charset = parseInt(node.attributes.charset, 10);\n break;\n case 'color':\n font = font || {};\n font.color = {};\n if (node.attributes.rgb) {\n font.color.argb = node.attributes.argb;\n }\n if (node.attributes.val) {\n font.color.argb = node.attributes.val;\n }\n if (node.attributes.theme) {\n font.color.theme = node.attributes.theme;\n }\n break;\n case 'family':\n font = font || {};\n font.family = parseInt(node.attributes.val, 10);\n break;\n case 'i':\n font = font || {};\n font.italic = true;\n break;\n case 'outline':\n font = font || {};\n font.outline = true;\n break;\n case 'rFont':\n font = font || {};\n font.name = node.value;\n break;\n case 'si':\n font = null;\n richText = [];\n text = null;\n break;\n case 'sz':\n font = font || {};\n font.size = parseInt(node.attributes.val, 10);\n break;\n case 'strike':\n break;\n case 't':\n text = null;\n break;\n case 'u':\n font = font || {};\n font.underline = true;\n break;\n case 'vertAlign':\n font = font || {};\n font.vertAlign = node.attributes.val;\n break;\n }\n } else if (eventType === 'text') {\n text = text ? text + value : value;\n } else if (eventType === 'closetag') {\n const node = value;\n switch (node.name) {\n case 'r':\n richText.push({\n font,\n text,\n });\n\n font = null;\n text = null;\n break;\n case 'si':\n if (this.options.sharedStrings === 'cache') {\n this.sharedStrings.push(richText.length ? {richText} : text);\n } else if (this.options.sharedStrings === 'emit') {\n yield {index: index++, text: richText.length ? {richText} : text};\n }\n\n richText = [];\n font = null;\n text = null;\n break;\n }\n }\n }\n }\n }\n\n async _parseStyles(entry) {\n this._emitEntry({type: 'styles'});\n if (this.options.styles === 'cache') {\n this.styles = new StyleManager();\n await this.styles.parseStream(iterateStream(entry));\n }\n }\n\n *_parseWorksheet(iterator, sheetNo) {\n this._emitEntry({type: 'worksheet', id: sheetNo});\n const worksheetReader = new WorksheetReader({\n workbook: this,\n id: sheetNo,\n iterator,\n options: this.options,\n });\n\n const matchingRel = (this.workbookRels || []).find(rel => rel.Target === `worksheets/sheet${sheetNo}.xml`);\n const matchingSheet = matchingRel && (this.model.sheets || []).find(sheet => sheet.rId === matchingRel.Id);\n if (matchingSheet) {\n worksheetReader.id = matchingSheet.id;\n worksheetReader.name = matchingSheet.name;\n worksheetReader.state = matchingSheet.state;\n }\n if (this.options.worksheets === 'emit') {\n yield {eventType: 'worksheet', value: worksheetReader};\n }\n }\n\n *_parseHyperlinks(iterator, sheetNo) {\n this._emitEntry({type: 'hyperlinks', id: sheetNo});\n const hyperlinksReader = new HyperlinkReader({\n workbook: this,\n id: sheetNo,\n iterator,\n options: this.options,\n });\n if (this.options.hyperlinks === 'emit') {\n yield {eventType: 'hyperlinks', value: hyperlinksReader};\n }\n }\n}\n\n// for reference - these are the valid values for options\nWorkbookReader.Options = {\n worksheets: ['emit', 'ignore'],\n sharedStrings: ['cache', 'emit', 'ignore'],\n hyperlinks: ['cache', 'emit', 'ignore'],\n styles: ['cache', 'ignore'],\n entries: ['emit', 'ignore'],\n};\n\nmodule.exports = WorkbookReader;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"workbook-writer.js","names":["fs","require","Archiver","StreamBuf","RelType","StylesXform","SharedStrings","DefinedNames","CoreXform","RelationshipsXform","ContentTypesXform","AppXform","WorkbookXform","SharedStringsXform","WorksheetWriter","theme1Xml","WorkbookWriter","constructor","options","created","Date","modified","creator","lastModifiedBy","lastPrinted","useSharedStrings","sharedStrings","styles","useStyles","Mock","_definedNames","_worksheets","views","zipOptions","zip","media","commentRefs","stream","filename","createWriteStream","pipe","promise","Promise","all","addThemes","addOfficeRels","definedNames","_openStream","path","bufSize","batch","append","name","on","emit","_commitWorksheets","commitWorksheet","worksheet","committed","resolve","commit","promises","map","length","addMedia","addContentTypes","addApp","addCore","addSharedStrings","addStyles","addWorkbookRels","addWorkbook","_finalize","nextId","i","addImage","image","id","medium","Object","assign","type","extension","push","getImage","addWorksheet","undefined","tabColor","console","trace","properties","workbook","state","pageSetup","autoFilter","headerFooter","getWorksheet","find","xml","xform","toXml","Id","Type","OfficeDocument","Target","CoreProperties","ExtenderProperties","model","worksheets","filter","Boolean","file","buffer","base64","dataimg64","content","substring","indexOf","Error","coreXform","count","sharedStringsXform","relationships","Styles","Theme","forEach","rId","Worksheet","calcProperties","prepare","reject","finalize","module","exports"],"sources":["../../../../lib/stream/xlsx/workbook-writer.js"],"sourcesContent":["const fs = require('fs');\nconst Archiver = require('archiver');\n\nconst StreamBuf = require('../../utils/stream-buf');\n\nconst RelType = require('../../xlsx/rel-type');\nconst StylesXform = require('../../xlsx/xform/style/styles-xform');\nconst SharedStrings = require('../../utils/shared-strings');\nconst DefinedNames = require('../../doc/defined-names');\n\nconst CoreXform = require('../../xlsx/xform/core/core-xform');\nconst RelationshipsXform = require('../../xlsx/xform/core/relationships-xform');\nconst ContentTypesXform = require('../../xlsx/xform/core/content-types-xform');\nconst AppXform = require('../../xlsx/xform/core/app-xform');\nconst WorkbookXform = require('../../xlsx/xform/book/workbook-xform');\nconst SharedStringsXform = require('../../xlsx/xform/strings/shared-strings-xform');\n\nconst WorksheetWriter = require('./worksheet-writer');\n\nconst theme1Xml = require('../../xlsx/xml/theme1.js');\n\nclass WorkbookWriter {\n constructor(options) {\n options = options || {};\n\n this.created = options.created || new Date();\n this.modified = options.modified || this.created;\n this.creator = options.creator || 'ExcelJS';\n this.lastModifiedBy = options.lastModifiedBy || 'ExcelJS';\n this.lastPrinted = options.lastPrinted;\n\n // using shared strings creates a smaller xlsx file but may use more memory\n this.useSharedStrings = options.useSharedStrings || false;\n this.sharedStrings = new SharedStrings();\n\n // style manager\n this.styles = options.useStyles ? new StylesXform(true) : new StylesXform.Mock(true);\n\n // defined names\n this._definedNames = new DefinedNames();\n\n this._worksheets = [];\n this.views = [];\n\n this.zipOptions = options.zip;\n\n this.media = [];\n this.commentRefs = [];\n\n this.zip = Archiver('zip', this.zipOptions);\n if (options.stream) {\n this.stream = options.stream;\n } else if (options.filename) {\n this.stream = fs.createWriteStream(options.filename);\n } else {\n this.stream = new StreamBuf();\n }\n this.zip.pipe(this.stream);\n\n // these bits can be added right now\n this.promise = Promise.all([this.addThemes(), this.addOfficeRels()]);\n }\n\n get definedNames() {\n return this._definedNames;\n }\n\n _openStream(path) {\n const stream = new StreamBuf({bufSize: 65536, batch: true});\n this.zip.append(stream, {name: path});\n stream.on('finish', () => {\n stream.emit('zipped');\n });\n return stream;\n }\n\n _commitWorksheets() {\n const commitWorksheet = function(worksheet) {\n if (!worksheet.committed) {\n return new Promise(resolve => {\n worksheet.stream.on('zipped', () => {\n resolve();\n });\n worksheet.commit();\n });\n }\n return Promise.resolve();\n };\n // if there are any uncommitted worksheets, commit them now and wait\n const promises = this._worksheets.map(commitWorksheet);\n if (promises.length) {\n return Promise.all(promises);\n }\n return Promise.resolve();\n }\n\n async commit() {\n // commit all worksheets, then add suplimentary files\n await this.promise;\n await this.addMedia();\n await this._commitWorksheets();\n await Promise.all([\n this.addContentTypes(),\n this.addApp(),\n this.addCore(),\n this.addSharedStrings(),\n this.addStyles(),\n this.addWorkbookRels(),\n ]);\n await this.addWorkbook();\n return this._finalize();\n }\n\n get nextId() {\n // find the next unique spot to add worksheet\n let i;\n for (i = 1; i < this._worksheets.length; i++) {\n if (!this._worksheets[i]) {\n return i;\n }\n }\n return this._worksheets.length || 1;\n }\n\n addImage(image) {\n const id = this.media.length;\n const medium = Object.assign({}, image, {type: 'image', name: `image${id}.${image.extension}`});\n this.media.push(medium);\n return id;\n }\n\n getImage(id) {\n return this.media[id];\n }\n\n addWorksheet(name, options) {\n // it's possible to add a worksheet with different than default\n // shared string handling\n // in fact, it's even possible to switch it mid-sheet\n options = options || {};\n const useSharedStrings =\n options.useSharedStrings !== undefined ? options.useSharedStrings : this.useSharedStrings;\n\n if (options.tabColor) {\n // eslint-disable-next-line no-console\n console.trace('tabColor option has moved to { properties: tabColor: {...} }');\n options.properties = Object.assign(\n {\n tabColor: options.tabColor,\n },\n options.properties\n );\n }\n\n const id = this.nextId;\n name = name || `sheet${id}`;\n\n const worksheet = new WorksheetWriter({\n id,\n name,\n workbook: this,\n useSharedStrings,\n properties: options.properties,\n state: options.state,\n pageSetup: options.pageSetup,\n views: options.views,\n autoFilter: options.autoFilter,\n headerFooter: options.headerFooter,\n });\n\n this._worksheets[id] = worksheet;\n return worksheet;\n }\n\n getWorksheet(id) {\n if (id === undefined) {\n return this._worksheets.find(() => true);\n }\n if (typeof id === 'number') {\n return this._worksheets[id];\n }\n if (typeof id === 'string') {\n return this._worksheets.find(worksheet => worksheet && worksheet.name === id);\n }\n return undefined;\n }\n\n addStyles() {\n return new Promise(resolve => {\n this.zip.append(this.styles.xml, {name: 'xl/styles.xml'});\n resolve();\n });\n }\n\n addThemes() {\n return new Promise(resolve => {\n this.zip.append(theme1Xml, {name: 'xl/theme/theme1.xml'});\n resolve();\n });\n }\n\n addOfficeRels() {\n return new Promise(resolve => {\n const xform = new RelationshipsXform();\n const xml = xform.toXml([\n {Id: 'rId1', Type: RelType.OfficeDocument, Target: 'xl/workbook.xml'},\n {Id: 'rId2', Type: RelType.CoreProperties, Target: 'docProps/core.xml'},\n {Id: 'rId3', Type: RelType.ExtenderProperties, Target: 'docProps/app.xml'},\n ]);\n this.zip.append(xml, {name: '/_rels/.rels'});\n resolve();\n });\n }\n\n addContentTypes() {\n return new Promise(resolve => {\n const model = {\n worksheets: this._worksheets.filter(Boolean),\n sharedStrings: this.sharedStrings,\n commentRefs: this.commentRefs,\n media: this.media,\n };\n const xform = new ContentTypesXform();\n const xml = xform.toXml(model);\n this.zip.append(xml, {name: '[Content_Types].xml'});\n resolve();\n });\n }\n\n addMedia() {\n return Promise.all(\n this.media.map(medium => {\n if (medium.type === 'image') {\n const filename = `xl/media/${medium.name}`;\n if (medium.filename) {\n return this.zip.file(medium.filename, {name: filename});\n }\n if (medium.buffer) {\n return this.zip.append(medium.buffer, {name: filename});\n }\n if (medium.base64) {\n const dataimg64 = medium.base64;\n const content = dataimg64.substring(dataimg64.indexOf(',') + 1);\n return this.zip.append(content, {name: filename, base64: true});\n }\n }\n throw new Error('Unsupported media');\n })\n );\n }\n\n addApp() {\n return new Promise(resolve => {\n const model = {\n worksheets: this._worksheets.filter(Boolean),\n };\n const xform = new AppXform();\n const xml = xform.toXml(model);\n this.zip.append(xml, {name: 'docProps/app.xml'});\n resolve();\n });\n }\n\n addCore() {\n return new Promise(resolve => {\n const coreXform = new CoreXform();\n const xml = coreXform.toXml(this);\n this.zip.append(xml, {name: 'docProps/core.xml'});\n resolve();\n });\n }\n\n addSharedStrings() {\n if (this.sharedStrings.count) {\n return new Promise(resolve => {\n const sharedStringsXform = new SharedStringsXform();\n const xml = sharedStringsXform.toXml(this.sharedStrings);\n this.zip.append(xml, {name: '/xl/sharedStrings.xml'});\n resolve();\n });\n }\n return Promise.resolve();\n }\n\n addWorkbookRels() {\n let count = 1;\n const relationships = [\n {Id: `rId${count++}`, Type: RelType.Styles, Target: 'styles.xml'},\n {Id: `rId${count++}`, Type: RelType.Theme, Target: 'theme/theme1.xml'},\n ];\n if (this.sharedStrings.count) {\n relationships.push({\n Id: `rId${count++}`,\n Type: RelType.SharedStrings,\n Target: 'sharedStrings.xml',\n });\n }\n this._worksheets.forEach(worksheet => {\n if (worksheet) {\n worksheet.rId = `rId${count++}`;\n relationships.push({\n Id: worksheet.rId,\n Type: RelType.Worksheet,\n Target: `worksheets/sheet${worksheet.id}.xml`,\n });\n }\n });\n return new Promise(resolve => {\n const xform = new RelationshipsXform();\n const xml = xform.toXml(relationships);\n this.zip.append(xml, {name: '/xl/_rels/workbook.xml.rels'});\n resolve();\n });\n }\n\n addWorkbook() {\n const {zip} = this;\n const model = {\n worksheets: this._worksheets.filter(Boolean),\n definedNames: this._definedNames.model,\n views: this.views,\n properties: {},\n calcProperties: {},\n };\n\n return new Promise(resolve => {\n const xform = new WorkbookXform();\n xform.prepare(model);\n zip.append(xform.toXml(model), {name: '/xl/workbook.xml'});\n resolve();\n });\n }\n\n _finalize() {\n return new Promise((resolve, reject) => {\n this.stream.on('error', reject);\n this.stream.on('finish', () => {\n resolve(this);\n });\n this.zip.on('error', reject);\n\n this.zip.finalize();\n });\n }\n}\n\nmodule.exports = WorkbookWriter;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"worksheet-reader.js","names":["EventEmitter","require","parseSax","_","utils","colCache","Dimensions","Row","Column","WorksheetReader","constructor","_ref","workbook","id","iterator","options","name","_columns","_keys","_dimensions","destroy","Error","dimensions","columns","getColumn","c","col","l2n","length","n","push","getColumnKey","key","setColumnKey","value","deleteColumnKey","eachColumnKey","f","each","read","events","parse","eventType","emit","error","Symbol","asyncIterator","emitSheet","emitHyperlinks","hyperlinks","worksheets","sharedStrings","styles","properties","inCols","inRows","inHyperlinks","cols","row","current","worksheetEvents","node","min","parseInt","attributes","max","width","parseFloat","styleId","style","r","ht","height","s","getStyleModel","ref","t","text","v","hyperlink","rId","fromModel","expandRow","address","decodeAddress","cell","getCell","cellValue","formula","result","xmlDecode","index","sharedString","isDateFmt","numFmt","excelToDate","model","date1904","undefined","module","exports"],"sources":["../../../../lib/stream/xlsx/worksheet-reader.js"],"sourcesContent":["const {EventEmitter} = require('events');\nconst parseSax = require('../../utils/parse-sax');\n\nconst _ = require('../../utils/under-dash');\nconst utils = require('../../utils/utils');\nconst colCache = require('../../utils/col-cache');\nconst Dimensions = require('../../doc/range');\n\nconst Row = require('../../doc/row');\nconst Column = require('../../doc/column');\n\nclass WorksheetReader extends EventEmitter {\n constructor({workbook, id, iterator, options}) {\n super();\n\n this.workbook = workbook;\n this.id = id;\n this.iterator = iterator;\n this.options = options || {};\n\n // and a name\n this.name = `Sheet${this.id}`;\n\n // column definitions\n this._columns = null;\n this._keys = {};\n\n // keep a record of dimensions\n this._dimensions = new Dimensions();\n }\n\n // destroy - not a valid operation for a streaming writer\n // even though some streamers might be able to, it's a bad idea.\n destroy() {\n throw new Error('Invalid Operation: destroy');\n }\n\n // return the current dimensions of the writer\n get dimensions() {\n return this._dimensions;\n }\n\n // =========================================================================\n // Columns\n\n // get the current columns array.\n get columns() {\n return this._columns;\n }\n\n // get a single column by col number. If it doesn't exist, it and any gaps before it\n // are created.\n getColumn(c) {\n if (typeof c === 'string') {\n // if it matches a key'd column, return that\n const col = this._keys[c];\n if (col) {\n return col;\n }\n\n // otherise, assume letter\n c = colCache.l2n(c);\n }\n if (!this._columns) {\n this._columns = [];\n }\n if (c > this._columns.length) {\n let n = this._columns.length + 1;\n while (n <= c) {\n this._columns.push(new Column(this, n++));\n }\n }\n return this._columns[c - 1];\n }\n\n getColumnKey(key) {\n return this._keys[key];\n }\n\n setColumnKey(key, value) {\n this._keys[key] = value;\n }\n\n deleteColumnKey(key) {\n delete this._keys[key];\n }\n\n eachColumnKey(f) {\n _.each(this._keys, f);\n }\n\n async read() {\n try {\n for await (const events of this.parse()) {\n for (const {eventType, value} of events) {\n this.emit(eventType, value);\n }\n }\n this.emit('finished');\n } catch (error) {\n this.emit('error', error);\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const events of this.parse()) {\n for (const {eventType, value} of events) {\n if (eventType === 'row') {\n yield value;\n }\n }\n }\n }\n\n async *parse() {\n const {iterator, options} = this;\n let emitSheet = false;\n let emitHyperlinks = false;\n let hyperlinks = null;\n switch (options.worksheets) {\n case 'emit':\n emitSheet = true;\n break;\n case 'prep':\n break;\n default:\n break;\n }\n switch (options.hyperlinks) {\n case 'emit':\n emitHyperlinks = true;\n break;\n case 'cache':\n this.hyperlinks = hyperlinks = {};\n break;\n default:\n break;\n }\n if (!emitSheet && !emitHyperlinks && !hyperlinks) {\n return;\n }\n\n // references\n const {sharedStrings, styles, properties} = this.workbook;\n\n // xml position\n let inCols = false;\n let inRows = false;\n let inHyperlinks = false;\n\n // parse state\n let cols = null;\n let row = null;\n let c = null;\n let current = null;\n for await (const events of parseSax(iterator)) {\n const worksheetEvents = [];\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n const node = value;\n if (emitSheet) {\n switch (node.name) {\n case 'cols':\n inCols = true;\n cols = [];\n break;\n case 'sheetData':\n inRows = true;\n break;\n\n case 'col':\n if (inCols) {\n cols.push({\n min: parseInt(node.attributes.min, 10),\n max: parseInt(node.attributes.max, 10),\n width: parseFloat(node.attributes.width),\n styleId: parseInt(node.attributes.style || '0', 10),\n });\n }\n break;\n\n case 'row':\n if (inRows) {\n const r = parseInt(node.attributes.r, 10);\n row = new Row(this, r);\n if (node.attributes.ht) {\n row.height = parseFloat(node.attributes.ht);\n }\n if (node.attributes.s) {\n const styleId = parseInt(node.attributes.s, 10);\n const style = styles.getStyleModel(styleId);\n if (style) {\n row.style = style;\n }\n }\n }\n break;\n case 'c':\n if (row) {\n c = {\n ref: node.attributes.r,\n s: parseInt(node.attributes.s, 10),\n t: node.attributes.t,\n };\n }\n break;\n case 'f':\n if (c) {\n current = c.f = {text: ''};\n }\n break;\n case 'v':\n if (c) {\n current = c.v = {text: ''};\n }\n break;\n case 'is':\n case 't':\n if (c) {\n current = c.v = {text: ''};\n }\n break;\n case 'mergeCell':\n break;\n default:\n break;\n }\n }\n\n // =================================================================\n //\n if (emitHyperlinks || hyperlinks) {\n switch (node.name) {\n case 'hyperlinks':\n inHyperlinks = true;\n break;\n case 'hyperlink':\n if (inHyperlinks) {\n const hyperlink = {\n ref: node.attributes.ref,\n rId: node.attributes['r:id'],\n };\n if (emitHyperlinks) {\n worksheetEvents.push({eventType: 'hyperlink', value: hyperlink});\n } else {\n hyperlinks[hyperlink.ref] = hyperlink;\n }\n }\n break;\n default:\n break;\n }\n }\n } else if (eventType === 'text') {\n // only text data is for sheet values\n if (emitSheet) {\n if (current) {\n current.text += value;\n }\n }\n } else if (eventType === 'closetag') {\n const node = value;\n if (emitSheet) {\n switch (node.name) {\n case 'cols':\n inCols = false;\n this._columns = Column.fromModel(cols);\n break;\n case 'sheetData':\n inRows = false;\n break;\n\n case 'row':\n this._dimensions.expandRow(row);\n worksheetEvents.push({eventType: 'row', value: row});\n row = null;\n break;\n\n case 'c':\n if (row && c) {\n const address = colCache.decodeAddress(c.ref);\n const cell = row.getCell(address.col);\n if (c.s) {\n const style = styles.getStyleModel(c.s);\n if (style) {\n cell.style = style;\n }\n }\n\n if (c.f) {\n const cellValue = {\n formula: c.f.text,\n };\n if (c.v) {\n if (c.t === 'str') {\n cellValue.result = utils.xmlDecode(c.v.text);\n } else {\n cellValue.result = parseFloat(c.v.text);\n }\n }\n cell.value = cellValue;\n } else if (c.v) {\n switch (c.t) {\n case 's': {\n const index = parseInt(c.v.text, 10);\n if (sharedStrings) {\n cell.value = sharedStrings[index];\n } else {\n cell.value = {\n sharedString: index,\n };\n }\n break;\n }\n\n case 'inlineStr':\n case 'str':\n cell.value = utils.xmlDecode(c.v.text);\n break;\n\n case 'e':\n cell.value = {error: c.v.text};\n break;\n\n case 'b':\n cell.value = parseInt(c.v.text, 10) !== 0;\n break;\n\n default:\n if (utils.isDateFmt(cell.numFmt)) {\n cell.value = utils.excelToDate(\n parseFloat(c.v.text),\n properties.model && properties.model.date1904\n );\n } else {\n cell.value = parseFloat(c.v.text);\n }\n break;\n }\n }\n if (hyperlinks) {\n const hyperlink = hyperlinks[c.ref];\n if (hyperlink) {\n cell.text = cell.value;\n cell.value = undefined;\n cell.hyperlink = hyperlink;\n }\n }\n c = null;\n }\n break;\n default:\n break;\n }\n }\n if (emitHyperlinks || hyperlinks) {\n switch (node.name) {\n case 'hyperlinks':\n inHyperlinks = false;\n break;\n default:\n break;\n }\n }\n }\n }\n if (worksheetEvents.length > 0) {\n yield worksheetEvents;\n }\n }\n }\n}\n\nmodule.exports = WorksheetReader;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"worksheet-writer.js","names":["_","require","RelType","colCache","Encryptor","Dimensions","StringBuf","Row","Column","SheetRelsWriter","SheetCommentsWriter","DataValidations","xmlBuffer","ListXform","DataValidationsXform","SheetPropertiesXform","SheetFormatPropertiesXform","ColXform","RowXform","HyperlinkXform","SheetViewXform","SheetProtectionXform","PageMarginsXform","PageSetupXform","AutoFilterXform","PictureXform","ConditionalFormattingsXform","HeaderFooterXform","RowBreaksXform","xform","dataValidations","sheetProperties","sheetFormatProperties","columns","tag","length","childXform","row","hyperlinks","sheetViews","sheetProtection","pageMargins","pageSeteup","autoFilter","picture","conditionalFormattings","headerFooter","rowBreaks","WorksheetWriter","constructor","options","id","name","state","_rows","_columns","_keys","_merges","add","_sheetRelsWriter","_sheetCommentsWriter","_dimensions","_rowZero","committed","_formulae","_siFormulae","conditionalFormatting","properties","Object","assign","defaultRowHeight","dyDescent","outlineLevelCol","outlineLevelRow","differentFirst","differentOddEven","oddHeader","oddFooter","evenHeader","evenFooter","firstHeader","firstFooter","pageSetup","margins","left","right","top","bottom","header","footer","orientation","horizontalDpi","verticalDpi","fitToPage","fitToWidth","fitToHeight","scale","pageOrder","blackAndWhite","draft","cellComments","errors","paperSize","undefined","showRowColHeaders","showGridLines","horizontalCentered","verticalCentered","colBreaks","useSharedStrings","_workbook","workbook","hasComments","_views","views","_media","_writeOpenWorksheet","startedData","stream","_stream","_openStream","pause","destroy","Error","commit","forEach","cRow","_writeRow","_writeOpenSheetData","_writeCloseSheetData","_writeAutoFilter","_writeMergeCells","_writeHyperlinks","_writeConditionalFormatting","_writeDataValidations","_writeSheetProtection","_writePageMargins","_writePageSetup","_writeBackground","_writeHeaderFooter","_writeRowBreaks","_writeLegacyData","_writeCloseWorksheet","end","dimensions","value","_headerRowCount","reduce","pv","cv","headerCount","headers","Math","max","count","defn","column","push","getColumnKey","key","setColumnKey","deleteColumnKey","eachColumnKey","f","each","getColumn","c","col","l2n","n","_nextRow","eachRow","iteratee","includeEmpty","i","getRow","hasValues","number","_commitRow","found","shift","lastRow","findRow","rowNumber","index","addRow","values","findCell","r","address","getAddress","getCell","getCellEx","mergeCells","_len","arguments","cells","Array","_key","merge","intersects","master","j","addConditionalFormatting","cf","removeConditionalFormatting","filter","splice","Function","addBackgroundImage","imageId","_background","getBackgroundImageId","protect","password","Promise","resolve","sheet","spinCount","Number","isFinite","round","algorithmName","saltValue","randomBytes","toString","hashValue","convertPasswordToHash","unprotect","_write","text","reset","addText","write","_writeSheetProperties","xmlBuf","sheetPropertiesModel","outlineProperties","tabColor","toXml","_writeSheetFormatProperties","sheetFormatPropertiesModel","defaultColWidth","_writeColumns","cols","toModel","prepare","styles","height","model","sharedStrings","hyperlinksProxy","merges","formulae","siFormulae","comments","addComments","_hyperlinks","image","getImage","pictureId","addMedia","Target","Type","Image","rId","vmlRelId","_writeDimensions","module","exports"],"sources":["../../../../lib/stream/xlsx/worksheet-writer.js"],"sourcesContent":["const _ = require('../../utils/under-dash');\n\nconst RelType = require('../../xlsx/rel-type');\n\nconst colCache = require('../../utils/col-cache');\nconst Encryptor = require('../../utils/encryptor');\nconst Dimensions = require('../../doc/range');\nconst StringBuf = require('../../utils/string-buf');\n\nconst Row = require('../../doc/row');\nconst Column = require('../../doc/column');\n\nconst SheetRelsWriter = require('./sheet-rels-writer');\nconst SheetCommentsWriter = require('./sheet-comments-writer');\nconst DataValidations = require('../../doc/data-validations');\n\nconst xmlBuffer = new StringBuf();\n\n// ============================================================================================\n// Xforms\nconst ListXform = require('../../xlsx/xform/list-xform');\nconst DataValidationsXform = require('../../xlsx/xform/sheet/data-validations-xform');\nconst SheetPropertiesXform = require('../../xlsx/xform/sheet/sheet-properties-xform');\nconst SheetFormatPropertiesXform = require('../../xlsx/xform/sheet/sheet-format-properties-xform');\nconst ColXform = require('../../xlsx/xform/sheet/col-xform');\nconst RowXform = require('../../xlsx/xform/sheet/row-xform');\nconst HyperlinkXform = require('../../xlsx/xform/sheet/hyperlink-xform');\nconst SheetViewXform = require('../../xlsx/xform/sheet/sheet-view-xform');\nconst SheetProtectionXform = require('../../xlsx/xform/sheet/sheet-protection-xform');\nconst PageMarginsXform = require('../../xlsx/xform/sheet/page-margins-xform');\nconst PageSetupXform = require('../../xlsx/xform/sheet/page-setup-xform');\nconst AutoFilterXform = require('../../xlsx/xform/sheet/auto-filter-xform');\nconst PictureXform = require('../../xlsx/xform/sheet/picture-xform');\nconst ConditionalFormattingsXform = require('../../xlsx/xform/sheet/cf/conditional-formattings-xform');\nconst HeaderFooterXform = require('../../xlsx/xform/sheet/header-footer-xform');\nconst RowBreaksXform = require('../../xlsx/xform/sheet/row-breaks-xform');\n\n// since prepare and render are functional, we can use singletons\nconst xform = {\n dataValidations: new DataValidationsXform(),\n sheetProperties: new SheetPropertiesXform(),\n sheetFormatProperties: new SheetFormatPropertiesXform(),\n columns: new ListXform({tag: 'cols', length: false, childXform: new ColXform()}),\n row: new RowXform(),\n hyperlinks: new ListXform({tag: 'hyperlinks', length: false, childXform: new HyperlinkXform()}),\n sheetViews: new ListXform({tag: 'sheetViews', length: false, childXform: new SheetViewXform()}),\n sheetProtection: new SheetProtectionXform(),\n pageMargins: new PageMarginsXform(),\n pageSeteup: new PageSetupXform(),\n autoFilter: new AutoFilterXform(),\n picture: new PictureXform(),\n conditionalFormattings: new ConditionalFormattingsXform(),\n headerFooter: new HeaderFooterXform(),\n rowBreaks: new RowBreaksXform(),\n};\n\n// ============================================================================================\n\nclass WorksheetWriter {\n constructor(options) {\n // in a workbook, each sheet will have a number\n this.id = options.id;\n\n // and a name\n this.name = options.name || `Sheet${this.id}`;\n\n // add a state\n this.state = options.state || 'visible';\n\n // rows are stored here while they need to be worked on.\n // when they are committed, they will be deleted.\n this._rows = [];\n\n // column definitions\n this._columns = null;\n\n // column keys (addRow convenience): key ==> this._columns index\n this._keys = {};\n\n // keep a record of all row and column pageBreaks\n this._merges = [];\n this._merges.add = function() {}; // ignore cell instruction\n\n // keep record of all hyperlinks\n this._sheetRelsWriter = new SheetRelsWriter(options);\n\n this._sheetCommentsWriter = new SheetCommentsWriter(this, this._sheetRelsWriter, options);\n\n // keep a record of dimensions\n this._dimensions = new Dimensions();\n\n // first uncommitted row\n this._rowZero = 1;\n\n // committed flag\n this.committed = false;\n\n // for data validations\n this.dataValidations = new DataValidations();\n\n // for sharing formulae\n this._formulae = {};\n this._siFormulae = 0;\n\n // keep a record of conditionalFormattings\n this.conditionalFormatting = [];\n\n // keep a record of all row and column pageBreaks\n this.rowBreaks = [];\n\n // for default row height, outline levels, etc\n this.properties = Object.assign(\n {},\n {\n defaultRowHeight: 15,\n dyDescent: 55,\n outlineLevelCol: 0,\n outlineLevelRow: 0,\n },\n options.properties\n );\n\n this.headerFooter = Object.assign(\n {},\n {\n differentFirst: false,\n differentOddEven: false,\n oddHeader: null,\n oddFooter: null,\n evenHeader: null,\n evenFooter: null,\n firstHeader: null,\n firstFooter: null,\n },\n options.headerFooter\n );\n\n // for all things printing\n this.pageSetup = Object.assign(\n {},\n {\n margins: {left: 0.7, right: 0.7, top: 0.75, bottom: 0.75, header: 0.3, footer: 0.3},\n orientation: 'portrait',\n horizontalDpi: 4294967295,\n verticalDpi: 4294967295,\n fitToPage: !!(\n options.pageSetup &&\n (options.pageSetup.fitToWidth || options.pageSetup.fitToHeight) &&\n !options.pageSetup.scale\n ),\n pageOrder: 'downThenOver',\n blackAndWhite: false,\n draft: false,\n cellComments: 'None',\n errors: 'displayed',\n scale: 100,\n fitToWidth: 1,\n fitToHeight: 1,\n paperSize: undefined,\n showRowColHeaders: false,\n showGridLines: false,\n horizontalCentered: false,\n verticalCentered: false,\n rowBreaks: null,\n colBreaks: null,\n },\n options.pageSetup\n );\n\n // using shared strings creates a smaller xlsx file but may use more memory\n this.useSharedStrings = options.useSharedStrings || false;\n\n this._workbook = options.workbook;\n\n this.hasComments = false;\n\n // views\n this._views = options.views || [];\n\n // auto filter\n this.autoFilter = options.autoFilter || null;\n\n this._media = [];\n\n // worksheet protection\n this.sheetProtection = null;\n\n // start writing to stream now\n this._writeOpenWorksheet();\n\n this.startedData = false;\n }\n\n get workbook() {\n return this._workbook;\n }\n\n get stream() {\n if (!this._stream) {\n // eslint-disable-next-line no-underscore-dangle\n this._stream = this._workbook._openStream(`/xl/worksheets/sheet${this.id}.xml`);\n\n // pause stream to prevent 'data' events\n this._stream.pause();\n }\n return this._stream;\n }\n\n // destroy - not a valid operation for a streaming writer\n // even though some streamers might be able to, it's a bad idea.\n destroy() {\n throw new Error('Invalid Operation: destroy');\n }\n\n commit() {\n if (this.committed) {\n return;\n }\n // commit all rows\n this._rows.forEach(cRow => {\n if (cRow) {\n // write the row to the stream\n this._writeRow(cRow);\n }\n });\n\n // we _cannot_ accept new rows from now on\n this._rows = null;\n\n if (!this.startedData) {\n this._writeOpenSheetData();\n }\n this._writeCloseSheetData();\n this._writeAutoFilter();\n this._writeMergeCells();\n\n // for some reason, Excel can't handle dimensions at the bottom of the file\n // this._writeDimensions();\n\n this._writeHyperlinks();\n this._writeConditionalFormatting();\n this._writeDataValidations();\n this._writeSheetProtection();\n this._writePageMargins();\n this._writePageSetup();\n this._writeBackground();\n this._writeHeaderFooter();\n this._writeRowBreaks();\n\n // Legacy Data tag for comments\n this._writeLegacyData();\n\n this._writeCloseWorksheet();\n // signal end of stream to workbook\n this.stream.end();\n\n this._sheetCommentsWriter.commit();\n // also commit the hyperlinks if any\n this._sheetRelsWriter.commit();\n\n this.committed = true;\n }\n\n // return the current dimensions of the writer\n get dimensions() {\n return this._dimensions;\n }\n\n get views() {\n return this._views;\n }\n\n // =========================================================================\n // Columns\n\n // get the current columns array.\n get columns() {\n return this._columns;\n }\n\n // set the columns from an array of column definitions.\n // Note: any headers defined will overwrite existing values.\n set columns(value) {\n // calculate max header row count\n this._headerRowCount = value.reduce((pv, cv) => {\n const headerCount = (cv.header && 1) || (cv.headers && cv.headers.length) || 0;\n return Math.max(pv, headerCount);\n }, 0);\n\n // construct Column objects\n let count = 1;\n const columns = (this._columns = []);\n value.forEach(defn => {\n const column = new Column(this, count++, false);\n columns.push(column);\n column.defn = defn;\n });\n }\n\n getColumnKey(key) {\n return this._keys[key];\n }\n\n setColumnKey(key, value) {\n this._keys[key] = value;\n }\n\n deleteColumnKey(key) {\n delete this._keys[key];\n }\n\n eachColumnKey(f) {\n _.each(this._keys, f);\n }\n\n // get a single column by col number. If it doesn't exist, it and any gaps before it\n // are created.\n getColumn(c) {\n if (typeof c === 'string') {\n // if it matches a key'd column, return that\n const col = this._keys[c];\n if (col) return col;\n\n // otherwise, assume letter\n c = colCache.l2n(c);\n }\n if (!this._columns) {\n this._columns = [];\n }\n if (c > this._columns.length) {\n let n = this._columns.length + 1;\n while (n <= c) {\n this._columns.push(new Column(this, n++));\n }\n }\n return this._columns[c - 1];\n }\n\n // =========================================================================\n // Rows\n get _nextRow() {\n return this._rowZero + this._rows.length;\n }\n\n // iterate over every uncommitted row in the worksheet, including maybe empty rows\n eachRow(options, iteratee) {\n if (!iteratee) {\n iteratee = options;\n options = undefined;\n }\n if (options && options.includeEmpty) {\n const n = this._nextRow;\n for (let i = this._rowZero; i < n; i++) {\n iteratee(this.getRow(i), i);\n }\n } else {\n this._rows.forEach(row => {\n if (row.hasValues) {\n iteratee(row, row.number);\n }\n });\n }\n }\n\n _commitRow(cRow) {\n // since rows must be written in order, we commit all rows up till and including cRow\n let found = false;\n while (this._rows.length && !found) {\n const row = this._rows.shift();\n this._rowZero++;\n if (row) {\n this._writeRow(row);\n found = row.number === cRow.number;\n this._rowZero = row.number + 1;\n }\n }\n }\n\n get lastRow() {\n // returns last uncommitted row\n if (this._rows.length) {\n return this._rows[this._rows.length - 1];\n }\n return undefined;\n }\n\n // find a row (if exists) by row number\n findRow(rowNumber) {\n const index = rowNumber - this._rowZero;\n return this._rows[index];\n }\n\n getRow(rowNumber) {\n const index = rowNumber - this._rowZero;\n\n // may fail if rows have been comitted\n if (index < 0) {\n throw new Error('Out of bounds: this row has been committed');\n }\n let row = this._rows[index];\n if (!row) {\n this._rows[index] = row = new Row(this, rowNumber);\n }\n return row;\n }\n\n addRow(value) {\n const row = new Row(this, this._nextRow);\n this._rows[row.number - this._rowZero] = row;\n row.values = value;\n return row;\n }\n\n // ================================================================================\n // Cells\n\n // returns the cell at [r,c] or address given by r. If not found, return undefined\n findCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this.findRow(address.row);\n return row ? row.findCell(address.column) : undefined;\n }\n\n // return the cell at [r,c] or address given by r. If not found, create a new one.\n getCell(r, c) {\n const address = colCache.getAddress(r, c);\n const row = this.getRow(address.row);\n return row.getCellEx(address);\n }\n\n mergeCells(...cells) {\n // may fail if rows have been comitted\n const dimensions = new Dimensions(cells);\n\n // check cells aren't already merged\n this._merges.forEach(merge => {\n if (merge.intersects(dimensions)) {\n throw new Error('Cannot merge already merged cells');\n }\n });\n\n // apply merge\n const master = this.getCell(dimensions.top, dimensions.left);\n for (let i = dimensions.top; i <= dimensions.bottom; i++) {\n for (let j = dimensions.left; j <= dimensions.right; j++) {\n if (i > dimensions.top || j > dimensions.left) {\n this.getCell(i, j).merge(master);\n }\n }\n }\n\n // index merge\n this._merges.push(dimensions);\n }\n\n // ===========================================================================\n // Conditional Formatting\n addConditionalFormatting(cf) {\n this.conditionalFormatting.push(cf);\n }\n\n removeConditionalFormatting(filter) {\n if (typeof filter === 'number') {\n this.conditionalFormatting.splice(filter, 1);\n } else if (filter instanceof Function) {\n this.conditionalFormatting = this.conditionalFormatting.filter(filter);\n } else {\n this.conditionalFormatting = [];\n }\n }\n\n // =========================================================================\n\n addBackgroundImage(imageId) {\n this._background = {\n imageId,\n };\n }\n\n getBackgroundImageId() {\n return this._background && this._background.imageId;\n }\n\n // =========================================================================\n // Worksheet Protection\n protect(password, options) {\n // TODO: make this function truly async\n // perhaps marshal to worker thread or something\n return new Promise(resolve => {\n this.sheetProtection = {\n sheet: true,\n };\n if (options && 'spinCount' in options) {\n // force spinCount to be integer >= 0\n options.spinCount = Number.isFinite(options.spinCount) ? Math.round(Math.max(0, options.spinCount)) : 100000;\n }\n if (password) {\n this.sheetProtection.algorithmName = 'SHA-512';\n this.sheetProtection.saltValue = Encryptor.randomBytes(16).toString('base64');\n this.sheetProtection.spinCount = options && 'spinCount' in options ? options.spinCount : 100000; // allow user specified spinCount\n this.sheetProtection.hashValue = Encryptor.convertPasswordToHash(\n password,\n 'SHA512',\n this.sheetProtection.saltValue,\n this.sheetProtection.spinCount\n );\n }\n if (options) {\n this.sheetProtection = Object.assign(this.sheetProtection, options);\n if (!password && 'spinCount' in options) {\n delete this.sheetProtection.spinCount;\n }\n }\n resolve();\n });\n }\n\n unprotect() {\n this.sheetProtection = null;\n }\n\n // ================================================================================\n\n _write(text) {\n xmlBuffer.reset();\n xmlBuffer.addText(text);\n this.stream.write(xmlBuffer);\n }\n\n _writeSheetProperties(xmlBuf, properties, pageSetup) {\n const sheetPropertiesModel = {\n outlineProperties: properties && properties.outlineProperties,\n tabColor: properties && properties.tabColor,\n pageSetup:\n pageSetup && pageSetup.fitToPage\n ? {\n fitToPage: pageSetup.fitToPage,\n }\n : undefined,\n };\n\n xmlBuf.addText(xform.sheetProperties.toXml(sheetPropertiesModel));\n }\n\n _writeSheetFormatProperties(xmlBuf, properties) {\n const sheetFormatPropertiesModel = properties\n ? {\n defaultRowHeight: properties.defaultRowHeight,\n dyDescent: properties.dyDescent,\n outlineLevelCol: properties.outlineLevelCol,\n outlineLevelRow: properties.outlineLevelRow,\n }\n : undefined;\n if (properties.defaultColWidth) {\n sheetFormatPropertiesModel.defaultColWidth = properties.defaultColWidth;\n }\n\n xmlBuf.addText(xform.sheetFormatProperties.toXml(sheetFormatPropertiesModel));\n }\n\n _writeOpenWorksheet() {\n xmlBuffer.reset();\n\n xmlBuffer.addText('<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>');\n xmlBuffer.addText(\n '<worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"' +\n ' xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"' +\n ' xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\"' +\n ' mc:Ignorable=\"x14ac\"' +\n ' xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">'\n );\n\n this._writeSheetProperties(xmlBuffer, this.properties, this.pageSetup);\n\n xmlBuffer.addText(xform.sheetViews.toXml(this.views));\n\n this._writeSheetFormatProperties(xmlBuffer, this.properties);\n\n this.stream.write(xmlBuffer);\n }\n\n _writeColumns() {\n const cols = Column.toModel(this.columns);\n if (cols) {\n xform.columns.prepare(cols, {styles: this._workbook.styles});\n this.stream.write(xform.columns.toXml(cols));\n }\n }\n\n _writeOpenSheetData() {\n this._write('<sheetData>');\n }\n\n _writeRow(row) {\n if (!this.startedData) {\n this._writeColumns();\n this._writeOpenSheetData();\n this.startedData = true;\n }\n\n if (row.hasValues || row.height) {\n const {model} = row;\n const options = {\n styles: this._workbook.styles,\n sharedStrings: this.useSharedStrings ? this._workbook.sharedStrings : undefined,\n hyperlinks: this._sheetRelsWriter.hyperlinksProxy,\n merges: this._merges,\n formulae: this._formulae,\n siFormulae: this._siFormulae,\n comments: [],\n };\n xform.row.prepare(model, options);\n this.stream.write(xform.row.toXml(model));\n\n if (options.comments.length) {\n this.hasComments = true;\n this._sheetCommentsWriter.addComments(options.comments);\n }\n }\n }\n\n _writeCloseSheetData() {\n this._write('</sheetData>');\n }\n\n _writeMergeCells() {\n if (this._merges.length) {\n xmlBuffer.reset();\n xmlBuffer.addText(`<mergeCells count=\"${this._merges.length}\">`);\n this._merges.forEach(merge => {\n xmlBuffer.addText(`<mergeCell ref=\"${merge}\"/>`);\n });\n xmlBuffer.addText('</mergeCells>');\n\n this.stream.write(xmlBuffer);\n }\n }\n\n _writeHyperlinks() {\n // eslint-disable-next-line no-underscore-dangle\n this.stream.write(xform.hyperlinks.toXml(this._sheetRelsWriter._hyperlinks));\n }\n\n _writeConditionalFormatting() {\n const options = {\n styles: this._workbook.styles,\n };\n xform.conditionalFormattings.prepare(this.conditionalFormatting, options);\n this.stream.write(xform.conditionalFormattings.toXml(this.conditionalFormatting));\n }\n\n _writeRowBreaks() {\n this.stream.write(xform.rowBreaks.toXml(this.rowBreaks));\n }\n\n _writeDataValidations() {\n this.stream.write(xform.dataValidations.toXml(this.dataValidations.model));\n }\n\n _writeSheetProtection() {\n this.stream.write(xform.sheetProtection.toXml(this.sheetProtection));\n }\n\n _writePageMargins() {\n this.stream.write(xform.pageMargins.toXml(this.pageSetup.margins));\n }\n\n _writePageSetup() {\n this.stream.write(xform.pageSeteup.toXml(this.pageSetup));\n }\n\n _writeHeaderFooter() {\n this.stream.write(xform.headerFooter.toXml(this.headerFooter));\n }\n\n _writeAutoFilter() {\n this.stream.write(xform.autoFilter.toXml(this.autoFilter));\n }\n\n _writeBackground() {\n if (this._background) {\n if (this._background.imageId !== undefined) {\n const image = this._workbook.getImage(this._background.imageId);\n const pictureId = this._sheetRelsWriter.addMedia({\n Target: `../media/${image.name}`,\n Type: RelType.Image,\n });\n\n this._background = {\n ...this._background,\n rId: pictureId,\n };\n }\n this.stream.write(xform.picture.toXml({rId: this._background.rId}));\n }\n }\n\n _writeLegacyData() {\n if (this.hasComments) {\n xmlBuffer.reset();\n xmlBuffer.addText(`<legacyDrawing r:id=\"${this._sheetCommentsWriter.vmlRelId}\"/>`);\n this.stream.write(xmlBuffer);\n }\n }\n\n _writeDimensions() {\n // for some reason, Excel can't handle dimensions at the bottom of the file\n // and we don't know the dimensions until the commit, so don't write them.\n // this._write('<dimension ref=\"' + this._dimensions + '\"/>');\n }\n\n _writeCloseWorksheet() {\n this._write('</worksheet>');\n }\n}\n\nmodule.exports = WorksheetWriter;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-drain.js","names":["EventEmitter","require","AutoDrain","write","chunk","emit","end","module","exports"],"sources":["../../../lib/utils/auto-drain.js"],"sourcesContent":["const {EventEmitter} = require('events');\n\n// =============================================================================\n// AutoDrain - kind of /dev/null\nclass AutoDrain extends EventEmitter {\n write(chunk) {\n this.emit('data', chunk);\n }\n\n end() {\n this.emit('end');\n }\n}\n\nmodule.exports = AutoDrain;\n"],"mappings":";;AAAA,MAAM;EAACA;AAAY,CAAC,GAAGC,OAAO,CAAC,QAAQ,CAAC;;AAExC;AACA;AACA,MAAMC,SAAS,SAASF,YAAY,CAAC;EACnCG,KAAKA,CAACC,KAAK,EAAE;IACX,IAAI,CAACC,IAAI,CAAC,MAAM,EAAED,KAAK,CAAC;EAC1B;EAEAE,GAAGA,CAAA,EAAG;IACJ,IAAI,CAACD,IAAI,CAAC,KAAK,CAAC;EAClB;AACF;AAEAE,MAAM,CAACC,OAAO,GAAGN,SAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-buffer-decode.js","names":["textDecoder","TextDecoder","bufferToString","chunk","decode","toString","exports"],"sources":["../../../lib/utils/browser-buffer-decode.js"],"sourcesContent":["// eslint-disable-next-line node/no-unsupported-features/node-builtins\nconst textDecoder = typeof TextDecoder === 'undefined' ? null : new TextDecoder('utf-8');\n\nfunction bufferToString(chunk) {\n if (typeof chunk === 'string') {\n return chunk;\n }\n if (textDecoder) {\n return textDecoder.decode(chunk);\n }\n return chunk.toString();\n}\n\nexports.bufferToString = bufferToString;\n"],"mappings":";;AAAA;AACA,MAAMA,WAAW,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAG,IAAI,GAAG,IAAIA,WAAW,CAAC,OAAO,CAAC;AAExF,SAASC,cAAcA,CAACC,KAAK,EAAE;EAC7B,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EACA,IAAIH,WAAW,EAAE;IACf,OAAOA,WAAW,CAACI,MAAM,CAACD,KAAK,CAAC;EAClC;EACA,OAAOA,KAAK,CAACE,QAAQ,CAAC,CAAC;AACzB;AAEAC,OAAO,CAACJ,cAAc,GAAGA,cAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-buffer-encode.js","names":["textEncoder","TextEncoder","Buffer","require","stringToBuffer","str","from","encode","buffer","exports"],"sources":["../../../lib/utils/browser-buffer-encode.js"],"sourcesContent":["// eslint-disable-next-line node/no-unsupported-features/node-builtins\nconst textEncoder = typeof TextEncoder === 'undefined' ? null : new TextEncoder('utf-8');\nconst {Buffer} = require('buffer');\n\nfunction stringToBuffer(str) {\n if (typeof str !== 'string') {\n return str;\n }\n if (textEncoder) {\n return Buffer.from(textEncoder.encode(str).buffer);\n }\n return Buffer.from(str);\n}\n\nexports.stringToBuffer = stringToBuffer;\n"],"mappings":";;AAAA;AACA,MAAMA,WAAW,GAAG,OAAOC,WAAW,KAAK,WAAW,GAAG,IAAI,GAAG,IAAIA,WAAW,CAAC,OAAO,CAAC;AACxF,MAAM;EAACC;AAAM,CAAC,GAAGC,OAAO,CAAC,QAAQ,CAAC;AAElC,SAASC,cAAcA,CAACC,GAAG,EAAE;EAC3B,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;IAC3B,OAAOA,GAAG;EACZ;EACA,IAAIL,WAAW,EAAE;IACf,OAAOE,MAAM,CAACI,IAAI,CAACN,WAAW,CAACO,MAAM,CAACF,GAAG,CAAC,CAACG,MAAM,CAAC;EACpD;EACA,OAAON,MAAM,CAACI,IAAI,CAACD,GAAG,CAAC;AACzB;AAEAI,OAAO,CAACL,cAAc,GAAGA,cAAc"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cell-matrix.js","names":["_","require","colCache","CellMatrix","constructor","template","sheets","addCell","addressStr","addCellEx","decodeEx","getCell","findCellEx","findCell","findCellAt","sheetName","rowNumber","colNumber","sheet","row","address","top","bottom","col","left","right","getCellAt","getCellEx","create","findSheet","findSheetRow","findRowCell","cell","n2l","removeCellEx","forEachInSheet","callback","forEach","each","map","results","push","name","undefined","Object","assign","JSON","parse","stringify","spliceRows","start","numDelete","numInsert","inserts","i","splice","spliceColumns","module","exports"],"sources":["../../../lib/utils/cell-matrix.js"],"sourcesContent":["const _ = require('./under-dash');\nconst colCache = require('./col-cache');\n\nclass CellMatrix {\n constructor(template) {\n this.template = template;\n this.sheets = {};\n }\n\n addCell(addressStr) {\n this.addCellEx(colCache.decodeEx(addressStr));\n }\n\n getCell(addressStr) {\n return this.findCellEx(colCache.decodeEx(addressStr), true);\n }\n\n findCell(addressStr) {\n return this.findCellEx(colCache.decodeEx(addressStr), false);\n }\n\n findCellAt(sheetName, rowNumber, colNumber) {\n const sheet = this.sheets[sheetName];\n const row = sheet && sheet[rowNumber];\n return row && row[colNumber];\n }\n\n addCellEx(address) {\n if (address.top) {\n for (let row = address.top; row <= address.bottom; row++) {\n for (let col = address.left; col <= address.right; col++) {\n this.getCellAt(address.sheetName, row, col);\n }\n }\n } else {\n this.findCellEx(address, true);\n }\n }\n\n getCellEx(address) {\n return this.findCellEx(address, true);\n }\n\n findCellEx(address, create) {\n const sheet = this.findSheet(address, create);\n const row = this.findSheetRow(sheet, address, create);\n return this.findRowCell(row, address, create);\n }\n\n getCellAt(sheetName, rowNumber, colNumber) {\n const sheet = this.sheets[sheetName] || (this.sheets[sheetName] = []);\n const row = sheet[rowNumber] || (sheet[rowNumber] = []);\n const cell =\n row[colNumber] ||\n (row[colNumber] = {\n sheetName,\n address: colCache.n2l(colNumber) + rowNumber,\n row: rowNumber,\n col: colNumber,\n });\n return cell;\n }\n\n removeCellEx(address) {\n const sheet = this.findSheet(address);\n if (!sheet) {\n return;\n }\n const row = this.findSheetRow(sheet, address);\n if (!row) {\n return;\n }\n delete row[address.col];\n }\n\n forEachInSheet(sheetName, callback) {\n const sheet = this.sheets[sheetName];\n if (sheet) {\n sheet.forEach((row, rowNumber) => {\n if (row) {\n row.forEach((cell, colNumber) => {\n if (cell) {\n callback(cell, rowNumber, colNumber);\n }\n });\n }\n });\n }\n }\n\n forEach(callback) {\n _.each(this.sheets, (sheet, sheetName) => {\n this.forEachInSheet(sheetName, callback);\n });\n }\n\n map(callback) {\n const results = [];\n this.forEach(cell => {\n results.push(callback(cell));\n });\n return results;\n }\n\n findSheet(address, create) {\n const name = address.sheetName;\n if (this.sheets[name]) {\n return this.sheets[name];\n }\n if (create) {\n return (this.sheets[name] = []);\n }\n return undefined;\n }\n\n findSheetRow(sheet, address, create) {\n const {row} = address;\n if (sheet && sheet[row]) {\n return sheet[row];\n }\n if (create) {\n return (sheet[row] = []);\n }\n return undefined;\n }\n\n findRowCell(row, address, create) {\n const {col} = address;\n if (row && row[col]) {\n return row[col];\n }\n if (create) {\n return (row[col] = this.template\n ? Object.assign(address, JSON.parse(JSON.stringify(this.template)))\n : address);\n }\n return undefined;\n }\n\n spliceRows(sheetName, start, numDelete, numInsert) {\n const sheet = this.sheets[sheetName];\n if (sheet) {\n const inserts = [];\n for (let i = 0; i < numInsert; i++) {\n inserts.push([]);\n }\n sheet.splice(start, numDelete, ...inserts);\n }\n }\n\n spliceColumns(sheetName, start, numDelete, numInsert) {\n const sheet = this.sheets[sheetName];\n if (sheet) {\n const inserts = [];\n for (let i = 0; i < numInsert; i++) {\n inserts.push(null);\n }\n _.each(sheet, row => {\n row.splice(start, numDelete, ...inserts);\n });\n }\n }\n}\n\nmodule.exports = CellMatrix;\n"],"mappings":";;AAAA,MAAMA,CAAC,GAAGC,OAAO,CAAC,cAAc,CAAC;AACjC,MAAMC,QAAQ,GAAGD,OAAO,CAAC,aAAa,CAAC;AAEvC,MAAME,UAAU,CAAC;EACfC,WAAWA,CAACC,QAAQ,EAAE;IACpB,IAAI,CAACA,QAAQ,GAAGA,QAAQ;IACxB,IAAI,CAACC,MAAM,GAAG,CAAC,CAAC;EAClB;EAEAC,OAAOA,CAACC,UAAU,EAAE;IAClB,IAAI,CAACC,SAAS,CAACP,QAAQ,CAACQ,QAAQ,CAACF,UAAU,CAAC,CAAC;EAC/C;EAEAG,OAAOA,CAACH,UAAU,EAAE;IAClB,OAAO,IAAI,CAACI,UAAU,CAACV,QAAQ,CAACQ,QAAQ,CAACF,UAAU,CAAC,EAAE,IAAI,CAAC;EAC7D;EAEAK,QAAQA,CAACL,UAAU,EAAE;IACnB,OAAO,IAAI,CAACI,UAAU,CAACV,QAAQ,CAACQ,QAAQ,CAACF,UAAU,CAAC,EAAE,KAAK,CAAC;EAC9D;EAEAM,UAAUA,CAACC,SAAS,EAAEC,SAAS,EAAEC,SAAS,EAAE;IAC1C,MAAMC,KAAK,GAAG,IAAI,CAACZ,MAAM,CAACS,SAAS,CAAC;IACpC,MAAMI,GAAG,GAAGD,KAAK,IAAIA,KAAK,CAACF,SAAS,CAAC;IACrC,OAAOG,GAAG,IAAIA,GAAG,CAACF,SAAS,CAAC;EAC9B;EAEAR,SAASA,CAACW,OAAO,EAAE;IACjB,IAAIA,OAAO,CAACC,GAAG,EAAE;MACf,KAAK,IAAIF,GAAG,GAAGC,OAAO,CAACC,GAAG,EAAEF,GAAG,IAAIC,OAAO,CAACE,MAAM,EAAEH,GAAG,EAAE,EAAE;QACxD,KAAK,IAAII,GAAG,GAAGH,OAAO,CAACI,IAAI,EAAED,GAAG,IAAIH,OAAO,CAACK,KAAK,EAAEF,GAAG,EAAE,EAAE;UACxD,IAAI,CAACG,SAAS,CAACN,OAAO,CAACL,SAAS,EAAEI,GAAG,EAAEI,GAAG,CAAC;QAC7C;MACF;IACF,CAAC,MAAM;MACL,IAAI,CAACX,UAAU,CAACQ,OAAO,EAAE,IAAI,CAAC;IAChC;EACF;EAEAO,SAASA,CAACP,OAAO,EAAE;IACjB,OAAO,IAAI,CAACR,UAAU,CAACQ,OAAO,EAAE,IAAI,CAAC;EACvC;EAEAR,UAAUA,CAACQ,OAAO,EAAEQ,MAAM,EAAE;IAC1B,MAAMV,KAAK,GAAG,IAAI,CAACW,SAAS,CAACT,OAAO,EAAEQ,MAAM,CAAC;IAC7C,MAAMT,GAAG,GAAG,IAAI,CAACW,YAAY,CAACZ,KAAK,EAAEE,OAAO,EAAEQ,MAAM,CAAC;IACrD,OAAO,IAAI,CAACG,WAAW,CAACZ,GAAG,EAAEC,OAAO,EAAEQ,MAAM,CAAC;EAC/C;EAEAF,SAASA,CAACX,SAAS,EAAEC,SAAS,EAAEC,SAAS,EAAE;IACzC,MAAMC,KAAK,GAAG,IAAI,CAACZ,MAAM,CAACS,SAAS,CAAC,KAAK,IAAI,CAACT,MAAM,CAACS,SAAS,CAAC,GAAG,EAAE,CAAC;IACrE,MAAMI,GAAG,GAAGD,KAAK,CAACF,SAAS,CAAC,KAAKE,KAAK,CAACF,SAAS,CAAC,GAAG,EAAE,CAAC;IACvD,MAAMgB,IAAI,GACRb,GAAG,CAACF,SAAS,CAAC,KACbE,GAAG,CAACF,SAAS,CAAC,GAAG;MAChBF,SAAS;MACTK,OAAO,EAAElB,QAAQ,CAAC+B,GAAG,CAAChB,SAAS,CAAC,GAAGD,SAAS;MAC5CG,GAAG,EAAEH,SAAS;MACdO,GAAG,EAAEN;IACP,CAAC,CAAC;IACJ,OAAOe,IAAI;EACb;EAEAE,YAAYA,CAACd,OAAO,EAAE;IACpB,MAAMF,KAAK,GAAG,IAAI,CAACW,SAAS,CAACT,OAAO,CAAC;IACrC,IAAI,CAACF,KAAK,EAAE;MACV;IACF;IACA,MAAMC,GAAG,GAAG,IAAI,CAACW,YAAY,CAACZ,KAAK,EAAEE,OAAO,CAAC;IAC7C,IAAI,CAACD,GAAG,EAAE;MACR;IACF;IACA,OAAOA,GAAG,CAACC,OAAO,CAACG,GAAG,CAAC;EACzB;EAEAY,cAAcA,CAACpB,SAAS,EAAEqB,QAAQ,EAAE;IAClC,MAAMlB,KAAK,GAAG,IAAI,CAACZ,MAAM,CAACS,SAAS,CAAC;IACpC,IAAIG,KAAK,EAAE;MACTA,KAAK,CAACmB,OAAO,CAAC,CAAClB,GAAG,EAAEH,SAAS,KAAK;QAChC,IAAIG,GAAG,EAAE;UACPA,GAAG,CAACkB,OAAO,CAAC,CAACL,IAAI,EAAEf,SAAS,KAAK;YAC/B,IAAIe,IAAI,EAAE;cACRI,QAAQ,CAACJ,IAAI,EAAEhB,SAAS,EAAEC,SAAS,CAAC;YACtC;UACF,CAAC,CAAC;QACJ;MACF,CAAC,CAAC;IACJ;EACF;EAEAoB,OAAOA,CAACD,QAAQ,EAAE;IAChBpC,CAAC,CAACsC,IAAI,CAAC,IAAI,CAAChC,MAAM,EAAE,CAACY,KAAK,EAAEH,SAAS,KAAK;MACxC,IAAI,CAACoB,cAAc,CAACpB,SAAS,EAAEqB,QAAQ,CAAC;IAC1C,CAAC,CAAC;EACJ;EAEAG,GAAGA,CAACH,QAAQ,EAAE;IACZ,MAAMI,OAAO,GAAG,EAAE;IAClB,IAAI,CAACH,OAAO,CAACL,IAAI,IAAI;MACnBQ,OAAO,CAACC,IAAI,CAACL,QAAQ,CAACJ,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,OAAOQ,OAAO;EAChB;EAEAX,SAASA,CAACT,OAAO,EAAEQ,MAAM,EAAE;IACzB,MAAMc,IAAI,GAAGtB,OAAO,CAACL,SAAS;IAC9B,IAAI,IAAI,CAACT,MAAM,CAACoC,IAAI,CAAC,EAAE;MACrB,OAAO,IAAI,CAACpC,MAAM,CAACoC,IAAI,CAAC;IAC1B;IACA,IAAId,MAAM,EAAE;MACV,OAAQ,IAAI,CAACtB,MAAM,CAACoC,IAAI,CAAC,GAAG,EAAE;IAChC;IACA,OAAOC,SAAS;EAClB;EAEAb,YAAYA,CAACZ,KAAK,EAAEE,OAAO,EAAEQ,MAAM,EAAE;IACnC,MAAM;MAACT;IAAG,CAAC,GAAGC,OAAO;IACrB,IAAIF,KAAK,IAAIA,KAAK,CAACC,GAAG,CAAC,EAAE;MACvB,OAAOD,KAAK,CAACC,GAAG,CAAC;IACnB;IACA,IAAIS,MAAM,EAAE;MACV,OAAQV,KAAK,CAACC,GAAG,CAAC,GAAG,EAAE;IACzB;IACA,OAAOwB,SAAS;EAClB;EAEAZ,WAAWA,CAACZ,GAAG,EAAEC,OAAO,EAAEQ,MAAM,EAAE;IAChC,MAAM;MAACL;IAAG,CAAC,GAAGH,OAAO;IACrB,IAAID,GAAG,IAAIA,GAAG,CAACI,GAAG,CAAC,EAAE;MACnB,OAAOJ,GAAG,CAACI,GAAG,CAAC;IACjB;IACA,IAAIK,MAAM,EAAE;MACV,OAAQT,GAAG,CAACI,GAAG,CAAC,GAAG,IAAI,CAAClB,QAAQ,GAC5BuC,MAAM,CAACC,MAAM,CAACzB,OAAO,EAAE0B,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAAC,IAAI,CAAC3C,QAAQ,CAAC,CAAC,CAAC,GACjEe,OAAO;IACb;IACA,OAAOuB,SAAS;EAClB;EAEAM,UAAUA,CAAClC,SAAS,EAAEmC,KAAK,EAAEC,SAAS,EAAEC,SAAS,EAAE;IACjD,MAAMlC,KAAK,GAAG,IAAI,CAACZ,MAAM,CAACS,SAAS,CAAC;IACpC,IAAIG,KAAK,EAAE;MACT,MAAMmC,OAAO,GAAG,EAAE;MAClB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,SAAS,EAAEE,CAAC,EAAE,EAAE;QAClCD,OAAO,CAACZ,IAAI,CAAC,EAAE,CAAC;MAClB;MACAvB,KAAK,CAACqC,MAAM,CAACL,KAAK,EAAEC,SAAS,EAAE,GAAGE,OAAO,CAAC;IAC5C;EACF;EAEAG,aAAaA,CAACzC,SAAS,EAAEmC,KAAK,EAAEC,SAAS,EAAEC,SAAS,EAAE;IACpD,MAAMlC,KAAK,GAAG,IAAI,CAACZ,MAAM,CAACS,SAAS,CAAC;IACpC,IAAIG,KAAK,EAAE;MACT,MAAMmC,OAAO,GAAG,EAAE;MAClB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,SAAS,EAAEE,CAAC,EAAE,EAAE;QAClCD,OAAO,CAACZ,IAAI,CAAC,IAAI,CAAC;MACpB;MACAzC,CAAC,CAACsC,IAAI,CAACpB,KAAK,EAAEC,GAAG,IAAI;QACnBA,GAAG,CAACoC,MAAM,CAACL,KAAK,EAAEC,SAAS,EAAE,GAAGE,OAAO,CAAC;MAC1C,CAAC,CAAC;IACJ;EACF;AACF;AAEAI,MAAM,CAACC,OAAO,GAAGvD,UAAU"}