@yuanliwei/exceljs 4.4.0 → 4.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/dist/LICENSE +22 -0
  2. package/dist/es5/csv/csv.js +176 -0
  3. package/dist/es5/csv/csv.js.map +1 -0
  4. package/dist/es5/csv/line-buffer.js +67 -0
  5. package/dist/es5/csv/line-buffer.js.map +1 -0
  6. package/dist/es5/csv/stream-converter.js +110 -0
  7. package/dist/es5/csv/stream-converter.js.map +1 -0
  8. package/dist/es5/doc/anchor.js +73 -0
  9. package/dist/es5/doc/anchor.js.map +1 -0
  10. package/dist/es5/doc/cell.js +951 -0
  11. package/dist/es5/doc/cell.js.map +1 -0
  12. package/dist/es5/doc/column.js +274 -0
  13. package/dist/es5/doc/column.js.map +1 -0
  14. package/dist/es5/doc/data-validations.js +18 -0
  15. package/dist/es5/doc/data-validations.js.map +1 -0
  16. package/dist/es5/doc/defined-names.js +171 -0
  17. package/dist/es5/doc/defined-names.js.map +1 -0
  18. package/dist/es5/doc/enums.js +49 -0
  19. package/dist/es5/doc/enums.js.map +1 -0
  20. package/dist/es5/doc/image.js +67 -0
  21. package/dist/es5/doc/image.js.map +1 -0
  22. package/dist/es5/doc/modelcontainer.js +16 -0
  23. package/dist/es5/doc/modelcontainer.js.map +1 -0
  24. package/dist/es5/doc/note.js +60 -0
  25. package/dist/es5/doc/note.js.map +1 -0
  26. package/dist/es5/doc/pivot-table.js +132 -0
  27. package/dist/es5/doc/pivot-table.js.map +1 -0
  28. package/dist/es5/doc/range.js +225 -0
  29. package/dist/es5/doc/range.js.map +1 -0
  30. package/dist/es5/doc/row.js +381 -0
  31. package/dist/es5/doc/row.js.map +1 -0
  32. package/dist/es5/doc/table.js +428 -0
  33. package/dist/es5/doc/table.js.map +1 -0
  34. package/dist/es5/doc/workbook.js +203 -0
  35. package/dist/es5/doc/workbook.js.map +1 -0
  36. package/dist/es5/doc/worksheet.js +911 -0
  37. package/dist/es5/doc/worksheet.js.map +1 -0
  38. package/dist/es5/exceljs.bare.js +14 -0
  39. package/dist/es5/exceljs.bare.js.map +1 -0
  40. package/dist/es5/exceljs.browser.js +36 -0
  41. package/dist/es5/exceljs.browser.js.map +1 -0
  42. package/dist/es5/exceljs.nodejs.js +15 -0
  43. package/dist/es5/exceljs.nodejs.js.map +1 -0
  44. package/dist/es5/index.js +15 -0
  45. package/dist/es5/stream/xlsx/hyperlink-reader.js +107 -0
  46. package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -0
  47. package/dist/es5/stream/xlsx/sheet-comments-writer.js +94 -0
  48. package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -0
  49. package/dist/es5/stream/xlsx/sheet-rels-writer.js +93 -0
  50. package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -0
  51. package/dist/es5/stream/xlsx/workbook-reader.js +461 -0
  52. package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -0
  53. package/dist/es5/stream/xlsx/workbook-writer.js +345 -0
  54. package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -0
  55. package/dist/es5/stream/xlsx/worksheet-reader.js +459 -0
  56. package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -0
  57. package/dist/es5/stream/xlsx/worksheet-writer.js +654 -0
  58. package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -0
  59. package/dist/es5/utils/auto-drain.js +17 -0
  60. package/dist/es5/utils/auto-drain.js.map +1 -0
  61. package/dist/es5/utils/browser-buffer-decode.js +15 -0
  62. package/dist/es5/utils/browser-buffer-decode.js.map +1 -0
  63. package/dist/es5/utils/browser-buffer-encode.js +17 -0
  64. package/dist/es5/utils/browser-buffer-encode.js.map +1 -0
  65. package/dist/es5/utils/cell-matrix.js +145 -0
  66. package/dist/es5/utils/cell-matrix.js.map +1 -0
  67. package/dist/es5/utils/col-cache.js +274 -0
  68. package/dist/es5/utils/col-cache.js.map +1 -0
  69. package/dist/es5/utils/copy-style.js +41 -0
  70. package/dist/es5/utils/copy-style.js.map +1 -0
  71. package/dist/es5/utils/encryptor.js +58 -0
  72. package/dist/es5/utils/encryptor.js.map +1 -0
  73. package/dist/es5/utils/iterate-stream.js +57 -0
  74. package/dist/es5/utils/iterate-stream.js.map +1 -0
  75. package/dist/es5/utils/parse-sax.js +77 -0
  76. package/dist/es5/utils/parse-sax.js.map +1 -0
  77. package/dist/es5/utils/shared-formula.js +42 -0
  78. package/dist/es5/utils/shared-formula.js.map +1 -0
  79. package/dist/es5/utils/shared-strings.js +32 -0
  80. package/dist/es5/utils/shared-strings.js.map +1 -0
  81. package/dist/es5/utils/stream-base64.js +66 -0
  82. package/dist/es5/utils/stream-base64.js.map +1 -0
  83. package/dist/es5/utils/stream-buf.js +343 -0
  84. package/dist/es5/utils/stream-buf.js.map +1 -0
  85. package/dist/es5/utils/string-buf.js +73 -0
  86. package/dist/es5/utils/string-buf.js.map +1 -0
  87. package/dist/es5/utils/string-builder.js +32 -0
  88. package/dist/es5/utils/string-builder.js.map +1 -0
  89. package/dist/es5/utils/stuttered-pipe.js +61 -0
  90. package/dist/es5/utils/stuttered-pipe.js.map +1 -0
  91. package/dist/es5/utils/typed-stack.js +23 -0
  92. package/dist/es5/utils/typed-stack.js.map +1 -0
  93. package/dist/es5/utils/under-dash.js +164 -0
  94. package/dist/es5/utils/under-dash.js.map +1 -0
  95. package/dist/es5/utils/utils.js +204 -0
  96. package/dist/es5/utils/utils.js.map +1 -0
  97. package/dist/es5/utils/xml-stream.js +151 -0
  98. package/dist/es5/utils/xml-stream.js.map +1 -0
  99. package/dist/es5/utils/zip-stream.js +78 -0
  100. package/dist/es5/utils/zip-stream.js.map +1 -0
  101. package/dist/es5/xlsx/defaultnumformats.js +230 -0
  102. package/dist/es5/xlsx/defaultnumformats.js.map +1 -0
  103. package/dist/es5/xlsx/rel-type.js +21 -0
  104. package/dist/es5/xlsx/rel-type.js.map +1 -0
  105. package/dist/es5/xlsx/xform/base-xform.js +161 -0
  106. package/dist/es5/xlsx/xform/base-xform.js.map +1 -0
  107. package/dist/es5/xlsx/xform/book/defined-name-xform.js +85 -0
  108. package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -0
  109. package/dist/es5/xlsx/xform/book/sheet-xform.js +32 -0
  110. package/dist/es5/xlsx/xform/book/sheet-xform.js.map +1 -0
  111. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +24 -0
  112. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +1 -0
  113. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js +27 -0
  114. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js.map +1 -0
  115. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js +27 -0
  116. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +1 -0
  117. package/dist/es5/xlsx/xform/book/workbook-view-xform.js +51 -0
  118. package/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +1 -0
  119. package/dist/es5/xlsx/xform/book/workbook-xform.js +241 -0
  120. package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -0
  121. package/dist/es5/xlsx/xform/comment/comment-xform.js +107 -0
  122. package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -0
  123. package/dist/es5/xlsx/xform/comment/comments-xform.js +76 -0
  124. package/dist/es5/xlsx/xform/comment/comments-xform.js.map +1 -0
  125. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +35 -0
  126. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +1 -0
  127. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +32 -0
  128. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +1 -0
  129. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +53 -0
  130. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +1 -0
  131. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +96 -0
  132. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +1 -0
  133. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js +107 -0
  134. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +1 -0
  135. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +92 -0
  136. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -0
  137. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +60 -0
  138. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -0
  139. package/dist/es5/xlsx/xform/composite-xform.js +51 -0
  140. package/dist/es5/xlsx/xform/composite-xform.js.map +1 -0
  141. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +30 -0
  142. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +1 -0
  143. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +27 -0
  144. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +1 -0
  145. package/dist/es5/xlsx/xform/core/app-xform.js +93 -0
  146. package/dist/es5/xlsx/xform/core/app-xform.js.map +1 -0
  147. package/dist/es5/xlsx/xform/core/content-types-xform.js +125 -0
  148. package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -0
  149. package/dist/es5/xlsx/xform/core/core-xform.js +158 -0
  150. package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -0
  151. package/dist/es5/xlsx/xform/core/relationship-xform.js +23 -0
  152. package/dist/es5/xlsx/xform/core/relationship-xform.js.map +1 -0
  153. package/dist/es5/xlsx/xform/core/relationships-xform.js +65 -0
  154. package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -0
  155. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +47 -0
  156. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +1 -0
  157. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +61 -0
  158. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +1 -0
  159. package/dist/es5/xlsx/xform/drawing/blip-xform.js +39 -0
  160. package/dist/es5/xlsx/xform/drawing/blip-xform.js.map +1 -0
  161. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +35 -0
  162. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +1 -0
  163. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +62 -0
  164. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -0
  165. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js +82 -0
  166. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +1 -0
  167. package/dist/es5/xlsx/xform/drawing/drawing-xform.js +98 -0
  168. package/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +1 -0
  169. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +40 -0
  170. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +1 -0
  171. package/dist/es5/xlsx/xform/drawing/ext-xform.js +38 -0
  172. package/dist/es5/xlsx/xform/drawing/ext-xform.js.map +1 -0
  173. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +38 -0
  174. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +1 -0
  175. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +59 -0
  176. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +1 -0
  177. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  178. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +1 -0
  179. package/dist/es5/xlsx/xform/drawing/pic-xform.js +67 -0
  180. package/dist/es5/xlsx/xform/drawing/pic-xform.js.map +1 -0
  181. package/dist/es5/xlsx/xform/drawing/sp-pr.js +30 -0
  182. package/dist/es5/xlsx/xform/drawing/sp-pr.js.map +1 -0
  183. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  184. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +1 -0
  185. package/dist/es5/xlsx/xform/list-xform.js +85 -0
  186. package/dist/es5/xlsx/xform/list-xform.js.map +1 -0
  187. package/dist/es5/xlsx/xform/pivot-table/cache-field.js +40 -0
  188. package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -0
  189. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +75 -0
  190. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -0
  191. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +104 -0
  192. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -0
  193. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +114 -0
  194. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -0
  195. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +40 -0
  196. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -0
  197. package/dist/es5/xlsx/xform/sheet/cell-xform.js +452 -0
  198. package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -0
  199. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +271 -0
  200. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -0
  201. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +25 -0
  202. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +1 -0
  203. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +38 -0
  204. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +1 -0
  205. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +43 -0
  206. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +1 -0
  207. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +77 -0
  208. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +1 -0
  209. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +42 -0
  210. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +1 -0
  211. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +71 -0
  212. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +1 -0
  213. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +22 -0
  214. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +1 -0
  215. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +41 -0
  216. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +1 -0
  217. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +26 -0
  218. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +1 -0
  219. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +85 -0
  220. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -0
  221. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +38 -0
  222. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +1 -0
  223. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +52 -0
  224. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +1 -0
  225. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +43 -0
  226. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +1 -0
  227. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +81 -0
  228. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +1 -0
  229. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +22 -0
  230. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +1 -0
  231. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +72 -0
  232. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +1 -0
  233. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +22 -0
  234. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +1 -0
  235. package/dist/es5/xlsx/xform/sheet/col-xform.js +78 -0
  236. package/dist/es5/xlsx/xform/sheet/col-xform.js.map +1 -0
  237. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +249 -0
  238. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -0
  239. package/dist/es5/xlsx/xform/sheet/dimension-xform.js +28 -0
  240. package/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +1 -0
  241. package/dist/es5/xlsx/xform/sheet/drawing-xform.js +32 -0
  242. package/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +1 -0
  243. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +69 -0
  244. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +1 -0
  245. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js +126 -0
  246. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +1 -0
  247. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +50 -0
  248. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +1 -0
  249. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +26 -0
  250. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +1 -0
  251. package/dist/es5/xlsx/xform/sheet/merges.js +52 -0
  252. package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -0
  253. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +35 -0
  254. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +1 -0
  255. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +24 -0
  256. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +1 -0
  257. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js +46 -0
  258. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +1 -0
  259. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +32 -0
  260. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +1 -0
  261. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js +99 -0
  262. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +1 -0
  263. package/dist/es5/xlsx/xform/sheet/picture-xform.js +32 -0
  264. package/dist/es5/xlsx/xform/sheet/picture-xform.js.map +1 -0
  265. package/dist/es5/xlsx/xform/sheet/print-options-xform.js +45 -0
  266. package/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +1 -0
  267. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +35 -0
  268. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +1 -0
  269. package/dist/es5/xlsx/xform/sheet/row-xform.js +128 -0
  270. package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -0
  271. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +51 -0
  272. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +1 -0
  273. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +83 -0
  274. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +1 -0
  275. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +84 -0
  276. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +1 -0
  277. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +190 -0
  278. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +1 -0
  279. package/dist/es5/xlsx/xform/sheet/table-part-xform.js +32 -0
  280. package/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +1 -0
  281. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +515 -0
  282. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -0
  283. package/dist/es5/xlsx/xform/simple/boolean-xform.js +27 -0
  284. package/dist/es5/xlsx/xform/simple/boolean-xform.js.map +1 -0
  285. package/dist/es5/xlsx/xform/simple/date-xform.js +58 -0
  286. package/dist/es5/xlsx/xform/simple/date-xform.js.map +1 -0
  287. package/dist/es5/xlsx/xform/simple/float-xform.js +47 -0
  288. package/dist/es5/xlsx/xform/simple/float-xform.js.map +1 -0
  289. package/dist/es5/xlsx/xform/simple/integer-xform.js +53 -0
  290. package/dist/es5/xlsx/xform/simple/integer-xform.js.map +1 -0
  291. package/dist/es5/xlsx/xform/simple/string-xform.js +47 -0
  292. package/dist/es5/xlsx/xform/simple/string-xform.js.map +1 -0
  293. package/dist/es5/xlsx/xform/static-xform.js +61 -0
  294. package/dist/es5/xlsx/xform/static-xform.js.map +1 -0
  295. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +94 -0
  296. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +1 -0
  297. package/dist/es5/xlsx/xform/strings/rich-text-xform.js +92 -0
  298. package/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +1 -0
  299. package/dist/es5/xlsx/xform/strings/shared-string-xform.js +100 -0
  300. package/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +1 -0
  301. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +114 -0
  302. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -0
  303. package/dist/es5/xlsx/xform/strings/text-xform.js +39 -0
  304. package/dist/es5/xlsx/xform/strings/text-xform.js.map +1 -0
  305. package/dist/es5/xlsx/xform/style/alignment-xform.js +139 -0
  306. package/dist/es5/xlsx/xform/style/alignment-xform.js.map +1 -0
  307. package/dist/es5/xlsx/xform/style/border-xform.js +185 -0
  308. package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -0
  309. package/dist/es5/xlsx/xform/style/color-xform.js +66 -0
  310. package/dist/es5/xlsx/xform/style/color-xform.js.map +1 -0
  311. package/dist/es5/xlsx/xform/style/dxf-xform.js +106 -0
  312. package/dist/es5/xlsx/xform/style/dxf-xform.js.map +1 -0
  313. package/dist/es5/xlsx/xform/style/fill-xform.js +307 -0
  314. package/dist/es5/xlsx/xform/style/fill-xform.js.map +1 -0
  315. package/dist/es5/xlsx/xform/style/font-xform.js +173 -0
  316. package/dist/es5/xlsx/xform/style/font-xform.js.map +1 -0
  317. package/dist/es5/xlsx/xform/style/numfmt-xform.js +58 -0
  318. package/dist/es5/xlsx/xform/style/numfmt-xform.js.map +1 -0
  319. package/dist/es5/xlsx/xform/style/protection-xform.js +53 -0
  320. package/dist/es5/xlsx/xform/style/protection-xform.js.map +1 -0
  321. package/dist/es5/xlsx/xform/style/style-xform.js +118 -0
  322. package/dist/es5/xlsx/xform/style/style-xform.js.map +1 -0
  323. package/dist/es5/xlsx/xform/style/styles-xform.js +611 -0
  324. package/dist/es5/xlsx/xform/style/styles-xform.js.map +1 -0
  325. package/dist/es5/xlsx/xform/style/underline-xform.js +46 -0
  326. package/dist/es5/xlsx/xform/style/underline-xform.js.map +1 -0
  327. package/dist/es5/xlsx/xform/table/auto-filter-xform.js +75 -0
  328. package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -0
  329. package/dist/es5/xlsx/xform/table/custom-filter-xform.js +30 -0
  330. package/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +1 -0
  331. package/dist/es5/xlsx/xform/table/filter-column-xform.js +87 -0
  332. package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -0
  333. package/dist/es5/xlsx/xform/table/filter-xform.js +28 -0
  334. package/dist/es5/xlsx/xform/table/filter-xform.js.map +1 -0
  335. package/dist/es5/xlsx/xform/table/table-column-xform.js +40 -0
  336. package/dist/es5/xlsx/xform/table/table-column-xform.js.map +1 -0
  337. package/dist/es5/xlsx/xform/table/table-style-info-xform.js +38 -0
  338. package/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +1 -0
  339. package/dist/es5/xlsx/xform/table/table-xform.js +124 -0
  340. package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -0
  341. package/dist/es5/xlsx/xlsx.js +788 -0
  342. package/dist/es5/xlsx/xlsx.js.map +1 -0
  343. package/dist/es5/xlsx/xml/theme1.js +5 -0
  344. package/dist/es5/xlsx/xml/theme1.js.map +1 -0
  345. package/dist/exceljs.bare.js +60711 -0
  346. package/dist/exceljs.bare.js.map +883 -0
  347. package/dist/exceljs.bare.min.js +45 -0
  348. package/dist/exceljs.bare.min.js.map +1 -0
  349. package/dist/exceljs.js +65487 -0
  350. package/dist/exceljs.js.map +1207 -0
  351. package/dist/exceljs.min.js +45 -0
  352. package/dist/exceljs.min.js.map +1 -0
  353. package/lib/xlsx/xform/strings/shared-string-xform.js +4 -1
  354. package/package.json +1 -1
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+
3
+ const toString = Object.prototype.toString;
4
+ const escapeHtmlRegex = /["&<>]/;
5
+ const _ = {
6
+ each: function each(obj, cb) {
7
+ if (obj) {
8
+ if (Array.isArray(obj)) {
9
+ obj.forEach(cb);
10
+ } else {
11
+ Object.keys(obj).forEach(key => {
12
+ cb(obj[key], key);
13
+ });
14
+ }
15
+ }
16
+ },
17
+ some: function some(obj, cb) {
18
+ if (obj) {
19
+ if (Array.isArray(obj)) {
20
+ return obj.some(cb);
21
+ }
22
+ return Object.keys(obj).some(key => cb(obj[key], key));
23
+ }
24
+ return false;
25
+ },
26
+ every: function every(obj, cb) {
27
+ if (obj) {
28
+ if (Array.isArray(obj)) {
29
+ return obj.every(cb);
30
+ }
31
+ return Object.keys(obj).every(key => cb(obj[key], key));
32
+ }
33
+ return true;
34
+ },
35
+ map: function map(obj, cb) {
36
+ if (obj) {
37
+ if (Array.isArray(obj)) {
38
+ return obj.map(cb);
39
+ }
40
+ return Object.keys(obj).map(key => cb(obj[key], key));
41
+ }
42
+ return [];
43
+ },
44
+ keyBy(a, p) {
45
+ return a.reduce((o, v) => {
46
+ o[v[p]] = v;
47
+ return o;
48
+ }, {});
49
+ },
50
+ isEqual: function isEqual(a, b) {
51
+ const aType = typeof a;
52
+ const bType = typeof b;
53
+ const aArray = Array.isArray(a);
54
+ const bArray = Array.isArray(b);
55
+ let keys;
56
+ if (aType !== bType) {
57
+ return false;
58
+ }
59
+ switch (typeof a) {
60
+ case 'object':
61
+ if (aArray || bArray) {
62
+ if (aArray && bArray) {
63
+ return a.length === b.length && a.every((aValue, index) => {
64
+ const bValue = b[index];
65
+ return _.isEqual(aValue, bValue);
66
+ });
67
+ }
68
+ return false;
69
+ }
70
+ if (a === null || b === null) {
71
+ return a === b;
72
+ }
73
+
74
+ // Compare object keys and values
75
+ keys = Object.keys(a);
76
+ if (Object.keys(b).length !== keys.length) {
77
+ return false;
78
+ }
79
+ for (const key of keys) {
80
+ if (!b.hasOwnProperty(key)) {
81
+ return false;
82
+ }
83
+ }
84
+ return _.every(a, (aValue, key) => {
85
+ const bValue = b[key];
86
+ return _.isEqual(aValue, bValue);
87
+ });
88
+ default:
89
+ return a === b;
90
+ }
91
+ },
92
+ escapeHtml(html) {
93
+ const regexResult = escapeHtmlRegex.exec(html);
94
+ if (!regexResult) return html;
95
+ let result = '';
96
+ let escape = '';
97
+ let lastIndex = 0;
98
+ let i = regexResult.index;
99
+ for (; i < html.length; i++) {
100
+ switch (html.charAt(i)) {
101
+ case '"':
102
+ escape = '&quot;';
103
+ break;
104
+ case '&':
105
+ escape = '&amp;';
106
+ break;
107
+ case '\'':
108
+ escape = '&apos;';
109
+ break;
110
+ case '<':
111
+ escape = '&lt;';
112
+ break;
113
+ case '>':
114
+ escape = '&gt;';
115
+ break;
116
+ default:
117
+ continue;
118
+ }
119
+ if (lastIndex !== i) result += html.substring(lastIndex, i);
120
+ lastIndex = i + 1;
121
+ result += escape;
122
+ }
123
+ if (lastIndex !== i) return result + html.substring(lastIndex, i);
124
+ return result;
125
+ },
126
+ strcmp(a, b) {
127
+ if (a < b) return -1;
128
+ if (a > b) return 1;
129
+ return 0;
130
+ },
131
+ isUndefined(val) {
132
+ return toString.call(val) === '[object Undefined]';
133
+ },
134
+ isObject(val) {
135
+ return toString.call(val) === '[object Object]';
136
+ },
137
+ deepMerge() {
138
+ const target = arguments[0] || {};
139
+ const length = arguments.length;
140
+ // eslint-disable-next-line one-var
141
+ let src, clone, copyIsArray;
142
+ function assignValue(val, key) {
143
+ src = target[key];
144
+ copyIsArray = Array.isArray(val);
145
+ if (_.isObject(val) || copyIsArray) {
146
+ if (copyIsArray) {
147
+ copyIsArray = false;
148
+ clone = src && Array.isArray(src) ? src : [];
149
+ } else {
150
+ clone = src && _.isObject(src) ? src : {};
151
+ }
152
+ target[key] = _.deepMerge(clone, val);
153
+ } else if (!_.isUndefined(val)) {
154
+ target[key] = val;
155
+ }
156
+ }
157
+ for (let i = 0; i < length; i++) {
158
+ _.each(arguments[i], assignValue);
159
+ }
160
+ return target;
161
+ }
162
+ };
163
+ module.exports = _;
164
+ //# sourceMappingURL=under-dash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"under-dash.js","names":["toString","Object","prototype","escapeHtmlRegex","_","each","obj","cb","Array","isArray","forEach","keys","key","some","every","map","keyBy","a","p","reduce","o","v","isEqual","b","aType","bType","aArray","bArray","length","aValue","index","bValue","hasOwnProperty","escapeHtml","html","regexResult","exec","result","escape","lastIndex","i","charAt","substring","strcmp","isUndefined","val","call","isObject","deepMerge","target","arguments","src","clone","copyIsArray","assignValue","module","exports"],"sources":["../../../lib/utils/under-dash.js"],"sourcesContent":["const {toString} = Object.prototype;\nconst escapeHtmlRegex = /[\"&<>]/;\nconst _ = {\n each: function each(obj, cb) {\n if (obj) {\n if (Array.isArray(obj)) {\n obj.forEach(cb);\n } else {\n Object.keys(obj).forEach(key => {\n cb(obj[key], key);\n });\n }\n }\n },\n\n some: function some(obj, cb) {\n if (obj) {\n if (Array.isArray(obj)) {\n return obj.some(cb);\n }\n return Object.keys(obj).some(key => cb(obj[key], key));\n }\n return false;\n },\n\n every: function every(obj, cb) {\n if (obj) {\n if (Array.isArray(obj)) {\n return obj.every(cb);\n }\n return Object.keys(obj).every(key => cb(obj[key], key));\n }\n return true;\n },\n\n map: function map(obj, cb) {\n if (obj) {\n if (Array.isArray(obj)) {\n return obj.map(cb);\n }\n return Object.keys(obj).map(key => cb(obj[key], key));\n }\n return [];\n },\n\n keyBy(a, p) {\n return a.reduce((o, v) => {\n o[v[p]] = v;\n return o;\n }, {});\n },\n\n isEqual: function isEqual(a, b) {\n const aType = typeof a;\n const bType = typeof b;\n const aArray = Array.isArray(a);\n const bArray = Array.isArray(b);\n let keys;\n\n if (aType !== bType) {\n return false;\n }\n switch (typeof a) {\n case 'object':\n if (aArray || bArray) {\n if (aArray && bArray) {\n return (\n a.length === b.length &&\n a.every((aValue, index) => {\n const bValue = b[index];\n return _.isEqual(aValue, bValue);\n })\n );\n }\n return false;\n }\n\n if (a === null || b === null) {\n return a === b;\n }\n\n // Compare object keys and values\n keys = Object.keys(a);\n\n if (Object.keys(b).length !== keys.length) {\n return false;\n }\n\n for (const key of keys) {\n if (!b.hasOwnProperty(key)) {\n return false;\n }\n }\n\n return _.every(a, (aValue, key) => {\n const bValue = b[key];\n return _.isEqual(aValue, bValue);\n });\n\n default:\n return a === b;\n }\n },\n\n escapeHtml(html) {\n const regexResult = escapeHtmlRegex.exec(html);\n if (!regexResult) return html;\n\n let result = '';\n let escape = '';\n let lastIndex = 0;\n let i = regexResult.index;\n for (; i < html.length; i++) {\n switch (html.charAt(i)) {\n case '\"':\n escape = '&quot;';\n break;\n case '&':\n escape = '&amp;';\n break;\n case '\\'':\n escape = '&apos;';\n break;\n case '<':\n escape = '&lt;';\n break;\n case '>':\n escape = '&gt;';\n break;\n default:\n continue;\n }\n if (lastIndex !== i) result += html.substring(lastIndex, i);\n lastIndex = i + 1;\n result += escape;\n }\n if (lastIndex !== i) return result + html.substring(lastIndex, i);\n return result;\n },\n\n strcmp(a, b) {\n if (a < b) return -1;\n if (a > b) return 1;\n return 0;\n },\n\n isUndefined(val) {\n return toString.call(val) === '[object Undefined]';\n },\n\n isObject(val) {\n return toString.call(val) === '[object Object]';\n },\n\n deepMerge() {\n const target = arguments[0] || {};\n const {length} = arguments;\n // eslint-disable-next-line one-var\n let src, clone, copyIsArray;\n\n function assignValue(val, key) {\n src = target[key];\n copyIsArray = Array.isArray(val);\n if (_.isObject(val) || copyIsArray) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = src && Array.isArray(src) ? src : [];\n } else {\n clone = src && _.isObject(src) ? src : {};\n }\n target[key] = _.deepMerge(clone, val);\n } else if (!_.isUndefined(val)) {\n target[key] = val;\n }\n }\n\n for (let i = 0; i < length; i++) {\n _.each(arguments[i], assignValue);\n }\n return target;\n },\n};\n\nmodule.exports = _;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,204 @@
1
+ "use strict";
2
+
3
+ const fs = require('fs');
4
+
5
+ // useful stuff
6
+ const inherits = function (cls, superCtor, statics, prototype) {
7
+ // eslint-disable-next-line no-underscore-dangle
8
+ cls.super_ = superCtor;
9
+ if (!prototype) {
10
+ prototype = statics;
11
+ statics = null;
12
+ }
13
+ if (statics) {
14
+ Object.keys(statics).forEach(i => {
15
+ Object.defineProperty(cls, i, Object.getOwnPropertyDescriptor(statics, i));
16
+ });
17
+ }
18
+ const properties = {
19
+ constructor: {
20
+ value: cls,
21
+ enumerable: false,
22
+ writable: false,
23
+ configurable: true
24
+ }
25
+ };
26
+ if (prototype) {
27
+ Object.keys(prototype).forEach(i => {
28
+ properties[i] = Object.getOwnPropertyDescriptor(prototype, i);
29
+ });
30
+ }
31
+ cls.prototype = Object.create(superCtor.prototype, properties);
32
+ };
33
+
34
+ // eslint-disable-next-line no-control-regex
35
+ const xmlDecodeRegex = /[<>&'"\x7F\x00-\x08\x0B-\x0C\x0E-\x1F]/;
36
+ const utils = {
37
+ nop() {},
38
+ promiseImmediate(value) {
39
+ return new Promise(resolve => {
40
+ if (global.setImmediate) {
41
+ setImmediate(() => {
42
+ resolve(value);
43
+ });
44
+ } else {
45
+ // poorman's setImmediate - must wait at least 1ms
46
+ setTimeout(() => {
47
+ resolve(value);
48
+ }, 1);
49
+ }
50
+ });
51
+ },
52
+ inherits,
53
+ dateToExcel(d, date1904) {
54
+ // eslint-disable-next-line no-mixed-operators
55
+ return 25569 + d.getTime() / (24 * 3600 * 1000) - (date1904 ? 1462 : 0);
56
+ },
57
+ excelToDate(v, date1904) {
58
+ // eslint-disable-next-line no-mixed-operators
59
+ const millisecondSinceEpoch = Math.round((v - 25569 + (date1904 ? 1462 : 0)) * 24 * 3600 * 1000);
60
+ return new Date(millisecondSinceEpoch);
61
+ },
62
+ parsePath(filepath) {
63
+ const last = filepath.lastIndexOf('/');
64
+ return {
65
+ path: filepath.substring(0, last),
66
+ name: filepath.substring(last + 1)
67
+ };
68
+ },
69
+ getRelsPath(filepath) {
70
+ const path = utils.parsePath(filepath);
71
+ return "".concat(path.path, "/_rels/").concat(path.name, ".rels");
72
+ },
73
+ xmlEncode(text) {
74
+ const regexResult = xmlDecodeRegex.exec(text);
75
+ if (!regexResult) return text;
76
+ let result = '';
77
+ let escape = '';
78
+ let lastIndex = 0;
79
+ let i = regexResult.index;
80
+ for (; i < text.length; i++) {
81
+ const charCode = text.charCodeAt(i);
82
+ switch (charCode) {
83
+ case 34:
84
+ // "
85
+ escape = '&quot;';
86
+ break;
87
+ case 38:
88
+ // &
89
+ escape = '&amp;';
90
+ break;
91
+ case 39:
92
+ // '
93
+ escape = '&apos;';
94
+ break;
95
+ case 60:
96
+ // <
97
+ escape = '&lt;';
98
+ break;
99
+ case 62:
100
+ // >
101
+ escape = '&gt;';
102
+ break;
103
+ case 127:
104
+ escape = '';
105
+ break;
106
+ default:
107
+ {
108
+ if (charCode <= 31 && (charCode <= 8 || charCode >= 11 && charCode !== 13)) {
109
+ escape = '';
110
+ break;
111
+ }
112
+ continue;
113
+ }
114
+ }
115
+ if (lastIndex !== i) result += text.substring(lastIndex, i);
116
+ lastIndex = i + 1;
117
+ if (escape) result += escape;
118
+ }
119
+ if (lastIndex !== i) return result + text.substring(lastIndex, i);
120
+ return result;
121
+ },
122
+ xmlDecode(text) {
123
+ return text.replace(/&([a-z]*);/g, c => {
124
+ switch (c) {
125
+ case '&lt;':
126
+ return '<';
127
+ case '&gt;':
128
+ return '>';
129
+ case '&amp;':
130
+ return '&';
131
+ case '&apos;':
132
+ return '\'';
133
+ case '&quot;':
134
+ return '"';
135
+ default:
136
+ return c;
137
+ }
138
+ });
139
+ },
140
+ validInt(value) {
141
+ const i = parseInt(value, 10);
142
+ return !Number.isNaN(i) ? i : 0;
143
+ },
144
+ isDateFmt(fmt) {
145
+ if (!fmt) {
146
+ return false;
147
+ }
148
+
149
+ // must remove all chars inside quotes and []
150
+ fmt = fmt.replace(/\[[^\]]*]/g, '');
151
+ fmt = fmt.replace(/"[^"]*"/g, '');
152
+ // then check for date formatting chars
153
+ const result = fmt.match(/[ymdhMsb]+/) !== null;
154
+ return result;
155
+ },
156
+ fs: {
157
+ exists(path) {
158
+ return new Promise(resolve => {
159
+ fs.access(path, fs.constants.F_OK, err => {
160
+ resolve(!err);
161
+ });
162
+ });
163
+ }
164
+ },
165
+ toIsoDateString(dt) {
166
+ return dt.toIsoString().subsstr(0, 10);
167
+ },
168
+ parseBoolean(value) {
169
+ return value === true || value === 'true' || value === 1 || value === '1';
170
+ },
171
+ range(start, stop) {
172
+ let step = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
173
+ return function* () {
174
+ const compareOrder = step > 0 ? (a, b) => a < b : (a, b) => a > b;
175
+ for (let value = start; compareOrder(value, stop); value += step) {
176
+ yield value;
177
+ }
178
+ }();
179
+ },
180
+ toSortedArray(values) {
181
+ const result = Array.from(values);
182
+
183
+ // Note: per default, `Array.prototype.sort()` converts values
184
+ // to strings when comparing. Here, if we have numbers, we use
185
+ // numeric sort.
186
+ if (result.every(item => Number.isFinite(item))) {
187
+ const compareNumbers = (a, b) => a - b;
188
+ return result.sort(compareNumbers);
189
+ }
190
+ return result.sort();
191
+ },
192
+ objectFromProps(props) {
193
+ let value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
194
+ // *Note*: Using `reduce` as `Object.fromEntries` requires Node 12+;
195
+ // ExcelJs is >=8.3.0 (as of 2023-10-08).
196
+ // return Object.fromEntries(props.map(property => [property, value]));
197
+ return props.reduce((result, property) => {
198
+ result[property] = value;
199
+ return result;
200
+ }, {});
201
+ }
202
+ };
203
+ module.exports = utils;
204
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["fs","require","inherits","cls","superCtor","statics","prototype","super_","Object","keys","forEach","i","defineProperty","getOwnPropertyDescriptor","properties","constructor","value","enumerable","writable","configurable","create","xmlDecodeRegex","utils","nop","promiseImmediate","Promise","resolve","global","setImmediate","setTimeout","dateToExcel","d","date1904","getTime","excelToDate","v","millisecondSinceEpoch","Math","round","Date","parsePath","filepath","last","lastIndexOf","path","substring","name","getRelsPath","concat","xmlEncode","text","regexResult","exec","result","escape","lastIndex","index","length","charCode","charCodeAt","xmlDecode","replace","c","validInt","parseInt","Number","isNaN","isDateFmt","fmt","match","exists","access","constants","F_OK","err","toIsoDateString","dt","toIsoString","subsstr","parseBoolean","range","start","stop","step","arguments","undefined","compareOrder","a","b","toSortedArray","values","Array","from","every","item","isFinite","compareNumbers","sort","objectFromProps","props","reduce","property","module","exports"],"sources":["../../../lib/utils/utils.js"],"sourcesContent":["const fs = require('fs');\n\n// useful stuff\nconst inherits = function(cls, superCtor, statics, prototype) {\n // eslint-disable-next-line no-underscore-dangle\n cls.super_ = superCtor;\n\n if (!prototype) {\n prototype = statics;\n statics = null;\n }\n\n if (statics) {\n Object.keys(statics).forEach(i => {\n Object.defineProperty(cls, i, Object.getOwnPropertyDescriptor(statics, i));\n });\n }\n\n const properties = {\n constructor: {\n value: cls,\n enumerable: false,\n writable: false,\n configurable: true,\n },\n };\n if (prototype) {\n Object.keys(prototype).forEach(i => {\n properties[i] = Object.getOwnPropertyDescriptor(prototype, i);\n });\n }\n\n cls.prototype = Object.create(superCtor.prototype, properties);\n};\n\n// eslint-disable-next-line no-control-regex\nconst xmlDecodeRegex = /[<>&'\"\\x7F\\x00-\\x08\\x0B-\\x0C\\x0E-\\x1F]/;\nconst utils = {\n nop() {},\n promiseImmediate(value) {\n return new Promise(resolve => {\n if (global.setImmediate) {\n setImmediate(() => {\n resolve(value);\n });\n } else {\n // poorman's setImmediate - must wait at least 1ms\n setTimeout(() => {\n resolve(value);\n }, 1);\n }\n });\n },\n inherits,\n dateToExcel(d, date1904) {\n // eslint-disable-next-line no-mixed-operators\n return 25569 + d.getTime() / (24 * 3600 * 1000) - (date1904 ? 1462 : 0);\n },\n excelToDate(v, date1904) {\n // eslint-disable-next-line no-mixed-operators\n const millisecondSinceEpoch = Math.round((v - 25569 + (date1904 ? 1462 : 0)) * 24 * 3600 * 1000);\n return new Date(millisecondSinceEpoch);\n },\n parsePath(filepath) {\n const last = filepath.lastIndexOf('/');\n return {\n path: filepath.substring(0, last),\n name: filepath.substring(last + 1),\n };\n },\n getRelsPath(filepath) {\n const path = utils.parsePath(filepath);\n return `${path.path}/_rels/${path.name}.rels`;\n },\n xmlEncode(text) {\n const regexResult = xmlDecodeRegex.exec(text);\n if (!regexResult) return text;\n\n let result = '';\n let escape = '';\n let lastIndex = 0;\n let i = regexResult.index;\n for (; i < text.length; i++) {\n const charCode = text.charCodeAt(i);\n switch (charCode) {\n case 34: // \"\n escape = '&quot;';\n break;\n case 38: // &\n escape = '&amp;';\n break;\n case 39: // '\n escape = '&apos;';\n break;\n case 60: // <\n escape = '&lt;';\n break;\n case 62: // >\n escape = '&gt;';\n break;\n case 127:\n escape = '';\n break;\n default: {\n if (charCode <= 31 && (charCode <= 8 || (charCode >= 11 && charCode !== 13))) {\n escape = '';\n break;\n }\n continue;\n }\n }\n if (lastIndex !== i) result += text.substring(lastIndex, i);\n lastIndex = i + 1;\n if (escape) result += escape;\n }\n if (lastIndex !== i) return result + text.substring(lastIndex, i);\n return result;\n },\n xmlDecode(text) {\n return text.replace(/&([a-z]*);/g, c => {\n switch (c) {\n case '&lt;':\n return '<';\n case '&gt;':\n return '>';\n case '&amp;':\n return '&';\n case '&apos;':\n return '\\'';\n case '&quot;':\n return '\"';\n default:\n return c;\n }\n });\n },\n validInt(value) {\n const i = parseInt(value, 10);\n return !Number.isNaN(i) ? i : 0;\n },\n\n isDateFmt(fmt) {\n if (!fmt) {\n return false;\n }\n\n // must remove all chars inside quotes and []\n fmt = fmt.replace(/\\[[^\\]]*]/g, '');\n fmt = fmt.replace(/\"[^\"]*\"/g, '');\n // then check for date formatting chars\n const result = fmt.match(/[ymdhMsb]+/) !== null;\n return result;\n },\n\n fs: {\n exists(path) {\n return new Promise(resolve => {\n fs.access(path, fs.constants.F_OK, err => {\n resolve(!err);\n });\n });\n },\n },\n\n toIsoDateString(dt) {\n return dt.toIsoString().subsstr(0, 10);\n },\n\n parseBoolean(value) {\n return value === true || value === 'true' || value === 1 || value === '1';\n },\n\n *range(start, stop, step = 1) {\n const compareOrder = step > 0 ? (a, b) => a < b : (a, b) => a > b;\n for (let value = start; compareOrder(value, stop); value += step) {\n yield value;\n }\n },\n\n toSortedArray(values) {\n const result = Array.from(values);\n\n // Note: per default, `Array.prototype.sort()` converts values\n // to strings when comparing. Here, if we have numbers, we use\n // numeric sort.\n if (result.every(item => Number.isFinite(item))) {\n const compareNumbers = (a, b) => a - b;\n return result.sort(compareNumbers);\n }\n\n return result.sort();\n },\n\n objectFromProps(props, value = null) {\n // *Note*: Using `reduce` as `Object.fromEntries` requires Node 12+;\n // ExcelJs is >=8.3.0 (as of 2023-10-08).\n // return Object.fromEntries(props.map(property => [property, value]));\n return props.reduce((result, property) => {\n result[property] = value;\n return result;\n }, {});\n },\n};\n\nmodule.exports = utils;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ const _ = require('./under-dash');
4
+ const utils = require('./utils');
5
+
6
+ // constants
7
+ const OPEN_ANGLE = '<';
8
+ const CLOSE_ANGLE = '>';
9
+ const OPEN_ANGLE_SLASH = '</';
10
+ const CLOSE_SLASH_ANGLE = '/>';
11
+ function pushAttribute(xml, name, value) {
12
+ xml.push(" ".concat(name, "=\"").concat(utils.xmlEncode(value.toString()), "\""));
13
+ }
14
+ function pushAttributes(xml, attributes) {
15
+ if (attributes) {
16
+ const tmp = [];
17
+ _.each(attributes, (value, name) => {
18
+ if (value !== undefined) {
19
+ pushAttribute(tmp, name, value);
20
+ }
21
+ });
22
+ xml.push(tmp.join(""));
23
+ }
24
+ }
25
+ class XmlStream {
26
+ constructor() {
27
+ this._xml = [];
28
+ this._stack = [];
29
+ this._rollbacks = [];
30
+ }
31
+ get tos() {
32
+ return this._stack.length ? this._stack[this._stack.length - 1] : undefined;
33
+ }
34
+ get cursor() {
35
+ // handy way to track whether anything has been added
36
+ return this._xml.length;
37
+ }
38
+ openXml(docAttributes) {
39
+ const xml = this._xml;
40
+ // <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
41
+ xml.push('<?xml');
42
+ pushAttributes(xml, docAttributes);
43
+ xml.push('?>\n');
44
+ }
45
+ openNode(name, attributes) {
46
+ const parent = this.tos;
47
+ const xml = this._xml;
48
+ if (parent && this.open) {
49
+ xml.push(CLOSE_ANGLE);
50
+ }
51
+ this._stack.push(name);
52
+
53
+ // start streaming node
54
+ xml.push(OPEN_ANGLE);
55
+ xml.push(name);
56
+ pushAttributes(xml, attributes);
57
+ this.leaf = true;
58
+ this.open = true;
59
+ }
60
+ addAttribute(name, value) {
61
+ if (!this.open) {
62
+ throw new Error('Cannot write attributes to node if it is not open');
63
+ }
64
+ if (value !== undefined) {
65
+ pushAttribute(this._xml, name, value);
66
+ }
67
+ }
68
+ addAttributes(attrs) {
69
+ if (!this.open) {
70
+ throw new Error('Cannot write attributes to node if it is not open');
71
+ }
72
+ pushAttributes(this._xml, attrs);
73
+ }
74
+ writeText(text) {
75
+ const xml = this._xml;
76
+ if (this.open) {
77
+ xml.push(CLOSE_ANGLE);
78
+ this.open = false;
79
+ }
80
+ this.leaf = false;
81
+ xml.push(utils.xmlEncode(text.toString()));
82
+ }
83
+ writeXml(xml) {
84
+ if (this.open) {
85
+ this._xml.push(CLOSE_ANGLE);
86
+ this.open = false;
87
+ }
88
+ this.leaf = false;
89
+ this._xml.push(xml);
90
+ }
91
+ closeNode() {
92
+ const node = this._stack.pop();
93
+ const xml = this._xml;
94
+ if (this.leaf) {
95
+ xml.push(CLOSE_SLASH_ANGLE);
96
+ } else {
97
+ xml.push(OPEN_ANGLE_SLASH);
98
+ xml.push(node);
99
+ xml.push(CLOSE_ANGLE);
100
+ }
101
+ this.open = false;
102
+ this.leaf = false;
103
+ }
104
+ leafNode(name, attributes, text) {
105
+ this.openNode(name, attributes);
106
+ if (text !== undefined) {
107
+ // zeros need to be written
108
+ this.writeText(text);
109
+ }
110
+ this.closeNode();
111
+ }
112
+ closeAll() {
113
+ while (this._stack.length) {
114
+ this.closeNode();
115
+ }
116
+ }
117
+ addRollback() {
118
+ this._rollbacks.push({
119
+ xml: this._xml.length,
120
+ stack: this._stack.length,
121
+ leaf: this.leaf,
122
+ open: this.open
123
+ });
124
+ return this.cursor;
125
+ }
126
+ commit() {
127
+ this._rollbacks.pop();
128
+ }
129
+ rollback() {
130
+ const r = this._rollbacks.pop();
131
+ if (this._xml.length > r.xml) {
132
+ this._xml.splice(r.xml, this._xml.length - r.xml);
133
+ }
134
+ if (this._stack.length > r.stack) {
135
+ this._stack.splice(r.stack, this._stack.length - r.stack);
136
+ }
137
+ this.leaf = r.leaf;
138
+ this.open = r.open;
139
+ }
140
+ get xml() {
141
+ this.closeAll();
142
+ return this._xml.join('');
143
+ }
144
+ }
145
+ XmlStream.StdDocAttributes = {
146
+ version: '1.0',
147
+ encoding: 'UTF-8',
148
+ standalone: 'yes'
149
+ };
150
+ module.exports = XmlStream;
151
+ //# sourceMappingURL=xml-stream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xml-stream.js","names":["_","require","utils","OPEN_ANGLE","CLOSE_ANGLE","OPEN_ANGLE_SLASH","CLOSE_SLASH_ANGLE","pushAttribute","xml","name","value","push","concat","xmlEncode","toString","pushAttributes","attributes","tmp","each","undefined","join","XmlStream","constructor","_xml","_stack","_rollbacks","tos","length","cursor","openXml","docAttributes","openNode","parent","open","leaf","addAttribute","Error","addAttributes","attrs","writeText","text","writeXml","closeNode","node","pop","leafNode","closeAll","addRollback","stack","commit","rollback","r","splice","StdDocAttributes","version","encoding","standalone","module","exports"],"sources":["../../../lib/utils/xml-stream.js"],"sourcesContent":["const _ = require('./under-dash');\n\nconst utils = require('./utils');\n\n// constants\nconst OPEN_ANGLE = '<';\nconst CLOSE_ANGLE = '>';\nconst OPEN_ANGLE_SLASH = '</';\nconst CLOSE_SLASH_ANGLE = '/>';\n\nfunction pushAttribute(xml, name, value) {\n xml.push(` ${name}=\"${utils.xmlEncode(value.toString())}\"`);\n}\nfunction pushAttributes(xml, attributes) {\n if (attributes) {\n const tmp = [];\n _.each(attributes, (value, name) => {\n if (value !== undefined) {\n pushAttribute(tmp, name, value);\n }\n });\n xml.push(tmp.join(\"\"));\n }\n}\n\nclass XmlStream {\n constructor() {\n this._xml = [];\n this._stack = [];\n this._rollbacks = [];\n }\n\n get tos() {\n return this._stack.length ? this._stack[this._stack.length - 1] : undefined;\n }\n\n get cursor() {\n // handy way to track whether anything has been added\n return this._xml.length;\n }\n\n openXml(docAttributes) {\n const xml = this._xml;\n // <?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n xml.push('<?xml');\n pushAttributes(xml, docAttributes);\n xml.push('?>\\n');\n }\n\n openNode(name, attributes) {\n const parent = this.tos;\n const xml = this._xml;\n if (parent && this.open) {\n xml.push(CLOSE_ANGLE);\n }\n\n this._stack.push(name);\n\n // start streaming node\n xml.push(OPEN_ANGLE);\n xml.push(name);\n pushAttributes(xml, attributes);\n this.leaf = true;\n this.open = true;\n }\n\n addAttribute(name, value) {\n if (!this.open) {\n throw new Error('Cannot write attributes to node if it is not open');\n }\n if (value !== undefined) {\n pushAttribute(this._xml, name, value);\n }\n }\n\n addAttributes(attrs) {\n if (!this.open) {\n throw new Error('Cannot write attributes to node if it is not open');\n }\n pushAttributes(this._xml, attrs);\n }\n\n writeText(text) {\n const xml = this._xml;\n if (this.open) {\n xml.push(CLOSE_ANGLE);\n this.open = false;\n }\n this.leaf = false;\n xml.push(utils.xmlEncode(text.toString()));\n }\n\n writeXml(xml) {\n if (this.open) {\n this._xml.push(CLOSE_ANGLE);\n this.open = false;\n }\n this.leaf = false;\n this._xml.push(xml);\n }\n\n closeNode() {\n const node = this._stack.pop();\n const xml = this._xml;\n if (this.leaf) {\n xml.push(CLOSE_SLASH_ANGLE);\n } else {\n xml.push(OPEN_ANGLE_SLASH);\n xml.push(node);\n xml.push(CLOSE_ANGLE);\n }\n this.open = false;\n this.leaf = false;\n }\n\n leafNode(name, attributes, text) {\n this.openNode(name, attributes);\n if (text !== undefined) {\n // zeros need to be written\n this.writeText(text);\n }\n this.closeNode();\n }\n\n closeAll() {\n while (this._stack.length) {\n this.closeNode();\n }\n }\n\n addRollback() {\n this._rollbacks.push({\n xml: this._xml.length,\n stack: this._stack.length,\n leaf: this.leaf,\n open: this.open,\n });\n return this.cursor;\n }\n\n commit() {\n this._rollbacks.pop();\n }\n\n rollback() {\n const r = this._rollbacks.pop();\n if (this._xml.length > r.xml) {\n this._xml.splice(r.xml, this._xml.length - r.xml);\n }\n if (this._stack.length > r.stack) {\n this._stack.splice(r.stack, this._stack.length - r.stack);\n }\n this.leaf = r.leaf;\n this.open = r.open;\n }\n\n get xml() {\n this.closeAll();\n return this._xml.join('');\n }\n}\n\nXmlStream.StdDocAttributes = {\n version: '1.0',\n encoding: 'UTF-8',\n standalone: 'yes',\n};\n\nmodule.exports = XmlStream;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+
3
+ const events = require('events');
4
+ const JSZip = require('jszip');
5
+ const StreamBuf = require('./stream-buf');
6
+ const _require = require('./browser-buffer-encode'),
7
+ stringToBuffer = _require.stringToBuffer;
8
+
9
+ // =============================================================================
10
+ // The ZipWriter class
11
+ // Packs streamed data into an output zip stream
12
+ class ZipWriter extends events.EventEmitter {
13
+ constructor(options) {
14
+ super();
15
+ this.options = Object.assign({
16
+ type: 'nodebuffer',
17
+ compression: 'DEFLATE'
18
+ }, options);
19
+ this.zip = new JSZip();
20
+ this.stream = new StreamBuf();
21
+ }
22
+ append(data, options) {
23
+ if (options.hasOwnProperty('base64') && options.base64) {
24
+ this.zip.file(options.name, data, {
25
+ base64: true
26
+ });
27
+ } else {
28
+ // https://www.npmjs.com/package/process
29
+ if (process.browser && typeof data === 'string') {
30
+ // use TextEncoder in browser
31
+ data = stringToBuffer(data);
32
+ }
33
+ this.zip.file(options.name, data);
34
+ }
35
+ }
36
+ async finalize() {
37
+ const content = await this.zip.generateAsync(this.options);
38
+ this.stream.end(content);
39
+ this.emit('finish');
40
+ }
41
+
42
+ // ==========================================================================
43
+ // Stream.Readable interface
44
+ read(size) {
45
+ return this.stream.read(size);
46
+ }
47
+ setEncoding(encoding) {
48
+ return this.stream.setEncoding(encoding);
49
+ }
50
+ pause() {
51
+ return this.stream.pause();
52
+ }
53
+ resume() {
54
+ return this.stream.resume();
55
+ }
56
+ isPaused() {
57
+ return this.stream.isPaused();
58
+ }
59
+ pipe(destination, options) {
60
+ return this.stream.pipe(destination, options);
61
+ }
62
+ unpipe(destination) {
63
+ return this.stream.unpipe(destination);
64
+ }
65
+ unshift(chunk) {
66
+ return this.stream.unshift(chunk);
67
+ }
68
+ wrap(stream) {
69
+ return this.stream.wrap(stream);
70
+ }
71
+ }
72
+
73
+ // =============================================================================
74
+
75
+ module.exports = {
76
+ ZipWriter
77
+ };
78
+ //# sourceMappingURL=zip-stream.js.map