devextreme-exceljs-fork 4.4.7 → 4.4.8

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 (109) hide show
  1. package/dist/dx-exceljs-fork.bare.js +445 -541
  2. package/dist/dx-exceljs-fork.bare.js.map +18 -18
  3. package/dist/dx-exceljs-fork.bare.min.js +7 -7
  4. package/dist/dx-exceljs-fork.bare.min.js.map +1 -1
  5. package/dist/dx-exceljs-fork.js +445 -541
  6. package/dist/dx-exceljs-fork.js.map +18 -18
  7. package/dist/dx-exceljs-fork.min.js +6 -6
  8. package/dist/dx-exceljs-fork.min.js.map +1 -1
  9. package/dist/es5/csv/csv.js +1 -1
  10. package/dist/es5/csv/csv.js.map +1 -1
  11. package/dist/es5/doc/cell.js +5 -5
  12. package/dist/es5/doc/cell.js.map +1 -1
  13. package/dist/es5/doc/pivot-table.js +1 -1
  14. package/dist/es5/doc/pivot-table.js.map +1 -1
  15. package/dist/es5/doc/range.js +7 -7
  16. package/dist/es5/doc/range.js.map +1 -1
  17. package/dist/es5/doc/row.js +1 -1
  18. package/dist/es5/doc/row.js.map +1 -1
  19. package/dist/es5/doc/table.js +10 -10
  20. package/dist/es5/doc/table.js.map +1 -1
  21. package/dist/es5/doc/worksheet.js +7 -6
  22. package/dist/es5/doc/worksheet.js.map +1 -1
  23. package/dist/es5/stream/xlsx/hyperlink-reader.js +26 -49
  24. package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -1
  25. package/dist/es5/stream/xlsx/sheet-comments-writer.js +6 -6
  26. package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -1
  27. package/dist/es5/stream/xlsx/sheet-rels-writer.js +6 -5
  28. package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -1
  29. package/dist/es5/stream/xlsx/workbook-reader.js +215 -320
  30. package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -1
  31. package/dist/es5/stream/xlsx/workbook-writer.js +8 -8
  32. package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -1
  33. package/dist/es5/stream/xlsx/worksheet-reader.js +265 -341
  34. package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -1
  35. package/dist/es5/stream/xlsx/worksheet-writer.js +9 -13
  36. package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -1
  37. package/dist/es5/utils/col-cache.js +14 -18
  38. package/dist/es5/utils/col-cache.js.map +1 -1
  39. package/dist/es5/utils/copy-style.js +12 -10
  40. package/dist/es5/utils/copy-style.js.map +1 -1
  41. package/dist/es5/utils/encryptor.js +1 -1
  42. package/dist/es5/utils/encryptor.js.map +1 -1
  43. package/dist/es5/utils/iterate-stream.js +26 -37
  44. package/dist/es5/utils/iterate-stream.js.map +1 -1
  45. package/dist/es5/utils/parse-sax.js +34 -67
  46. package/dist/es5/utils/parse-sax.js.map +1 -1
  47. package/dist/es5/utils/utils.js +1 -1
  48. package/dist/es5/utils/utils.js.map +1 -1
  49. package/dist/es5/utils/xml-stream.js +1 -1
  50. package/dist/es5/utils/xml-stream.js.map +1 -1
  51. package/dist/es5/xlsx/xform/base-xform.js +12 -35
  52. package/dist/es5/xlsx/xform/base-xform.js.map +1 -1
  53. package/dist/es5/xlsx/xform/book/defined-name-xform.js +2 -2
  54. package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -1
  55. package/dist/es5/xlsx/xform/book/workbook-xform.js +5 -5
  56. package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -1
  57. package/dist/es5/xlsx/xform/comment/comment-xform.js +4 -8
  58. package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -1
  59. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +1 -1
  60. package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -1
  61. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +1 -1
  62. package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -1
  63. package/dist/es5/xlsx/xform/core/content-types-xform.js +5 -5
  64. package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -1
  65. package/dist/es5/xlsx/xform/core/core-xform.js +2 -2
  66. package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -1
  67. package/dist/es5/xlsx/xform/core/relationships-xform.js +2 -2
  68. package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -1
  69. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +1 -1
  70. package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -1
  71. package/dist/es5/xlsx/xform/list-xform.js +1 -1
  72. package/dist/es5/xlsx/xform/list-xform.js.map +1 -1
  73. package/dist/es5/xlsx/xform/pivot-table/cache-field.js +8 -2
  74. package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -1
  75. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +3 -7
  76. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -1
  77. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +7 -11
  78. package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -1
  79. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +70 -10
  80. package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -1
  81. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +1 -1
  82. package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -1
  83. package/dist/es5/xlsx/xform/sheet/cell-xform.js +4 -8
  84. package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -1
  85. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +18 -22
  86. package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -1
  87. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -2
  88. package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -1
  89. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +11 -13
  90. package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -1
  91. package/dist/es5/xlsx/xform/sheet/merges.js +1 -1
  92. package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -1
  93. package/dist/es5/xlsx/xform/sheet/row-xform.js +2 -2
  94. package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -1
  95. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +10 -10
  96. package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -1
  97. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +2 -2
  98. package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -1
  99. package/dist/es5/xlsx/xform/style/border-xform.js +3 -7
  100. package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -1
  101. package/dist/es5/xlsx/xform/table/auto-filter-xform.js +2 -2
  102. package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -1
  103. package/dist/es5/xlsx/xform/table/filter-column-xform.js +1 -1
  104. package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -1
  105. package/dist/es5/xlsx/xform/table/table-xform.js +3 -7
  106. package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -1
  107. package/dist/es5/xlsx/xlsx.js +22 -45
  108. package/dist/es5/xlsx/xlsx.js.map +1 -1
  109. package/package.json +13 -14
