devextreme-exceljs-fork 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 (537) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +3024 -0
  3. package/README_zh.md +2878 -0
  4. package/dist/LICENSE +23 -0
  5. package/dist/dx-exceljs-fork.bare.js +59888 -0
  6. package/dist/dx-exceljs-fork.bare.js.map +883 -0
  7. package/dist/dx-exceljs-fork.bare.min.js +45 -0
  8. package/dist/dx-exceljs-fork.bare.min.js.map +1 -0
  9. package/dist/dx-exceljs-fork.js +64530 -0
  10. package/dist/dx-exceljs-fork.js.map +1201 -0
  11. package/dist/dx-exceljs-fork.min.js +45 -0
  12. package/dist/dx-exceljs-fork.min.js.map +1 -0
  13. package/dist/es5/csv/csv.js +182 -0
  14. package/dist/es5/csv/csv.js.map +1 -0
  15. package/dist/es5/csv/line-buffer.js +68 -0
  16. package/dist/es5/csv/line-buffer.js.map +1 -0
  17. package/dist/es5/csv/stream-converter.js +110 -0
  18. package/dist/es5/csv/stream-converter.js.map +1 -0
  19. package/dist/es5/doc/anchor.js +73 -0
  20. package/dist/es5/doc/anchor.js.map +1 -0
  21. package/dist/es5/doc/cell.js +960 -0
  22. package/dist/es5/doc/cell.js.map +1 -0
  23. package/dist/es5/doc/column.js +274 -0
  24. package/dist/es5/doc/column.js.map +1 -0
  25. package/dist/es5/doc/data-validations.js +18 -0
  26. package/dist/es5/doc/data-validations.js.map +1 -0
  27. package/dist/es5/doc/defined-names.js +173 -0
  28. package/dist/es5/doc/defined-names.js.map +1 -0
  29. package/dist/es5/doc/enums.js +49 -0
  30. package/dist/es5/doc/enums.js.map +1 -0
  31. package/dist/es5/doc/image.js +69 -0
  32. package/dist/es5/doc/image.js.map +1 -0
  33. package/dist/es5/doc/modelcontainer.js +16 -0
  34. package/dist/es5/doc/modelcontainer.js.map +1 -0
  35. package/dist/es5/doc/note.js +64 -0
  36. package/dist/es5/doc/note.js.map +1 -0
  37. package/dist/es5/doc/pivot-table.js +137 -0
  38. package/dist/es5/doc/pivot-table.js.map +1 -0
  39. package/dist/es5/doc/range.js +229 -0
  40. package/dist/es5/doc/range.js.map +1 -0
  41. package/dist/es5/doc/row.js +382 -0
  42. package/dist/es5/doc/row.js.map +1 -0
  43. package/dist/es5/doc/table.js +441 -0
  44. package/dist/es5/doc/table.js.map +1 -0
  45. package/dist/es5/doc/workbook.js +205 -0
  46. package/dist/es5/doc/workbook.js.map +1 -0
  47. package/dist/es5/doc/worksheet.js +918 -0
  48. package/dist/es5/doc/worksheet.js.map +1 -0
  49. package/dist/es5/dx-exceljs-fork.bare.js +14 -0
  50. package/dist/es5/dx-exceljs-fork.bare.js.map +1 -0
  51. package/dist/es5/dx-exceljs-fork.browser.js +36 -0
  52. package/dist/es5/dx-exceljs-fork.browser.js.map +1 -0
  53. package/dist/es5/dx-exceljs-fork.nodejs.js +15 -0
  54. package/dist/es5/dx-exceljs-fork.nodejs.js.map +1 -0
  55. package/dist/es5/index.js +15 -0
  56. package/dist/es5/stream/xlsx/hyperlink-reader.js +90 -0
  57. package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -0
  58. package/dist/es5/stream/xlsx/sheet-comments-writer.js +94 -0
  59. package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -0
  60. package/dist/es5/stream/xlsx/sheet-rels-writer.js +94 -0
  61. package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -0
  62. package/dist/es5/stream/xlsx/workbook-reader.js +362 -0
  63. package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -0
  64. package/dist/es5/stream/xlsx/workbook-writer.js +347 -0
  65. package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -0
  66. package/dist/es5/stream/xlsx/worksheet-reader.js +392 -0
  67. package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -0
  68. package/dist/es5/stream/xlsx/worksheet-writer.js +652 -0
  69. package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -0
  70. package/dist/es5/utils/auto-drain.js +18 -0
  71. package/dist/es5/utils/auto-drain.js.map +1 -0
  72. package/dist/es5/utils/browser-buffer-decode.js +15 -0
  73. package/dist/es5/utils/browser-buffer-decode.js.map +1 -0
  74. package/dist/es5/utils/browser-buffer-encode.js +18 -0
  75. package/dist/es5/utils/browser-buffer-encode.js.map +1 -0
  76. package/dist/es5/utils/cell-matrix.js +149 -0
  77. package/dist/es5/utils/cell-matrix.js.map +1 -0
  78. package/dist/es5/utils/col-cache.js +258 -0
  79. package/dist/es5/utils/col-cache.js.map +1 -0
  80. package/dist/es5/utils/copy-style.js +43 -0
  81. package/dist/es5/utils/copy-style.js.map +1 -0
  82. package/dist/es5/utils/encryptor.js +58 -0
  83. package/dist/es5/utils/encryptor.js.map +1 -0
  84. package/dist/es5/utils/iterate-stream.js +46 -0
  85. package/dist/es5/utils/iterate-stream.js.map +1 -0
  86. package/dist/es5/utils/parse-sax.js +47 -0
  87. package/dist/es5/utils/parse-sax.js.map +1 -0
  88. package/dist/es5/utils/shared-formula.js +42 -0
  89. package/dist/es5/utils/shared-formula.js.map +1 -0
  90. package/dist/es5/utils/shared-strings.js +32 -0
  91. package/dist/es5/utils/shared-strings.js.map +1 -0
  92. package/dist/es5/utils/stream-base64.js +66 -0
  93. package/dist/es5/utils/stream-base64.js.map +1 -0
  94. package/dist/es5/utils/stream-buf.js +344 -0
  95. package/dist/es5/utils/stream-buf.js.map +1 -0
  96. package/dist/es5/utils/string-buf.js +73 -0
  97. package/dist/es5/utils/string-buf.js.map +1 -0
  98. package/dist/es5/utils/string-builder.js +32 -0
  99. package/dist/es5/utils/string-builder.js.map +1 -0
  100. package/dist/es5/utils/stuttered-pipe.js +61 -0
  101. package/dist/es5/utils/stuttered-pipe.js.map +1 -0
  102. package/dist/es5/utils/typed-stack.js +23 -0
  103. package/dist/es5/utils/typed-stack.js.map +1 -0
  104. package/dist/es5/utils/under-dash.js +168 -0
  105. package/dist/es5/utils/under-dash.js.map +1 -0
  106. package/dist/es5/utils/utils.js +204 -0
  107. package/dist/es5/utils/utils.js.map +1 -0
  108. package/dist/es5/utils/xml-stream.js +151 -0
  109. package/dist/es5/utils/xml-stream.js.map +1 -0
  110. package/dist/es5/utils/zip-stream.js +79 -0
  111. package/dist/es5/utils/zip-stream.js.map +1 -0
  112. package/dist/es5/xlsx/defaultnumformats.js +230 -0
  113. package/dist/es5/xlsx/defaultnumformats.js.map +1 -0
  114. package/dist/es5/xlsx/rel-type.js +21 -0
  115. package/dist/es5/xlsx/rel-type.js.map +1 -0
  116. package/dist/es5/xlsx/xform/base-xform.js +139 -0
  117. package/dist/es5/xlsx/xform/base-xform.js.map +1 -0
  118. package/dist/es5/xlsx/xform/book/defined-name-xform.js +85 -0
  119. package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -0
  120. package/dist/es5/xlsx/xform/book/sheet-xform.js +32 -0
  121. package/dist/es5/xlsx/xform/book/sheet-xform.js.map +1 -0
  122. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js +24 -0
  123. package/dist/es5/xlsx/xform/book/workbook-calc-properties-xform.js.map +1 -0
  124. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js +27 -0
  125. package/dist/es5/xlsx/xform/book/workbook-pivot-cache-xform.js.map +1 -0
  126. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js +27 -0
  127. package/dist/es5/xlsx/xform/book/workbook-properties-xform.js.map +1 -0
  128. package/dist/es5/xlsx/xform/book/workbook-view-xform.js +51 -0
  129. package/dist/es5/xlsx/xform/book/workbook-view-xform.js.map +1 -0
  130. package/dist/es5/xlsx/xform/book/workbook-xform.js +241 -0
  131. package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -0
  132. package/dist/es5/xlsx/xform/comment/comment-xform.js +103 -0
  133. package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -0
  134. package/dist/es5/xlsx/xform/comment/comments-xform.js +76 -0
  135. package/dist/es5/xlsx/xform/comment/comments-xform.js.map +1 -0
  136. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js +35 -0
  137. package/dist/es5/xlsx/xform/comment/style/vml-position-xform.js.map +1 -0
  138. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js +32 -0
  139. package/dist/es5/xlsx/xform/comment/style/vml-protection-xform.js.map +1 -0
  140. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js +53 -0
  141. package/dist/es5/xlsx/xform/comment/vml-anchor-xform.js.map +1 -0
  142. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js +97 -0
  143. package/dist/es5/xlsx/xform/comment/vml-client-data-xform.js.map +1 -0
  144. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js +107 -0
  145. package/dist/es5/xlsx/xform/comment/vml-notes-xform.js.map +1 -0
  146. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +92 -0
  147. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -0
  148. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +61 -0
  149. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -0
  150. package/dist/es5/xlsx/xform/composite-xform.js +51 -0
  151. package/dist/es5/xlsx/xform/composite-xform.js.map +1 -0
  152. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js +30 -0
  153. package/dist/es5/xlsx/xform/core/app-heading-pairs-xform.js.map +1 -0
  154. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js +27 -0
  155. package/dist/es5/xlsx/xform/core/app-titles-of-parts-xform.js.map +1 -0
  156. package/dist/es5/xlsx/xform/core/app-xform.js +93 -0
  157. package/dist/es5/xlsx/xform/core/app-xform.js.map +1 -0
  158. package/dist/es5/xlsx/xform/core/content-types-xform.js +127 -0
  159. package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -0
  160. package/dist/es5/xlsx/xform/core/core-xform.js +158 -0
  161. package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -0
  162. package/dist/es5/xlsx/xform/core/relationship-xform.js +23 -0
  163. package/dist/es5/xlsx/xform/core/relationship-xform.js.map +1 -0
  164. package/dist/es5/xlsx/xform/core/relationships-xform.js +65 -0
  165. package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -0
  166. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js +47 -0
  167. package/dist/es5/xlsx/xform/drawing/base-cell-anchor-xform.js.map +1 -0
  168. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js +61 -0
  169. package/dist/es5/xlsx/xform/drawing/blip-fill-xform.js.map +1 -0
  170. package/dist/es5/xlsx/xform/drawing/blip-xform.js +39 -0
  171. package/dist/es5/xlsx/xform/drawing/blip-xform.js.map +1 -0
  172. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js +35 -0
  173. package/dist/es5/xlsx/xform/drawing/c-nv-pic-pr-xform.js.map +1 -0
  174. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +62 -0
  175. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -0
  176. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js +82 -0
  177. package/dist/es5/xlsx/xform/drawing/cell-position-xform.js.map +1 -0
  178. package/dist/es5/xlsx/xform/drawing/drawing-xform.js +98 -0
  179. package/dist/es5/xlsx/xform/drawing/drawing-xform.js.map +1 -0
  180. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js +40 -0
  181. package/dist/es5/xlsx/xform/drawing/ext-lst-xform.js.map +1 -0
  182. package/dist/es5/xlsx/xform/drawing/ext-xform.js +38 -0
  183. package/dist/es5/xlsx/xform/drawing/ext-xform.js.map +1 -0
  184. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js +38 -0
  185. package/dist/es5/xlsx/xform/drawing/hlink-click-xform.js.map +1 -0
  186. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js +59 -0
  187. package/dist/es5/xlsx/xform/drawing/nv-pic-pr-xform.js.map +1 -0
  188. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js +63 -0
  189. package/dist/es5/xlsx/xform/drawing/one-cell-anchor-xform.js.map +1 -0
  190. package/dist/es5/xlsx/xform/drawing/pic-xform.js +67 -0
  191. package/dist/es5/xlsx/xform/drawing/pic-xform.js.map +1 -0
  192. package/dist/es5/xlsx/xform/drawing/sp-pr.js +30 -0
  193. package/dist/es5/xlsx/xform/drawing/sp-pr.js.map +1 -0
  194. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js +62 -0
  195. package/dist/es5/xlsx/xform/drawing/two-cell-anchor-xform.js.map +1 -0
  196. package/dist/es5/xlsx/xform/list-xform.js +91 -0
  197. package/dist/es5/xlsx/xform/list-xform.js.map +1 -0
  198. package/dist/es5/xlsx/xform/pivot-table/cache-field.js +48 -0
  199. package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -0
  200. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +73 -0
  201. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -0
  202. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +93 -0
  203. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -0
  204. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +176 -0
  205. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -0
  206. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +40 -0
  207. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -0
  208. package/dist/es5/xlsx/xform/sheet/cell-xform.js +450 -0
  209. package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -0
  210. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +275 -0
  211. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -0
  212. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js +25 -0
  213. package/dist/es5/xlsx/xform/sheet/cf/cfvo-xform.js.map +1 -0
  214. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js +38 -0
  215. package/dist/es5/xlsx/xform/sheet/cf/color-scale-xform.js.map +1 -0
  216. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js +45 -0
  217. package/dist/es5/xlsx/xform/sheet/cf/conditional-formatting-xform.js.map +1 -0
  218. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js +77 -0
  219. package/dist/es5/xlsx/xform/sheet/cf/conditional-formattings-xform.js.map +1 -0
  220. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js +42 -0
  221. package/dist/es5/xlsx/xform/sheet/cf/databar-xform.js.map +1 -0
  222. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js +71 -0
  223. package/dist/es5/xlsx/xform/sheet/cf/ext-lst-ref-xform.js.map +1 -0
  224. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js +22 -0
  225. package/dist/es5/xlsx/xform/sheet/cf/formula-xform.js.map +1 -0
  226. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js +43 -0
  227. package/dist/es5/xlsx/xform/sheet/cf/icon-set-xform.js.map +1 -0
  228. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js +28 -0
  229. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-icon-ext-xform.js.map +1 -0
  230. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +88 -0
  231. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -0
  232. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js +38 -0
  233. package/dist/es5/xlsx/xform/sheet/cf-ext/cfvo-ext-xform.js.map +1 -0
  234. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js +52 -0
  235. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formatting-ext-xform.js.map +1 -0
  236. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js +43 -0
  237. package/dist/es5/xlsx/xform/sheet/cf-ext/conditional-formattings-ext-xform.js.map +1 -0
  238. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js +75 -0
  239. package/dist/es5/xlsx/xform/sheet/cf-ext/databar-ext-xform.js.map +1 -0
  240. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js +22 -0
  241. package/dist/es5/xlsx/xform/sheet/cf-ext/f-ext-xform.js.map +1 -0
  242. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js +66 -0
  243. package/dist/es5/xlsx/xform/sheet/cf-ext/icon-set-ext-xform.js.map +1 -0
  244. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js +22 -0
  245. package/dist/es5/xlsx/xform/sheet/cf-ext/sqref-ext-xform.js.map +1 -0
  246. package/dist/es5/xlsx/xform/sheet/col-xform.js +78 -0
  247. package/dist/es5/xlsx/xform/sheet/col-xform.js.map +1 -0
  248. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +247 -0
  249. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -0
  250. package/dist/es5/xlsx/xform/sheet/dimension-xform.js +28 -0
  251. package/dist/es5/xlsx/xform/sheet/dimension-xform.js.map +1 -0
  252. package/dist/es5/xlsx/xform/sheet/drawing-xform.js +32 -0
  253. package/dist/es5/xlsx/xform/sheet/drawing-xform.js.map +1 -0
  254. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js +69 -0
  255. package/dist/es5/xlsx/xform/sheet/ext-lst-xform.js.map +1 -0
  256. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js +126 -0
  257. package/dist/es5/xlsx/xform/sheet/header-footer-xform.js.map +1 -0
  258. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js +50 -0
  259. package/dist/es5/xlsx/xform/sheet/hyperlink-xform.js.map +1 -0
  260. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js +26 -0
  261. package/dist/es5/xlsx/xform/sheet/merge-cell-xform.js.map +1 -0
  262. package/dist/es5/xlsx/xform/sheet/merges.js +52 -0
  263. package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -0
  264. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js +35 -0
  265. package/dist/es5/xlsx/xform/sheet/outline-properties-xform.js.map +1 -0
  266. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js +24 -0
  267. package/dist/es5/xlsx/xform/sheet/page-breaks-xform.js.map +1 -0
  268. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js +46 -0
  269. package/dist/es5/xlsx/xform/sheet/page-margins-xform.js.map +1 -0
  270. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js +32 -0
  271. package/dist/es5/xlsx/xform/sheet/page-setup-properties-xform.js.map +1 -0
  272. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js +99 -0
  273. package/dist/es5/xlsx/xform/sheet/page-setup-xform.js.map +1 -0
  274. package/dist/es5/xlsx/xform/sheet/picture-xform.js +32 -0
  275. package/dist/es5/xlsx/xform/sheet/picture-xform.js.map +1 -0
  276. package/dist/es5/xlsx/xform/sheet/print-options-xform.js +45 -0
  277. package/dist/es5/xlsx/xform/sheet/print-options-xform.js.map +1 -0
  278. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js +37 -0
  279. package/dist/es5/xlsx/xform/sheet/row-breaks-xform.js.map +1 -0
  280. package/dist/es5/xlsx/xform/sheet/row-xform.js +128 -0
  281. package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -0
  282. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js +51 -0
  283. package/dist/es5/xlsx/xform/sheet/sheet-format-properties-xform.js.map +1 -0
  284. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js +83 -0
  285. package/dist/es5/xlsx/xform/sheet/sheet-properties-xform.js.map +1 -0
  286. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js +84 -0
  287. package/dist/es5/xlsx/xform/sheet/sheet-protection-xform.js.map +1 -0
  288. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js +190 -0
  289. package/dist/es5/xlsx/xform/sheet/sheet-view-xform.js.map +1 -0
  290. package/dist/es5/xlsx/xform/sheet/table-part-xform.js +32 -0
  291. package/dist/es5/xlsx/xform/sheet/table-part-xform.js.map +1 -0
  292. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +522 -0
  293. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -0
  294. package/dist/es5/xlsx/xform/simple/boolean-xform.js +27 -0
  295. package/dist/es5/xlsx/xform/simple/boolean-xform.js.map +1 -0
  296. package/dist/es5/xlsx/xform/simple/date-xform.js +58 -0
  297. package/dist/es5/xlsx/xform/simple/date-xform.js.map +1 -0
  298. package/dist/es5/xlsx/xform/simple/float-xform.js +47 -0
  299. package/dist/es5/xlsx/xform/simple/float-xform.js.map +1 -0
  300. package/dist/es5/xlsx/xform/simple/integer-xform.js +53 -0
  301. package/dist/es5/xlsx/xform/simple/integer-xform.js.map +1 -0
  302. package/dist/es5/xlsx/xform/simple/string-xform.js +47 -0
  303. package/dist/es5/xlsx/xform/simple/string-xform.js.map +1 -0
  304. package/dist/es5/xlsx/xform/static-xform.js +61 -0
  305. package/dist/es5/xlsx/xform/static-xform.js.map +1 -0
  306. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js +98 -0
  307. package/dist/es5/xlsx/xform/strings/phonetic-text-xform.js.map +1 -0
  308. package/dist/es5/xlsx/xform/strings/rich-text-xform.js +92 -0
  309. package/dist/es5/xlsx/xform/strings/rich-text-xform.js.map +1 -0
  310. package/dist/es5/xlsx/xform/strings/shared-string-xform.js +99 -0
  311. package/dist/es5/xlsx/xform/strings/shared-string-xform.js.map +1 -0
  312. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +114 -0
  313. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -0
  314. package/dist/es5/xlsx/xform/strings/text-xform.js +39 -0
  315. package/dist/es5/xlsx/xform/strings/text-xform.js.map +1 -0
  316. package/dist/es5/xlsx/xform/style/alignment-xform.js +139 -0
  317. package/dist/es5/xlsx/xform/style/alignment-xform.js.map +1 -0
  318. package/dist/es5/xlsx/xform/style/border-xform.js +185 -0
  319. package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -0
  320. package/dist/es5/xlsx/xform/style/color-xform.js +66 -0
  321. package/dist/es5/xlsx/xform/style/color-xform.js.map +1 -0
  322. package/dist/es5/xlsx/xform/style/dxf-xform.js +106 -0
  323. package/dist/es5/xlsx/xform/style/dxf-xform.js.map +1 -0
  324. package/dist/es5/xlsx/xform/style/fill-xform.js +307 -0
  325. package/dist/es5/xlsx/xform/style/fill-xform.js.map +1 -0
  326. package/dist/es5/xlsx/xform/style/font-xform.js +175 -0
  327. package/dist/es5/xlsx/xform/style/font-xform.js.map +1 -0
  328. package/dist/es5/xlsx/xform/style/numfmt-xform.js +58 -0
  329. package/dist/es5/xlsx/xform/style/numfmt-xform.js.map +1 -0
  330. package/dist/es5/xlsx/xform/style/protection-xform.js +53 -0
  331. package/dist/es5/xlsx/xform/style/protection-xform.js.map +1 -0
  332. package/dist/es5/xlsx/xform/style/style-xform.js +118 -0
  333. package/dist/es5/xlsx/xform/style/style-xform.js.map +1 -0
  334. package/dist/es5/xlsx/xform/style/styles-xform.js +611 -0
  335. package/dist/es5/xlsx/xform/style/styles-xform.js.map +1 -0
  336. package/dist/es5/xlsx/xform/style/underline-xform.js +46 -0
  337. package/dist/es5/xlsx/xform/style/underline-xform.js.map +1 -0
  338. package/dist/es5/xlsx/xform/table/auto-filter-xform.js +75 -0
  339. package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -0
  340. package/dist/es5/xlsx/xform/table/custom-filter-xform.js +30 -0
  341. package/dist/es5/xlsx/xform/table/custom-filter-xform.js.map +1 -0
  342. package/dist/es5/xlsx/xform/table/filter-column-xform.js +89 -0
  343. package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -0
  344. package/dist/es5/xlsx/xform/table/filter-xform.js +28 -0
  345. package/dist/es5/xlsx/xform/table/filter-xform.js.map +1 -0
  346. package/dist/es5/xlsx/xform/table/table-column-xform.js +42 -0
  347. package/dist/es5/xlsx/xform/table/table-column-xform.js.map +1 -0
  348. package/dist/es5/xlsx/xform/table/table-style-info-xform.js +40 -0
  349. package/dist/es5/xlsx/xform/table/table-style-info-xform.js.map +1 -0
  350. package/dist/es5/xlsx/xform/table/table-xform.js +122 -0
  351. package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -0
  352. package/dist/es5/xlsx/xlsx.js +775 -0
  353. package/dist/es5/xlsx/xlsx.js.map +1 -0
  354. package/dist/es5/xlsx/xml/theme1.js +5 -0
  355. package/dist/es5/xlsx/xml/theme1.js.map +1 -0
  356. package/dx-excel-fork.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/dx-exceljs-fork.bare.js +13 -0
  379. package/lib/dx-exceljs-fork.browser.js +36 -0
  380. package/lib/dx-exceljs-fork.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 +365 -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 +147 -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');\nconst utils = require('../../../utils/utils');\n\nconst CellXform = require('./cell-xform');\n\nclass RowXform extends BaseXform {\n constructor(options) {\n super();\n\n this.maxItems = options && options.maxItems;\n this.map = {\n c: new CellXform(),\n };\n }\n\n get tag() {\n return 'row';\n }\n\n prepare(model, options) {\n const styleId = options.styles.addStyleModel(model.style);\n if (styleId) {\n model.styleId = styleId;\n }\n const cellXform = this.map.c;\n model.cells.forEach(cellModel => {\n cellXform.prepare(cellModel, options);\n });\n }\n\n render(xmlStream, model, options) {\n xmlStream.openNode('row');\n xmlStream.addAttribute('r', model.number);\n if (model.height) {\n xmlStream.addAttribute('ht', model.height);\n xmlStream.addAttribute('customHeight', '1');\n }\n if (model.hidden) {\n xmlStream.addAttribute('hidden', '1');\n }\n if (model.min > 0 && model.max > 0 && model.min <= model.max) {\n xmlStream.addAttribute('spans', `${model.min}:${model.max}`);\n }\n if (model.styleId) {\n xmlStream.addAttribute('s', model.styleId);\n xmlStream.addAttribute('customFormat', '1');\n }\n xmlStream.addAttribute('x14ac:dyDescent', '0.25');\n if (model.outlineLevel) {\n xmlStream.addAttribute('outlineLevel', model.outlineLevel);\n }\n if (model.collapsed) {\n xmlStream.addAttribute('collapsed', '1');\n }\n\n const cellXform = this.map.c;\n model.cells.forEach(cellModel => {\n cellXform.render(xmlStream, cellModel, options);\n });\n\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n if (node.name === 'row') {\n this.numRowsSeen += 1;\n const spans = node.attributes.spans\n ? node.attributes.spans.split(':').map(span => parseInt(span, 10))\n : [undefined, undefined];\n const model = (this.model = {\n number: parseInt(node.attributes.r, 10),\n min: spans[0],\n max: spans[1],\n cells: [],\n });\n if (node.attributes.s) {\n model.styleId = parseInt(node.attributes.s, 10);\n }\n if (utils.parseBoolean(node.attributes.hidden)) {\n model.hidden = true;\n }\n if (utils.parseBoolean(node.attributes.bestFit)) {\n model.bestFit = true;\n }\n if (node.attributes.ht) {\n model.height = parseFloat(node.attributes.ht);\n }\n if (node.attributes.outlineLevel) {\n model.outlineLevel = parseInt(node.attributes.outlineLevel, 10);\n }\n if (utils.parseBoolean(node.attributes.collapsed)) {\n model.collapsed = true;\n }\n return true;\n }\n\n this.parser = this.map[node.name];\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n return false;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n }\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.model.cells.push(this.parser.model);\n if (this.maxItems && this.model.cells.length > this.maxItems) {\n throw new Error(`Max column count (${this.maxItems}) exceeded`);\n }\n this.parser = undefined;\n }\n return true;\n }\n return false;\n }\n\n reconcile(model, options) {\n model.style = model.styleId ? options.styles.getStyleModel(model.styleId) : {};\n if (model.styleId !== undefined) {\n model.styleId = undefined;\n }\n\n const cellXform = this.map.c;\n model.cells.forEach(cellModel => {\n cellXform.reconcile(cellModel, options);\n });\n }\n}\n\nmodule.exports = RowXform;\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');\nconst BaseXform = require('../base-xform');\n\nclass SheetFormatPropertiesXform extends BaseXform {\n get tag() {\n return 'sheetFormatPr';\n }\n\n render(xmlStream, model) {\n if (model) {\n const attributes = {\n defaultRowHeight: model.defaultRowHeight,\n outlineLevelRow: model.outlineLevelRow,\n outlineLevelCol: model.outlineLevelCol,\n 'x14ac:dyDescent': model.dyDescent,\n };\n if (model.defaultColWidth) {\n attributes.defaultColWidth = model.defaultColWidth;\n }\n\n // default value for 'defaultRowHeight' is 15, this should not be 'custom'\n if (!model.defaultRowHeight || model.defaultRowHeight !== 15) {\n attributes.customHeight = '1';\n }\n\n if (_.some(attributes, value => value !== undefined)) {\n xmlStream.leafNode('sheetFormatPr', attributes);\n }\n }\n }\n\n parseOpen(node) {\n if (node.name === 'sheetFormatPr') {\n this.model = {\n defaultRowHeight: parseFloat(node.attributes.defaultRowHeight || '0'),\n dyDescent: parseFloat(node.attributes['x14ac:dyDescent'] || '0'),\n outlineLevelRow: parseInt(node.attributes.outlineLevelRow || '0', 10),\n outlineLevelCol: parseInt(node.attributes.outlineLevelCol || '0', 10),\n };\n if (node.attributes.defaultColWidth) {\n this.model.defaultColWidth = parseFloat(node.attributes.defaultColWidth);\n }\n return true;\n }\n return false;\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = SheetFormatPropertiesXform;\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');\nconst ColorXform = require('../style/color-xform');\nconst PageSetupPropertiesXform = require('./page-setup-properties-xform');\nconst OutlinePropertiesXform = require('./outline-properties-xform');\n\nclass SheetPropertiesXform extends BaseXform {\n constructor() {\n super();\n\n this.map = {\n tabColor: new ColorXform('tabColor'),\n pageSetUpPr: new PageSetupPropertiesXform(),\n outlinePr: new OutlinePropertiesXform(),\n };\n }\n\n get tag() {\n return 'sheetPr';\n }\n\n render(xmlStream, model) {\n if (model) {\n xmlStream.addRollback();\n xmlStream.openNode('sheetPr');\n\n let inner = false;\n inner = this.map.tabColor.render(xmlStream, model.tabColor) || inner;\n inner = this.map.pageSetUpPr.render(xmlStream, model.pageSetup) || inner;\n inner = this.map.outlinePr.render(xmlStream, model.outlineProperties) || inner;\n\n if (inner) {\n xmlStream.closeNode();\n xmlStream.commit();\n } else {\n xmlStream.rollback();\n }\n }\n }\n\n parseOpen(node) {\n if (this.parser) {\n this.parser.parseOpen(node);\n return true;\n }\n if (node.name === this.tag) {\n this.reset();\n return true;\n }\n if (this.map[node.name]) {\n this.parser = this.map[node.name];\n this.parser.parseOpen(node);\n return true;\n }\n return false;\n }\n\n parseText(text) {\n if (this.parser) {\n this.parser.parseText(text);\n return true;\n }\n return false;\n }\n\n parseClose(name) {\n if (this.parser) {\n if (!this.parser.parseClose(name)) {\n this.parser = undefined;\n }\n return true;\n }\n if (this.map.tabColor.model || this.map.pageSetUpPr.model || this.map.outlinePr.model) {\n this.model = {};\n if (this.map.tabColor.model) {\n this.model.tabColor = this.map.tabColor.model;\n }\n if (this.map.pageSetUpPr.model) {\n this.model.pageSetup = this.map.pageSetUpPr.model;\n }\n if (this.map.outlinePr.model) {\n this.model.outlineProperties = this.map.outlinePr.model;\n }\n } else {\n this.model = null;\n }\n return false;\n }\n}\n\nmodule.exports = SheetPropertiesXform;\n"],"mappings":";;AAAA,MAAMA,SAAS,GAAGC,OAAO,CAAC,eAAe,CAAC;AAC1C,MAAMC,UAAU,GAAGD,OAAO,CAAC,sBAAsB,CAAC;AAClD,MAAME,wBAAwB,GAAGF,OAAO,CAAC,+BAA+B,CAAC;AACzE,MAAMG,sBAAsB,GAAGH,OAAO,CAAC,4BAA4B,CAAC;AAEpE,MAAMI,oBAAoB,SAASL,SAAS,CAAC;EAC3CM,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAEP,IAAI,CAACC,GAAG,GAAG;MACTC,QAAQ,EAAE,IAAIN,UAAU,CAAC,UAAU,CAAC;MACpCO,WAAW,EAAE,IAAIN,wBAAwB,CAAC,CAAC;MAC3CO,SAAS,EAAE,IAAIN,sBAAsB,CAAC;IACxC,CAAC;EACH;EAEA,IAAIO,GAAGA,CAAA,EAAG;IACR,OAAO,SAAS;EAClB;EAEAC,MAAMA,CAACC,SAAS,EAAEC,KAAK,EAAE;IACvB,IAAIA,KAAK,EAAE;MACTD,SAAS,CAACE,WAAW,CAAC,CAAC;MACvBF,SAAS,CAACG,QAAQ,CAAC,SAAS,CAAC;MAE7B,IAAIC,KAAK,GAAG,KAAK;MACjBA,KAAK,GAAG,IAAI,CAACV,GAAG,CAACC,QAAQ,CAACI,MAAM,CAACC,SAAS,EAAEC,KAAK,CAACN,QAAQ,CAAC,IAAIS,KAAK;MACpEA,KAAK,GAAG,IAAI,CAACV,GAAG,CAACE,WAAW,CAACG,MAAM,CAACC,SAAS,EAAEC,KAAK,CAACI,SAAS,CAAC,IAAID,KAAK;MACxEA,KAAK,GAAG,IAAI,CAACV,GAAG,CAACG,SAAS,CAACE,MAAM,CAACC,SAAS,EAAEC,KAAK,CAACK,iBAAiB,CAAC,IAAIF,KAAK;MAE9E,IAAIA,KAAK,EAAE;QACTJ,SAAS,CAACO,SAAS,CAAC,CAAC;QACrBP,SAAS,CAACQ,MAAM,CAAC,CAAC;MACpB,CAAC,MAAM;QACLR,SAAS,CAACS,QAAQ,CAAC,CAAC;MACtB;IACF;EACF;EAEAC,SAASA,CAACC,IAAI,EAAE;IACd,IAAI,IAAI,CAACC,MAAM,EAAE;MACf,IAAI,CAACA,MAAM,CAACF,SAAS,CAACC,IAAI,CAAC;MAC3B,OAAO,IAAI;IACb;IACA,IAAIA,IAAI,CAACE,IAAI,KAAK,IAAI,CAACf,GAAG,EAAE;MAC1B,IAAI,CAACgB,KAAK,CAAC,CAAC;MACZ,OAAO,IAAI;IACb;IACA,IAAI,IAAI,CAACpB,GAAG,CAACiB,IAAI,CAACE,IAAI,CAAC,EAAE;MACvB,IAAI,CAACD,MAAM,GAAG,IAAI,CAAClB,GAAG,CAACiB,IAAI,CAACE,IAAI,CAAC;MACjC,IAAI,CAACD,MAAM,CAACF,SAAS,CAACC,IAAI,CAAC;MAC3B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAI,SAASA,CAACC,IAAI,EAAE;IACd,IAAI,IAAI,CAACJ,MAAM,EAAE;MACf,IAAI,CAACA,MAAM,CAACG,SAAS,CAACC,IAAI,CAAC;MAC3B,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEAC,UAAUA,CAACJ,IAAI,EAAE;IACf,IAAI,IAAI,CAACD,MAAM,EAAE;MACf,IAAI,CAAC,IAAI,CAACA,MAAM,CAACK,UAAU,CAACJ,IAAI,CAAC,EAAE;QACjC,IAAI,CAACD,MAAM,GAAGM,SAAS;MACzB;MACA,OAAO,IAAI;IACb;IACA,IAAI,IAAI,CAACxB,GAAG,CAACC,QAAQ,CAACM,KAAK,IAAI,IAAI,CAACP,GAAG,CAACE,WAAW,CAACK,KAAK,IAAI,IAAI,CAACP,GAAG,CAACG,SAAS,CAACI,KAAK,EAAE;MACrF,IAAI,CAACA,KAAK,GAAG,CAAC,CAAC;MACf,IAAI,IAAI,CAACP,GAAG,CAACC,QAAQ,CAACM,KAAK,EAAE;QAC3B,IAAI,CAACA,KAAK,CAACN,QAAQ,GAAG,IAAI,CAACD,GAAG,CAACC,QAAQ,CAACM,KAAK;MAC/C;MACA,IAAI,IAAI,CAACP,GAAG,CAACE,WAAW,CAACK,KAAK,EAAE;QAC9B,IAAI,CAACA,KAAK,CAACI,SAAS,GAAG,IAAI,CAACX,GAAG,CAACE,WAAW,CAACK,KAAK;MACnD;MACA,IAAI,IAAI,CAACP,GAAG,CAACG,SAAS,CAACI,KAAK,EAAE;QAC5B,IAAI,CAACA,KAAK,CAACK,iBAAiB,GAAG,IAAI,CAACZ,GAAG,CAACG,SAAS,CAACI,KAAK;MACzD;IACF,CAAC,MAAM;MACL,IAAI,CAACA,KAAK,GAAG,IAAI;IACnB;IACA,OAAO,KAAK;EACd;AACF;AAEAkB,MAAM,CAACC,OAAO,GAAG5B,oBAAoB","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');\nconst BaseXform = require('../base-xform');\n\nfunction booleanToXml(model, value) {\n return model ? value : undefined;\n}\n\nfunction xmlToBoolean(value, equals) {\n return value === equals ? true : undefined;\n}\n\nclass SheetProtectionXform extends BaseXform {\n get tag() {\n return 'sheetProtection';\n }\n\n render(xmlStream, model) {\n if (model) {\n const attributes = {\n sheet: booleanToXml(model.sheet, '1'),\n selectLockedCells: model.selectLockedCells === false ? '1' : undefined,\n selectUnlockedCells: model.selectUnlockedCells === false ? '1' : undefined,\n formatCells: booleanToXml(model.formatCells, '0'),\n formatColumns: booleanToXml(model.formatColumns, '0'),\n formatRows: booleanToXml(model.formatRows, '0'),\n insertColumns: booleanToXml(model.insertColumns, '0'),\n insertRows: booleanToXml(model.insertRows, '0'),\n insertHyperlinks: booleanToXml(model.insertHyperlinks, '0'),\n deleteColumns: booleanToXml(model.deleteColumns, '0'),\n deleteRows: booleanToXml(model.deleteRows, '0'),\n sort: booleanToXml(model.sort, '0'),\n autoFilter: booleanToXml(model.autoFilter, '0'),\n pivotTables: booleanToXml(model.pivotTables, '0'),\n };\n if (model.sheet) {\n attributes.algorithmName = model.algorithmName;\n attributes.hashValue = model.hashValue;\n attributes.saltValue = model.saltValue;\n attributes.spinCount = model.spinCount;\n attributes.objects = booleanToXml(model.objects === false, '1');\n attributes.scenarios = booleanToXml(model.scenarios === false, '1');\n }\n if (_.some(attributes, value => value !== undefined)) {\n xmlStream.leafNode(this.tag, attributes);\n }\n }\n }\n\n parseOpen(node) {\n switch (node.name) {\n case this.tag:\n this.model = {\n sheet: xmlToBoolean(node.attributes.sheet, '1'),\n objects: node.attributes.objects === '1' ? false : undefined,\n scenarios: node.attributes.scenarios === '1' ? false : undefined,\n selectLockedCells: node.attributes.selectLockedCells === '1' ? false : undefined,\n selectUnlockedCells: node.attributes.selectUnlockedCells === '1' ? false : undefined,\n formatCells: xmlToBoolean(node.attributes.formatCells, '0'),\n formatColumns: xmlToBoolean(node.attributes.formatColumns, '0'),\n formatRows: xmlToBoolean(node.attributes.formatRows, '0'),\n insertColumns: xmlToBoolean(node.attributes.insertColumns, '0'),\n insertRows: xmlToBoolean(node.attributes.insertRows, '0'),\n insertHyperlinks: xmlToBoolean(node.attributes.insertHyperlinks, '0'),\n deleteColumns: xmlToBoolean(node.attributes.deleteColumns, '0'),\n deleteRows: xmlToBoolean(node.attributes.deleteRows, '0'),\n sort: xmlToBoolean(node.attributes.sort, '0'),\n autoFilter: xmlToBoolean(node.attributes.autoFilter, '0'),\n pivotTables: xmlToBoolean(node.attributes.pivotTables, '0'),\n };\n if (node.attributes.algorithmName) {\n this.model.algorithmName = node.attributes.algorithmName;\n this.model.hashValue = node.attributes.hashValue;\n this.model.saltValue = node.attributes.saltValue;\n this.model.spinCount = parseInt(node.attributes.spinCount, 10);\n }\n return true;\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose() {\n return false;\n }\n}\n\nmodule.exports = SheetProtectionXform;\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');\nconst BaseXform = require('../base-xform');\n\nconst VIEW_STATES = {\n frozen: 'frozen',\n frozenSplit: 'frozen',\n split: 'split',\n};\n\nclass SheetViewXform extends BaseXform {\n get tag() {\n return 'sheetView';\n }\n\n prepare(model) {\n switch (model.state) {\n case 'frozen':\n case 'split':\n break;\n default:\n model.state = 'normal';\n break;\n }\n }\n\n render(xmlStream, model) {\n xmlStream.openNode('sheetView', {\n workbookViewId: model.workbookViewId || 0,\n });\n const add = function(name, value, included) {\n if (included) {\n xmlStream.addAttribute(name, value);\n }\n };\n add('rightToLeft', '1', model.rightToLeft === true);\n add('tabSelected', '1', model.tabSelected);\n add('showRuler', '0', model.showRuler === false);\n add('showRowColHeaders', '0', model.showRowColHeaders === false);\n add('showGridLines', '0', model.showGridLines === false);\n add('zoomScale', model.zoomScale, model.zoomScale);\n add('zoomScaleNormal', model.zoomScaleNormal, model.zoomScaleNormal);\n add('view', model.style, model.style);\n\n let topLeftCell;\n let xSplit;\n let ySplit;\n let activePane;\n switch (model.state) {\n case 'frozen':\n xSplit = model.xSplit || 0;\n ySplit = model.ySplit || 0;\n topLeftCell = model.topLeftCell || colCache.getAddress(ySplit + 1, xSplit + 1).address;\n activePane =\n (model.xSplit && model.ySplit && 'bottomRight') ||\n (model.xSplit && 'topRight') ||\n 'bottomLeft';\n\n xmlStream.leafNode('pane', {\n xSplit: model.xSplit || undefined,\n ySplit: model.ySplit || undefined,\n topLeftCell,\n activePane,\n state: 'frozen',\n });\n xmlStream.leafNode('selection', {\n pane: activePane,\n activeCell: model.activeCell,\n sqref: model.activeCell,\n });\n break;\n case 'split':\n if (model.activePane === 'topLeft') {\n model.activePane = undefined;\n }\n xmlStream.leafNode('pane', {\n xSplit: model.xSplit || undefined,\n ySplit: model.ySplit || undefined,\n topLeftCell: model.topLeftCell,\n activePane: model.activePane,\n });\n xmlStream.leafNode('selection', {\n pane: model.activePane,\n activeCell: model.activeCell,\n sqref: model.activeCell,\n });\n break;\n case 'normal':\n if (model.activeCell) {\n xmlStream.leafNode('selection', {\n activeCell: model.activeCell,\n sqref: model.activeCell,\n });\n }\n break;\n default:\n break;\n }\n xmlStream.closeNode();\n }\n\n parseOpen(node) {\n switch (node.name) {\n case 'sheetView':\n this.sheetView = {\n workbookViewId: parseInt(node.attributes.workbookViewId, 10),\n rightToLeft: node.attributes.rightToLeft === '1',\n tabSelected: node.attributes.tabSelected === '1',\n showRuler: !(node.attributes.showRuler === '0'),\n showRowColHeaders: !(node.attributes.showRowColHeaders === '0'),\n showGridLines: !(node.attributes.showGridLines === '0'),\n zoomScale: parseInt(node.attributes.zoomScale || '100', 10),\n zoomScaleNormal: parseInt(node.attributes.zoomScaleNormal || '100', 10),\n style: node.attributes.view,\n };\n this.pane = undefined;\n this.selections = {};\n return true;\n\n case 'pane':\n this.pane = {\n xSplit: parseInt(node.attributes.xSplit || '0', 10),\n ySplit: parseInt(node.attributes.ySplit || '0', 10),\n topLeftCell: node.attributes.topLeftCell,\n activePane: node.attributes.activePane || 'topLeft',\n state: node.attributes.state,\n };\n return true;\n\n case 'selection': {\n const name = node.attributes.pane || 'topLeft';\n this.selections[name] = {\n pane: name,\n activeCell: node.attributes.activeCell,\n };\n return true;\n }\n\n default:\n return false;\n }\n }\n\n parseText() {}\n\n parseClose(name) {\n let model;\n let selection;\n switch (name) {\n case 'sheetView':\n if (this.sheetView && this.pane) {\n model = this.model = {\n workbookViewId: this.sheetView.workbookViewId,\n rightToLeft: this.sheetView.rightToLeft,\n state: VIEW_STATES[this.pane.state] || 'split', // split is default\n xSplit: this.pane.xSplit,\n ySplit: this.pane.ySplit,\n topLeftCell: this.pane.topLeftCell,\n showRuler: this.sheetView.showRuler,\n showRowColHeaders: this.sheetView.showRowColHeaders,\n showGridLines: this.sheetView.showGridLines,\n zoomScale: this.sheetView.zoomScale,\n zoomScaleNormal: this.sheetView.zoomScaleNormal,\n };\n if (this.model.state === 'split') {\n model.activePane = this.pane.activePane;\n }\n selection = this.selections[this.pane.activePane];\n if (selection && selection.activeCell) {\n model.activeCell = selection.activeCell;\n }\n if (this.sheetView.style) {\n model.style = this.sheetView.style;\n }\n } else {\n model = this.model = {\n workbookViewId: this.sheetView.workbookViewId,\n rightToLeft: this.sheetView.rightToLeft,\n state: 'normal',\n showRuler: this.sheetView.showRuler,\n showRowColHeaders: this.sheetView.showRowColHeaders,\n showGridLines: this.sheetView.showGridLines,\n zoomScale: this.sheetView.zoomScale,\n zoomScaleNormal: this.sheetView.zoomScaleNormal,\n };\n selection = this.selections.topLeft;\n if (selection && selection.activeCell) {\n model.activeCell = selection.activeCell;\n }\n if (this.sheetView.style) {\n model.style = this.sheetView.style;\n }\n }\n return false;\n default:\n return true;\n }\n }\n\n reconcile() {}\n}\n\nmodule.exports = SheetViewXform;\n"],"mappings":"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","ignoreList":[]}