@alienkarma/exceljs 4.4.0-fork.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 (537) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +3024 -0
  3. package/README_zh.md +2878 -0
  4. package/dist/LICENSE +22 -0
  5. package/dist/es5/csv/csv.js +182 -0
  6. package/dist/es5/csv/csv.js.map +1 -0
  7. package/dist/es5/csv/line-buffer.js +68 -0
  8. package/dist/es5/csv/line-buffer.js.map +1 -0
  9. package/dist/es5/csv/stream-converter.js +110 -0
  10. package/dist/es5/csv/stream-converter.js.map +1 -0
  11. package/dist/es5/doc/anchor.js +73 -0
  12. package/dist/es5/doc/anchor.js.map +1 -0
  13. package/dist/es5/doc/cell.js +960 -0
  14. package/dist/es5/doc/cell.js.map +1 -0
  15. package/dist/es5/doc/column.js +274 -0
  16. package/dist/es5/doc/column.js.map +1 -0
  17. package/dist/es5/doc/data-validations.js +18 -0
  18. package/dist/es5/doc/data-validations.js.map +1 -0
  19. package/dist/es5/doc/defined-names.js +173 -0
  20. package/dist/es5/doc/defined-names.js.map +1 -0
  21. package/dist/es5/doc/enums.js +49 -0
  22. package/dist/es5/doc/enums.js.map +1 -0
  23. package/dist/es5/doc/image.js +69 -0
  24. package/dist/es5/doc/image.js.map +1 -0
  25. package/dist/es5/doc/modelcontainer.js +16 -0
  26. package/dist/es5/doc/modelcontainer.js.map +1 -0
  27. package/dist/es5/doc/note.js +64 -0
  28. package/dist/es5/doc/note.js.map +1 -0
  29. package/dist/es5/doc/pivot-table.js +137 -0
  30. package/dist/es5/doc/pivot-table.js.map +1 -0
  31. package/dist/es5/doc/range.js +229 -0
  32. package/dist/es5/doc/range.js.map +1 -0
  33. package/dist/es5/doc/row.js +382 -0
  34. package/dist/es5/doc/row.js.map +1 -0
  35. package/dist/es5/doc/table.js +441 -0
  36. package/dist/es5/doc/table.js.map +1 -0
  37. package/dist/es5/doc/workbook.js +205 -0
  38. package/dist/es5/doc/workbook.js.map +1 -0
  39. package/dist/es5/doc/worksheet.js +918 -0
  40. package/dist/es5/doc/worksheet.js.map +1 -0
  41. package/dist/es5/exceljs.bare.js +14 -0
  42. package/dist/es5/exceljs.bare.js.map +1 -0
  43. package/dist/es5/exceljs.browser.js +36 -0
  44. package/dist/es5/exceljs.browser.js.map +1 -0
  45. package/dist/es5/exceljs.nodejs.js +15 -0
  46. package/dist/es5/exceljs.nodejs.js.map +1 -0
  47. package/dist/es5/index.js +15 -0
  48. package/dist/es5/stream/xlsx/hyperlink-reader.js +90 -0
  49. package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -0
  50. package/dist/es5/stream/xlsx/sheet-comments-writer.js +94 -0
  51. package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -0
  52. package/dist/es5/stream/xlsx/sheet-rels-writer.js +94 -0
  53. package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -0
  54. package/dist/es5/stream/xlsx/workbook-reader.js +362 -0
  55. package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -0
  56. package/dist/es5/stream/xlsx/workbook-writer.js +347 -0
  57. package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -0
  58. package/dist/es5/stream/xlsx/worksheet-reader.js +392 -0
  59. package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -0
  60. package/dist/es5/stream/xlsx/worksheet-writer.js +652 -0
  61. package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -0
  62. package/dist/es5/utils/auto-drain.js +18 -0
  63. package/dist/es5/utils/auto-drain.js.map +1 -0
  64. package/dist/es5/utils/browser-buffer-decode.js +15 -0
  65. package/dist/es5/utils/browser-buffer-decode.js.map +1 -0
  66. package/dist/es5/utils/browser-buffer-encode.js +18 -0
  67. package/dist/es5/utils/browser-buffer-encode.js.map +1 -0
  68. package/dist/es5/utils/cell-matrix.js +149 -0
  69. package/dist/es5/utils/cell-matrix.js.map +1 -0
  70. package/dist/es5/utils/col-cache.js +258 -0
  71. package/dist/es5/utils/col-cache.js.map +1 -0
  72. package/dist/es5/utils/copy-style.js +43 -0
  73. package/dist/es5/utils/copy-style.js.map +1 -0
  74. package/dist/es5/utils/encryptor.js +58 -0
  75. package/dist/es5/utils/encryptor.js.map +1 -0
  76. package/dist/es5/utils/iterate-stream.js +46 -0
  77. package/dist/es5/utils/iterate-stream.js.map +1 -0
  78. package/dist/es5/utils/parse-sax.js +47 -0
  79. package/dist/es5/utils/parse-sax.js.map +1 -0
  80. package/dist/es5/utils/shared-formula.js +42 -0
  81. package/dist/es5/utils/shared-formula.js.map +1 -0
  82. package/dist/es5/utils/shared-strings.js +32 -0
  83. package/dist/es5/utils/shared-strings.js.map +1 -0
  84. package/dist/es5/utils/stream-base64.js +66 -0
  85. package/dist/es5/utils/stream-base64.js.map +1 -0
  86. package/dist/es5/utils/stream-buf.js +343 -0
  87. package/dist/es5/utils/stream-buf.js.map +1 -0
  88. package/dist/es5/utils/string-buf.js +73 -0
  89. package/dist/es5/utils/string-buf.js.map +1 -0
  90. package/dist/es5/utils/string-builder.js +32 -0
  91. package/dist/es5/utils/string-builder.js.map +1 -0
  92. package/dist/es5/utils/stuttered-pipe.js +61 -0
  93. package/dist/es5/utils/stuttered-pipe.js.map +1 -0
  94. package/dist/es5/utils/typed-stack.js +23 -0
  95. package/dist/es5/utils/typed-stack.js.map +1 -0
  96. package/dist/es5/utils/under-dash.js +168 -0
  97. package/dist/es5/utils/under-dash.js.map +1 -0
  98. package/dist/es5/utils/utils.js +204 -0
  99. package/dist/es5/utils/utils.js.map +1 -0
  100. package/dist/es5/utils/xml-stream.js +151 -0
  101. package/dist/es5/utils/xml-stream.js.map +1 -0
  102. package/dist/es5/utils/zip-stream.js +79 -0
  103. package/dist/es5/utils/zip-stream.js.map +1 -0
  104. package/dist/es5/xlsx/defaultnumformats.js +230 -0
  105. package/dist/es5/xlsx/defaultnumformats.js.map +1 -0
  106. package/dist/es5/xlsx/rel-type.js +21 -0
  107. package/dist/es5/xlsx/rel-type.js.map +1 -0
  108. package/dist/es5/xlsx/xform/base-xform.js +139 -0
  109. package/dist/es5/xlsx/xform/base-xform.js.map +1 -0
  110. package/dist/es5/xlsx/xform/book/defined-name-xform.js +85 -0
  111. package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -0
  112. package/dist/es5/xlsx/xform/book/sheet-xform.js +32 -0
  113. package/dist/es5/xlsx/xform/book/sheet-xform.js.map +1 -0
  114. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +24 -0
  115. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +1 -0
  116. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js +27 -0
  117. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js.map +1 -0
  118. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js +27 -0
  119. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +1 -0
  120. package/dist/es5/xlsx/xform/book/workbook-view-xform.js +51 -0
  121. package/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +1 -0
  122. package/dist/es5/xlsx/xform/book/workbook-xform.js +241 -0
  123. package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -0
  124. package/dist/es5/xlsx/xform/comment/comment-xform.js +103 -0
  125. package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -0
  126. package/dist/es5/xlsx/xform/comment/comments-xform.js +76 -0
  127. package/dist/es5/xlsx/xform/comment/comments-xform.js.map +1 -0
  128. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +35 -0
  129. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +1 -0
  130. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +32 -0
  131. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +1 -0
  132. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +53 -0
  133. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +1 -0
  134. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +97 -0
  135. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +1 -0
  136. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js +107 -0
  137. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +1 -0
  138. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +92 -0
  139. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -0
  140. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +61 -0
  141. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -0
  142. package/dist/es5/xlsx/xform/composite-xform.js +51 -0
  143. package/dist/es5/xlsx/xform/composite-xform.js.map +1 -0
  144. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +30 -0
  145. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +1 -0
  146. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +27 -0
  147. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +1 -0
  148. package/dist/es5/xlsx/xform/core/app-xform.js +93 -0
  149. package/dist/es5/xlsx/xform/core/app-xform.js.map +1 -0
  150. package/dist/es5/xlsx/xform/core/content-types-xform.js +127 -0
  151. package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -0
  152. package/dist/es5/xlsx/xform/core/core-xform.js +158 -0
  153. package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -0
  154. package/dist/es5/xlsx/xform/core/relationship-xform.js +23 -0
  155. package/dist/es5/xlsx/xform/core/relationship-xform.js.map +1 -0
  156. package/dist/es5/xlsx/xform/core/relationships-xform.js +65 -0
  157. package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -0
  158. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +47 -0
  159. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +1 -0
  160. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +61 -0
  161. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +1 -0
  162. package/dist/es5/xlsx/xform/drawing/blip-xform.js +39 -0
  163. package/dist/es5/xlsx/xform/drawing/blip-xform.js.map +1 -0
  164. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +35 -0
  165. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +1 -0
  166. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +62 -0
  167. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -0
  168. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js +82 -0
  169. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +1 -0
  170. package/dist/es5/xlsx/xform/drawing/drawing-xform.js +98 -0
  171. package/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +1 -0
  172. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +40 -0
  173. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +1 -0
  174. package/dist/es5/xlsx/xform/drawing/ext-xform.js +38 -0
  175. package/dist/es5/xlsx/xform/drawing/ext-xform.js.map +1 -0
  176. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +38 -0
  177. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +1 -0
  178. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +59 -0
  179. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +1 -0
  180. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  181. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +1 -0
  182. package/dist/es5/xlsx/xform/drawing/pic-xform.js +67 -0
  183. package/dist/es5/xlsx/xform/drawing/pic-xform.js.map +1 -0
  184. package/dist/es5/xlsx/xform/drawing/sp-pr.js +30 -0
  185. package/dist/es5/xlsx/xform/drawing/sp-pr.js.map +1 -0
  186. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  187. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +1 -0
  188. package/dist/es5/xlsx/xform/list-xform.js +91 -0
  189. package/dist/es5/xlsx/xform/list-xform.js.map +1 -0
  190. package/dist/es5/xlsx/xform/pivot-table/cache-field.js +48 -0
  191. package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -0
  192. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +73 -0
  193. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -0
  194. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +93 -0
  195. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -0
  196. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +176 -0
  197. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -0
  198. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +40 -0
  199. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -0
  200. package/dist/es5/xlsx/xform/sheet/cell-xform.js +450 -0
  201. package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -0
  202. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +275 -0
  203. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -0
  204. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +25 -0
  205. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +1 -0
  206. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +38 -0
  207. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +1 -0
  208. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +45 -0
  209. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +1 -0
  210. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +77 -0
  211. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +1 -0
  212. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +42 -0
  213. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +1 -0
  214. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +71 -0
  215. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +1 -0
  216. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +22 -0
  217. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +1 -0
  218. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +43 -0
  219. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +1 -0
  220. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +28 -0
  221. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +1 -0
  222. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +88 -0
  223. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -0
  224. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +38 -0
  225. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +1 -0
  226. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +52 -0
  227. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +1 -0
  228. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +43 -0
  229. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +1 -0
  230. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +75 -0
  231. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +1 -0
  232. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +22 -0
  233. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +1 -0
  234. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +66 -0
  235. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +1 -0
  236. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +22 -0
  237. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +1 -0
  238. package/dist/es5/xlsx/xform/sheet/col-xform.js +78 -0
  239. package/dist/es5/xlsx/xform/sheet/col-xform.js.map +1 -0
  240. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +247 -0
  241. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -0
  242. package/dist/es5/xlsx/xform/sheet/dimension-xform.js +28 -0
  243. package/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +1 -0
  244. package/dist/es5/xlsx/xform/sheet/drawing-xform.js +32 -0
  245. package/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +1 -0
  246. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +69 -0
  247. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +1 -0
  248. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js +126 -0
  249. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +1 -0
  250. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +50 -0
  251. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +1 -0
  252. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +26 -0
  253. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +1 -0
  254. package/dist/es5/xlsx/xform/sheet/merges.js +52 -0
  255. package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -0
  256. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +35 -0
  257. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +1 -0
  258. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +24 -0
  259. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +1 -0
  260. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js +46 -0
  261. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +1 -0
  262. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +32 -0
  263. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +1 -0
  264. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js +99 -0
  265. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +1 -0
  266. package/dist/es5/xlsx/xform/sheet/picture-xform.js +32 -0
  267. package/dist/es5/xlsx/xform/sheet/picture-xform.js.map +1 -0
  268. package/dist/es5/xlsx/xform/sheet/print-options-xform.js +45 -0
  269. package/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +1 -0
  270. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +37 -0
  271. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +1 -0
  272. package/dist/es5/xlsx/xform/sheet/row-xform.js +128 -0
  273. package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -0
  274. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +51 -0
  275. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +1 -0
  276. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +83 -0
  277. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +1 -0
  278. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +84 -0
  279. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +1 -0
  280. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +190 -0
  281. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +1 -0
  282. package/dist/es5/xlsx/xform/sheet/table-part-xform.js +32 -0
  283. package/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +1 -0
  284. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +522 -0
  285. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -0
  286. package/dist/es5/xlsx/xform/simple/boolean-xform.js +27 -0
  287. package/dist/es5/xlsx/xform/simple/boolean-xform.js.map +1 -0
  288. package/dist/es5/xlsx/xform/simple/date-xform.js +58 -0
  289. package/dist/es5/xlsx/xform/simple/date-xform.js.map +1 -0
  290. package/dist/es5/xlsx/xform/simple/float-xform.js +47 -0
  291. package/dist/es5/xlsx/xform/simple/float-xform.js.map +1 -0
  292. package/dist/es5/xlsx/xform/simple/integer-xform.js +53 -0
  293. package/dist/es5/xlsx/xform/simple/integer-xform.js.map +1 -0
  294. package/dist/es5/xlsx/xform/simple/string-xform.js +47 -0
  295. package/dist/es5/xlsx/xform/simple/string-xform.js.map +1 -0
  296. package/dist/es5/xlsx/xform/static-xform.js +61 -0
  297. package/dist/es5/xlsx/xform/static-xform.js.map +1 -0
  298. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +98 -0
  299. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +1 -0
  300. package/dist/es5/xlsx/xform/strings/rich-text-xform.js +92 -0
  301. package/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +1 -0
  302. package/dist/es5/xlsx/xform/strings/shared-string-xform.js +99 -0
  303. package/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +1 -0
  304. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +114 -0
  305. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -0
  306. package/dist/es5/xlsx/xform/strings/text-xform.js +39 -0
  307. package/dist/es5/xlsx/xform/strings/text-xform.js.map +1 -0
  308. package/dist/es5/xlsx/xform/style/alignment-xform.js +139 -0
  309. package/dist/es5/xlsx/xform/style/alignment-xform.js.map +1 -0
  310. package/dist/es5/xlsx/xform/style/border-xform.js +185 -0
  311. package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -0
  312. package/dist/es5/xlsx/xform/style/color-xform.js +66 -0
  313. package/dist/es5/xlsx/xform/style/color-xform.js.map +1 -0
  314. package/dist/es5/xlsx/xform/style/dxf-xform.js +106 -0
  315. package/dist/es5/xlsx/xform/style/dxf-xform.js.map +1 -0
  316. package/dist/es5/xlsx/xform/style/fill-xform.js +307 -0
  317. package/dist/es5/xlsx/xform/style/fill-xform.js.map +1 -0
  318. package/dist/es5/xlsx/xform/style/font-xform.js +175 -0
  319. package/dist/es5/xlsx/xform/style/font-xform.js.map +1 -0
  320. package/dist/es5/xlsx/xform/style/numfmt-xform.js +58 -0
  321. package/dist/es5/xlsx/xform/style/numfmt-xform.js.map +1 -0
  322. package/dist/es5/xlsx/xform/style/protection-xform.js +53 -0
  323. package/dist/es5/xlsx/xform/style/protection-xform.js.map +1 -0
  324. package/dist/es5/xlsx/xform/style/style-xform.js +118 -0
  325. package/dist/es5/xlsx/xform/style/style-xform.js.map +1 -0
  326. package/dist/es5/xlsx/xform/style/styles-xform.js +611 -0
  327. package/dist/es5/xlsx/xform/style/styles-xform.js.map +1 -0
  328. package/dist/es5/xlsx/xform/style/underline-xform.js +46 -0
  329. package/dist/es5/xlsx/xform/style/underline-xform.js.map +1 -0
  330. package/dist/es5/xlsx/xform/table/auto-filter-xform.js +75 -0
  331. package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -0
  332. package/dist/es5/xlsx/xform/table/custom-filter-xform.js +30 -0
  333. package/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +1 -0
  334. package/dist/es5/xlsx/xform/table/filter-column-xform.js +89 -0
  335. package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -0
  336. package/dist/es5/xlsx/xform/table/filter-xform.js +28 -0
  337. package/dist/es5/xlsx/xform/table/filter-xform.js.map +1 -0
  338. package/dist/es5/xlsx/xform/table/table-column-xform.js +42 -0
  339. package/dist/es5/xlsx/xform/table/table-column-xform.js.map +1 -0
  340. package/dist/es5/xlsx/xform/table/table-style-info-xform.js +40 -0
  341. package/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +1 -0
  342. package/dist/es5/xlsx/xform/table/table-xform.js +122 -0
  343. package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -0
  344. package/dist/es5/xlsx/xlsx.js +775 -0
  345. package/dist/es5/xlsx/xlsx.js.map +1 -0
  346. package/dist/es5/xlsx/xml/theme1.js +5 -0
  347. package/dist/es5/xlsx/xml/theme1.js.map +1 -0
  348. package/dist/exceljs.bare.js +57759 -0
  349. package/dist/exceljs.bare.js.map +777 -0
  350. package/dist/exceljs.bare.min.js +45 -0
  351. package/dist/exceljs.bare.min.js.map +1 -0
  352. package/dist/exceljs.js +62398 -0
  353. package/dist/exceljs.js.map +1095 -0
  354. package/dist/exceljs.min.js +45 -0
  355. package/dist/exceljs.min.js.map +1 -0
  356. package/excel.js +13 -0
  357. package/index.d.ts +2040 -0
  358. package/index.ts +2 -0
  359. package/lib/csv/csv.js +191 -0
  360. package/lib/csv/line-buffer.js +74 -0
  361. package/lib/csv/stream-converter.js +135 -0
  362. package/lib/doc/anchor.js +91 -0
  363. package/lib/doc/cell.js +1124 -0
  364. package/lib/doc/column.js +320 -0
  365. package/lib/doc/data/theme1.json +234 -0
  366. package/lib/doc/data-validations.js +19 -0
  367. package/lib/doc/defined-names.js +196 -0
  368. package/lib/doc/enums.js +48 -0
  369. package/lib/doc/image.js +59 -0
  370. package/lib/doc/modelcontainer.js +18 -0
  371. package/lib/doc/note.js +65 -0
  372. package/lib/doc/pivot-table.js +132 -0
  373. package/lib/doc/range.js +257 -0
  374. package/lib/doc/row.js +415 -0
  375. package/lib/doc/table.js +465 -0
  376. package/lib/doc/workbook.js +224 -0
  377. package/lib/doc/worksheet.js +949 -0
  378. package/lib/exceljs.bare.js +13 -0
  379. package/lib/exceljs.browser.js +36 -0
  380. package/lib/exceljs.nodejs.js +14 -0
  381. package/lib/stream/xlsx/hyperlink-reader.js +83 -0
  382. package/lib/stream/xlsx/sheet-comments-writer.js +121 -0
  383. package/lib/stream/xlsx/sheet-rels-writer.js +119 -0
  384. package/lib/stream/xlsx/workbook-reader.js +337 -0
  385. package/lib/stream/xlsx/workbook-writer.js +347 -0
  386. package/lib/stream/xlsx/worksheet-reader.js +374 -0
  387. package/lib/stream/xlsx/worksheet-writer.js +717 -0
  388. package/lib/utils/auto-drain.js +15 -0
  389. package/lib/utils/browser-buffer-decode.js +14 -0
  390. package/lib/utils/browser-buffer-encode.js +15 -0
  391. package/lib/utils/cell-matrix.js +165 -0
  392. package/lib/utils/col-cache.js +287 -0
  393. package/lib/utils/copy-style.js +43 -0
  394. package/lib/utils/encryptor.js +55 -0
  395. package/lib/utils/iterate-stream.js +48 -0
  396. package/lib/utils/parse-sax.js +30 -0
  397. package/lib/utils/shared-formula.js +44 -0
  398. package/lib/utils/shared-strings.js +35 -0
  399. package/lib/utils/stream-base64.js +72 -0
  400. package/lib/utils/stream-buf.js +364 -0
  401. package/lib/utils/string-buf.js +82 -0
  402. package/lib/utils/string-builder.js +35 -0
  403. package/lib/utils/stuttered-pipe.js +67 -0
  404. package/lib/utils/typed-stack.js +24 -0
  405. package/lib/utils/under-dash.js +184 -0
  406. package/lib/utils/utils.js +205 -0
  407. package/lib/utils/xml-stream.js +169 -0
  408. package/lib/utils/zip-stream.js +87 -0
  409. package/lib/xlsx/.rels +11 -0
  410. package/lib/xlsx/calcChain.xml +6 -0
  411. package/lib/xlsx/core.xml +7 -0
  412. package/lib/xlsx/defaultnumformats.js +153 -0
  413. package/lib/xlsx/rel-type.js +20 -0
  414. package/lib/xlsx/styles.xml +41 -0
  415. package/lib/xlsx/workbook.xml +16 -0
  416. package/lib/xlsx/xform/base-xform.js +145 -0
  417. package/lib/xlsx/xform/book/defined-name-xform.js +91 -0
  418. package/lib/xlsx/xform/book/sheet-xform.js +34 -0
  419. package/lib/xlsx/xform/book/workbook-calc-properties-xform.js +26 -0
  420. package/lib/xlsx/xform/book/workbook-pivot-cache-xform.js +29 -0
  421. package/lib/xlsx/xform/book/workbook-properties-xform.js +29 -0
  422. package/lib/xlsx/xform/book/workbook-view-xform.js +53 -0
  423. package/lib/xlsx/xform/book/workbook-xform.js +259 -0
  424. package/lib/xlsx/xform/comment/comment-xform.js +105 -0
  425. package/lib/xlsx/xform/comment/comments-xform.js +82 -0
  426. package/lib/xlsx/xform/comment/style/vml-position-xform.js +39 -0
  427. package/lib/xlsx/xform/comment/style/vml-protection-xform.js +36 -0
  428. package/lib/xlsx/xform/comment/vml-anchor-xform.js +60 -0
  429. package/lib/xlsx/xform/comment/vml-client-data-xform.js +95 -0
  430. package/lib/xlsx/xform/comment/vml-notes-xform.js +107 -0
  431. package/lib/xlsx/xform/comment/vml-shape-xform.js +95 -0
  432. package/lib/xlsx/xform/comment/vml-textbox-xform.js +64 -0
  433. package/lib/xlsx/xform/composite-xform.js +56 -0
  434. package/lib/xlsx/xform/core/app-heading-pairs-xform.js +32 -0
  435. package/lib/xlsx/xform/core/app-titles-of-parts-xform.js +28 -0
  436. package/lib/xlsx/xform/core/app-xform.js +100 -0
  437. package/lib/xlsx/xform/core/content-types-xform.js +135 -0
  438. package/lib/xlsx/xform/core/core-xform.js +136 -0
  439. package/lib/xlsx/xform/core/relationship-xform.js +25 -0
  440. package/lib/xlsx/xform/core/relationships-xform.js +73 -0
  441. package/lib/xlsx/xform/drawing/base-cell-anchor-xform.js +48 -0
  442. package/lib/xlsx/xform/drawing/blip-fill-xform.js +71 -0
  443. package/lib/xlsx/xform/drawing/blip-xform.js +42 -0
  444. package/lib/xlsx/xform/drawing/c-nv-pic-pr-xform.js +38 -0
  445. package/lib/xlsx/xform/drawing/c-nv-pr-xform.js +68 -0
  446. package/lib/xlsx/xform/drawing/cell-position-xform.js +77 -0
  447. package/lib/xlsx/xform/drawing/drawing-xform.js +109 -0
  448. package/lib/xlsx/xform/drawing/ext-lst-xform.js +43 -0
  449. package/lib/xlsx/xform/drawing/ext-xform.js +44 -0
  450. package/lib/xlsx/xform/drawing/hlink-click-xform.js +41 -0
  451. package/lib/xlsx/xform/drawing/nv-pic-pr-xform.js +65 -0
  452. package/lib/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  453. package/lib/xlsx/xform/drawing/pic-xform.js +77 -0
  454. package/lib/xlsx/xform/drawing/sp-pr.js +17 -0
  455. package/lib/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  456. package/lib/xlsx/xform/list-xform.js +95 -0
  457. package/lib/xlsx/xform/pivot-table/cache-field.js +43 -0
  458. package/lib/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +77 -0
  459. package/lib/xlsx/xform/pivot-table/pivot-cache-records-xform.js +103 -0
  460. package/lib/xlsx/xform/pivot-table/pivot-table-xform.js +189 -0
  461. package/lib/xlsx/xform/sheet/auto-filter-xform.js +38 -0
  462. package/lib/xlsx/xform/sheet/cell-xform.js +498 -0
  463. package/lib/xlsx/xform/sheet/cf/cf-rule-xform.js +301 -0
  464. package/lib/xlsx/xform/sheet/cf/cfvo-xform.js +27 -0
  465. package/lib/xlsx/xform/sheet/cf/color-scale-xform.js +45 -0
  466. package/lib/xlsx/xform/sheet/cf/conditional-formatting-xform.js +48 -0
  467. package/lib/xlsx/xform/sheet/cf/conditional-formattings-xform.js +92 -0
  468. package/lib/xlsx/xform/sheet/cf/databar-xform.js +49 -0
  469. package/lib/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +87 -0
  470. package/lib/xlsx/xform/sheet/cf/formula-xform.js +25 -0
  471. package/lib/xlsx/xform/sheet/cf/icon-set-xform.js +47 -0
  472. package/lib/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +27 -0
  473. package/lib/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +98 -0
  474. package/lib/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +43 -0
  475. package/lib/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +62 -0
  476. package/lib/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +50 -0
  477. package/lib/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +98 -0
  478. package/lib/xlsx/xform/sheet/cf-ext/f-ext-xform.js +25 -0
  479. package/lib/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +73 -0
  480. package/lib/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +25 -0
  481. package/lib/xlsx/xform/sheet/col-xform.js +86 -0
  482. package/lib/xlsx/xform/sheet/data-validations-xform.js +257 -0
  483. package/lib/xlsx/xform/sheet/dimension-xform.js +29 -0
  484. package/lib/xlsx/xform/sheet/drawing-xform.js +33 -0
  485. package/lib/xlsx/xform/sheet/ext-lst-xform.js +86 -0
  486. package/lib/xlsx/xform/sheet/header-footer-xform.js +146 -0
  487. package/lib/xlsx/xform/sheet/hyperlink-xform.js +54 -0
  488. package/lib/xlsx/xform/sheet/merge-cell-xform.js +27 -0
  489. package/lib/xlsx/xform/sheet/merges.js +56 -0
  490. package/lib/xlsx/xform/sheet/outline-properties-xform.js +43 -0
  491. package/lib/xlsx/xform/sheet/page-breaks-xform.js +27 -0
  492. package/lib/xlsx/xform/sheet/page-margins-xform.js +49 -0
  493. package/lib/xlsx/xform/sheet/page-setup-properties-xform.js +35 -0
  494. package/lib/xlsx/xform/sheet/page-setup-xform.js +103 -0
  495. package/lib/xlsx/xform/sheet/picture-xform.js +33 -0
  496. package/lib/xlsx/xform/sheet/print-options-xform.js +49 -0
  497. package/lib/xlsx/xform/sheet/row-breaks-xform.js +39 -0
  498. package/lib/xlsx/xform/sheet/row-xform.js +142 -0
  499. package/lib/xlsx/xform/sheet/sheet-format-properties-xform.js +55 -0
  500. package/lib/xlsx/xform/sheet/sheet-properties-xform.js +90 -0
  501. package/lib/xlsx/xform/sheet/sheet-protection-xform.js +89 -0
  502. package/lib/xlsx/xform/sheet/sheet-view-xform.js +202 -0
  503. package/lib/xlsx/xform/sheet/table-part-xform.js +33 -0
  504. package/lib/xlsx/xform/sheet/worksheet-xform.js +548 -0
  505. package/lib/xlsx/xform/simple/boolean-xform.js +31 -0
  506. package/lib/xlsx/xform/simple/date-xform.js +66 -0
  507. package/lib/xlsx/xform/simple/float-xform.js +51 -0
  508. package/lib/xlsx/xform/simple/integer-xform.js +57 -0
  509. package/lib/xlsx/xform/simple/string-xform.js +51 -0
  510. package/lib/xlsx/xform/static-xform.js +64 -0
  511. package/lib/xlsx/xform/strings/phonetic-text-xform.js +98 -0
  512. package/lib/xlsx/xform/strings/rich-text-xform.js +101 -0
  513. package/lib/xlsx/xform/strings/shared-string-xform.js +102 -0
  514. package/lib/xlsx/xform/strings/shared-strings-xform.js +127 -0
  515. package/lib/xlsx/xform/strings/text-xform.js +44 -0
  516. package/lib/xlsx/xform/style/alignment-xform.js +172 -0
  517. package/lib/xlsx/xform/style/border-xform.js +207 -0
  518. package/lib/xlsx/xform/style/color-xform.js +63 -0
  519. package/lib/xlsx/xform/style/dxf-xform.js +111 -0
  520. package/lib/xlsx/xform/style/fill-xform.js +364 -0
  521. package/lib/xlsx/xform/style/font-xform.js +102 -0
  522. package/lib/xlsx/xform/style/numfmt-xform.js +63 -0
  523. package/lib/xlsx/xform/style/protection-xform.js +60 -0
  524. package/lib/xlsx/xform/style/style-xform.js +125 -0
  525. package/lib/xlsx/xform/style/styles-xform.js +527 -0
  526. package/lib/xlsx/xform/style/underline-xform.js +47 -0
  527. package/lib/xlsx/xform/table/auto-filter-xform.js +81 -0
  528. package/lib/xlsx/xform/table/custom-filter-xform.js +33 -0
  529. package/lib/xlsx/xform/table/filter-column-xform.js +96 -0
  530. package/lib/xlsx/xform/table/filter-xform.js +31 -0
  531. package/lib/xlsx/xform/table/table-column-xform.js +44 -0
  532. package/lib/xlsx/xform/table/table-style-info-xform.js +41 -0
  533. package/lib/xlsx/xform/table/table-xform.js +131 -0
  534. package/lib/xlsx/xlsx.js +774 -0
  535. package/lib/xlsx/xml/theme1.js +3 -0
  536. package/lib/xlsx/xml/theme1.xml +318 -0
  537. package/package.json +149 -0
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ const BaseXform = require('../base-xform');
4
+ const utils = require('../../../utils/utils');
5
+ const CellXform = require('./cell-xform');
6
+ class RowXform extends BaseXform {
7
+ constructor(options) {
8
+ super();
9
+ this.maxItems = options && options.maxItems;
10
+ this.map = {
11
+ c: new CellXform()
12
+ };
13
+ }
14
+ get tag() {
15
+ return 'row';
16
+ }
17
+ prepare(model, options) {
18
+ const styleId = options.styles.addStyleModel(model.style);
19
+ if (styleId) {
20
+ model.styleId = styleId;
21
+ }
22
+ const cellXform = this.map.c;
23
+ model.cells.forEach(cellModel => {
24
+ cellXform.prepare(cellModel, options);
25
+ });
26
+ }
27
+ render(xmlStream, model, options) {
28
+ xmlStream.openNode('row');
29
+ xmlStream.addAttribute('r', model.number);
30
+ if (model.height) {
31
+ xmlStream.addAttribute('ht', model.height);
32
+ xmlStream.addAttribute('customHeight', '1');
33
+ }
34
+ if (model.hidden) {
35
+ xmlStream.addAttribute('hidden', '1');
36
+ }
37
+ if (model.min > 0 && model.max > 0 && model.min <= model.max) {
38
+ xmlStream.addAttribute('spans', `${model.min}:${model.max}`);
39
+ }
40
+ if (model.styleId) {
41
+ xmlStream.addAttribute('s', model.styleId);
42
+ xmlStream.addAttribute('customFormat', '1');
43
+ }
44
+ xmlStream.addAttribute('x14ac:dyDescent', '0.25');
45
+ if (model.outlineLevel) {
46
+ xmlStream.addAttribute('outlineLevel', model.outlineLevel);
47
+ }
48
+ if (model.collapsed) {
49
+ xmlStream.addAttribute('collapsed', '1');
50
+ }
51
+ const cellXform = this.map.c;
52
+ model.cells.forEach(cellModel => {
53
+ cellXform.render(xmlStream, cellModel, options);
54
+ });
55
+ xmlStream.closeNode();
56
+ }
57
+ parseOpen(node) {
58
+ if (this.parser) {
59
+ this.parser.parseOpen(node);
60
+ return true;
61
+ }
62
+ if (node.name === 'row') {
63
+ this.numRowsSeen += 1;
64
+ const spans = node.attributes.spans ? node.attributes.spans.split(':').map(span => parseInt(span, 10)) : [undefined, undefined];
65
+ const model = this.model = {
66
+ number: parseInt(node.attributes.r, 10),
67
+ min: spans[0],
68
+ max: spans[1],
69
+ cells: []
70
+ };
71
+ if (node.attributes.s) {
72
+ model.styleId = parseInt(node.attributes.s, 10);
73
+ }
74
+ if (utils.parseBoolean(node.attributes.hidden)) {
75
+ model.hidden = true;
76
+ }
77
+ if (utils.parseBoolean(node.attributes.bestFit)) {
78
+ model.bestFit = true;
79
+ }
80
+ if (node.attributes.ht) {
81
+ model.height = parseFloat(node.attributes.ht);
82
+ }
83
+ if (node.attributes.outlineLevel) {
84
+ model.outlineLevel = parseInt(node.attributes.outlineLevel, 10);
85
+ }
86
+ if (utils.parseBoolean(node.attributes.collapsed)) {
87
+ model.collapsed = true;
88
+ }
89
+ return true;
90
+ }
91
+ this.parser = this.map[node.name];
92
+ if (this.parser) {
93
+ this.parser.parseOpen(node);
94
+ return true;
95
+ }
96
+ return false;
97
+ }
98
+ parseText(text) {
99
+ if (this.parser) {
100
+ this.parser.parseText(text);
101
+ }
102
+ }
103
+ parseClose(name) {
104
+ if (this.parser) {
105
+ if (!this.parser.parseClose(name)) {
106
+ this.model.cells.push(this.parser.model);
107
+ if (this.maxItems && this.model.cells.length > this.maxItems) {
108
+ throw new Error(`Max column count (${this.maxItems}) exceeded`);
109
+ }
110
+ this.parser = undefined;
111
+ }
112
+ return true;
113
+ }
114
+ return false;
115
+ }
116
+ reconcile(model, options) {
117
+ model.style = model.styleId ? options.styles.getStyleModel(model.styleId) : {};
118
+ if (model.styleId !== undefined) {
119
+ model.styleId = undefined;
120
+ }
121
+ const cellXform = this.map.c;
122
+ model.cells.forEach(cellModel => {
123
+ cellXform.reconcile(cellModel, options);
124
+ });
125
+ }
126
+ }
127
+ module.exports = RowXform;
128
+ //# sourceMappingURL=row-xform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-xform.js","names":["BaseXform","require","utils","CellXform","RowXform","constructor","options","maxItems","map","c","tag","prepare","model","styleId","styles","addStyleModel","style","cellXform","cells","forEach","cellModel","render","xmlStream","openNode","addAttribute","number","height","hidden","min","max","outlineLevel","collapsed","closeNode","parseOpen","node","parser","name","numRowsSeen","spans","attributes","split","span","parseInt","undefined","r","s","parseBoolean","bestFit","ht","parseFloat","parseText","text","parseClose","push","length","Error","reconcile","getStyleModel","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/row-xform.js"],"sourcesContent":["const BaseXform = require('../base-xform');\r\nconst utils = require('../../../utils/utils');\r\n\r\nconst CellXform = require('./cell-xform');\r\n\r\nclass RowXform extends BaseXform {\r\n constructor(options) {\r\n super();\r\n\r\n this.maxItems = options && options.maxItems;\r\n this.map = {\r\n c: new CellXform(),\r\n };\r\n }\r\n\r\n get tag() {\r\n return 'row';\r\n }\r\n\r\n prepare(model, options) {\r\n const styleId = options.styles.addStyleModel(model.style);\r\n if (styleId) {\r\n model.styleId = styleId;\r\n }\r\n const cellXform = this.map.c;\r\n model.cells.forEach(cellModel => {\r\n cellXform.prepare(cellModel, options);\r\n });\r\n }\r\n\r\n render(xmlStream, model, options) {\r\n xmlStream.openNode('row');\r\n xmlStream.addAttribute('r', model.number);\r\n if (model.height) {\r\n xmlStream.addAttribute('ht', model.height);\r\n xmlStream.addAttribute('customHeight', '1');\r\n }\r\n if (model.hidden) {\r\n xmlStream.addAttribute('hidden', '1');\r\n }\r\n if (model.min > 0 && model.max > 0 && model.min <= model.max) {\r\n xmlStream.addAttribute('spans', `${model.min}:${model.max}`);\r\n }\r\n if (model.styleId) {\r\n xmlStream.addAttribute('s', model.styleId);\r\n xmlStream.addAttribute('customFormat', '1');\r\n }\r\n xmlStream.addAttribute('x14ac:dyDescent', '0.25');\r\n if (model.outlineLevel) {\r\n xmlStream.addAttribute('outlineLevel', model.outlineLevel);\r\n }\r\n if (model.collapsed) {\r\n xmlStream.addAttribute('collapsed', '1');\r\n }\r\n\r\n const cellXform = this.map.c;\r\n model.cells.forEach(cellModel => {\r\n cellXform.render(xmlStream, cellModel, options);\r\n });\r\n\r\n xmlStream.closeNode();\r\n }\r\n\r\n parseOpen(node) {\r\n if (this.parser) {\r\n this.parser.parseOpen(node);\r\n return true;\r\n }\r\n if (node.name === 'row') {\r\n this.numRowsSeen += 1;\r\n const spans = node.attributes.spans\r\n ? node.attributes.spans.split(':').map(span => parseInt(span, 10))\r\n : [undefined, undefined];\r\n const model = (this.model = {\r\n number: parseInt(node.attributes.r, 10),\r\n min: spans[0],\r\n max: spans[1],\r\n cells: [],\r\n });\r\n if (node.attributes.s) {\r\n model.styleId = parseInt(node.attributes.s, 10);\r\n }\r\n if (utils.parseBoolean(node.attributes.hidden)) {\r\n model.hidden = true;\r\n }\r\n if (utils.parseBoolean(node.attributes.bestFit)) {\r\n model.bestFit = true;\r\n }\r\n if (node.attributes.ht) {\r\n model.height = parseFloat(node.attributes.ht);\r\n }\r\n if (node.attributes.outlineLevel) {\r\n model.outlineLevel = parseInt(node.attributes.outlineLevel, 10);\r\n }\r\n if (utils.parseBoolean(node.attributes.collapsed)) {\r\n model.collapsed = true;\r\n }\r\n return true;\r\n }\r\n\r\n this.parser = this.map[node.name];\r\n if (this.parser) {\r\n this.parser.parseOpen(node);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n parseText(text) {\r\n if (this.parser) {\r\n this.parser.parseText(text);\r\n }\r\n }\r\n\r\n parseClose(name) {\r\n if (this.parser) {\r\n if (!this.parser.parseClose(name)) {\r\n this.model.cells.push(this.parser.model);\r\n if (this.maxItems && this.model.cells.length > this.maxItems) {\r\n throw new Error(`Max column count (${this.maxItems}) exceeded`);\r\n }\r\n this.parser = undefined;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n reconcile(model, options) {\r\n model.style = model.styleId ? options.styles.getStyleModel(model.styleId) : {};\r\n if (model.styleId !== undefined) {\r\n model.styleId = undefined;\r\n }\r\n\r\n const cellXform = this.map.c;\r\n model.cells.forEach(cellModel => {\r\n cellXform.reconcile(cellModel, options);\r\n });\r\n }\r\n}\r\n\r\nmodule.exports = RowXform;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ const _ = require('../../../utils/under-dash');
4
+ const BaseXform = require('../base-xform');
5
+ class SheetFormatPropertiesXform extends BaseXform {
6
+ get tag() {
7
+ return 'sheetFormatPr';
8
+ }
9
+ render(xmlStream, model) {
10
+ if (model) {
11
+ const attributes = {
12
+ defaultRowHeight: model.defaultRowHeight,
13
+ outlineLevelRow: model.outlineLevelRow,
14
+ outlineLevelCol: model.outlineLevelCol,
15
+ 'x14ac:dyDescent': model.dyDescent
16
+ };
17
+ if (model.defaultColWidth) {
18
+ attributes.defaultColWidth = model.defaultColWidth;
19
+ }
20
+
21
+ // default value for 'defaultRowHeight' is 15, this should not be 'custom'
22
+ if (!model.defaultRowHeight || model.defaultRowHeight !== 15) {
23
+ attributes.customHeight = '1';
24
+ }
25
+ if (_.some(attributes, value => value !== undefined)) {
26
+ xmlStream.leafNode('sheetFormatPr', attributes);
27
+ }
28
+ }
29
+ }
30
+ parseOpen(node) {
31
+ if (node.name === 'sheetFormatPr') {
32
+ this.model = {
33
+ defaultRowHeight: parseFloat(node.attributes.defaultRowHeight || '0'),
34
+ dyDescent: parseFloat(node.attributes['x14ac:dyDescent'] || '0'),
35
+ outlineLevelRow: parseInt(node.attributes.outlineLevelRow || '0', 10),
36
+ outlineLevelCol: parseInt(node.attributes.outlineLevelCol || '0', 10)
37
+ };
38
+ if (node.attributes.defaultColWidth) {
39
+ this.model.defaultColWidth = parseFloat(node.attributes.defaultColWidth);
40
+ }
41
+ return true;
42
+ }
43
+ return false;
44
+ }
45
+ parseText() {}
46
+ parseClose() {
47
+ return false;
48
+ }
49
+ }
50
+ module.exports = SheetFormatPropertiesXform;
51
+ //# sourceMappingURL=sheet-format-properties-xform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-format-properties-xform.js","names":["_","require","BaseXform","SheetFormatPropertiesXform","tag","render","xmlStream","model","attributes","defaultRowHeight","outlineLevelRow","outlineLevelCol","dyDescent","defaultColWidth","customHeight","some","value","undefined","leafNode","parseOpen","node","name","parseFloat","parseInt","parseText","parseClose","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/sheet-format-properties-xform.js"],"sourcesContent":["const _ = require('../../../utils/under-dash');\r\nconst BaseXform = require('../base-xform');\r\n\r\nclass SheetFormatPropertiesXform extends BaseXform {\r\n get tag() {\r\n return 'sheetFormatPr';\r\n }\r\n\r\n render(xmlStream, model) {\r\n if (model) {\r\n const attributes = {\r\n defaultRowHeight: model.defaultRowHeight,\r\n outlineLevelRow: model.outlineLevelRow,\r\n outlineLevelCol: model.outlineLevelCol,\r\n 'x14ac:dyDescent': model.dyDescent,\r\n };\r\n if (model.defaultColWidth) {\r\n attributes.defaultColWidth = model.defaultColWidth;\r\n }\r\n\r\n // default value for 'defaultRowHeight' is 15, this should not be 'custom'\r\n if (!model.defaultRowHeight || model.defaultRowHeight !== 15) {\r\n attributes.customHeight = '1';\r\n }\r\n\r\n if (_.some(attributes, value => value !== undefined)) {\r\n xmlStream.leafNode('sheetFormatPr', attributes);\r\n }\r\n }\r\n }\r\n\r\n parseOpen(node) {\r\n if (node.name === 'sheetFormatPr') {\r\n this.model = {\r\n defaultRowHeight: parseFloat(node.attributes.defaultRowHeight || '0'),\r\n dyDescent: parseFloat(node.attributes['x14ac:dyDescent'] || '0'),\r\n outlineLevelRow: parseInt(node.attributes.outlineLevelRow || '0', 10),\r\n outlineLevelCol: parseInt(node.attributes.outlineLevelCol || '0', 10),\r\n };\r\n if (node.attributes.defaultColWidth) {\r\n this.model.defaultColWidth = parseFloat(node.attributes.defaultColWidth);\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n parseText() {}\r\n\r\n parseClose() {\r\n return false;\r\n }\r\n}\r\n\r\nmodule.exports = SheetFormatPropertiesXform;\r\n"],"mappings":";;AAAA,MAAMA,CAAC,GAAGC,OAAO,CAAC,2BAA2B,CAAC;AAC9C,MAAMC,SAAS,GAAGD,OAAO,CAAC,eAAe,CAAC;AAE1C,MAAME,0BAA0B,SAASD,SAAS,CAAC;EACjD,IAAIE,GAAGA,CAAA,EAAG;IACR,OAAO,eAAe;EACxB;EAEAC,MAAMA,CAACC,SAAS,EAAEC,KAAK,EAAE;IACvB,IAAIA,KAAK,EAAE;MACT,MAAMC,UAAU,GAAG;QACjBC,gBAAgB,EAAEF,KAAK,CAACE,gBAAgB;QACxCC,eAAe,EAAEH,KAAK,CAACG,eAAe;QACtCC,eAAe,EAAEJ,KAAK,CAACI,eAAe;QACtC,iBAAiB,EAAEJ,KAAK,CAACK;MAC3B,CAAC;MACD,IAAIL,KAAK,CAACM,eAAe,EAAE;QACzBL,UAAU,CAACK,eAAe,GAAGN,KAAK,CAACM,eAAe;MACpD;;MAEA;MACA,IAAI,CAACN,KAAK,CAACE,gBAAgB,IAAIF,KAAK,CAACE,gBAAgB,KAAK,EAAE,EAAE;QAC5DD,UAAU,CAACM,YAAY,GAAG,GAAG;MAC/B;MAEA,IAAId,CAAC,CAACe,IAAI,CAACP,UAAU,EAAEQ,KAAK,IAAIA,KAAK,KAAKC,SAAS,CAAC,EAAE;QACpDX,SAAS,CAACY,QAAQ,CAAC,eAAe,EAAEV,UAAU,CAAC;MACjD;IACF;EACF;EAEAW,SAASA,CAACC,IAAI,EAAE;IACd,IAAIA,IAAI,CAACC,IAAI,KAAK,eAAe,EAAE;MACjC,IAAI,CAACd,KAAK,GAAG;QACXE,gBAAgB,EAAEa,UAAU,CAACF,IAAI,CAACZ,UAAU,CAACC,gBAAgB,IAAI,GAAG,CAAC;QACrEG,SAAS,EAAEU,UAAU,CAACF,IAAI,CAACZ,UAAU,CAAC,iBAAiB,CAAC,IAAI,GAAG,CAAC;QAChEE,eAAe,EAAEa,QAAQ,CAACH,IAAI,CAACZ,UAAU,CAACE,eAAe,IAAI,GAAG,EAAE,EAAE,CAAC;QACrEC,eAAe,EAAEY,QAAQ,CAACH,IAAI,CAACZ,UAAU,CAACG,eAAe,IAAI,GAAG,EAAE,EAAE;MACtE,CAAC;MACD,IAAIS,IAAI,CAACZ,UAAU,CAACK,eAAe,EAAE;QACnC,IAAI,CAACN,KAAK,CAACM,eAAe,GAAGS,UAAU,CAACF,IAAI,CAACZ,UAAU,CAACK,eAAe,CAAC;MAC1E;MACA,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAW,SAASA,CAAA,EAAG,CAAC;EAEbC,UAAUA,CAAA,EAAG;IACX,OAAO,KAAK;EACd;AACF;AAEAC,MAAM,CAACC,OAAO,GAAGxB,0BAA0B","ignoreList":[]}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ const BaseXform = require('../base-xform');
4
+ const ColorXform = require('../style/color-xform');
5
+ const PageSetupPropertiesXform = require('./page-setup-properties-xform');
6
+ const OutlinePropertiesXform = require('./outline-properties-xform');
7
+ class SheetPropertiesXform extends BaseXform {
8
+ constructor() {
9
+ super();
10
+ this.map = {
11
+ tabColor: new ColorXform('tabColor'),
12
+ pageSetUpPr: new PageSetupPropertiesXform(),
13
+ outlinePr: new OutlinePropertiesXform()
14
+ };
15
+ }
16
+ get tag() {
17
+ return 'sheetPr';
18
+ }
19
+ render(xmlStream, model) {
20
+ if (model) {
21
+ xmlStream.addRollback();
22
+ xmlStream.openNode('sheetPr');
23
+ let inner = false;
24
+ inner = this.map.tabColor.render(xmlStream, model.tabColor) || inner;
25
+ inner = this.map.pageSetUpPr.render(xmlStream, model.pageSetup) || inner;
26
+ inner = this.map.outlinePr.render(xmlStream, model.outlineProperties) || inner;
27
+ if (inner) {
28
+ xmlStream.closeNode();
29
+ xmlStream.commit();
30
+ } else {
31
+ xmlStream.rollback();
32
+ }
33
+ }
34
+ }
35
+ parseOpen(node) {
36
+ if (this.parser) {
37
+ this.parser.parseOpen(node);
38
+ return true;
39
+ }
40
+ if (node.name === this.tag) {
41
+ this.reset();
42
+ return true;
43
+ }
44
+ if (this.map[node.name]) {
45
+ this.parser = this.map[node.name];
46
+ this.parser.parseOpen(node);
47
+ return true;
48
+ }
49
+ return false;
50
+ }
51
+ parseText(text) {
52
+ if (this.parser) {
53
+ this.parser.parseText(text);
54
+ return true;
55
+ }
56
+ return false;
57
+ }
58
+ parseClose(name) {
59
+ if (this.parser) {
60
+ if (!this.parser.parseClose(name)) {
61
+ this.parser = undefined;
62
+ }
63
+ return true;
64
+ }
65
+ if (this.map.tabColor.model || this.map.pageSetUpPr.model || this.map.outlinePr.model) {
66
+ this.model = {};
67
+ if (this.map.tabColor.model) {
68
+ this.model.tabColor = this.map.tabColor.model;
69
+ }
70
+ if (this.map.pageSetUpPr.model) {
71
+ this.model.pageSetup = this.map.pageSetUpPr.model;
72
+ }
73
+ if (this.map.outlinePr.model) {
74
+ this.model.outlineProperties = this.map.outlinePr.model;
75
+ }
76
+ } else {
77
+ this.model = null;
78
+ }
79
+ return false;
80
+ }
81
+ }
82
+ module.exports = SheetPropertiesXform;
83
+ //# sourceMappingURL=sheet-properties-xform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-properties-xform.js","names":["BaseXform","require","ColorXform","PageSetupPropertiesXform","OutlinePropertiesXform","SheetPropertiesXform","constructor","map","tabColor","pageSetUpPr","outlinePr","tag","render","xmlStream","model","addRollback","openNode","inner","pageSetup","outlineProperties","closeNode","commit","rollback","parseOpen","node","parser","name","reset","parseText","text","parseClose","undefined","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/sheet-properties-xform.js"],"sourcesContent":["const BaseXform = require('../base-xform');\r\nconst ColorXform = require('../style/color-xform');\r\nconst PageSetupPropertiesXform = require('./page-setup-properties-xform');\r\nconst OutlinePropertiesXform = require('./outline-properties-xform');\r\n\r\nclass SheetPropertiesXform extends BaseXform {\r\n constructor() {\r\n super();\r\n\r\n this.map = {\r\n tabColor: new ColorXform('tabColor'),\r\n pageSetUpPr: new PageSetupPropertiesXform(),\r\n outlinePr: new OutlinePropertiesXform(),\r\n };\r\n }\r\n\r\n get tag() {\r\n return 'sheetPr';\r\n }\r\n\r\n render(xmlStream, model) {\r\n if (model) {\r\n xmlStream.addRollback();\r\n xmlStream.openNode('sheetPr');\r\n\r\n let inner = false;\r\n inner = this.map.tabColor.render(xmlStream, model.tabColor) || inner;\r\n inner = this.map.pageSetUpPr.render(xmlStream, model.pageSetup) || inner;\r\n inner = this.map.outlinePr.render(xmlStream, model.outlineProperties) || inner;\r\n\r\n if (inner) {\r\n xmlStream.closeNode();\r\n xmlStream.commit();\r\n } else {\r\n xmlStream.rollback();\r\n }\r\n }\r\n }\r\n\r\n parseOpen(node) {\r\n if (this.parser) {\r\n this.parser.parseOpen(node);\r\n return true;\r\n }\r\n if (node.name === this.tag) {\r\n this.reset();\r\n return true;\r\n }\r\n if (this.map[node.name]) {\r\n this.parser = this.map[node.name];\r\n this.parser.parseOpen(node);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n parseText(text) {\r\n if (this.parser) {\r\n this.parser.parseText(text);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n parseClose(name) {\r\n if (this.parser) {\r\n if (!this.parser.parseClose(name)) {\r\n this.parser = undefined;\r\n }\r\n return true;\r\n }\r\n if (this.map.tabColor.model || this.map.pageSetUpPr.model || this.map.outlinePr.model) {\r\n this.model = {};\r\n if (this.map.tabColor.model) {\r\n this.model.tabColor = this.map.tabColor.model;\r\n }\r\n if (this.map.pageSetUpPr.model) {\r\n this.model.pageSetup = this.map.pageSetUpPr.model;\r\n }\r\n if (this.map.outlinePr.model) {\r\n this.model.outlineProperties = this.map.outlinePr.model;\r\n }\r\n } else {\r\n this.model = null;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\nmodule.exports = SheetPropertiesXform;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+
3
+ const _ = require('../../../utils/under-dash');
4
+ const BaseXform = require('../base-xform');
5
+ function booleanToXml(model, value) {
6
+ return model ? value : undefined;
7
+ }
8
+ function xmlToBoolean(value, equals) {
9
+ return value === equals ? true : undefined;
10
+ }
11
+ class SheetProtectionXform extends BaseXform {
12
+ get tag() {
13
+ return 'sheetProtection';
14
+ }
15
+ render(xmlStream, model) {
16
+ if (model) {
17
+ const attributes = {
18
+ sheet: booleanToXml(model.sheet, '1'),
19
+ selectLockedCells: model.selectLockedCells === false ? '1' : undefined,
20
+ selectUnlockedCells: model.selectUnlockedCells === false ? '1' : undefined,
21
+ formatCells: booleanToXml(model.formatCells, '0'),
22
+ formatColumns: booleanToXml(model.formatColumns, '0'),
23
+ formatRows: booleanToXml(model.formatRows, '0'),
24
+ insertColumns: booleanToXml(model.insertColumns, '0'),
25
+ insertRows: booleanToXml(model.insertRows, '0'),
26
+ insertHyperlinks: booleanToXml(model.insertHyperlinks, '0'),
27
+ deleteColumns: booleanToXml(model.deleteColumns, '0'),
28
+ deleteRows: booleanToXml(model.deleteRows, '0'),
29
+ sort: booleanToXml(model.sort, '0'),
30
+ autoFilter: booleanToXml(model.autoFilter, '0'),
31
+ pivotTables: booleanToXml(model.pivotTables, '0')
32
+ };
33
+ if (model.sheet) {
34
+ attributes.algorithmName = model.algorithmName;
35
+ attributes.hashValue = model.hashValue;
36
+ attributes.saltValue = model.saltValue;
37
+ attributes.spinCount = model.spinCount;
38
+ attributes.objects = booleanToXml(model.objects === false, '1');
39
+ attributes.scenarios = booleanToXml(model.scenarios === false, '1');
40
+ }
41
+ if (_.some(attributes, value => value !== undefined)) {
42
+ xmlStream.leafNode(this.tag, attributes);
43
+ }
44
+ }
45
+ }
46
+ parseOpen(node) {
47
+ switch (node.name) {
48
+ case this.tag:
49
+ this.model = {
50
+ sheet: xmlToBoolean(node.attributes.sheet, '1'),
51
+ objects: node.attributes.objects === '1' ? false : undefined,
52
+ scenarios: node.attributes.scenarios === '1' ? false : undefined,
53
+ selectLockedCells: node.attributes.selectLockedCells === '1' ? false : undefined,
54
+ selectUnlockedCells: node.attributes.selectUnlockedCells === '1' ? false : undefined,
55
+ formatCells: xmlToBoolean(node.attributes.formatCells, '0'),
56
+ formatColumns: xmlToBoolean(node.attributes.formatColumns, '0'),
57
+ formatRows: xmlToBoolean(node.attributes.formatRows, '0'),
58
+ insertColumns: xmlToBoolean(node.attributes.insertColumns, '0'),
59
+ insertRows: xmlToBoolean(node.attributes.insertRows, '0'),
60
+ insertHyperlinks: xmlToBoolean(node.attributes.insertHyperlinks, '0'),
61
+ deleteColumns: xmlToBoolean(node.attributes.deleteColumns, '0'),
62
+ deleteRows: xmlToBoolean(node.attributes.deleteRows, '0'),
63
+ sort: xmlToBoolean(node.attributes.sort, '0'),
64
+ autoFilter: xmlToBoolean(node.attributes.autoFilter, '0'),
65
+ pivotTables: xmlToBoolean(node.attributes.pivotTables, '0')
66
+ };
67
+ if (node.attributes.algorithmName) {
68
+ this.model.algorithmName = node.attributes.algorithmName;
69
+ this.model.hashValue = node.attributes.hashValue;
70
+ this.model.saltValue = node.attributes.saltValue;
71
+ this.model.spinCount = parseInt(node.attributes.spinCount, 10);
72
+ }
73
+ return true;
74
+ default:
75
+ return false;
76
+ }
77
+ }
78
+ parseText() {}
79
+ parseClose() {
80
+ return false;
81
+ }
82
+ }
83
+ module.exports = SheetProtectionXform;
84
+ //# sourceMappingURL=sheet-protection-xform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-protection-xform.js","names":["_","require","BaseXform","booleanToXml","model","value","undefined","xmlToBoolean","equals","SheetProtectionXform","tag","render","xmlStream","attributes","sheet","selectLockedCells","selectUnlockedCells","formatCells","formatColumns","formatRows","insertColumns","insertRows","insertHyperlinks","deleteColumns","deleteRows","sort","autoFilter","pivotTables","algorithmName","hashValue","saltValue","spinCount","objects","scenarios","some","leafNode","parseOpen","node","name","parseInt","parseText","parseClose","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/sheet-protection-xform.js"],"sourcesContent":["const _ = require('../../../utils/under-dash');\r\nconst BaseXform = require('../base-xform');\r\n\r\nfunction booleanToXml(model, value) {\r\n return model ? value : undefined;\r\n}\r\n\r\nfunction xmlToBoolean(value, equals) {\r\n return value === equals ? true : undefined;\r\n}\r\n\r\nclass SheetProtectionXform extends BaseXform {\r\n get tag() {\r\n return 'sheetProtection';\r\n }\r\n\r\n render(xmlStream, model) {\r\n if (model) {\r\n const attributes = {\r\n sheet: booleanToXml(model.sheet, '1'),\r\n selectLockedCells: model.selectLockedCells === false ? '1' : undefined,\r\n selectUnlockedCells: model.selectUnlockedCells === false ? '1' : undefined,\r\n formatCells: booleanToXml(model.formatCells, '0'),\r\n formatColumns: booleanToXml(model.formatColumns, '0'),\r\n formatRows: booleanToXml(model.formatRows, '0'),\r\n insertColumns: booleanToXml(model.insertColumns, '0'),\r\n insertRows: booleanToXml(model.insertRows, '0'),\r\n insertHyperlinks: booleanToXml(model.insertHyperlinks, '0'),\r\n deleteColumns: booleanToXml(model.deleteColumns, '0'),\r\n deleteRows: booleanToXml(model.deleteRows, '0'),\r\n sort: booleanToXml(model.sort, '0'),\r\n autoFilter: booleanToXml(model.autoFilter, '0'),\r\n pivotTables: booleanToXml(model.pivotTables, '0'),\r\n };\r\n if (model.sheet) {\r\n attributes.algorithmName = model.algorithmName;\r\n attributes.hashValue = model.hashValue;\r\n attributes.saltValue = model.saltValue;\r\n attributes.spinCount = model.spinCount;\r\n attributes.objects = booleanToXml(model.objects === false, '1');\r\n attributes.scenarios = booleanToXml(model.scenarios === false, '1');\r\n }\r\n if (_.some(attributes, value => value !== undefined)) {\r\n xmlStream.leafNode(this.tag, attributes);\r\n }\r\n }\r\n }\r\n\r\n parseOpen(node) {\r\n switch (node.name) {\r\n case this.tag:\r\n this.model = {\r\n sheet: xmlToBoolean(node.attributes.sheet, '1'),\r\n objects: node.attributes.objects === '1' ? false : undefined,\r\n scenarios: node.attributes.scenarios === '1' ? false : undefined,\r\n selectLockedCells: node.attributes.selectLockedCells === '1' ? false : undefined,\r\n selectUnlockedCells: node.attributes.selectUnlockedCells === '1' ? false : undefined,\r\n formatCells: xmlToBoolean(node.attributes.formatCells, '0'),\r\n formatColumns: xmlToBoolean(node.attributes.formatColumns, '0'),\r\n formatRows: xmlToBoolean(node.attributes.formatRows, '0'),\r\n insertColumns: xmlToBoolean(node.attributes.insertColumns, '0'),\r\n insertRows: xmlToBoolean(node.attributes.insertRows, '0'),\r\n insertHyperlinks: xmlToBoolean(node.attributes.insertHyperlinks, '0'),\r\n deleteColumns: xmlToBoolean(node.attributes.deleteColumns, '0'),\r\n deleteRows: xmlToBoolean(node.attributes.deleteRows, '0'),\r\n sort: xmlToBoolean(node.attributes.sort, '0'),\r\n autoFilter: xmlToBoolean(node.attributes.autoFilter, '0'),\r\n pivotTables: xmlToBoolean(node.attributes.pivotTables, '0'),\r\n };\r\n if (node.attributes.algorithmName) {\r\n this.model.algorithmName = node.attributes.algorithmName;\r\n this.model.hashValue = node.attributes.hashValue;\r\n this.model.saltValue = node.attributes.saltValue;\r\n this.model.spinCount = parseInt(node.attributes.spinCount, 10);\r\n }\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n parseText() {}\r\n\r\n parseClose() {\r\n return false;\r\n }\r\n}\r\n\r\nmodule.exports = SheetProtectionXform;\r\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+
3
+ const colCache = require('../../../utils/col-cache');
4
+ const BaseXform = require('../base-xform');
5
+ const VIEW_STATES = {
6
+ frozen: 'frozen',
7
+ frozenSplit: 'frozen',
8
+ split: 'split'
9
+ };
10
+ class SheetViewXform extends BaseXform {
11
+ get tag() {
12
+ return 'sheetView';
13
+ }
14
+ prepare(model) {
15
+ switch (model.state) {
16
+ case 'frozen':
17
+ case 'split':
18
+ break;
19
+ default:
20
+ model.state = 'normal';
21
+ break;
22
+ }
23
+ }
24
+ render(xmlStream, model) {
25
+ xmlStream.openNode('sheetView', {
26
+ workbookViewId: model.workbookViewId || 0
27
+ });
28
+ const add = function (name, value, included) {
29
+ if (included) {
30
+ xmlStream.addAttribute(name, value);
31
+ }
32
+ };
33
+ add('rightToLeft', '1', model.rightToLeft === true);
34
+ add('tabSelected', '1', model.tabSelected);
35
+ add('showRuler', '0', model.showRuler === false);
36
+ add('showRowColHeaders', '0', model.showRowColHeaders === false);
37
+ add('showGridLines', '0', model.showGridLines === false);
38
+ add('zoomScale', model.zoomScale, model.zoomScale);
39
+ add('zoomScaleNormal', model.zoomScaleNormal, model.zoomScaleNormal);
40
+ add('view', model.style, model.style);
41
+ let topLeftCell;
42
+ let xSplit;
43
+ let ySplit;
44
+ let activePane;
45
+ switch (model.state) {
46
+ case 'frozen':
47
+ xSplit = model.xSplit || 0;
48
+ ySplit = model.ySplit || 0;
49
+ topLeftCell = model.topLeftCell || colCache.getAddress(ySplit + 1, xSplit + 1).address;
50
+ activePane = model.xSplit && model.ySplit && 'bottomRight' || model.xSplit && 'topRight' || 'bottomLeft';
51
+ xmlStream.leafNode('pane', {
52
+ xSplit: model.xSplit || undefined,
53
+ ySplit: model.ySplit || undefined,
54
+ topLeftCell,
55
+ activePane,
56
+ state: 'frozen'
57
+ });
58
+ xmlStream.leafNode('selection', {
59
+ pane: activePane,
60
+ activeCell: model.activeCell,
61
+ sqref: model.activeCell
62
+ });
63
+ break;
64
+ case 'split':
65
+ if (model.activePane === 'topLeft') {
66
+ model.activePane = undefined;
67
+ }
68
+ xmlStream.leafNode('pane', {
69
+ xSplit: model.xSplit || undefined,
70
+ ySplit: model.ySplit || undefined,
71
+ topLeftCell: model.topLeftCell,
72
+ activePane: model.activePane
73
+ });
74
+ xmlStream.leafNode('selection', {
75
+ pane: model.activePane,
76
+ activeCell: model.activeCell,
77
+ sqref: model.activeCell
78
+ });
79
+ break;
80
+ case 'normal':
81
+ if (model.activeCell) {
82
+ xmlStream.leafNode('selection', {
83
+ activeCell: model.activeCell,
84
+ sqref: model.activeCell
85
+ });
86
+ }
87
+ break;
88
+ default:
89
+ break;
90
+ }
91
+ xmlStream.closeNode();
92
+ }
93
+ parseOpen(node) {
94
+ switch (node.name) {
95
+ case 'sheetView':
96
+ this.sheetView = {
97
+ workbookViewId: parseInt(node.attributes.workbookViewId, 10),
98
+ rightToLeft: node.attributes.rightToLeft === '1',
99
+ tabSelected: node.attributes.tabSelected === '1',
100
+ showRuler: !(node.attributes.showRuler === '0'),
101
+ showRowColHeaders: !(node.attributes.showRowColHeaders === '0'),
102
+ showGridLines: !(node.attributes.showGridLines === '0'),
103
+ zoomScale: parseInt(node.attributes.zoomScale || '100', 10),
104
+ zoomScaleNormal: parseInt(node.attributes.zoomScaleNormal || '100', 10),
105
+ style: node.attributes.view
106
+ };
107
+ this.pane = undefined;
108
+ this.selections = {};
109
+ return true;
110
+ case 'pane':
111
+ this.pane = {
112
+ xSplit: parseInt(node.attributes.xSplit || '0', 10),
113
+ ySplit: parseInt(node.attributes.ySplit || '0', 10),
114
+ topLeftCell: node.attributes.topLeftCell,
115
+ activePane: node.attributes.activePane || 'topLeft',
116
+ state: node.attributes.state
117
+ };
118
+ return true;
119
+ case 'selection':
120
+ {
121
+ const name = node.attributes.pane || 'topLeft';
122
+ this.selections[name] = {
123
+ pane: name,
124
+ activeCell: node.attributes.activeCell
125
+ };
126
+ return true;
127
+ }
128
+ default:
129
+ return false;
130
+ }
131
+ }
132
+ parseText() {}
133
+ parseClose(name) {
134
+ let model;
135
+ let selection;
136
+ switch (name) {
137
+ case 'sheetView':
138
+ if (this.sheetView && this.pane) {
139
+ model = this.model = {
140
+ workbookViewId: this.sheetView.workbookViewId,
141
+ rightToLeft: this.sheetView.rightToLeft,
142
+ state: VIEW_STATES[this.pane.state] || 'split',
143
+ // split is default
144
+ xSplit: this.pane.xSplit,
145
+ ySplit: this.pane.ySplit,
146
+ topLeftCell: this.pane.topLeftCell,
147
+ showRuler: this.sheetView.showRuler,
148
+ showRowColHeaders: this.sheetView.showRowColHeaders,
149
+ showGridLines: this.sheetView.showGridLines,
150
+ zoomScale: this.sheetView.zoomScale,
151
+ zoomScaleNormal: this.sheetView.zoomScaleNormal
152
+ };
153
+ if (this.model.state === 'split') {
154
+ model.activePane = this.pane.activePane;
155
+ }
156
+ selection = this.selections[this.pane.activePane];
157
+ if (selection && selection.activeCell) {
158
+ model.activeCell = selection.activeCell;
159
+ }
160
+ if (this.sheetView.style) {
161
+ model.style = this.sheetView.style;
162
+ }
163
+ } else {
164
+ model = this.model = {
165
+ workbookViewId: this.sheetView.workbookViewId,
166
+ rightToLeft: this.sheetView.rightToLeft,
167
+ state: 'normal',
168
+ showRuler: this.sheetView.showRuler,
169
+ showRowColHeaders: this.sheetView.showRowColHeaders,
170
+ showGridLines: this.sheetView.showGridLines,
171
+ zoomScale: this.sheetView.zoomScale,
172
+ zoomScaleNormal: this.sheetView.zoomScaleNormal
173
+ };
174
+ selection = this.selections.topLeft;
175
+ if (selection && selection.activeCell) {
176
+ model.activeCell = selection.activeCell;
177
+ }
178
+ if (this.sheetView.style) {
179
+ model.style = this.sheetView.style;
180
+ }
181
+ }
182
+ return false;
183
+ default:
184
+ return true;
185
+ }
186
+ }
187
+ reconcile() {}
188
+ }
189
+ module.exports = SheetViewXform;
190
+ //# sourceMappingURL=sheet-view-xform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-view-xform.js","names":["colCache","require","BaseXform","VIEW_STATES","frozen","frozenSplit","split","SheetViewXform","tag","prepare","model","state","render","xmlStream","openNode","workbookViewId","add","name","value","included","addAttribute","rightToLeft","tabSelected","showRuler","showRowColHeaders","showGridLines","zoomScale","zoomScaleNormal","style","topLeftCell","xSplit","ySplit","activePane","getAddress","address","leafNode","undefined","pane","activeCell","sqref","closeNode","parseOpen","node","sheetView","parseInt","attributes","view","selections","parseText","parseClose","selection","topLeft","reconcile","module","exports"],"sources":["../../../../../lib/xlsx/xform/sheet/sheet-view-xform.js"],"sourcesContent":["const colCache = require('../../../utils/col-cache');\r\nconst BaseXform = require('../base-xform');\r\n\r\nconst VIEW_STATES = {\r\n frozen: 'frozen',\r\n frozenSplit: 'frozen',\r\n split: 'split',\r\n};\r\n\r\nclass SheetViewXform extends BaseXform {\r\n get tag() {\r\n return 'sheetView';\r\n }\r\n\r\n prepare(model) {\r\n switch (model.state) {\r\n case 'frozen':\r\n case 'split':\r\n break;\r\n default:\r\n model.state = 'normal';\r\n break;\r\n }\r\n }\r\n\r\n render(xmlStream, model) {\r\n xmlStream.openNode('sheetView', {\r\n workbookViewId: model.workbookViewId || 0,\r\n });\r\n const add = function(name, value, included) {\r\n if (included) {\r\n xmlStream.addAttribute(name, value);\r\n }\r\n };\r\n add('rightToLeft', '1', model.rightToLeft === true);\r\n add('tabSelected', '1', model.tabSelected);\r\n add('showRuler', '0', model.showRuler === false);\r\n add('showRowColHeaders', '0', model.showRowColHeaders === false);\r\n add('showGridLines', '0', model.showGridLines === false);\r\n add('zoomScale', model.zoomScale, model.zoomScale);\r\n add('zoomScaleNormal', model.zoomScaleNormal, model.zoomScaleNormal);\r\n add('view', model.style, model.style);\r\n\r\n let topLeftCell;\r\n let xSplit;\r\n let ySplit;\r\n let activePane;\r\n switch (model.state) {\r\n case 'frozen':\r\n xSplit = model.xSplit || 0;\r\n ySplit = model.ySplit || 0;\r\n topLeftCell = model.topLeftCell || colCache.getAddress(ySplit + 1, xSplit + 1).address;\r\n activePane =\r\n (model.xSplit && model.ySplit && 'bottomRight') ||\r\n (model.xSplit && 'topRight') ||\r\n 'bottomLeft';\r\n\r\n xmlStream.leafNode('pane', {\r\n xSplit: model.xSplit || undefined,\r\n ySplit: model.ySplit || undefined,\r\n topLeftCell,\r\n activePane,\r\n state: 'frozen',\r\n });\r\n xmlStream.leafNode('selection', {\r\n pane: activePane,\r\n activeCell: model.activeCell,\r\n sqref: model.activeCell,\r\n });\r\n break;\r\n case 'split':\r\n if (model.activePane === 'topLeft') {\r\n model.activePane = undefined;\r\n }\r\n xmlStream.leafNode('pane', {\r\n xSplit: model.xSplit || undefined,\r\n ySplit: model.ySplit || undefined,\r\n topLeftCell: model.topLeftCell,\r\n activePane: model.activePane,\r\n });\r\n xmlStream.leafNode('selection', {\r\n pane: model.activePane,\r\n activeCell: model.activeCell,\r\n sqref: model.activeCell,\r\n });\r\n break;\r\n case 'normal':\r\n if (model.activeCell) {\r\n xmlStream.leafNode('selection', {\r\n activeCell: model.activeCell,\r\n sqref: model.activeCell,\r\n });\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n xmlStream.closeNode();\r\n }\r\n\r\n parseOpen(node) {\r\n switch (node.name) {\r\n case 'sheetView':\r\n this.sheetView = {\r\n workbookViewId: parseInt(node.attributes.workbookViewId, 10),\r\n rightToLeft: node.attributes.rightToLeft === '1',\r\n tabSelected: node.attributes.tabSelected === '1',\r\n showRuler: !(node.attributes.showRuler === '0'),\r\n showRowColHeaders: !(node.attributes.showRowColHeaders === '0'),\r\n showGridLines: !(node.attributes.showGridLines === '0'),\r\n zoomScale: parseInt(node.attributes.zoomScale || '100', 10),\r\n zoomScaleNormal: parseInt(node.attributes.zoomScaleNormal || '100', 10),\r\n style: node.attributes.view,\r\n };\r\n this.pane = undefined;\r\n this.selections = {};\r\n return true;\r\n\r\n case 'pane':\r\n this.pane = {\r\n xSplit: parseInt(node.attributes.xSplit || '0', 10),\r\n ySplit: parseInt(node.attributes.ySplit || '0', 10),\r\n topLeftCell: node.attributes.topLeftCell,\r\n activePane: node.attributes.activePane || 'topLeft',\r\n state: node.attributes.state,\r\n };\r\n return true;\r\n\r\n case 'selection': {\r\n const name = node.attributes.pane || 'topLeft';\r\n this.selections[name] = {\r\n pane: name,\r\n activeCell: node.attributes.activeCell,\r\n };\r\n return true;\r\n }\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n parseText() {}\r\n\r\n parseClose(name) {\r\n let model;\r\n let selection;\r\n switch (name) {\r\n case 'sheetView':\r\n if (this.sheetView && this.pane) {\r\n model = this.model = {\r\n workbookViewId: this.sheetView.workbookViewId,\r\n rightToLeft: this.sheetView.rightToLeft,\r\n state: VIEW_STATES[this.pane.state] || 'split', // split is default\r\n xSplit: this.pane.xSplit,\r\n ySplit: this.pane.ySplit,\r\n topLeftCell: this.pane.topLeftCell,\r\n showRuler: this.sheetView.showRuler,\r\n showRowColHeaders: this.sheetView.showRowColHeaders,\r\n showGridLines: this.sheetView.showGridLines,\r\n zoomScale: this.sheetView.zoomScale,\r\n zoomScaleNormal: this.sheetView.zoomScaleNormal,\r\n };\r\n if (this.model.state === 'split') {\r\n model.activePane = this.pane.activePane;\r\n }\r\n selection = this.selections[this.pane.activePane];\r\n if (selection && selection.activeCell) {\r\n model.activeCell = selection.activeCell;\r\n }\r\n if (this.sheetView.style) {\r\n model.style = this.sheetView.style;\r\n }\r\n } else {\r\n model = this.model = {\r\n workbookViewId: this.sheetView.workbookViewId,\r\n rightToLeft: this.sheetView.rightToLeft,\r\n state: 'normal',\r\n showRuler: this.sheetView.showRuler,\r\n showRowColHeaders: this.sheetView.showRowColHeaders,\r\n showGridLines: this.sheetView.showGridLines,\r\n zoomScale: this.sheetView.zoomScale,\r\n zoomScaleNormal: this.sheetView.zoomScaleNormal,\r\n };\r\n selection = this.selections.topLeft;\r\n if (selection && selection.activeCell) {\r\n model.activeCell = selection.activeCell;\r\n }\r\n if (this.sheetView.style) {\r\n model.style = this.sheetView.style;\r\n }\r\n }\r\n return false;\r\n default:\r\n return true;\r\n }\r\n }\r\n\r\n reconcile() {}\r\n}\r\n\r\nmodule.exports = SheetViewXform;\r\n"],"mappings":"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","ignoreList":[]}