@@ -1 +1 @@
1
- {"version":3,"file":"workbook-reader.js","names":["fs","require","EventEmitter","PassThrough","Readable","nodeStream","unzip","tmp","iterateStream","parseSax","StyleManager","WorkbookXform","RelationshipsXform","WorksheetReader","HyperlinkReader","setGracefulCleanup","WorkbookReader","constructor","input","options","arguments","length","undefined","_objectSpread","worksheets","sharedStrings","hyperlinks","styles","entries","init","_getStream","createReadStream","Error","concat","read","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_asyncIterator","parse","_step","next","done","eventType","value","emit","err","return","error","Symbol","asyncIterator","_this","_wrapAsyncGenerator","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_awaitAsyncGenerator","_this2","stream","zip","Parse","forceStream","pipe","waitingWorkSheets","_iteratorAbruptCompletion3","_didIteratorError3","_iteratorError3","_iterator3","_step3","entry","match","sheetNo","path","_parseRels","_parseWorkbook","_asyncGeneratorDelegate","_parseSharedStrings","_parseStyles","workbookRels","_parseWorksheet","Promise","resolve","reject","file","fd","tempFileCleanupCallback","push","tempStream","createWriteStream","on","_parseHyperlinks","autodrain","fileStream","_emitEntry","payload","xform","parseStream","type","workbook","properties","map","workbookPr","model","_this3","text","richText","index","font","_iteratorAbruptCompletion4","_didIteratorError4","_iteratorError4","_iterator4","_step4","events","node","name","bold","charset","parseInt","attributes","color","rgb","argb","val","theme","family","italic","outline","size","underline","vertAlign","iterator","id","worksheetReader","matchingRel","find","rel","Target","matchingSheet","sheets","sheet","rId","Id","state","hyperlinksReader","Options","module","exports"],"sources":["../../../../lib/stream/xlsx/workbook-reader.js"],"sourcesContent":["const fs = require('fs');\nconst {EventEmitter} = require('events');\nconst {PassThrough, Readable} = require('readable-stream');\nconst nodeStream = require('stream');\nconst unzip = require('unzipper');\nconst tmp = require('tmp');\nconst iterateStream = require('../../utils/iterate-stream');\nconst parseSax = require('../../utils/parse-sax');\n\nconst StyleManager = require('../../xlsx/xform/style/styles-xform');\nconst WorkbookXform = require('../../xlsx/xform/book/workbook-xform');\nconst RelationshipsXform = require('../../xlsx/xform/core/relationships-xform');\n\nconst WorksheetReader = require('./worksheet-reader');\nconst HyperlinkReader = require('./hyperlink-reader');\n\ntmp.setGracefulCleanup();\n\nclass WorkbookReader extends EventEmitter {\n constructor(input, options = {}) {\n super();\n\n this.input = input;\n\n this.options = {\n worksheets: 'emit',\n sharedStrings: 'cache',\n hyperlinks: 'ignore',\n styles: 'ignore',\n entries: 'ignore',\n ...options,\n };\n\n this.styles = new StyleManager();\n this.styles.init();\n }\n\n _getStream(input) {\n if (input instanceof nodeStream.Readable || input instanceof Readable) {\n return input;\n }\n if (typeof input === 'string') {\n return fs.createReadStream(input);\n }\n throw new Error(`Could not recognise input: ${input}`);\n }\n\n async read(input, options) {\n try {\n for await (const {eventType, value} of this.parse(input, options)) {\n switch (eventType) {\n case 'shared-strings':\n this.emit(eventType, value);\n break;\n case 'worksheet':\n this.emit(eventType, value);\n await value.read();\n break;\n case 'hyperlinks':\n this.emit(eventType, value);\n break;\n }\n }\n this.emit('end');\n this.emit('finished');\n } catch (error) {\n this.emit('error', error);\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const {eventType, value} of this.parse()) {\n if (eventType === 'worksheet') {\n yield value;\n }\n }\n }\n\n async *parse(input, options) {\n if (options) this.options = options;\n const stream = (this.stream = this._getStream(input || this.input));\n const zip = unzip.Parse({forceStream: true});\n stream.pipe(zip);\n\n // worksheets, deferred for parsing after shared strings reading\n const waitingWorkSheets = [];\n for await (const entry of zip) {\n let match;\n let sheetNo;\n switch (entry.path) {\n case '_rels/.rels':\n break;\n case 'xl/_rels/workbook.xml.rels':\n await this._parseRels(entry);\n break;\n case 'xl/workbook.xml':\n await this._parseWorkbook(entry);\n break;\n case 'xl/sharedStrings.xml':\n yield* this._parseSharedStrings(entry);\n break;\n case 'xl/styles.xml':\n await this._parseStyles(entry);\n break;\n default:\n if (entry.path.match(/xl\\/worksheets\\/sheet\\d+[.]xml/)) {\n match = entry.path.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/);\n sheetNo = match[1];\n if (this.sharedStrings && this.workbookRels) {\n yield* this._parseWorksheet(iterateStream(entry), sheetNo);\n } else {\n // create temp file for each worksheet\n await new Promise((resolve, reject) => {\n tmp.file((err, path, fd, tempFileCleanupCallback) => {\n if (err) {\n return reject(err);\n }\n waitingWorkSheets.push({sheetNo, path, tempFileCleanupCallback});\n\n const tempStream = fs.createWriteStream(path);\n tempStream.on('error', reject);\n entry.pipe(tempStream);\n return tempStream.on('finish', () => {\n return resolve();\n });\n });\n });\n }\n } else if (entry.path.match(/xl\\/worksheets\\/_rels\\/sheet\\d+[.]xml.rels/)) {\n match = entry.path.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/);\n sheetNo = match[1];\n yield* this._parseHyperlinks(iterateStream(entry), sheetNo);\n }\n break;\n }\n entry.autodrain();\n }\n\n for (const {sheetNo, path, tempFileCleanupCallback} of waitingWorkSheets) {\n let fileStream = fs.createReadStream(path);\n // TODO: Remove once node v8 is deprecated\n // Detect and upgrade old fileStreams\n if (!fileStream[Symbol.asyncIterator]) {\n fileStream = fileStream.pipe(new PassThrough());\n }\n yield* this._parseWorksheet(fileStream, sheetNo);\n tempFileCleanupCallback();\n }\n }\n\n _emitEntry(payload) {\n if (this.options.entries === 'emit') {\n this.emit('entry', payload);\n }\n }\n\n async _parseRels(entry) {\n const xform = new RelationshipsXform();\n this.workbookRels = await xform.parseStream(iterateStream(entry));\n }\n\n async _parseWorkbook(entry) {\n this._emitEntry({type: 'workbook'});\n\n const workbook = new WorkbookXform();\n await workbook.parseStream(iterateStream(entry));\n\n this.properties = workbook.map.workbookPr;\n this.model = workbook.model;\n }\n\n async *_parseSharedStrings(entry) {\n this._emitEntry({type: 'shared-strings'});\n switch (this.options.sharedStrings) {\n case 'cache':\n this.sharedStrings = [];\n break;\n case 'emit':\n break;\n default:\n return;\n }\n\n let text = null;\n let richText = [];\n let index = 0;\n let font = null;\n for await (const events of parseSax(iterateStream(entry))) {\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n const node = value;\n switch (node.name) {\n case 'b':\n font = font || {};\n font.bold = true;\n break;\n case 'charset':\n font = font || {};\n font.charset = parseInt(node.attributes.charset, 10);\n break;\n case 'color':\n font = font || {};\n font.color = {};\n if (node.attributes.rgb) {\n font.color.argb = node.attributes.argb;\n }\n if (node.attributes.val) {\n font.color.argb = node.attributes.val;\n }\n if (node.attributes.theme) {\n font.color.theme = node.attributes.theme;\n }\n break;\n case 'family':\n font = font || {};\n font.family = parseInt(node.attributes.val, 10);\n break;\n case 'i':\n font = font || {};\n font.italic = true;\n break;\n case 'outline':\n font = font || {};\n font.outline = true;\n break;\n case 'rFont':\n font = font || {};\n font.name = node.value;\n break;\n case 'si':\n font = null;\n richText = [];\n text = null;\n break;\n case 'sz':\n font = font || {};\n font.size = parseInt(node.attributes.val, 10);\n break;\n case 'strike':\n break;\n case 't':\n text = null;\n break;\n case 'u':\n font = font || {};\n font.underline = true;\n break;\n case 'vertAlign':\n font = font || {};\n font.vertAlign = node.attributes.val;\n break;\n }\n } else if (eventType === 'text') {\n text = text ? text + value : value;\n } else if (eventType === 'closetag') {\n const node = value;\n switch (node.name) {\n case 'r':\n richText.push({\n font,\n text,\n });\n\n font = null;\n text = null;\n break;\n case 'si':\n if (this.options.sharedStrings === 'cache') {\n this.sharedStrings.push(richText.length ? {richText} : text);\n } else if (this.options.sharedStrings === 'emit') {\n yield {index: index++, text: richText.length ? {richText} : text};\n }\n\n richText = [];\n font = null;\n text = null;\n break;\n }\n }\n }\n }\n }\n\n async _parseStyles(entry) {\n this._emitEntry({type: 'styles'});\n if (this.options.styles === 'cache') {\n this.styles = new StyleManager();\n await this.styles.parseStream(iterateStream(entry));\n }\n }\n\n *_parseWorksheet(iterator, sheetNo) {\n this._emitEntry({type: 'worksheet', id: sheetNo});\n const worksheetReader = new WorksheetReader({\n workbook: this,\n id: sheetNo,\n iterator,\n options: this.options,\n });\n\n const matchingRel = (this.workbookRels || []).find(rel => rel.Target === `worksheets/sheet${sheetNo}.xml`);\n const matchingSheet = matchingRel && (this.model.sheets || []).find(sheet => sheet.rId === matchingRel.Id);\n if (matchingSheet) {\n worksheetReader.id = matchingSheet.id;\n worksheetReader.name = matchingSheet.name;\n worksheetReader.state = matchingSheet.state;\n }\n if (this.options.worksheets === 'emit') {\n yield {eventType: 'worksheet', value: worksheetReader};\n }\n }\n\n *_parseHyperlinks(iterator, sheetNo) {\n this._emitEntry({type: 'hyperlinks', id: sheetNo});\n const hyperlinksReader = new HyperlinkReader({\n workbook: this,\n id: sheetNo,\n iterator,\n options: this.options,\n });\n if (this.options.hyperlinks === 'emit') {\n yield {eventType: 'hyperlinks', value: hyperlinksReader};\n }\n }\n}\n\n// for reference - these are the valid values for options\nWorkbookReader.Options = {\n worksheets: ['emit', 'ignore'],\n sharedStrings: ['cache', 'emit', 'ignore'],\n hyperlinks: ['cache', 'emit', 'ignore'],\n styles: ['cache', 'ignore'],\n entries: ['emit', 'ignore'],\n};\n\nmodule.exports = WorkbookReader;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"workbook-reader.js","names":["fs","require","EventEmitter","PassThrough","Readable","nodeStream","unzip","tmp","iterateStream","parseSax","StyleManager","WorkbookXform","RelationshipsXform","WorksheetReader","HyperlinkReader","setGracefulCleanup","WorkbookReader","constructor","input","options","arguments","length","undefined","worksheets","sharedStrings","hyperlinks","styles","entries","init","_getStream","createReadStream","Error","read","eventType","value","parse","emit","error","Symbol","asyncIterator","stream","zip","Parse","forceStream","pipe","waitingWorkSheets","entry","match","sheetNo","path","_parseRels","_parseWorkbook","_parseSharedStrings","_parseStyles","workbookRels","_parseWorksheet","Promise","resolve","reject","file","err","fd","tempFileCleanupCallback","push","tempStream","createWriteStream","on","_parseHyperlinks","autodrain","fileStream","_emitEntry","payload","xform","parseStream","type","workbook","properties","map","workbookPr","model","text","richText","index","font","events","node","name","bold","charset","parseInt","attributes","color","rgb","argb","val","theme","family","italic","outline","size","underline","vertAlign","iterator","id","worksheetReader","matchingRel","find","rel","Target","matchingSheet","sheets","sheet","rId","Id","state","hyperlinksReader","Options","module","exports"],"sources":["../../../../lib/stream/xlsx/workbook-reader.js"],"sourcesContent":["const fs = require('fs');\nconst {EventEmitter} = require('events');\nconst {PassThrough, Readable} = require('readable-stream');\nconst nodeStream = require('stream');\nconst unzip = require('unzipper');\nconst tmp = require('tmp');\nconst iterateStream = require('../../utils/iterate-stream');\nconst parseSax = require('../../utils/parse-sax');\n\nconst StyleManager = require('../../xlsx/xform/style/styles-xform');\nconst WorkbookXform = require('../../xlsx/xform/book/workbook-xform');\nconst RelationshipsXform = require('../../xlsx/xform/core/relationships-xform');\n\nconst WorksheetReader = require('./worksheet-reader');\nconst HyperlinkReader = require('./hyperlink-reader');\n\ntmp.setGracefulCleanup();\n\nclass WorkbookReader extends EventEmitter {\n constructor(input, options = {}) {\n super();\n\n this.input = input;\n\n this.options = {\n worksheets: 'emit',\n sharedStrings: 'cache',\n hyperlinks: 'ignore',\n styles: 'ignore',\n entries: 'ignore',\n ...options,\n };\n\n this.styles = new StyleManager();\n this.styles.init();\n }\n\n _getStream(input) {\n if (input instanceof nodeStream.Readable || input instanceof Readable) {\n return input;\n }\n if (typeof input === 'string') {\n return fs.createReadStream(input);\n }\n throw new Error(`Could not recognise input: ${input}`);\n }\n\n async read(input, options) {\n try {\n for await (const {eventType, value} of this.parse(input, options)) {\n switch (eventType) {\n case 'shared-strings':\n this.emit(eventType, value);\n break;\n case 'worksheet':\n this.emit(eventType, value);\n await value.read();\n break;\n case 'hyperlinks':\n this.emit(eventType, value);\n break;\n }\n }\n this.emit('end');\n this.emit('finished');\n } catch (error) {\n this.emit('error', error);\n }\n }\n\n async *[Symbol.asyncIterator]() {\n for await (const {eventType, value} of this.parse()) {\n if (eventType === 'worksheet') {\n yield value;\n }\n }\n }\n\n async *parse(input, options) {\n if (options) this.options = options;\n const stream = (this.stream = this._getStream(input || this.input));\n const zip = unzip.Parse({forceStream: true});\n stream.pipe(zip);\n\n // worksheets, deferred for parsing after shared strings reading\n const waitingWorkSheets = [];\n for await (const entry of zip) {\n let match;\n let sheetNo;\n switch (entry.path) {\n case '_rels/.rels':\n break;\n case 'xl/_rels/workbook.xml.rels':\n await this._parseRels(entry);\n break;\n case 'xl/workbook.xml':\n await this._parseWorkbook(entry);\n break;\n case 'xl/sharedStrings.xml':\n yield* this._parseSharedStrings(entry);\n break;\n case 'xl/styles.xml':\n await this._parseStyles(entry);\n break;\n default:\n if (entry.path.match(/xl\\/worksheets\\/sheet\\d+[.]xml/)) {\n match = entry.path.match(/xl\\/worksheets\\/sheet(\\d+)[.]xml/);\n sheetNo = match[1];\n if (this.sharedStrings && this.workbookRels) {\n yield* this._parseWorksheet(iterateStream(entry), sheetNo);\n } else {\n // create temp file for each worksheet\n await new Promise((resolve, reject) => {\n tmp.file((err, path, fd, tempFileCleanupCallback) => {\n if (err) {\n return reject(err);\n }\n waitingWorkSheets.push({sheetNo, path, tempFileCleanupCallback});\n\n const tempStream = fs.createWriteStream(path);\n tempStream.on('error', reject);\n entry.pipe(tempStream);\n return tempStream.on('finish', () => {\n return resolve();\n });\n });\n });\n }\n } else if (entry.path.match(/xl\\/worksheets\\/_rels\\/sheet\\d+[.]xml.rels/)) {\n match = entry.path.match(/xl\\/worksheets\\/_rels\\/sheet(\\d+)[.]xml.rels/);\n sheetNo = match[1];\n yield* this._parseHyperlinks(iterateStream(entry), sheetNo);\n }\n break;\n }\n entry.autodrain();\n }\n\n for (const {sheetNo, path, tempFileCleanupCallback} of waitingWorkSheets) {\n let fileStream = fs.createReadStream(path);\n // TODO: Remove once node v8 is deprecated\n // Detect and upgrade old fileStreams\n if (!fileStream[Symbol.asyncIterator]) {\n fileStream = fileStream.pipe(new PassThrough());\n }\n yield* this._parseWorksheet(fileStream, sheetNo);\n tempFileCleanupCallback();\n }\n }\n\n _emitEntry(payload) {\n if (this.options.entries === 'emit') {\n this.emit('entry', payload);\n }\n }\n\n async _parseRels(entry) {\n const xform = new RelationshipsXform();\n this.workbookRels = await xform.parseStream(iterateStream(entry));\n }\n\n async _parseWorkbook(entry) {\n this._emitEntry({type: 'workbook'});\n\n const workbook = new WorkbookXform();\n await workbook.parseStream(iterateStream(entry));\n\n this.properties = workbook.map.workbookPr;\n this.model = workbook.model;\n }\n\n async *_parseSharedStrings(entry) {\n this._emitEntry({type: 'shared-strings'});\n switch (this.options.sharedStrings) {\n case 'cache':\n this.sharedStrings = [];\n break;\n case 'emit':\n break;\n default:\n return;\n }\n\n let text = null;\n let richText = [];\n let index = 0;\n let font = null;\n for await (const events of parseSax(iterateStream(entry))) {\n for (const {eventType, value} of events) {\n if (eventType === 'opentag') {\n const node = value;\n switch (node.name) {\n case 'b':\n font = font || {};\n font.bold = true;\n break;\n case 'charset':\n font = font || {};\n font.charset = parseInt(node.attributes.charset, 10);\n break;\n case 'color':\n font = font || {};\n font.color = {};\n if (node.attributes.rgb) {\n font.color.argb = node.attributes.argb;\n }\n if (node.attributes.val) {\n font.color.argb = node.attributes.val;\n }\n if (node.attributes.theme) {\n font.color.theme = node.attributes.theme;\n }\n break;\n case 'family':\n font = font || {};\n font.family = parseInt(node.attributes.val, 10);\n break;\n case 'i':\n font = font || {};\n font.italic = true;\n break;\n case 'outline':\n font = font || {};\n font.outline = true;\n break;\n case 'rFont':\n font = font || {};\n font.name = node.value;\n break;\n case 'si':\n font = null;\n richText = [];\n text = null;\n break;\n case 'sz':\n font = font || {};\n font.size = parseInt(node.attributes.val, 10);\n break;\n case 'strike':\n break;\n case 't':\n text = null;\n break;\n case 'u':\n font = font || {};\n font.underline = true;\n break;\n case 'vertAlign':\n font = font || {};\n font.vertAlign = node.attributes.val;\n break;\n }\n } else if (eventType === 'text') {\n text = text ? text + value : value;\n } else if (eventType === 'closetag') {\n const node = value;\n switch (node.name) {\n case 'r':\n richText.push({\n font,\n text,\n });\n\n font = null;\n text = null;\n break;\n case 'si':\n if (this.options.sharedStrings === 'cache') {\n this.sharedStrings.push(richText.length ? {richText} : text);\n } else if (this.options.sharedStrings === 'emit') {\n yield {index: index++, text: richText.length ? {richText} : text};\n }\n\n richText = [];\n font = null;\n text = null;\n break;\n }\n }\n }\n }\n }\n\n async _parseStyles(entry) {\n this._emitEntry({type: 'styles'});\n if (this.options.styles === 'cache') {\n this.styles = new StyleManager();\n await this.styles.parseStream(iterateStream(entry));\n }\n }\n\n *_parseWorksheet(iterator, sheetNo) {\n this._emitEntry({type: 'worksheet', id: sheetNo});\n const worksheetReader = new WorksheetReader({\n workbook: this,\n id: sheetNo,\n iterator,\n options: this.options,\n });\n\n const matchingRel = (this.workbookRels || []).find(rel => rel.Target === `worksheets/sheet${sheetNo}.xml`);\n const matchingSheet = matchingRel && (this.model.sheets || []).find(sheet => sheet.rId === matchingRel.Id);\n if (matchingSheet) {\n worksheetReader.id = matchingSheet.id;\n worksheetReader.name = matchingSheet.name;\n worksheetReader.state = matchingSheet.state;\n }\n if (this.options.worksheets === 'emit') {\n yield {eventType: 'worksheet', value: worksheetReader};\n }\n }\n\n *_parseHyperlinks(iterator, sheetNo) {\n this._emitEntry({type: 'hyperlinks', id: sheetNo});\n const hyperlinksReader = new HyperlinkReader({\n workbook: this,\n id: sheetNo,\n iterator,\n options: this.options,\n });\n if (this.options.hyperlinks === 'emit') {\n yield {eventType: 'hyperlinks', value: hyperlinksReader};\n }\n }\n}\n\n// for reference - these are the valid values for options\nWorkbookReader.Options = {\n worksheets: ['emit', 'ignore'],\n sharedStrings: ['cache', 'emit', 'ignore'],\n hyperlinks: ['cache', 'emit', 'ignore'],\n styles: ['cache', 'ignore'],\n entries: ['emit', 'ignore'],\n};\n\nmodule.exports = WorkbookReader;\n"],"mappings":"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","ignoreList":[]}
@@ -109,7 +109,7 @@ class WorkbookWriter {
109
109
  const id = this.media.length;
110
110
  const medium = Object.assign({}, image, {
111
111
  type: 'image',
112
- name: "image".concat(id, ".").concat(image.extension)
112
+ name: `image${id}.${image.extension}`
113
113
  });
114
114
  this.media.push(medium);
115
115
  return id;
@@ -131,7 +131,7 @@ class WorkbookWriter {
131
131
  }, options.properties);
132
132
  }
133
133
  const id = this.nextId;
134
- name = name || "sheet".concat(id);
134
+ name = name || `sheet${id}`;
135
135
  const worksheet = new WorksheetWriter({
136
136
  id,
137
137
  name,
@@ -216,7 +216,7 @@ class WorkbookWriter {
216
216
  addMedia() {
217
217
  return Promise.all(this.media.map(medium => {
218
218
  if (medium.type === 'image') {
219
- const filename = "xl/media/".concat(medium.name);
219
+ const filename = `xl/media/${medium.name}`;
220
220
  if (medium.filename) {
221
221
  return this.zip.file(medium.filename, {
222
222
  name: filename
@@ -278,28 +278,28 @@ class WorkbookWriter {
278
278
  addWorkbookRels() {
279
279
  let count = 1;
280
280
  const relationships = [{
281
- Id: "rId".concat(count++),
281
+ Id: `rId${count++}`,
282
282
  Type: RelType.Styles,
283
283
  Target: 'styles.xml'
284
284
  }, {
285
- Id: "rId".concat(count++),
285
+ Id: `rId${count++}`,
286
286
  Type: RelType.Theme,
287
287
  Target: 'theme/theme1.xml'
288
288
  }];
289
289
  if (this.sharedStrings.count) {
290
290
  relationships.push({
291
- Id: "rId".concat(count++),
291
+ Id: `rId${count++}`,
292
292
  Type: RelType.SharedStrings,
293
293
  Target: 'sharedStrings.xml'
294
294
  });
295
295
  }
296
296
  this._worksheets.forEach(worksheet => {
297
297
  if (worksheet) {
298
- worksheet.rId = "rId".concat(count++);
298
+ worksheet.rId = `rId${count++}`;
299
299
  relationships.push({
300
300
  Id: worksheet.rId,
301
301
  Type: RelType.Worksheet,
302
- Target: "worksheets/sheet".concat(worksheet.id, ".xml")
302
+ Target: `worksheets/sheet${worksheet.id}.xml`
303
303
  });
304
304
  }
305
305
  });
@@ -1 +1 @@
1
- {"version":3,"file":"workbook-writer.js","names":["fs","require","Archiver","StreamBuf","RelType","StylesXform","SharedStrings","DefinedNames","CoreXform","RelationshipsXform","ContentTypesXform","AppXform","WorkbookXform","SharedStringsXform","WorksheetWriter","theme1Xml","WorkbookWriter","constructor","options","created","Date","modified","creator","lastModifiedBy","lastPrinted","useSharedStrings","sharedStrings","styles","useStyles","Mock","_definedNames","_worksheets","views","zipOptions","zip","media","commentRefs","stream","filename","createWriteStream","pipe","promise","Promise","all","addThemes","addOfficeRels","definedNames","_openStream","path","bufSize","batch","append","name","on","emit","_commitWorksheets","commitWorksheet","worksheet","committed","resolve","commit","promises","map","length","addMedia","addContentTypes","addApp","addCore","addSharedStrings","addStyles","addWorkbookRels","addWorkbook","_finalize","nextId","i","addImage","image","id","medium","Object","assign","type","concat","extension","push","getImage","addWorksheet","undefined","tabColor","console","trace","properties","workbook","state","pageSetup","autoFilter","headerFooter","getWorksheet","find","xml","xform","toXml","Id","Type","OfficeDocument","Target","CoreProperties","ExtenderProperties","model","worksheets","filter","Boolean","file","buffer","base64","dataimg64","content","substring","indexOf","Error","coreXform","count","sharedStringsXform","relationships","Styles","Theme","forEach","rId","Worksheet","calcProperties","prepare","reject","finalize","module","exports"],"sources":["../../../../lib/stream/xlsx/workbook-writer.js"],"sourcesContent":["const fs = require('fs');\nconst Archiver = require('archiver');\n\nconst StreamBuf = require('../../utils/stream-buf');\n\nconst RelType = require('../../xlsx/rel-type');\nconst StylesXform = require('../../xlsx/xform/style/styles-xform');\nconst SharedStrings = require('../../utils/shared-strings');\nconst DefinedNames = require('../../doc/defined-names');\n\nconst CoreXform = require('../../xlsx/xform/core/core-xform');\nconst RelationshipsXform = require('../../xlsx/xform/core/relationships-xform');\nconst ContentTypesXform = require('../../xlsx/xform/core/content-types-xform');\nconst AppXform = require('../../xlsx/xform/core/app-xform');\nconst WorkbookXform = require('../../xlsx/xform/book/workbook-xform');\nconst SharedStringsXform = require('../../xlsx/xform/strings/shared-strings-xform');\n\nconst WorksheetWriter = require('./worksheet-writer');\n\nconst theme1Xml = require('../../xlsx/xml/theme1.js');\n\nclass WorkbookWriter {\n constructor(options) {\n options = options || {};\n\n this.created = options.created || new Date();\n this.modified = options.modified || this.created;\n this.creator = options.creator || 'ExcelJS';\n this.lastModifiedBy = options.lastModifiedBy || 'ExcelJS';\n this.lastPrinted = options.lastPrinted;\n\n // using shared strings creates a smaller xlsx file but may use more memory\n this.useSharedStrings = options.useSharedStrings || false;\n this.sharedStrings = new SharedStrings();\n\n // style manager\n this.styles = options.useStyles ? new StylesXform(true) : new StylesXform.Mock(true);\n\n // defined names\n this._definedNames = new DefinedNames();\n\n this._worksheets = [];\n this.views = [];\n\n this.zipOptions = options.zip;\n\n this.media = [];\n this.commentRefs = [];\n\n this.zip = Archiver('zip', this.zipOptions);\n if (options.stream) {\n this.stream = options.stream;\n } else if (options.filename) {\n this.stream = fs.createWriteStream(options.filename);\n } else {\n this.stream = new StreamBuf();\n }\n this.zip.pipe(this.stream);\n\n // these bits can be added right now\n this.promise = Promise.all([this.addThemes(), this.addOfficeRels()]);\n }\n\n get definedNames() {\n return this._definedNames;\n }\n\n _openStream(path) {\n const stream = new StreamBuf({bufSize: 65536, batch: true});\n this.zip.append(stream, {name: path});\n stream.on('finish', () => {\n stream.emit('zipped');\n });\n return stream;\n }\n\n _commitWorksheets() {\n const commitWorksheet = function(worksheet) {\n if (!worksheet.committed) {\n return new Promise(resolve => {\n worksheet.stream.on('zipped', () => {\n resolve();\n });\n worksheet.commit();\n });\n }\n return Promise.resolve();\n };\n // if there are any uncommitted worksheets, commit them now and wait\n const promises = this._worksheets.map(commitWorksheet);\n if (promises.length) {\n return Promise.all(promises);\n }\n return Promise.resolve();\n }\n\n async commit() {\n // commit all worksheets, then add suplimentary files\n await this.promise;\n await this.addMedia();\n await this._commitWorksheets();\n await Promise.all([\n this.addContentTypes(),\n this.addApp(),\n this.addCore(),\n this.addSharedStrings(),\n this.addStyles(),\n this.addWorkbookRels(),\n ]);\n await this.addWorkbook();\n return this._finalize();\n }\n\n get nextId() {\n // find the next unique spot to add worksheet\n let i;\n for (i = 1; i < this._worksheets.length; i++) {\n if (!this._worksheets[i]) {\n return i;\n }\n }\n return this._worksheets.length || 1;\n }\n\n addImage(image) {\n const id = this.media.length;\n const medium = Object.assign({}, image, {type: 'image', name: `image${id}.${image.extension}`});\n this.media.push(medium);\n return id;\n }\n\n getImage(id) {\n return this.media[id];\n }\n\n addWorksheet(name, options) {\n // it's possible to add a worksheet with different than default\n // shared string handling\n // in fact, it's even possible to switch it mid-sheet\n options = options || {};\n const useSharedStrings =\n options.useSharedStrings !== undefined ? options.useSharedStrings : this.useSharedStrings;\n\n if (options.tabColor) {\n // eslint-disable-next-line no-console\n console.trace('tabColor option has moved to { properties: tabColor: {...} }');\n options.properties = Object.assign(\n {\n tabColor: options.tabColor,\n },\n options.properties\n );\n }\n\n const id = this.nextId;\n name = name || `sheet${id}`;\n\n const worksheet = new WorksheetWriter({\n id,\n name,\n workbook: this,\n useSharedStrings,\n properties: options.properties,\n state: options.state,\n pageSetup: options.pageSetup,\n views: options.views,\n autoFilter: options.autoFilter,\n headerFooter: options.headerFooter,\n });\n\n this._worksheets[id] = worksheet;\n return worksheet;\n }\n\n getWorksheet(id) {\n if (id === undefined) {\n return this._worksheets.find(() => true);\n }\n if (typeof id === 'number') {\n return this._worksheets[id];\n }\n if (typeof id === 'string') {\n return this._worksheets.find(worksheet => worksheet && worksheet.name === id);\n }\n return undefined;\n }\n\n addStyles() {\n return new Promise(resolve => {\n this.zip.append(this.styles.xml, {name: 'xl/styles.xml'});\n resolve();\n });\n }\n\n addThemes() {\n return new Promise(resolve => {\n this.zip.append(theme1Xml, {name: 'xl/theme/theme1.xml'});\n resolve();\n });\n }\n\n addOfficeRels() {\n return new Promise(resolve => {\n const xform = new RelationshipsXform();\n const xml = xform.toXml([\n {Id: 'rId1', Type: RelType.OfficeDocument, Target: 'xl/workbook.xml'},\n {Id: 'rId2', Type: RelType.CoreProperties, Target: 'docProps/core.xml'},\n {Id: 'rId3', Type: RelType.ExtenderProperties, Target: 'docProps/app.xml'},\n ]);\n this.zip.append(xml, {name: '/_rels/.rels'});\n resolve();\n });\n }\n\n addContentTypes() {\n return new Promise(resolve => {\n const model = {\n worksheets: this._worksheets.filter(Boolean),\n sharedStrings: this.sharedStrings,\n commentRefs: this.commentRefs,\n media: this.media,\n };\n const xform = new ContentTypesXform();\n const xml = xform.toXml(model);\n this.zip.append(xml, {name: '[Content_Types].xml'});\n resolve();\n });\n }\n\n addMedia() {\n return Promise.all(\n this.media.map(medium => {\n if (medium.type === 'image') {\n const filename = `xl/media/${medium.name}`;\n if (medium.filename) {\n return this.zip.file(medium.filename, {name: filename});\n }\n if (medium.buffer) {\n return this.zip.append(medium.buffer, {name: filename});\n }\n if (medium.base64) {\n const dataimg64 = medium.base64;\n const content = dataimg64.substring(dataimg64.indexOf(',') + 1);\n return this.zip.append(content, {name: filename, base64: true});\n }\n }\n throw new Error('Unsupported media');\n })\n );\n }\n\n addApp() {\n return new Promise(resolve => {\n const model = {\n worksheets: this._worksheets.filter(Boolean),\n };\n const xform = new AppXform();\n const xml = xform.toXml(model);\n this.zip.append(xml, {name: 'docProps/app.xml'});\n resolve();\n });\n }\n\n addCore() {\n return new Promise(resolve => {\n const coreXform = new CoreXform();\n const xml = coreXform.toXml(this);\n this.zip.append(xml, {name: 'docProps/core.xml'});\n resolve();\n });\n }\n\n addSharedStrings() {\n if (this.sharedStrings.count) {\n return new Promise(resolve => {\n const sharedStringsXform = new SharedStringsXform();\n const xml = sharedStringsXform.toXml(this.sharedStrings);\n this.zip.append(xml, {name: '/xl/sharedStrings.xml'});\n resolve();\n });\n }\n return Promise.resolve();\n }\n\n addWorkbookRels() {\n let count = 1;\n const relationships = [\n {Id: `rId${count++}`, Type: RelType.Styles, Target: 'styles.xml'},\n {Id: `rId${count++}`, Type: RelType.Theme, Target: 'theme/theme1.xml'},\n ];\n if (this.sharedStrings.count) {\n relationships.push({\n Id: `rId${count++}`,\n Type: RelType.SharedStrings,\n Target: 'sharedStrings.xml',\n });\n }\n this._worksheets.forEach(worksheet => {\n if (worksheet) {\n worksheet.rId = `rId${count++}`;\n relationships.push({\n Id: worksheet.rId,\n Type: RelType.Worksheet,\n Target: `worksheets/sheet${worksheet.id}.xml`,\n });\n }\n });\n return new Promise(resolve => {\n const xform = new RelationshipsXform();\n const xml = xform.toXml(relationships);\n this.zip.append(xml, {name: '/xl/_rels/workbook.xml.rels'});\n resolve();\n });\n }\n\n addWorkbook() {\n const {zip} = this;\n const model = {\n worksheets: this._worksheets.filter(Boolean),\n definedNames: this._definedNames.model,\n views: this.views,\n properties: {},\n calcProperties: {},\n };\n\n return new Promise(resolve => {\n const xform = new WorkbookXform();\n xform.prepare(model);\n zip.append(xform.toXml(model), {name: '/xl/workbook.xml'});\n resolve();\n });\n }\n\n _finalize() {\n return new Promise((resolve, reject) => {\n this.stream.on('error', reject);\n this.stream.on('finish', () => {\n resolve(this);\n });\n this.zip.on('error', reject);\n\n this.zip.finalize();\n });\n }\n}\n\nmodule.exports = WorkbookWriter;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"workbook-writer.js","names":["fs","require","Archiver","StreamBuf","RelType","StylesXform","SharedStrings","DefinedNames","CoreXform","RelationshipsXform","ContentTypesXform","AppXform","WorkbookXform","SharedStringsXform","WorksheetWriter","theme1Xml","WorkbookWriter","constructor","options","created","Date","modified","creator","lastModifiedBy","lastPrinted","useSharedStrings","sharedStrings","styles","useStyles","Mock","_definedNames","_worksheets","views","zipOptions","zip","media","commentRefs","stream","filename","createWriteStream","pipe","promise","Promise","all","addThemes","addOfficeRels","definedNames","_openStream","path","bufSize","batch","append","name","on","emit","_commitWorksheets","commitWorksheet","worksheet","committed","resolve","commit","promises","map","length","addMedia","addContentTypes","addApp","addCore","addSharedStrings","addStyles","addWorkbookRels","addWorkbook","_finalize","nextId","i","addImage","image","id","medium","Object","assign","type","extension","push","getImage","addWorksheet","undefined","tabColor","console","trace","properties","workbook","state","pageSetup","autoFilter","headerFooter","getWorksheet","find","xml","xform","toXml","Id","Type","OfficeDocument","Target","CoreProperties","ExtenderProperties","model","worksheets","filter","Boolean","file","buffer","base64","dataimg64","content","substring","indexOf","Error","coreXform","count","sharedStringsXform","relationships","Styles","Theme","forEach","rId","Worksheet","calcProperties","prepare","reject","finalize","module","exports"],"sources":["../../../../lib/stream/xlsx/workbook-writer.js"],"sourcesContent":["const fs = require('fs');\nconst Archiver = require('archiver');\n\nconst StreamBuf = require('../../utils/stream-buf');\n\nconst RelType = require('../../xlsx/rel-type');\nconst StylesXform = require('../../xlsx/xform/style/styles-xform');\nconst SharedStrings = require('../../utils/shared-strings');\nconst DefinedNames = require('../../doc/defined-names');\n\nconst CoreXform = require('../../xlsx/xform/core/core-xform');\nconst RelationshipsXform = require('../../xlsx/xform/core/relationships-xform');\nconst ContentTypesXform = require('../../xlsx/xform/core/content-types-xform');\nconst AppXform = require('../../xlsx/xform/core/app-xform');\nconst WorkbookXform = require('../../xlsx/xform/book/workbook-xform');\nconst SharedStringsXform = require('../../xlsx/xform/strings/shared-strings-xform');\n\nconst WorksheetWriter = require('./worksheet-writer');\n\nconst theme1Xml = require('../../xlsx/xml/theme1.js');\n\nclass WorkbookWriter {\n constructor(options) {\n options = options || {};\n\n this.created = options.created || new Date();\n this.modified = options.modified || this.created;\n this.creator = options.creator || 'ExcelJS';\n this.lastModifiedBy = options.lastModifiedBy || 'ExcelJS';\n this.lastPrinted = options.lastPrinted;\n\n // using shared strings creates a smaller xlsx file but may use more memory\n this.useSharedStrings = options.useSharedStrings || false;\n this.sharedStrings = new SharedStrings();\n\n // style manager\n this.styles = options.useStyles ? new StylesXform(true) : new StylesXform.Mock(true);\n\n // defined names\n this._definedNames = new DefinedNames();\n\n this._worksheets = [];\n this.views = [];\n\n this.zipOptions = options.zip;\n\n this.media = [];\n this.commentRefs = [];\n\n this.zip = Archiver('zip', this.zipOptions);\n if (options.stream) {\n this.stream = options.stream;\n } else if (options.filename) {\n this.stream = fs.createWriteStream(options.filename);\n } else {\n this.stream = new StreamBuf();\n }\n this.zip.pipe(this.stream);\n\n // these bits can be added right now\n this.promise = Promise.all([this.addThemes(), this.addOfficeRels()]);\n }\n\n get definedNames() {\n return this._definedNames;\n }\n\n _openStream(path) {\n const stream = new StreamBuf({bufSize: 65536, batch: true});\n this.zip.append(stream, {name: path});\n stream.on('finish', () => {\n stream.emit('zipped');\n });\n return stream;\n }\n\n _commitWorksheets() {\n const commitWorksheet = function(worksheet) {\n if (!worksheet.committed) {\n return new Promise(resolve => {\n worksheet.stream.on('zipped', () => {\n resolve();\n });\n worksheet.commit();\n });\n }\n return Promise.resolve();\n };\n // if there are any uncommitted worksheets, commit them now and wait\n const promises = this._worksheets.map(commitWorksheet);\n if (promises.length) {\n return Promise.all(promises);\n }\n return Promise.resolve();\n }\n\n async commit() {\n // commit all worksheets, then add suplimentary files\n await this.promise;\n await this.addMedia();\n await this._commitWorksheets();\n await Promise.all([\n this.addContentTypes(),\n this.addApp(),\n this.addCore(),\n this.addSharedStrings(),\n this.addStyles(),\n this.addWorkbookRels(),\n ]);\n await this.addWorkbook();\n return this._finalize();\n }\n\n get nextId() {\n // find the next unique spot to add worksheet\n let i;\n for (i = 1; i < this._worksheets.length; i++) {\n if (!this._worksheets[i]) {\n return i;\n }\n }\n return this._worksheets.length || 1;\n }\n\n addImage(image) {\n const id = this.media.length;\n const medium = Object.assign({}, image, {type: 'image', name: `image${id}.${image.extension}`});\n this.media.push(medium);\n return id;\n }\n\n getImage(id) {\n return this.media[id];\n }\n\n addWorksheet(name, options) {\n // it's possible to add a worksheet with different than default\n // shared string handling\n // in fact, it's even possible to switch it mid-sheet\n options = options || {};\n const useSharedStrings =\n options.useSharedStrings !== undefined ? options.useSharedStrings : this.useSharedStrings;\n\n if (options.tabColor) {\n // eslint-disable-next-line no-console\n console.trace('tabColor option has moved to { properties: tabColor: {...} }');\n options.properties = Object.assign(\n {\n tabColor: options.tabColor,\n },\n options.properties\n );\n }\n\n const id = this.nextId;\n name = name || `sheet${id}`;\n\n const worksheet = new WorksheetWriter({\n id,\n name,\n workbook: this,\n useSharedStrings,\n properties: options.properties,\n state: options.state,\n pageSetup: options.pageSetup,\n views: options.views,\n autoFilter: options.autoFilter,\n headerFooter: options.headerFooter,\n });\n\n this._worksheets[id] = worksheet;\n return worksheet;\n }\n\n getWorksheet(id) {\n if (id === undefined) {\n return this._worksheets.find(() => true);\n }\n if (typeof id === 'number') {\n return this._worksheets[id];\n }\n if (typeof id === 'string') {\n return this._worksheets.find(worksheet => worksheet && worksheet.name === id);\n }\n return undefined;\n }\n\n addStyles() {\n return new Promise(resolve => {\n this.zip.append(this.styles.xml, {name: 'xl/styles.xml'});\n resolve();\n });\n }\n\n addThemes() {\n return new Promise(resolve => {\n this.zip.append(theme1Xml, {name: 'xl/theme/theme1.xml'});\n resolve();\n });\n }\n\n addOfficeRels() {\n return new Promise(resolve => {\n const xform = new RelationshipsXform();\n const xml = xform.toXml([\n {Id: 'rId1', Type: RelType.OfficeDocument, Target: 'xl/workbook.xml'},\n {Id: 'rId2', Type: RelType.CoreProperties, Target: 'docProps/core.xml'},\n {Id: 'rId3', Type: RelType.ExtenderProperties, Target: 'docProps/app.xml'},\n ]);\n this.zip.append(xml, {name: '/_rels/.rels'});\n resolve();\n });\n }\n\n addContentTypes() {\n return new Promise(resolve => {\n const model = {\n worksheets: this._worksheets.filter(Boolean),\n sharedStrings: this.sharedStrings,\n commentRefs: this.commentRefs,\n media: this.media,\n };\n const xform = new ContentTypesXform();\n const xml = xform.toXml(model);\n this.zip.append(xml, {name: '[Content_Types].xml'});\n resolve();\n });\n }\n\n addMedia() {\n return Promise.all(\n this.media.map(medium => {\n if (medium.type === 'image') {\n const filename = `xl/media/${medium.name}`;\n if (medium.filename) {\n return this.zip.file(medium.filename, {name: filename});\n }\n if (medium.buffer) {\n return this.zip.append(medium.buffer, {name: filename});\n }\n if (medium.base64) {\n const dataimg64 = medium.base64;\n const content = dataimg64.substring(dataimg64.indexOf(',') + 1);\n return this.zip.append(content, {name: filename, base64: true});\n }\n }\n throw new Error('Unsupported media');\n })\n );\n }\n\n addApp() {\n return new Promise(resolve => {\n const model = {\n worksheets: this._worksheets.filter(Boolean),\n };\n const xform = new AppXform();\n const xml = xform.toXml(model);\n this.zip.append(xml, {name: 'docProps/app.xml'});\n resolve();\n });\n }\n\n addCore() {\n return new Promise(resolve => {\n const coreXform = new CoreXform();\n const xml = coreXform.toXml(this);\n this.zip.append(xml, {name: 'docProps/core.xml'});\n resolve();\n });\n }\n\n addSharedStrings() {\n if (this.sharedStrings.count) {\n return new Promise(resolve => {\n const sharedStringsXform = new SharedStringsXform();\n const xml = sharedStringsXform.toXml(this.sharedStrings);\n this.zip.append(xml, {name: '/xl/sharedStrings.xml'});\n resolve();\n });\n }\n return Promise.resolve();\n }\n\n addWorkbookRels() {\n let count = 1;\n const relationships = [\n {Id: `rId${count++}`, Type: RelType.Styles, Target: 'styles.xml'},\n {Id: `rId${count++}`, Type: RelType.Theme, Target: 'theme/theme1.xml'},\n ];\n if (this.sharedStrings.count) {\n relationships.push({\n Id: `rId${count++}`,\n Type: RelType.SharedStrings,\n Target: 'sharedStrings.xml',\n });\n }\n this._worksheets.forEach(worksheet => {\n if (worksheet) {\n worksheet.rId = `rId${count++}`;\n relationships.push({\n Id: worksheet.rId,\n Type: RelType.Worksheet,\n Target: `worksheets/sheet${worksheet.id}.xml`,\n });\n }\n });\n return new Promise(resolve => {\n const xform = new RelationshipsXform();\n const xml = xform.toXml(relationships);\n this.zip.append(xml, {name: '/xl/_rels/workbook.xml.rels'});\n resolve();\n });\n }\n\n addWorkbook() {\n const {zip} = this;\n const model = {\n worksheets: this._worksheets.filter(Boolean),\n definedNames: this._definedNames.model,\n views: this.views,\n properties: {},\n calcProperties: {},\n };\n\n return new Promise(resolve => {\n const xform = new WorkbookXform();\n xform.prepare(model);\n zip.append(xform.toXml(model), {name: '/xl/workbook.xml'});\n resolve();\n });\n }\n\n _finalize() {\n return new Promise((resolve, reject) => {\n this.stream.on('error', reject);\n this.stream.on('finish', () => {\n resolve(this);\n });\n this.zip.on('error', reject);\n\n this.zip.finalize();\n });\n }\n}\n\nmodule.exports = WorkbookWriter;\n"],"mappings":"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","ignoreList":[]}