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.
- package/dist/dx-exceljs-fork.bare.js +445 -541
- package/dist/dx-exceljs-fork.bare.js.map +18 -18
- package/dist/dx-exceljs-fork.bare.min.js +7 -7
- package/dist/dx-exceljs-fork.bare.min.js.map +1 -1
- package/dist/dx-exceljs-fork.js +445 -541
- package/dist/dx-exceljs-fork.js.map +18 -18
- package/dist/dx-exceljs-fork.min.js +6 -6
- package/dist/dx-exceljs-fork.min.js.map +1 -1
- package/dist/es5/csv/csv.js +1 -1
- package/dist/es5/csv/csv.js.map +1 -1
- package/dist/es5/doc/cell.js +5 -5
- package/dist/es5/doc/cell.js.map +1 -1
- package/dist/es5/doc/pivot-table.js +1 -1
- package/dist/es5/doc/pivot-table.js.map +1 -1
- package/dist/es5/doc/range.js +7 -7
- package/dist/es5/doc/range.js.map +1 -1
- package/dist/es5/doc/row.js +1 -1
- package/dist/es5/doc/row.js.map +1 -1
- package/dist/es5/doc/table.js +10 -10
- package/dist/es5/doc/table.js.map +1 -1
- package/dist/es5/doc/worksheet.js +7 -6
- package/dist/es5/doc/worksheet.js.map +1 -1
- package/dist/es5/stream/xlsx/hyperlink-reader.js +26 -49
- package/dist/es5/stream/xlsx/hyperlink-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/sheet-comments-writer.js +6 -6
- package/dist/es5/stream/xlsx/sheet-comments-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/sheet-rels-writer.js +6 -5
- package/dist/es5/stream/xlsx/sheet-rels-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-reader.js +215 -320
- package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-writer.js +8 -8
- package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-reader.js +265 -341
- package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-writer.js +9 -13
- package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -1
- package/dist/es5/utils/col-cache.js +14 -18
- package/dist/es5/utils/col-cache.js.map +1 -1
- package/dist/es5/utils/copy-style.js +12 -10
- package/dist/es5/utils/copy-style.js.map +1 -1
- package/dist/es5/utils/encryptor.js +1 -1
- package/dist/es5/utils/encryptor.js.map +1 -1
- package/dist/es5/utils/iterate-stream.js +26 -37
- package/dist/es5/utils/iterate-stream.js.map +1 -1
- package/dist/es5/utils/parse-sax.js +34 -67
- package/dist/es5/utils/parse-sax.js.map +1 -1
- package/dist/es5/utils/utils.js +1 -1
- package/dist/es5/utils/utils.js.map +1 -1
- package/dist/es5/utils/xml-stream.js +1 -1
- package/dist/es5/utils/xml-stream.js.map +1 -1
- package/dist/es5/xlsx/xform/base-xform.js +12 -35
- package/dist/es5/xlsx/xform/base-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/book/defined-name-xform.js +2 -2
- package/dist/es5/xlsx/xform/book/defined-name-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/book/workbook-xform.js +5 -5
- package/dist/es5/xlsx/xform/book/workbook-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/comment-xform.js +4 -8
- package/dist/es5/xlsx/xform/comment/comment-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/es5/xlsx/xform/comment/vml-shape-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js +1 -1
- package/dist/es5/xlsx/xform/comment/vml-textbox-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/content-types-xform.js +5 -5
- package/dist/es5/xlsx/xform/core/content-types-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/core-xform.js +2 -2
- package/dist/es5/xlsx/xform/core/core-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/core/relationships-xform.js +2 -2
- package/dist/es5/xlsx/xform/core/relationships-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js +1 -1
- package/dist/es5/xlsx/xform/drawing/c-nv-pr-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/list-xform.js +1 -1
- package/dist/es5/xlsx/xform/list-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js +8 -2
- package/dist/es5/xlsx/xform/pivot-table/cache-field.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +3 -7
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-definition-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js +7 -11
- package/dist/es5/xlsx/xform/pivot-table/pivot-cache-records-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js +70 -10
- package/dist/es5/xlsx/xform/pivot-table/pivot-table-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js +1 -1
- package/dist/es5/xlsx/xform/sheet/auto-filter-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cell-xform.js +4 -8
- package/dist/es5/xlsx/xform/sheet/cell-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js +18 -22
- package/dist/es5/xlsx/xform/sheet/cf/cf-rule-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +2 -2
- package/dist/es5/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +11 -13
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/merges.js +1 -1
- package/dist/es5/xlsx/xform/sheet/merges.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/row-xform.js +2 -2
- package/dist/es5/xlsx/xform/sheet/row-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js +10 -10
- package/dist/es5/xlsx/xform/sheet/worksheet-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js +2 -2
- package/dist/es5/xlsx/xform/strings/shared-strings-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/style/border-xform.js +3 -7
- package/dist/es5/xlsx/xform/style/border-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js +2 -2
- package/dist/es5/xlsx/xform/table/auto-filter-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/filter-column-xform.js +1 -1
- package/dist/es5/xlsx/xform/table/filter-column-xform.js.map +1 -1
- package/dist/es5/xlsx/xform/table/table-xform.js +3 -7
- package/dist/es5/xlsx/xform/table/table-xform.js.map +1 -1
- package/dist/es5/xlsx/xlsx.js +22 -45
- package/dist/es5/xlsx/xlsx.js.map +1 -1
- package/package.json +13 -14
package/dist/es5/doc/row.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.js","names":["_","require","Enums","colCache","Cell","Row","constructor","worksheet","number","_worksheet","_number","_cells","style","outlineLevel","commit","_commitRow","destroy","findCell","colNumber","getCellEx","address","cell","col","column","getColumn","getCell","getColumnKey","l2n","encodeAddress","row","splice","start","count","nKeep","_len","arguments","length","inserts","Array","_key","nExpand","nEnd","i","cSrc","cDst","value","_comment","undefined","eachCell","options","iteratee","includeEmpty","n","forEach","index","type","ValueType","Null","addPageBreak","lft","rght","ws","left","Math","max","right","pb","id","man","min","rowBreaks","push","values","offset","hasOwnProperty","item","eachColumnKey","key","hasValues","some","cellCount","actualCellCount","dimensions","_applyStyle","name","numFmt","font","alignment","protection","border","fill","hidden","_hidden","_outlineLevel","collapsed","properties","outlineLevelRow","model","cells","cellModel","height","Error","previousAddress","Types","Merge","decodeAddress","$col$row","concat","n2l","JSON","parse","stringify","module","exports"],"sources":["../../../lib/doc/row.js"],"sourcesContent":["'use strict';\n\nconst _ = require('../utils/under-dash');\n\nconst Enums = require('./enums');\nconst colCache = require('../utils/col-cache');\nconst Cell = require('./cell');\n\nclass Row {\n constructor(worksheet, number) {\n this._worksheet = worksheet;\n this._number = number;\n this._cells = [];\n this.style = {};\n this.outlineLevel = 0;\n }\n\n // return the row number\n get number() {\n return this._number;\n }\n\n get worksheet() {\n return this._worksheet;\n }\n\n // Inform Streaming Writer that this row (and all rows before it) are complete\n // and ready to write. Has no effect on Worksheet document\n commit() {\n this._worksheet._commitRow(this); // eslint-disable-line no-underscore-dangle\n }\n\n // helps GC by breaking cyclic references\n destroy() {\n delete this._worksheet;\n delete this._cells;\n delete this.style;\n }\n\n findCell(colNumber) {\n return this._cells[colNumber - 1];\n }\n\n // given {address, row, col}, find or create new cell\n getCellEx(address) {\n let cell = this._cells[address.col - 1];\n if (!cell) {\n const column = this._worksheet.getColumn(address.col);\n cell = new Cell(this, column, address.address);\n this._cells[address.col - 1] = cell;\n }\n return cell;\n }\n\n // get cell by key, letter or column number\n getCell(col) {\n if (typeof col === 'string') {\n // is it a key?\n const column = this._worksheet.getColumnKey(col);\n if (column) {\n col = column.number;\n } else {\n col = colCache.l2n(col);\n }\n }\n return (\n this._cells[col - 1] ||\n this.getCellEx({\n address: colCache.encodeAddress(this._number, col),\n row: this._number,\n col,\n })\n );\n }\n\n // remove cell(s) and shift all higher cells down by count\n splice(start, count, ...inserts) {\n const nKeep = start + count;\n const nExpand = inserts.length - count;\n const nEnd = this._cells.length;\n let i;\n let cSrc;\n let cDst;\n\n if (nExpand < 0) {\n // remove cells\n for (i = start + inserts.length; i <= nEnd; i++) {\n cDst = this._cells[i - 1];\n cSrc = this._cells[i - nExpand - 1];\n if (cSrc) {\n cDst = this.getCell(i);\n cDst.value = cSrc.value;\n cDst.style = cSrc.style;\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = cSrc._comment;\n } else if (cDst) {\n cDst.value = null;\n cDst.style = {};\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = undefined;\n }\n }\n } else if (nExpand > 0) {\n // insert new cells\n for (i = nEnd; i >= nKeep; i--) {\n cSrc = this._cells[i - 1];\n if (cSrc) {\n cDst = this.getCell(i + nExpand);\n cDst.value = cSrc.value;\n cDst.style = cSrc.style;\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = cSrc._comment;\n } else {\n this._cells[i + nExpand - 1] = undefined;\n }\n }\n }\n\n // now add the new values\n for (i = 0; i < inserts.length; i++) {\n cDst = this.getCell(start + i);\n cDst.value = inserts[i];\n cDst.style = {};\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = undefined;\n }\n }\n\n // Iterate over all non-null cells in this row\n eachCell(options, iteratee) {\n if (!iteratee) {\n iteratee = options;\n options = null;\n }\n if (options && options.includeEmpty) {\n const n = this._cells.length;\n for (let i = 1; i <= n; i++) {\n iteratee(this.getCell(i), i);\n }\n } else {\n this._cells.forEach((cell, index) => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n iteratee(cell, index + 1);\n }\n });\n }\n }\n\n // ===========================================================================\n // Page Breaks\n addPageBreak(lft, rght) {\n const ws = this._worksheet;\n const left = Math.max(0, lft - 1) || 0;\n const right = Math.max(0, rght - 1) || 16838;\n const pb = {\n id: this._number,\n max: right,\n man: 1,\n };\n if (left) pb.min = left;\n\n ws.rowBreaks.push(pb);\n }\n\n // return a sparse array of cell values\n get values() {\n const values = [];\n this._cells.forEach(cell => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n values[cell.col] = cell.value;\n }\n });\n return values;\n }\n\n // set the values by contiguous or sparse array, or by key'd object literal\n set values(value) {\n // this operation is not additive - any prior cells are removed\n this._cells = [];\n if (!value) {\n // empty row\n } else if (value instanceof Array) {\n let offset = 0;\n if (value.hasOwnProperty('0')) {\n // contiguous array - start at column 1\n offset = 1;\n }\n value.forEach((item, index) => {\n if (item !== undefined) {\n this.getCellEx({\n address: colCache.encodeAddress(this._number, index + offset),\n row: this._number,\n col: index + offset,\n }).value = item;\n }\n });\n } else {\n // assume object with column keys\n this._worksheet.eachColumnKey((column, key) => {\n if (value[key] !== undefined) {\n this.getCellEx({\n address: colCache.encodeAddress(this._number, column.number),\n row: this._number,\n col: column.number,\n }).value = value[key];\n }\n });\n }\n }\n\n // returns true if the row includes at least one cell with a value\n get hasValues() {\n return _.some(this._cells, cell => cell && cell.type !== Enums.ValueType.Null);\n }\n\n get cellCount() {\n return this._cells.length;\n }\n\n get actualCellCount() {\n let count = 0;\n this.eachCell(() => {\n count++;\n });\n return count;\n }\n\n // get the min and max column number for the non-null cells in this row or null\n get dimensions() {\n let min = 0;\n let max = 0;\n this._cells.forEach(cell => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n if (!min || min > cell.col) {\n min = cell.col;\n }\n if (max < cell.col) {\n max = cell.col;\n }\n }\n });\n return min > 0\n ? {\n min,\n max,\n }\n : null;\n }\n\n // =========================================================================\n // styles\n _applyStyle(name, value) {\n this.style[name] = value;\n this._cells.forEach(cell => {\n if (cell) {\n cell[name] = value;\n }\n });\n return value;\n }\n\n get numFmt() {\n return this.style.numFmt;\n }\n\n set numFmt(value) {\n this._applyStyle('numFmt', value);\n }\n\n get font() {\n return this.style.font;\n }\n\n set font(value) {\n this._applyStyle('font', value);\n }\n\n get alignment() {\n return this.style.alignment;\n }\n\n set alignment(value) {\n this._applyStyle('alignment', value);\n }\n\n get protection() {\n return this.style.protection;\n }\n\n set protection(value) {\n this._applyStyle('protection', value);\n }\n\n get border() {\n return this.style.border;\n }\n\n set border(value) {\n this._applyStyle('border', value);\n }\n\n get fill() {\n return this.style.fill;\n }\n\n set fill(value) {\n this._applyStyle('fill', value);\n }\n\n get hidden() {\n return !!this._hidden;\n }\n\n set hidden(value) {\n this._hidden = value;\n }\n\n get outlineLevel() {\n return this._outlineLevel || 0;\n }\n\n set outlineLevel(value) {\n this._outlineLevel = value;\n }\n\n get collapsed() {\n return !!(\n this._outlineLevel && this._outlineLevel >= this._worksheet.properties.outlineLevelRow\n );\n }\n\n // =========================================================================\n get model() {\n const cells = [];\n let min = 0;\n let max = 0;\n this._cells.forEach(cell => {\n if (cell) {\n const cellModel = cell.model;\n if (cellModel) {\n if (!min || min > cell.col) {\n min = cell.col;\n }\n if (max < cell.col) {\n max = cell.col;\n }\n cells.push(cellModel);\n }\n }\n });\n\n return this.height || cells.length\n ? {\n cells,\n number: this.number,\n min,\n max,\n height: this.height,\n style: this.style,\n hidden: this.hidden,\n outlineLevel: this.outlineLevel,\n collapsed: this.collapsed,\n }\n : null;\n }\n\n set model(value) {\n if (value.number !== this._number) {\n throw new Error('Invalid row number in model');\n }\n this._cells = [];\n let previousAddress;\n value.cells.forEach(cellModel => {\n switch (cellModel.type) {\n case Cell.Types.Merge:\n // special case - don't add this types\n break;\n default: {\n let address;\n if (cellModel.address) {\n address = colCache.decodeAddress(cellModel.address);\n } else if (previousAddress) {\n // This is a <c> element without an r attribute\n // Assume that it's the cell for the next column\n const {row} = previousAddress;\n const col = previousAddress.col + 1;\n address = {\n row,\n col,\n address: colCache.encodeAddress(row, col),\n $col$row: `$${colCache.n2l(col)}$${row}`,\n };\n }\n previousAddress = address;\n const cell = this.getCellEx(address);\n cell.model = cellModel;\n break;\n }\n }\n });\n\n if (value.height) {\n this.height = value.height;\n } else {\n delete this.height;\n }\n\n this.hidden = value.hidden;\n this.outlineLevel = value.outlineLevel || 0;\n\n this.style = (value.style && JSON.parse(JSON.stringify(value.style))) || {};\n }\n}\n\nmodule.exports = Row;\n"],"mappings":"AAAA,YAAY;;AAEZ,MAAMA,CAAC,GAAGC,OAAO,CAAC,qBAAqB,CAAC;AAExC,MAAMC,KAAK,GAAGD,OAAO,CAAC,SAAS,CAAC;AAChC,MAAME,QAAQ,GAAGF,OAAO,CAAC,oBAAoB,CAAC;AAC9C,MAAMG,IAAI,GAAGH,OAAO,CAAC,QAAQ,CAAC;AAE9B,MAAMI,GAAG,CAAC;EACRC,WAAWA,CAACC,SAAS,EAAEC,MAAM,EAAE;IAC7B,IAAI,CAACC,UAAU,GAAGF,SAAS;IAC3B,IAAI,CAACG,OAAO,GAAGF,MAAM;IACrB,IAAI,CAACG,MAAM,GAAG,EAAE;IAChB,IAAI,CAACC,KAAK,GAAG,CAAC,CAAC;IACf,IAAI,CAACC,YAAY,GAAG,CAAC;EACvB;;EAEA;EACA,IAAIL,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACE,OAAO;EACrB;EAEA,IAAIH,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAACE,UAAU;EACxB;;EAEA;EACA;EACAK,MAAMA,CAAA,EAAG;IACP,IAAI,CAACL,UAAU,CAACM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;EACpC;;EAEA;EACAC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACP,UAAU;IACtB,OAAO,IAAI,CAACE,MAAM;IAClB,OAAO,IAAI,CAACC,KAAK;EACnB;EAEAK,QAAQA,CAACC,SAAS,EAAE;IAClB,OAAO,IAAI,CAACP,MAAM,CAACO,SAAS,GAAG,CAAC,CAAC;EACnC;;EAEA;EACAC,SAASA,CAACC,OAAO,EAAE;IACjB,IAAIC,IAAI,GAAG,IAAI,CAACV,MAAM,CAACS,OAAO,CAACE,GAAG,GAAG,CAAC,CAAC;IACvC,IAAI,CAACD,IAAI,EAAE;MACT,MAAME,MAAM,GAAG,IAAI,CAACd,UAAU,CAACe,SAAS,CAACJ,OAAO,CAACE,GAAG,CAAC;MACrDD,IAAI,GAAG,IAAIjB,IAAI,CAAC,IAAI,EAAEmB,MAAM,EAAEH,OAAO,CAACA,OAAO,CAAC;MAC9C,IAAI,CAACT,MAAM,CAACS,OAAO,CAACE,GAAG,GAAG,CAAC,CAAC,GAAGD,IAAI;IACrC;IACA,OAAOA,IAAI;EACb;;EAEA;EACAI,OAAOA,CAACH,GAAG,EAAE;IACX,IAAI,OAAOA,GAAG,KAAK,QAAQ,EAAE;MAC3B;MACA,MAAMC,MAAM,GAAG,IAAI,CAACd,UAAU,CAACiB,YAAY,CAACJ,GAAG,CAAC;MAChD,IAAIC,MAAM,EAAE;QACVD,GAAG,GAAGC,MAAM,CAACf,MAAM;MACrB,CAAC,MAAM;QACLc,GAAG,GAAGnB,QAAQ,CAACwB,GAAG,CAACL,GAAG,CAAC;MACzB;IACF;IACA,OACE,IAAI,CAACX,MAAM,CAACW,GAAG,GAAG,CAAC,CAAC,IACpB,IAAI,CAACH,SAAS,CAAC;MACbC,OAAO,EAAEjB,QAAQ,CAACyB,aAAa,CAAC,IAAI,CAAClB,OAAO,EAAEY,GAAG,CAAC;MAClDO,GAAG,EAAE,IAAI,CAACnB,OAAO;MACjBY;IACF,CAAC,CAAC;EAEN;;EAEA;EACAQ,MAAMA,CAACC,KAAK,EAAEC,KAAK,EAAc;IAC/B,MAAMC,KAAK,GAAGF,KAAK,GAAGC,KAAK;IAAC,SAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,EADNC,OAAO,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAPF,OAAO,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;IAAA;IAE7B,MAAMC,OAAO,GAAGH,OAAO,CAACD,MAAM,GAAGJ,KAAK;IACtC,MAAMS,IAAI,GAAG,IAAI,CAAC9B,MAAM,CAACyB,MAAM;IAC/B,IAAIM,CAAC;IACL,IAAIC,IAAI;IACR,IAAIC,IAAI;IAER,IAAIJ,OAAO,GAAG,CAAC,EAAE;MACf;MACA,KAAKE,CAAC,GAAGX,KAAK,GAAGM,OAAO,CAACD,MAAM,EAAEM,CAAC,IAAID,IAAI,EAAEC,CAAC,EAAE,EAAE;QAC/CE,IAAI,GAAG,IAAI,CAACjC,MAAM,CAAC+B,CAAC,GAAG,CAAC,CAAC;QACzBC,IAAI,GAAG,IAAI,CAAChC,MAAM,CAAC+B,CAAC,GAAGF,OAAO,GAAG,CAAC,CAAC;QACnC,IAAIG,IAAI,EAAE;UACRC,IAAI,GAAG,IAAI,CAACnB,OAAO,CAACiB,CAAC,CAAC;UACtBE,IAAI,CAACC,KAAK,GAAGF,IAAI,CAACE,KAAK;UACvBD,IAAI,CAAChC,KAAK,GAAG+B,IAAI,CAAC/B,KAAK;UACvB;UACAgC,IAAI,CAACE,QAAQ,GAAGH,IAAI,CAACG,QAAQ;QAC/B,CAAC,MAAM,IAAIF,IAAI,EAAE;UACfA,IAAI,CAACC,KAAK,GAAG,IAAI;UACjBD,IAAI,CAAChC,KAAK,GAAG,CAAC,CAAC;UACf;UACAgC,IAAI,CAACE,QAAQ,GAAGC,SAAS;QAC3B;MACF;IACF,CAAC,MAAM,IAAIP,OAAO,GAAG,CAAC,EAAE;MACtB;MACA,KAAKE,CAAC,GAAGD,IAAI,EAAEC,CAAC,IAAIT,KAAK,EAAES,CAAC,EAAE,EAAE;QAC9BC,IAAI,GAAG,IAAI,CAAChC,MAAM,CAAC+B,CAAC,GAAG,CAAC,CAAC;QACzB,IAAIC,IAAI,EAAE;UACRC,IAAI,GAAG,IAAI,CAACnB,OAAO,CAACiB,CAAC,GAAGF,OAAO,CAAC;UAChCI,IAAI,CAACC,KAAK,GAAGF,IAAI,CAACE,KAAK;UACvBD,IAAI,CAAChC,KAAK,GAAG+B,IAAI,CAAC/B,KAAK;UACvB;UACAgC,IAAI,CAACE,QAAQ,GAAGH,IAAI,CAACG,QAAQ;QAC/B,CAAC,MAAM;UACL,IAAI,CAACnC,MAAM,CAAC+B,CAAC,GAAGF,OAAO,GAAG,CAAC,CAAC,GAAGO,SAAS;QAC1C;MACF;IACF;;IAEA;IACA,KAAKL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,OAAO,CAACD,MAAM,EAAEM,CAAC,EAAE,EAAE;MACnCE,IAAI,GAAG,IAAI,CAACnB,OAAO,CAACM,KAAK,GAAGW,CAAC,CAAC;MAC9BE,IAAI,CAACC,KAAK,GAAGR,OAAO,CAACK,CAAC,CAAC;MACvBE,IAAI,CAAChC,KAAK,GAAG,CAAC,CAAC;MACf;MACAgC,IAAI,CAACE,QAAQ,GAAGC,SAAS;IAC3B;EACF;;EAEA;EACAC,QAAQA,CAACC,OAAO,EAAEC,QAAQ,EAAE;IAC1B,IAAI,CAACA,QAAQ,EAAE;MACbA,QAAQ,GAAGD,OAAO;MAClBA,OAAO,GAAG,IAAI;IAChB;IACA,IAAIA,OAAO,IAAIA,OAAO,CAACE,YAAY,EAAE;MACnC,MAAMC,CAAC,GAAG,IAAI,CAACzC,MAAM,CAACyB,MAAM;MAC5B,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIU,CAAC,EAAEV,CAAC,EAAE,EAAE;QAC3BQ,QAAQ,CAAC,IAAI,CAACzB,OAAO,CAACiB,CAAC,CAAC,EAAEA,CAAC,CAAC;MAC9B;IACF,CAAC,MAAM;MACL,IAAI,CAAC/B,MAAM,CAAC0C,OAAO,CAAC,CAAChC,IAAI,EAAEiC,KAAK,KAAK;QACnC,IAAIjC,IAAI,IAAIA,IAAI,CAACkC,IAAI,KAAKrD,KAAK,CAACsD,SAAS,CAACC,IAAI,EAAE;UAC9CP,QAAQ,CAAC7B,IAAI,EAAEiC,KAAK,GAAG,CAAC,CAAC;QAC3B;MACF,CAAC,CAAC;IACJ;EACF;;EAEA;EACA;EACAI,YAAYA,CAACC,GAAG,EAAEC,IAAI,EAAE;IACtB,MAAMC,EAAE,GAAG,IAAI,CAACpD,UAAU;IAC1B,MAAMqD,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEL,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;IACtC,MAAMM,KAAK,GAAGF,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEJ,IAAI,GAAG,CAAC,CAAC,IAAI,KAAK;IAC5C,MAAMM,EAAE,GAAG;MACTC,EAAE,EAAE,IAAI,CAACzD,OAAO;MAChBsD,GAAG,EAAEC,KAAK;MACVG,GAAG,EAAE;IACP,CAAC;IACD,IAAIN,IAAI,EAAEI,EAAE,CAACG,GAAG,GAAGP,IAAI;IAEvBD,EAAE,CAACS,SAAS,CAACC,IAAI,CAACL,EAAE,CAAC;EACvB;;EAEA;EACA,IAAIM,MAAMA,CAAA,EAAG;IACX,MAAMA,MAAM,GAAG,EAAE;IACjB,IAAI,CAAC7D,MAAM,CAAC0C,OAAO,CAAChC,IAAI,IAAI;MAC1B,IAAIA,IAAI,IAAIA,IAAI,CAACkC,IAAI,KAAKrD,KAAK,CAACsD,SAAS,CAACC,IAAI,EAAE;QAC9Ce,MAAM,CAACnD,IAAI,CAACC,GAAG,CAAC,GAAGD,IAAI,CAACwB,KAAK;MAC/B;IACF,CAAC,CAAC;IACF,OAAO2B,MAAM;EACf;;EAEA;EACA,IAAIA,MAAMA,CAAC3B,KAAK,EAAE;IAChB;IACA,IAAI,CAAClC,MAAM,GAAG,EAAE;IAChB,IAAI,CAACkC,KAAK,EAAE;MACV;IAAA,CACD,MAAM,IAAIA,KAAK,YAAYP,KAAK,EAAE;MACjC,IAAImC,MAAM,GAAG,CAAC;MACd,IAAI5B,KAAK,CAAC6B,cAAc,CAAC,GAAG,CAAC,EAAE;QAC7B;QACAD,MAAM,GAAG,CAAC;MACZ;MACA5B,KAAK,CAACQ,OAAO,CAAC,CAACsB,IAAI,EAAErB,KAAK,KAAK;QAC7B,IAAIqB,IAAI,KAAK5B,SAAS,EAAE;UACtB,IAAI,CAAC5B,SAAS,CAAC;YACbC,OAAO,EAAEjB,QAAQ,CAACyB,aAAa,CAAC,IAAI,CAAClB,OAAO,EAAE4C,KAAK,GAAGmB,MAAM,CAAC;YAC7D5C,GAAG,EAAE,IAAI,CAACnB,OAAO;YACjBY,GAAG,EAAEgC,KAAK,GAAGmB;UACf,CAAC,CAAC,CAAC5B,KAAK,GAAG8B,IAAI;QACjB;MACF,CAAC,CAAC;IACJ,CAAC,MAAM;MACL;MACA,IAAI,CAAClE,UAAU,CAACmE,aAAa,CAAC,CAACrD,MAAM,EAAEsD,GAAG,KAAK;QAC7C,IAAIhC,KAAK,CAACgC,GAAG,CAAC,KAAK9B,SAAS,EAAE;UAC5B,IAAI,CAAC5B,SAAS,CAAC;YACbC,OAAO,EAAEjB,QAAQ,CAACyB,aAAa,CAAC,IAAI,CAAClB,OAAO,EAAEa,MAAM,CAACf,MAAM,CAAC;YAC5DqB,GAAG,EAAE,IAAI,CAACnB,OAAO;YACjBY,GAAG,EAAEC,MAAM,CAACf;UACd,CAAC,CAAC,CAACqC,KAAK,GAAGA,KAAK,CAACgC,GAAG,CAAC;QACvB;MACF,CAAC,CAAC;IACJ;EACF;;EAEA;EACA,IAAIC,SAASA,CAAA,EAAG;IACd,OAAO9E,CAAC,CAAC+E,IAAI,CAAC,IAAI,CAACpE,MAAM,EAAEU,IAAI,IAAIA,IAAI,IAAIA,IAAI,CAACkC,IAAI,KAAKrD,KAAK,CAACsD,SAAS,CAACC,IAAI,CAAC;EAChF;EAEA,IAAIuB,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAACrE,MAAM,CAACyB,MAAM;EAC3B;EAEA,IAAI6C,eAAeA,CAAA,EAAG;IACpB,IAAIjD,KAAK,GAAG,CAAC;IACb,IAAI,CAACgB,QAAQ,CAAC,MAAM;MAClBhB,KAAK,EAAE;IACT,CAAC,CAAC;IACF,OAAOA,KAAK;EACd;;EAEA;EACA,IAAIkD,UAAUA,CAAA,EAAG;IACf,IAAIb,GAAG,GAAG,CAAC;IACX,IAAIL,GAAG,GAAG,CAAC;IACX,IAAI,CAACrD,MAAM,CAAC0C,OAAO,CAAChC,IAAI,IAAI;MAC1B,IAAIA,IAAI,IAAIA,IAAI,CAACkC,IAAI,KAAKrD,KAAK,CAACsD,SAAS,CAACC,IAAI,EAAE;QAC9C,IAAI,CAACY,GAAG,IAAIA,GAAG,GAAGhD,IAAI,CAACC,GAAG,EAAE;UAC1B+C,GAAG,GAAGhD,IAAI,CAACC,GAAG;QAChB;QACA,IAAI0C,GAAG,GAAG3C,IAAI,CAACC,GAAG,EAAE;UAClB0C,GAAG,GAAG3C,IAAI,CAACC,GAAG;QAChB;MACF;IACF,CAAC,CAAC;IACF,OAAO+C,GAAG,GAAG,CAAC,GACV;MACEA,GAAG;MACHL;IACF,CAAC,GACD,IAAI;EACV;;EAEA;EACA;EACAmB,WAAWA,CAACC,IAAI,EAAEvC,KAAK,EAAE;IACvB,IAAI,CAACjC,KAAK,CAACwE,IAAI,CAAC,GAAGvC,KAAK;IACxB,IAAI,CAAClC,MAAM,CAAC0C,OAAO,CAAChC,IAAI,IAAI;MAC1B,IAAIA,IAAI,EAAE;QACRA,IAAI,CAAC+D,IAAI,CAAC,GAAGvC,KAAK;MACpB;IACF,CAAC,CAAC;IACF,OAAOA,KAAK;EACd;EAEA,IAAIwC,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACzE,KAAK,CAACyE,MAAM;EAC1B;EAEA,IAAIA,MAAMA,CAACxC,KAAK,EAAE;IAChB,IAAI,CAACsC,WAAW,CAAC,QAAQ,EAAEtC,KAAK,CAAC;EACnC;EAEA,IAAIyC,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAAC1E,KAAK,CAAC0E,IAAI;EACxB;EAEA,IAAIA,IAAIA,CAACzC,KAAK,EAAE;IACd,IAAI,CAACsC,WAAW,CAAC,MAAM,EAAEtC,KAAK,CAAC;EACjC;EAEA,IAAI0C,SAASA,CAAA,EAAG;IACd,OAAO,IAAI,CAAC3E,KAAK,CAAC2E,SAAS;EAC7B;EAEA,IAAIA,SAASA,CAAC1C,KAAK,EAAE;IACnB,IAAI,CAACsC,WAAW,CAAC,WAAW,EAAEtC,KAAK,CAAC;EACtC;EAEA,IAAI2C,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAAC5E,KAAK,CAAC4E,UAAU;EAC9B;EAEA,IAAIA,UAAUA,CAAC3C,KAAK,EAAE;IACpB,IAAI,CAACsC,WAAW,CAAC,YAAY,EAAEtC,KAAK,CAAC;EACvC;EAEA,IAAI4C,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC7E,KAAK,CAAC6E,MAAM;EAC1B;EAEA,IAAIA,MAAMA,CAAC5C,KAAK,EAAE;IAChB,IAAI,CAACsC,WAAW,CAAC,QAAQ,EAAEtC,KAAK,CAAC;EACnC;EAEA,IAAI6C,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAAC9E,KAAK,CAAC8E,IAAI;EACxB;EAEA,IAAIA,IAAIA,CAAC7C,KAAK,EAAE;IACd,IAAI,CAACsC,WAAW,CAAC,MAAM,EAAEtC,KAAK,CAAC;EACjC;EAEA,IAAI8C,MAAMA,CAAA,EAAG;IACX,OAAO,CAAC,CAAC,IAAI,CAACC,OAAO;EACvB;EAEA,IAAID,MAAMA,CAAC9C,KAAK,EAAE;IAChB,IAAI,CAAC+C,OAAO,GAAG/C,KAAK;EACtB;EAEA,IAAIhC,YAAYA,CAAA,EAAG;IACjB,OAAO,IAAI,CAACgF,aAAa,IAAI,CAAC;EAChC;EAEA,IAAIhF,YAAYA,CAACgC,KAAK,EAAE;IACtB,IAAI,CAACgD,aAAa,GAAGhD,KAAK;EAC5B;EAEA,IAAIiD,SAASA,CAAA,EAAG;IACd,OAAO,CAAC,EACN,IAAI,CAACD,aAAa,IAAI,IAAI,CAACA,aAAa,IAAI,IAAI,CAACpF,UAAU,CAACsF,UAAU,CAACC,eAAe,CACvF;EACH;;EAEA;EACA,IAAIC,KAAKA,CAAA,EAAG;IACV,MAAMC,KAAK,GAAG,EAAE;IAChB,IAAI7B,GAAG,GAAG,CAAC;IACX,IAAIL,GAAG,GAAG,CAAC;IACX,IAAI,CAACrD,MAAM,CAAC0C,OAAO,CAAChC,IAAI,IAAI;MAC1B,IAAIA,IAAI,EAAE;QACR,MAAM8E,SAAS,GAAG9E,IAAI,CAAC4E,KAAK;QAC5B,IAAIE,SAAS,EAAE;UACb,IAAI,CAAC9B,GAAG,IAAIA,GAAG,GAAGhD,IAAI,CAACC,GAAG,EAAE;YAC1B+C,GAAG,GAAGhD,IAAI,CAACC,GAAG;UAChB;UACA,IAAI0C,GAAG,GAAG3C,IAAI,CAACC,GAAG,EAAE;YAClB0C,GAAG,GAAG3C,IAAI,CAACC,GAAG;UAChB;UACA4E,KAAK,CAAC3B,IAAI,CAAC4B,SAAS,CAAC;QACvB;MACF;IACF,CAAC,CAAC;IAEF,OAAO,IAAI,CAACC,MAAM,IAAIF,KAAK,CAAC9D,MAAM,GAC9B;MACE8D,KAAK;MACL1F,MAAM,EAAE,IAAI,CAACA,MAAM;MACnB6D,GAAG;MACHL,GAAG;MACHoC,MAAM,EAAE,IAAI,CAACA,MAAM;MACnBxF,KAAK,EAAE,IAAI,CAACA,KAAK;MACjB+E,MAAM,EAAE,IAAI,CAACA,MAAM;MACnB9E,YAAY,EAAE,IAAI,CAACA,YAAY;MAC/BiF,SAAS,EAAE,IAAI,CAACA;IAClB,CAAC,GACD,IAAI;EACV;EAEA,IAAIG,KAAKA,CAACpD,KAAK,EAAE;IACf,IAAIA,KAAK,CAACrC,MAAM,KAAK,IAAI,CAACE,OAAO,EAAE;MACjC,MAAM,IAAI2F,KAAK,CAAC,6BAA6B,CAAC;IAChD;IACA,IAAI,CAAC1F,MAAM,GAAG,EAAE;IAChB,IAAI2F,eAAe;IACnBzD,KAAK,CAACqD,KAAK,CAAC7C,OAAO,CAAC8C,SAAS,IAAI;MAC/B,QAAQA,SAAS,CAAC5C,IAAI;QACpB,KAAKnD,IAAI,CAACmG,KAAK,CAACC,KAAK;UACnB;UACA;QACF;UAAS;YACP,IAAIpF,OAAO;YACX,IAAI+E,SAAS,CAAC/E,OAAO,EAAE;cACrBA,OAAO,GAAGjB,QAAQ,CAACsG,aAAa,CAACN,SAAS,CAAC/E,OAAO,CAAC;YACrD,CAAC,MAAM,IAAIkF,eAAe,EAAE;cAC1B;cACA;cACA,MAAM;gBAACzE;cAAG,CAAC,GAAGyE,eAAe;cAC7B,MAAMhF,GAAG,GAAGgF,eAAe,CAAChF,GAAG,GAAG,CAAC;cACnCF,OAAO,GAAG;gBACRS,GAAG;gBACHP,GAAG;gBACHF,OAAO,EAAEjB,QAAQ,CAACyB,aAAa,CAACC,GAAG,EAAEP,GAAG,CAAC;gBACzCoF,QAAQ,MAAAC,MAAA,CAAMxG,QAAQ,CAACyG,GAAG,CAACtF,GAAG,CAAC,OAAAqF,MAAA,CAAI9E,GAAG;cACxC,CAAC;YACH;YACAyE,eAAe,GAAGlF,OAAO;YACzB,MAAMC,IAAI,GAAG,IAAI,CAACF,SAAS,CAACC,OAAO,CAAC;YACpCC,IAAI,CAAC4E,KAAK,GAAGE,SAAS;YACtB;UACF;MACF;IACF,CAAC,CAAC;IAEF,IAAItD,KAAK,CAACuD,MAAM,EAAE;MAChB,IAAI,CAACA,MAAM,GAAGvD,KAAK,CAACuD,MAAM;IAC5B,CAAC,MAAM;MACL,OAAO,IAAI,CAACA,MAAM;IACpB;IAEA,IAAI,CAACT,MAAM,GAAG9C,KAAK,CAAC8C,MAAM;IAC1B,IAAI,CAAC9E,YAAY,GAAGgC,KAAK,CAAChC,YAAY,IAAI,CAAC;IAE3C,IAAI,CAACD,KAAK,GAAIiC,KAAK,CAACjC,KAAK,IAAIiG,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAAClE,KAAK,CAACjC,KAAK,CAAC,CAAC,IAAK,CAAC,CAAC;EAC7E;AACF;AAEAoG,MAAM,CAACC,OAAO,GAAG5G,GAAG","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"row.js","names":["_","require","Enums","colCache","Cell","Row","constructor","worksheet","number","_worksheet","_number","_cells","style","outlineLevel","commit","_commitRow","destroy","findCell","colNumber","getCellEx","address","cell","col","column","getColumn","getCell","getColumnKey","l2n","encodeAddress","row","splice","start","count","nKeep","_len","arguments","length","inserts","Array","_key","nExpand","nEnd","i","cSrc","cDst","value","_comment","undefined","eachCell","options","iteratee","includeEmpty","n","forEach","index","type","ValueType","Null","addPageBreak","lft","rght","ws","left","Math","max","right","pb","id","man","min","rowBreaks","push","values","offset","hasOwnProperty","item","eachColumnKey","key","hasValues","some","cellCount","actualCellCount","dimensions","_applyStyle","name","numFmt","font","alignment","protection","border","fill","hidden","_hidden","_outlineLevel","collapsed","properties","outlineLevelRow","model","cells","cellModel","height","Error","previousAddress","Types","Merge","decodeAddress","$col$row","n2l","JSON","parse","stringify","module","exports"],"sources":["../../../lib/doc/row.js"],"sourcesContent":["'use strict';\n\nconst _ = require('../utils/under-dash');\n\nconst Enums = require('./enums');\nconst colCache = require('../utils/col-cache');\nconst Cell = require('./cell');\n\nclass Row {\n constructor(worksheet, number) {\n this._worksheet = worksheet;\n this._number = number;\n this._cells = [];\n this.style = {};\n this.outlineLevel = 0;\n }\n\n // return the row number\n get number() {\n return this._number;\n }\n\n get worksheet() {\n return this._worksheet;\n }\n\n // Inform Streaming Writer that this row (and all rows before it) are complete\n // and ready to write. Has no effect on Worksheet document\n commit() {\n this._worksheet._commitRow(this); // eslint-disable-line no-underscore-dangle\n }\n\n // helps GC by breaking cyclic references\n destroy() {\n delete this._worksheet;\n delete this._cells;\n delete this.style;\n }\n\n findCell(colNumber) {\n return this._cells[colNumber - 1];\n }\n\n // given {address, row, col}, find or create new cell\n getCellEx(address) {\n let cell = this._cells[address.col - 1];\n if (!cell) {\n const column = this._worksheet.getColumn(address.col);\n cell = new Cell(this, column, address.address);\n this._cells[address.col - 1] = cell;\n }\n return cell;\n }\n\n // get cell by key, letter or column number\n getCell(col) {\n if (typeof col === 'string') {\n // is it a key?\n const column = this._worksheet.getColumnKey(col);\n if (column) {\n col = column.number;\n } else {\n col = colCache.l2n(col);\n }\n }\n return (\n this._cells[col - 1] ||\n this.getCellEx({\n address: colCache.encodeAddress(this._number, col),\n row: this._number,\n col,\n })\n );\n }\n\n // remove cell(s) and shift all higher cells down by count\n splice(start, count, ...inserts) {\n const nKeep = start + count;\n const nExpand = inserts.length - count;\n const nEnd = this._cells.length;\n let i;\n let cSrc;\n let cDst;\n\n if (nExpand < 0) {\n // remove cells\n for (i = start + inserts.length; i <= nEnd; i++) {\n cDst = this._cells[i - 1];\n cSrc = this._cells[i - nExpand - 1];\n if (cSrc) {\n cDst = this.getCell(i);\n cDst.value = cSrc.value;\n cDst.style = cSrc.style;\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = cSrc._comment;\n } else if (cDst) {\n cDst.value = null;\n cDst.style = {};\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = undefined;\n }\n }\n } else if (nExpand > 0) {\n // insert new cells\n for (i = nEnd; i >= nKeep; i--) {\n cSrc = this._cells[i - 1];\n if (cSrc) {\n cDst = this.getCell(i + nExpand);\n cDst.value = cSrc.value;\n cDst.style = cSrc.style;\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = cSrc._comment;\n } else {\n this._cells[i + nExpand - 1] = undefined;\n }\n }\n }\n\n // now add the new values\n for (i = 0; i < inserts.length; i++) {\n cDst = this.getCell(start + i);\n cDst.value = inserts[i];\n cDst.style = {};\n // eslint-disable-next-line no-underscore-dangle\n cDst._comment = undefined;\n }\n }\n\n // Iterate over all non-null cells in this row\n eachCell(options, iteratee) {\n if (!iteratee) {\n iteratee = options;\n options = null;\n }\n if (options && options.includeEmpty) {\n const n = this._cells.length;\n for (let i = 1; i <= n; i++) {\n iteratee(this.getCell(i), i);\n }\n } else {\n this._cells.forEach((cell, index) => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n iteratee(cell, index + 1);\n }\n });\n }\n }\n\n // ===========================================================================\n // Page Breaks\n addPageBreak(lft, rght) {\n const ws = this._worksheet;\n const left = Math.max(0, lft - 1) || 0;\n const right = Math.max(0, rght - 1) || 16838;\n const pb = {\n id: this._number,\n max: right,\n man: 1,\n };\n if (left) pb.min = left;\n\n ws.rowBreaks.push(pb);\n }\n\n // return a sparse array of cell values\n get values() {\n const values = [];\n this._cells.forEach(cell => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n values[cell.col] = cell.value;\n }\n });\n return values;\n }\n\n // set the values by contiguous or sparse array, or by key'd object literal\n set values(value) {\n // this operation is not additive - any prior cells are removed\n this._cells = [];\n if (!value) {\n // empty row\n } else if (value instanceof Array) {\n let offset = 0;\n if (value.hasOwnProperty('0')) {\n // contiguous array - start at column 1\n offset = 1;\n }\n value.forEach((item, index) => {\n if (item !== undefined) {\n this.getCellEx({\n address: colCache.encodeAddress(this._number, index + offset),\n row: this._number,\n col: index + offset,\n }).value = item;\n }\n });\n } else {\n // assume object with column keys\n this._worksheet.eachColumnKey((column, key) => {\n if (value[key] !== undefined) {\n this.getCellEx({\n address: colCache.encodeAddress(this._number, column.number),\n row: this._number,\n col: column.number,\n }).value = value[key];\n }\n });\n }\n }\n\n // returns true if the row includes at least one cell with a value\n get hasValues() {\n return _.some(this._cells, cell => cell && cell.type !== Enums.ValueType.Null);\n }\n\n get cellCount() {\n return this._cells.length;\n }\n\n get actualCellCount() {\n let count = 0;\n this.eachCell(() => {\n count++;\n });\n return count;\n }\n\n // get the min and max column number for the non-null cells in this row or null\n get dimensions() {\n let min = 0;\n let max = 0;\n this._cells.forEach(cell => {\n if (cell && cell.type !== Enums.ValueType.Null) {\n if (!min || min > cell.col) {\n min = cell.col;\n }\n if (max < cell.col) {\n max = cell.col;\n }\n }\n });\n return min > 0\n ? {\n min,\n max,\n }\n : null;\n }\n\n // =========================================================================\n // styles\n _applyStyle(name, value) {\n this.style[name] = value;\n this._cells.forEach(cell => {\n if (cell) {\n cell[name] = value;\n }\n });\n return value;\n }\n\n get numFmt() {\n return this.style.numFmt;\n }\n\n set numFmt(value) {\n this._applyStyle('numFmt', value);\n }\n\n get font() {\n return this.style.font;\n }\n\n set font(value) {\n this._applyStyle('font', value);\n }\n\n get alignment() {\n return this.style.alignment;\n }\n\n set alignment(value) {\n this._applyStyle('alignment', value);\n }\n\n get protection() {\n return this.style.protection;\n }\n\n set protection(value) {\n this._applyStyle('protection', value);\n }\n\n get border() {\n return this.style.border;\n }\n\n set border(value) {\n this._applyStyle('border', value);\n }\n\n get fill() {\n return this.style.fill;\n }\n\n set fill(value) {\n this._applyStyle('fill', value);\n }\n\n get hidden() {\n return !!this._hidden;\n }\n\n set hidden(value) {\n this._hidden = value;\n }\n\n get outlineLevel() {\n return this._outlineLevel || 0;\n }\n\n set outlineLevel(value) {\n this._outlineLevel = value;\n }\n\n get collapsed() {\n return !!(\n this._outlineLevel && this._outlineLevel >= this._worksheet.properties.outlineLevelRow\n );\n }\n\n // =========================================================================\n get model() {\n const cells = [];\n let min = 0;\n let max = 0;\n this._cells.forEach(cell => {\n if (cell) {\n const cellModel = cell.model;\n if (cellModel) {\n if (!min || min > cell.col) {\n min = cell.col;\n }\n if (max < cell.col) {\n max = cell.col;\n }\n cells.push(cellModel);\n }\n }\n });\n\n return this.height || cells.length\n ? {\n cells,\n number: this.number,\n min,\n max,\n height: this.height,\n style: this.style,\n hidden: this.hidden,\n outlineLevel: this.outlineLevel,\n collapsed: this.collapsed,\n }\n : null;\n }\n\n set model(value) {\n if (value.number !== this._number) {\n throw new Error('Invalid row number in model');\n }\n this._cells = [];\n let previousAddress;\n value.cells.forEach(cellModel => {\n switch (cellModel.type) {\n case Cell.Types.Merge:\n // special case - don't add this types\n break;\n default: {\n let address;\n if (cellModel.address) {\n address = colCache.decodeAddress(cellModel.address);\n } else if (previousAddress) {\n // This is a <c> element without an r attribute\n // Assume that it's the cell for the next column\n const {row} = previousAddress;\n const col = previousAddress.col + 1;\n address = {\n row,\n col,\n address: colCache.encodeAddress(row, col),\n $col$row: `$${colCache.n2l(col)}$${row}`,\n };\n }\n previousAddress = address;\n const cell = this.getCellEx(address);\n cell.model = cellModel;\n break;\n }\n }\n });\n\n if (value.height) {\n this.height = value.height;\n } else {\n delete this.height;\n }\n\n this.hidden = value.hidden;\n this.outlineLevel = value.outlineLevel || 0;\n\n this.style = (value.style && JSON.parse(JSON.stringify(value.style))) || {};\n }\n}\n\nmodule.exports = Row;\n"],"mappings":"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","ignoreList":[]}
|
package/dist/es5/doc/table.js
CHANGED
|
@@ -75,25 +75,25 @@ class Table {
|
|
|
75
75
|
case 'none':
|
|
76
76
|
return null;
|
|
77
77
|
case 'average':
|
|
78
|
-
return
|
|
78
|
+
return `SUBTOTAL(101,${this.table.name}[${column.name}])`;
|
|
79
79
|
case 'countNums':
|
|
80
|
-
return
|
|
80
|
+
return `SUBTOTAL(102,${this.table.name}[${column.name}])`;
|
|
81
81
|
case 'count':
|
|
82
|
-
return
|
|
82
|
+
return `SUBTOTAL(103,${this.table.name}[${column.name}])`;
|
|
83
83
|
case 'max':
|
|
84
|
-
return
|
|
84
|
+
return `SUBTOTAL(104,${this.table.name}[${column.name}])`;
|
|
85
85
|
case 'min':
|
|
86
|
-
return
|
|
86
|
+
return `SUBTOTAL(105,${this.table.name}[${column.name}])`;
|
|
87
87
|
case 'stdDev':
|
|
88
|
-
return
|
|
88
|
+
return `SUBTOTAL(106,${this.table.name}[${column.name}])`;
|
|
89
89
|
case 'var':
|
|
90
|
-
return
|
|
90
|
+
return `SUBTOTAL(107,${this.table.name}[${column.name}])`;
|
|
91
91
|
case 'sum':
|
|
92
|
-
return
|
|
92
|
+
return `SUBTOTAL(109,${this.table.name}[${column.name}])`;
|
|
93
93
|
case 'custom':
|
|
94
94
|
return column.totalsRowFormula;
|
|
95
95
|
default:
|
|
96
|
-
throw new Error(
|
|
96
|
+
throw new Error(`Invalid Totals Row Function: ${column.totalsRowFunction}`);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
get width() {
|
|
@@ -157,7 +157,7 @@ class Table {
|
|
|
157
157
|
// tableRef is a range that includes optional headers and totals
|
|
158
158
|
table.tableRef = colCache.encode(row, col, row + tableHeight - 1, col + width - 1);
|
|
159
159
|
table.columns.forEach((column, i) => {
|
|
160
|
-
assert(column.name,
|
|
160
|
+
assert(column.name, `Column ${i} must have a name`);
|
|
161
161
|
if (i === 0) {
|
|
162
162
|
assign(column, 'totalsRowLabel', 'Total');
|
|
163
163
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","names":["colCache","require","Column","constructor","table","column","index","_set","name","value","cacheState","filterButton","style","totalsRowLabel","totalsRowFunction","totalsRowResult","totalsRowFormula","Table","worksheet","validate","store","getFormula","concat","Error","width","columns","length","height","rows","filterHeight","headerRow","tableHeight","totalsRow","assign","o","dflt","undefined","assert","test","message","ref","tl","decodeAddress","row","col","autoFilterRef","encode","tableRef","forEach","i","assignStyle","cell","Object","keys","key","count","r","getRow","j","getCell","data","formula","result","load","model","_cache","commit","addRow","values","rowNumber","push","splice","removeRows","rowIndex","arguments","getColumn","colIndex","addColumn","removeColumns","_assign","target","prop","displayName","displyName","displayNamename","theme","showFirstColumn","showLastColumn","showRowStripes","showColumnStripes","module","exports"],"sources":["../../../lib/doc/table.js"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nconst colCache = require('../utils/col-cache');\n\nclass Column {\n // wrapper around column model, allowing access and manipulation\n constructor(table, column, index) {\n this.table = table;\n this.column = column;\n this.index = index;\n }\n\n _set(name, value) {\n this.table.cacheState();\n this.column[name] = value;\n }\n\n /* eslint-disable lines-between-class-members */\n get name() {\n return this.column.name;\n }\n set name(value) {\n this._set('name', value);\n }\n\n get filterButton() {\n return this.column.filterButton;\n }\n set filterButton(value) {\n this.column.filterButton = value;\n }\n\n get style() {\n return this.column.style;\n }\n set style(value) {\n this.column.style = value;\n }\n\n get totalsRowLabel() {\n return this.column.totalsRowLabel;\n }\n set totalsRowLabel(value) {\n this._set('totalsRowLabel', value);\n }\n\n get totalsRowFunction() {\n return this.column.totalsRowFunction;\n }\n set totalsRowFunction(value) {\n this._set('totalsRowFunction', value);\n }\n\n get totalsRowResult() {\n return this.column.totalsRowResult;\n }\n set totalsRowResult(value) {\n this._set('totalsRowResult', value);\n }\n\n get totalsRowFormula() {\n return this.column.totalsRowFormula;\n }\n set totalsRowFormula(value) {\n this._set('totalsRowFormula', value);\n }\n /* eslint-enable lines-between-class-members */\n}\n\nclass Table {\n constructor(worksheet, table) {\n this.worksheet = worksheet;\n if (table) {\n this.table = table;\n // check things are ok first\n this.validate();\n\n this.store();\n }\n }\n\n getFormula(column) {\n // get the correct formula to apply to the totals row\n switch (column.totalsRowFunction) {\n case 'none':\n return null;\n case 'average':\n return `SUBTOTAL(101,${this.table.name}[${column.name}])`;\n case 'countNums':\n return `SUBTOTAL(102,${this.table.name}[${column.name}])`;\n case 'count':\n return `SUBTOTAL(103,${this.table.name}[${column.name}])`;\n case 'max':\n return `SUBTOTAL(104,${this.table.name}[${column.name}])`;\n case 'min':\n return `SUBTOTAL(105,${this.table.name}[${column.name}])`;\n case 'stdDev':\n return `SUBTOTAL(106,${this.table.name}[${column.name}])`;\n case 'var':\n return `SUBTOTAL(107,${this.table.name}[${column.name}])`;\n case 'sum':\n return `SUBTOTAL(109,${this.table.name}[${column.name}])`;\n case 'custom':\n return column.totalsRowFormula;\n default:\n throw new Error(`Invalid Totals Row Function: ${column.totalsRowFunction}`);\n }\n }\n\n get width() {\n // width of the table\n return this.table.columns.length;\n }\n\n get height() {\n // height of the table data\n return this.table.rows.length;\n }\n\n get filterHeight() {\n // height of the table data plus optional header row\n return this.height + (this.table.headerRow ? 1 : 0);\n }\n\n get tableHeight() {\n // full height of the table on the sheet\n return this.filterHeight + (this.table.totalsRow ? 1 : 0);\n }\n\n validate() {\n const {table} = this;\n // set defaults and check is valid\n const assign = (o, name, dflt) => {\n if (o[name] === undefined) {\n o[name] = dflt;\n }\n };\n assign(table, 'headerRow', true);\n assign(table, 'totalsRow', false);\n\n assign(table, 'style', {});\n assign(table.style, 'theme', 'TableStyleMedium2');\n assign(table.style, 'showFirstColumn', false);\n assign(table.style, 'showLastColumn', false);\n assign(table.style, 'showRowStripes', false);\n assign(table.style, 'showColumnStripes', false);\n\n const assert = (test, message) => {\n if (!test) {\n throw new Error(message);\n }\n };\n assert(table.ref, 'Table must have ref');\n assert(table.columns, 'Table must have column definitions');\n assert(table.rows, 'Table must have row definitions');\n\n table.tl = colCache.decodeAddress(table.ref);\n const {row, col} = table.tl;\n assert(row > 0, 'Table must be on valid row');\n assert(col > 0, 'Table must be on valid col');\n\n const {width, filterHeight, tableHeight} = this;\n\n // autoFilterRef is a range that includes optional headers only\n table.autoFilterRef = colCache.encode(row, col, row + filterHeight - 1, col + width - 1);\n\n // tableRef is a range that includes optional headers and totals\n table.tableRef = colCache.encode(row, col, row + tableHeight - 1, col + width - 1);\n\n table.columns.forEach((column, i) => {\n assert(column.name, `Column ${i} must have a name`);\n if (i === 0) {\n assign(column, 'totalsRowLabel', 'Total');\n } else {\n assign(column, 'totalsRowFunction', 'none');\n column.totalsRowFormula = this.getFormula(column);\n }\n });\n }\n\n store() {\n // where the table needs to store table data, headers, footers in\n // the sheet...\n const assignStyle = (cell, style) => {\n if (style) {\n Object.keys(style).forEach(key => {\n cell.style[key] = style[key];\n });\n }\n };\n\n const {worksheet, table} = this;\n const {row, col} = table.tl;\n let count = 0;\n if (table.headerRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const {style, name} = column;\n const cell = r.getCell(col + j);\n cell.value = name;\n assignStyle(cell, style);\n });\n }\n table.rows.forEach(data => {\n const r = worksheet.getRow(row + count++);\n data.forEach((value, j) => {\n const cell = r.getCell(col + j);\n cell.value = value;\n\n assignStyle(cell, table.columns[j].style);\n });\n });\n\n if (table.totalsRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const cell = r.getCell(col + j);\n if (j === 0) {\n cell.value = column.totalsRowLabel;\n } else {\n const formula = this.getFormula(column);\n if (formula) {\n cell.value = {\n formula: column.totalsRowFormula,\n result: column.totalsRowResult,\n };\n } else {\n cell.value = null;\n }\n }\n\n assignStyle(cell, column.style);\n });\n }\n }\n\n load(worksheet) {\n // where the table will read necessary features from a loaded sheet\n const {table} = this;\n const {row, col} = table.tl;\n let count = 0;\n if (table.headerRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const cell = r.getCell(col + j);\n cell.value = column.name;\n });\n }\n table.rows.forEach(data => {\n const r = worksheet.getRow(row + count++);\n data.forEach((value, j) => {\n const cell = r.getCell(col + j);\n cell.value = value;\n });\n });\n\n if (table.totalsRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const cell = r.getCell(col + j);\n if (j === 0) {\n cell.value = column.totalsRowLabel;\n } else {\n const formula = this.getFormula(column);\n if (formula) {\n cell.value = {\n formula: column.totalsRowFormula,\n result: column.totalsRowResult,\n };\n }\n }\n });\n }\n }\n\n get model() {\n return this.table;\n }\n\n set model(value) {\n this.table = value;\n }\n\n // ================================================================\n // TODO: Mutating methods\n cacheState() {\n if (!this._cache) {\n this._cache = {\n ref: this.ref,\n width: this.width,\n tableHeight: this.tableHeight,\n };\n }\n }\n\n commit() {\n // changes may have been made that might have on-sheet effects\n if (!this._cache) {\n return;\n }\n\n // check things are ok first\n this.validate();\n\n const ref = colCache.decodeAddress(this._cache.ref);\n if (this.ref !== this._cache.ref) {\n // wipe out whole table footprint at previous location\n for (let i = 0; i < this._cache.tableHeight; i++) {\n const row = this.worksheet.getRow(ref.row + i);\n for (let j = 0; j < this._cache.width; j++) {\n const cell = row.getCell(ref.col + j);\n cell.value = null;\n }\n }\n } else {\n // clear out below table if it has shrunk\n for (let i = this.tableHeight; i < this._cache.tableHeight; i++) {\n const row = this.worksheet.getRow(ref.row + i);\n for (let j = 0; j < this._cache.width; j++) {\n const cell = row.getCell(ref.col + j);\n cell.value = null;\n }\n }\n\n // clear out to right of table if it has lost columns\n for (let i = 0; i < this.tableHeight; i++) {\n const row = this.worksheet.getRow(ref.row + i);\n for (let j = this.width; j < this._cache.width; j++) {\n const cell = row.getCell(ref.col + j);\n cell.value = null;\n }\n }\n }\n\n this.store();\n }\n\n addRow(values, rowNumber) {\n // Add a row of data, either insert at rowNumber or append\n this.cacheState();\n\n if (rowNumber === undefined) {\n this.table.rows.push(values);\n } else {\n this.table.rows.splice(rowNumber, 0, values);\n }\n }\n\n removeRows(rowIndex, count = 1) {\n // Remove a rows of data\n this.cacheState();\n this.table.rows.splice(rowIndex, count);\n }\n\n getColumn(colIndex) {\n const column = this.table.columns[colIndex];\n return new Column(this, column, colIndex);\n }\n\n addColumn(column, values, colIndex) {\n // Add a new column, including column defn and values\n // Inserts at colNumber or adds to the right\n this.cacheState();\n\n if (colIndex === undefined) {\n this.table.columns.push(column);\n this.table.rows.forEach((row, i) => {\n row.push(values[i]);\n });\n } else {\n this.table.columns.splice(colIndex, 0, column);\n this.table.rows.forEach((row, i) => {\n row.splice(colIndex, 0, values[i]);\n });\n }\n }\n\n removeColumns(colIndex, count = 1) {\n // Remove a column with data\n this.cacheState();\n\n this.table.columns.splice(colIndex, count);\n this.table.rows.forEach(row => {\n row.splice(colIndex, count);\n });\n }\n\n _assign(target, prop, value) {\n this.cacheState();\n target[prop] = value;\n }\n\n /* eslint-disable lines-between-class-members */\n get ref() {\n return this.table.ref;\n }\n set ref(value) {\n this._assign(this.table, 'ref', value);\n }\n\n get name() {\n return this.table.name;\n }\n set name(value) {\n this.table.name = value;\n }\n\n get displayName() {\n return this.table.displyName || this.table.name;\n }\n set displayNamename(value) {\n this.table.displayName = value;\n }\n\n get headerRow() {\n return this.table.headerRow;\n }\n set headerRow(value) {\n this._assign(this.table, 'headerRow', value);\n }\n\n get totalsRow() {\n return this.table.totalsRow;\n }\n set totalsRow(value) {\n this._assign(this.table, 'totalsRow', value);\n }\n\n get theme() {\n return this.table.style.name;\n }\n set theme(value) {\n this.table.style.name = value;\n }\n\n get showFirstColumn() {\n return this.table.style.showFirstColumn;\n }\n set showFirstColumn(value) {\n this.table.style.showFirstColumn = value;\n }\n\n get showLastColumn() {\n return this.table.style.showLastColumn;\n }\n set showLastColumn(value) {\n this.table.style.showLastColumn = value;\n }\n\n get showRowStripes() {\n return this.table.style.showRowStripes;\n }\n set showRowStripes(value) {\n this.table.style.showRowStripes = value;\n }\n\n get showColumnStripes() {\n return this.table.style.showColumnStripes;\n }\n set showColumnStripes(value) {\n this.table.style.showColumnStripes = value;\n }\n /* eslint-enable lines-between-class-members */\n}\n\nmodule.exports = Table;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"table.js","names":["colCache","require","Column","constructor","table","column","index","_set","name","value","cacheState","filterButton","style","totalsRowLabel","totalsRowFunction","totalsRowResult","totalsRowFormula","Table","worksheet","validate","store","getFormula","Error","width","columns","length","height","rows","filterHeight","headerRow","tableHeight","totalsRow","assign","o","dflt","undefined","assert","test","message","ref","tl","decodeAddress","row","col","autoFilterRef","encode","tableRef","forEach","i","assignStyle","cell","Object","keys","key","count","r","getRow","j","getCell","data","formula","result","load","model","_cache","commit","addRow","values","rowNumber","push","splice","removeRows","rowIndex","arguments","getColumn","colIndex","addColumn","removeColumns","_assign","target","prop","displayName","displyName","displayNamename","theme","showFirstColumn","showLastColumn","showRowStripes","showColumnStripes","module","exports"],"sources":["../../../lib/doc/table.js"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nconst colCache = require('../utils/col-cache');\n\nclass Column {\n // wrapper around column model, allowing access and manipulation\n constructor(table, column, index) {\n this.table = table;\n this.column = column;\n this.index = index;\n }\n\n _set(name, value) {\n this.table.cacheState();\n this.column[name] = value;\n }\n\n /* eslint-disable lines-between-class-members */\n get name() {\n return this.column.name;\n }\n set name(value) {\n this._set('name', value);\n }\n\n get filterButton() {\n return this.column.filterButton;\n }\n set filterButton(value) {\n this.column.filterButton = value;\n }\n\n get style() {\n return this.column.style;\n }\n set style(value) {\n this.column.style = value;\n }\n\n get totalsRowLabel() {\n return this.column.totalsRowLabel;\n }\n set totalsRowLabel(value) {\n this._set('totalsRowLabel', value);\n }\n\n get totalsRowFunction() {\n return this.column.totalsRowFunction;\n }\n set totalsRowFunction(value) {\n this._set('totalsRowFunction', value);\n }\n\n get totalsRowResult() {\n return this.column.totalsRowResult;\n }\n set totalsRowResult(value) {\n this._set('totalsRowResult', value);\n }\n\n get totalsRowFormula() {\n return this.column.totalsRowFormula;\n }\n set totalsRowFormula(value) {\n this._set('totalsRowFormula', value);\n }\n /* eslint-enable lines-between-class-members */\n}\n\nclass Table {\n constructor(worksheet, table) {\n this.worksheet = worksheet;\n if (table) {\n this.table = table;\n // check things are ok first\n this.validate();\n\n this.store();\n }\n }\n\n getFormula(column) {\n // get the correct formula to apply to the totals row\n switch (column.totalsRowFunction) {\n case 'none':\n return null;\n case 'average':\n return `SUBTOTAL(101,${this.table.name}[${column.name}])`;\n case 'countNums':\n return `SUBTOTAL(102,${this.table.name}[${column.name}])`;\n case 'count':\n return `SUBTOTAL(103,${this.table.name}[${column.name}])`;\n case 'max':\n return `SUBTOTAL(104,${this.table.name}[${column.name}])`;\n case 'min':\n return `SUBTOTAL(105,${this.table.name}[${column.name}])`;\n case 'stdDev':\n return `SUBTOTAL(106,${this.table.name}[${column.name}])`;\n case 'var':\n return `SUBTOTAL(107,${this.table.name}[${column.name}])`;\n case 'sum':\n return `SUBTOTAL(109,${this.table.name}[${column.name}])`;\n case 'custom':\n return column.totalsRowFormula;\n default:\n throw new Error(`Invalid Totals Row Function: ${column.totalsRowFunction}`);\n }\n }\n\n get width() {\n // width of the table\n return this.table.columns.length;\n }\n\n get height() {\n // height of the table data\n return this.table.rows.length;\n }\n\n get filterHeight() {\n // height of the table data plus optional header row\n return this.height + (this.table.headerRow ? 1 : 0);\n }\n\n get tableHeight() {\n // full height of the table on the sheet\n return this.filterHeight + (this.table.totalsRow ? 1 : 0);\n }\n\n validate() {\n const {table} = this;\n // set defaults and check is valid\n const assign = (o, name, dflt) => {\n if (o[name] === undefined) {\n o[name] = dflt;\n }\n };\n assign(table, 'headerRow', true);\n assign(table, 'totalsRow', false);\n\n assign(table, 'style', {});\n assign(table.style, 'theme', 'TableStyleMedium2');\n assign(table.style, 'showFirstColumn', false);\n assign(table.style, 'showLastColumn', false);\n assign(table.style, 'showRowStripes', false);\n assign(table.style, 'showColumnStripes', false);\n\n const assert = (test, message) => {\n if (!test) {\n throw new Error(message);\n }\n };\n assert(table.ref, 'Table must have ref');\n assert(table.columns, 'Table must have column definitions');\n assert(table.rows, 'Table must have row definitions');\n\n table.tl = colCache.decodeAddress(table.ref);\n const {row, col} = table.tl;\n assert(row > 0, 'Table must be on valid row');\n assert(col > 0, 'Table must be on valid col');\n\n const {width, filterHeight, tableHeight} = this;\n\n // autoFilterRef is a range that includes optional headers only\n table.autoFilterRef = colCache.encode(row, col, row + filterHeight - 1, col + width - 1);\n\n // tableRef is a range that includes optional headers and totals\n table.tableRef = colCache.encode(row, col, row + tableHeight - 1, col + width - 1);\n\n table.columns.forEach((column, i) => {\n assert(column.name, `Column ${i} must have a name`);\n if (i === 0) {\n assign(column, 'totalsRowLabel', 'Total');\n } else {\n assign(column, 'totalsRowFunction', 'none');\n column.totalsRowFormula = this.getFormula(column);\n }\n });\n }\n\n store() {\n // where the table needs to store table data, headers, footers in\n // the sheet...\n const assignStyle = (cell, style) => {\n if (style) {\n Object.keys(style).forEach(key => {\n cell.style[key] = style[key];\n });\n }\n };\n\n const {worksheet, table} = this;\n const {row, col} = table.tl;\n let count = 0;\n if (table.headerRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const {style, name} = column;\n const cell = r.getCell(col + j);\n cell.value = name;\n assignStyle(cell, style);\n });\n }\n table.rows.forEach(data => {\n const r = worksheet.getRow(row + count++);\n data.forEach((value, j) => {\n const cell = r.getCell(col + j);\n cell.value = value;\n\n assignStyle(cell, table.columns[j].style);\n });\n });\n\n if (table.totalsRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const cell = r.getCell(col + j);\n if (j === 0) {\n cell.value = column.totalsRowLabel;\n } else {\n const formula = this.getFormula(column);\n if (formula) {\n cell.value = {\n formula: column.totalsRowFormula,\n result: column.totalsRowResult,\n };\n } else {\n cell.value = null;\n }\n }\n\n assignStyle(cell, column.style);\n });\n }\n }\n\n load(worksheet) {\n // where the table will read necessary features from a loaded sheet\n const {table} = this;\n const {row, col} = table.tl;\n let count = 0;\n if (table.headerRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const cell = r.getCell(col + j);\n cell.value = column.name;\n });\n }\n table.rows.forEach(data => {\n const r = worksheet.getRow(row + count++);\n data.forEach((value, j) => {\n const cell = r.getCell(col + j);\n cell.value = value;\n });\n });\n\n if (table.totalsRow) {\n const r = worksheet.getRow(row + count++);\n table.columns.forEach((column, j) => {\n const cell = r.getCell(col + j);\n if (j === 0) {\n cell.value = column.totalsRowLabel;\n } else {\n const formula = this.getFormula(column);\n if (formula) {\n cell.value = {\n formula: column.totalsRowFormula,\n result: column.totalsRowResult,\n };\n }\n }\n });\n }\n }\n\n get model() {\n return this.table;\n }\n\n set model(value) {\n this.table = value;\n }\n\n // ================================================================\n // TODO: Mutating methods\n cacheState() {\n if (!this._cache) {\n this._cache = {\n ref: this.ref,\n width: this.width,\n tableHeight: this.tableHeight,\n };\n }\n }\n\n commit() {\n // changes may have been made that might have on-sheet effects\n if (!this._cache) {\n return;\n }\n\n // check things are ok first\n this.validate();\n\n const ref = colCache.decodeAddress(this._cache.ref);\n if (this.ref !== this._cache.ref) {\n // wipe out whole table footprint at previous location\n for (let i = 0; i < this._cache.tableHeight; i++) {\n const row = this.worksheet.getRow(ref.row + i);\n for (let j = 0; j < this._cache.width; j++) {\n const cell = row.getCell(ref.col + j);\n cell.value = null;\n }\n }\n } else {\n // clear out below table if it has shrunk\n for (let i = this.tableHeight; i < this._cache.tableHeight; i++) {\n const row = this.worksheet.getRow(ref.row + i);\n for (let j = 0; j < this._cache.width; j++) {\n const cell = row.getCell(ref.col + j);\n cell.value = null;\n }\n }\n\n // clear out to right of table if it has lost columns\n for (let i = 0; i < this.tableHeight; i++) {\n const row = this.worksheet.getRow(ref.row + i);\n for (let j = this.width; j < this._cache.width; j++) {\n const cell = row.getCell(ref.col + j);\n cell.value = null;\n }\n }\n }\n\n this.store();\n }\n\n addRow(values, rowNumber) {\n // Add a row of data, either insert at rowNumber or append\n this.cacheState();\n\n if (rowNumber === undefined) {\n this.table.rows.push(values);\n } else {\n this.table.rows.splice(rowNumber, 0, values);\n }\n }\n\n removeRows(rowIndex, count = 1) {\n // Remove a rows of data\n this.cacheState();\n this.table.rows.splice(rowIndex, count);\n }\n\n getColumn(colIndex) {\n const column = this.table.columns[colIndex];\n return new Column(this, column, colIndex);\n }\n\n addColumn(column, values, colIndex) {\n // Add a new column, including column defn and values\n // Inserts at colNumber or adds to the right\n this.cacheState();\n\n if (colIndex === undefined) {\n this.table.columns.push(column);\n this.table.rows.forEach((row, i) => {\n row.push(values[i]);\n });\n } else {\n this.table.columns.splice(colIndex, 0, column);\n this.table.rows.forEach((row, i) => {\n row.splice(colIndex, 0, values[i]);\n });\n }\n }\n\n removeColumns(colIndex, count = 1) {\n // Remove a column with data\n this.cacheState();\n\n this.table.columns.splice(colIndex, count);\n this.table.rows.forEach(row => {\n row.splice(colIndex, count);\n });\n }\n\n _assign(target, prop, value) {\n this.cacheState();\n target[prop] = value;\n }\n\n /* eslint-disable lines-between-class-members */\n get ref() {\n return this.table.ref;\n }\n set ref(value) {\n this._assign(this.table, 'ref', value);\n }\n\n get name() {\n return this.table.name;\n }\n set name(value) {\n this.table.name = value;\n }\n\n get displayName() {\n return this.table.displyName || this.table.name;\n }\n set displayNamename(value) {\n this.table.displayName = value;\n }\n\n get headerRow() {\n return this.table.headerRow;\n }\n set headerRow(value) {\n this._assign(this.table, 'headerRow', value);\n }\n\n get totalsRow() {\n return this.table.totalsRow;\n }\n set totalsRow(value) {\n this._assign(this.table, 'totalsRow', value);\n }\n\n get theme() {\n return this.table.style.name;\n }\n set theme(value) {\n this.table.style.name = value;\n }\n\n get showFirstColumn() {\n return this.table.style.showFirstColumn;\n }\n set showFirstColumn(value) {\n this.table.style.showFirstColumn = value;\n }\n\n get showLastColumn() {\n return this.table.style.showLastColumn;\n }\n set showLastColumn(value) {\n this.table.style.showLastColumn = value;\n }\n\n get showRowStripes() {\n return this.table.style.showRowStripes;\n }\n set showRowStripes(value) {\n this.table.style.showRowStripes = value;\n }\n\n get showColumnStripes() {\n return this.table.style.showColumnStripes;\n }\n set showColumnStripes(value) {\n this.table.style.showColumnStripes = value;\n }\n /* eslint-enable lines-between-class-members */\n}\n\nmodule.exports = Table;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -125,7 +125,7 @@ class Worksheet {
|
|
|
125
125
|
}
|
|
126
126
|
set name(name) {
|
|
127
127
|
if (name === undefined) {
|
|
128
|
-
name =
|
|
128
|
+
name = `sheet${this.id}`;
|
|
129
129
|
}
|
|
130
130
|
if (this._name === name) return;
|
|
131
131
|
if (typeof name !== 'string') {
|
|
@@ -141,18 +141,18 @@ class Worksheet {
|
|
|
141
141
|
// Illegal character in worksheet name: asterisk (*), question mark (?),
|
|
142
142
|
// colon (:), forward slash (/ \), or bracket ([])
|
|
143
143
|
if (/[*?:/\\[\]]/.test(name)) {
|
|
144
|
-
throw new Error(
|
|
144
|
+
throw new Error(`Worksheet name ${name} cannot include any of the following characters: * ? : \\ / [ ]`);
|
|
145
145
|
}
|
|
146
146
|
if (/(^')|('$)/.test(name)) {
|
|
147
|
-
throw new Error(
|
|
147
|
+
throw new Error(`The first or last character of worksheet name cannot be a single quotation mark: ${name}`);
|
|
148
148
|
}
|
|
149
149
|
if (name && name.length > 31) {
|
|
150
150
|
// eslint-disable-next-line no-console
|
|
151
|
-
console.warn(
|
|
151
|
+
console.warn(`Worksheet name ${name} exceeds 31 chars. This will be truncated`);
|
|
152
152
|
name = name.substring(0, 31);
|
|
153
153
|
}
|
|
154
154
|
if (this._workbook._worksheets.find(ws => ws && ws.name.toLowerCase() === name.toLowerCase())) {
|
|
155
|
-
throw new Error(
|
|
155
|
+
throw new Error(`Worksheet name already exists: ${name}`);
|
|
156
156
|
}
|
|
157
157
|
this._name = name;
|
|
158
158
|
}
|
|
@@ -794,7 +794,8 @@ class Worksheet {
|
|
|
794
794
|
// Pivot Tables
|
|
795
795
|
addPivotTable(model) {
|
|
796
796
|
// eslint-disable-next-line no-console
|
|
797
|
-
console.warn(
|
|
797
|
+
console.warn(`Warning: Pivot Table support is experimental.
|
|
798
|
+
Please leave feedback at https://github.com/exceljs/exceljs/discussions/2575`);
|
|
798
799
|
const pivotTable = makePivotTable(this, model);
|
|
799
800
|
this.pivotTables.push(pivotTable);
|
|
800
801
|
this.workbook.pivotTables.push(pivotTable);
|