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/dx-exceljs-fork.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* DevExtreme-ExcelJS Fork v.4.4.
|
|
2
|
+
* DevExtreme-ExcelJS Fork v.4.4.8
|
|
3
3
|
* https://js.devexpress.com/
|
|
4
4
|
* Copyright (c) 2025, Developer Express Inc.
|
|
5
5
|
* Copyright (c) 2014-2019 Guyon Roche
|
|
6
|
-
* Read about DevExtreme-ExcelJS Fork licensing here: https://cdn.jsdelivr.net/npm/devextreme-exceljs-fork@4.4.
|
|
6
|
+
* Read about DevExtreme-ExcelJS Fork licensing here: https://cdn.jsdelivr.net/npm/devextreme-exceljs-fork@4.4.8/LICENSE
|
|
7
7
|
*/
|
|
8
8
|
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ExcelJS = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}return r})()({1:[function(require,module,exports){
|
|
9
9
|
"use strict";
|
|
@@ -56,7 +56,7 @@ class CSV {
|
|
|
56
56
|
async readFile(filename, options) {
|
|
57
57
|
options = options || {};
|
|
58
58
|
if (!(await exists(filename))) {
|
|
59
|
-
throw new Error(
|
|
59
|
+
throw new Error(`File not found: ${filename}`);
|
|
60
60
|
}
|
|
61
61
|
const stream = fs.createReadStream(filename);
|
|
62
62
|
const worksheet = await this.read(stream, options);
|
|
@@ -375,7 +375,7 @@ class Cell {
|
|
|
375
375
|
return this._column.number;
|
|
376
376
|
}
|
|
377
377
|
get $col$row() {
|
|
378
|
-
return
|
|
378
|
+
return `$${this._column.letter}$${this.row}`;
|
|
379
379
|
}
|
|
380
380
|
|
|
381
381
|
// =========================================================================
|
|
@@ -671,7 +671,7 @@ class StringValue {
|
|
|
671
671
|
this.model.address = value;
|
|
672
672
|
}
|
|
673
673
|
toCsvString() {
|
|
674
|
-
return "
|
|
674
|
+
return `"${this.model.value.replace(/"/g, '""')}"`;
|
|
675
675
|
}
|
|
676
676
|
release() {}
|
|
677
677
|
toString() {
|
|
@@ -708,7 +708,7 @@ class RichTextValue {
|
|
|
708
708
|
this.model.address = value;
|
|
709
709
|
}
|
|
710
710
|
toCsvString() {
|
|
711
|
-
return "
|
|
711
|
+
return `"${this.text.replace(/"/g, '""')}"`;
|
|
712
712
|
}
|
|
713
713
|
release() {}
|
|
714
714
|
}
|
|
@@ -991,7 +991,7 @@ class FormulaValue {
|
|
|
991
991
|
return this._translatedFormula;
|
|
992
992
|
}
|
|
993
993
|
toCsvString() {
|
|
994
|
-
return
|
|
994
|
+
return `${this.model.result || ''}`;
|
|
995
995
|
}
|
|
996
996
|
release() {}
|
|
997
997
|
toString() {
|
|
@@ -1216,7 +1216,7 @@ const Value = {
|
|
|
1216
1216
|
create(type, cell, value) {
|
|
1217
1217
|
const T = this.types[type];
|
|
1218
1218
|
if (!T) {
|
|
1219
|
-
throw new Error(
|
|
1219
|
+
throw new Error(`Could not create Value of type ${type}`);
|
|
1220
1220
|
}
|
|
1221
1221
|
return new T(cell, value);
|
|
1222
1222
|
}
|
|
@@ -1949,7 +1949,7 @@ function validate(worksheet, model) {
|
|
|
1949
1949
|
const isInHeaderNames = objectFromProps(headerNames, true);
|
|
1950
1950
|
for (const name of [...model.rows, ...model.columns, ...model.values]) {
|
|
1951
1951
|
if (!isInHeaderNames[name]) {
|
|
1952
|
-
throw new Error(
|
|
1952
|
+
throw new Error(`The header name "${name}" was not found in ${model.sourceSheet.name}.`);
|
|
1953
1953
|
}
|
|
1954
1954
|
}
|
|
1955
1955
|
if (!model.rows.length) {
|
|
@@ -2122,7 +2122,7 @@ class Range {
|
|
|
2122
2122
|
};
|
|
2123
2123
|
break;
|
|
2124
2124
|
default:
|
|
2125
|
-
throw new Error(
|
|
2125
|
+
throw new Error(`Invalid number of arguments to _getDimensions() - ${argv.length}`);
|
|
2126
2126
|
}
|
|
2127
2127
|
}
|
|
2128
2128
|
get top() {
|
|
@@ -2161,9 +2161,9 @@ class Range {
|
|
|
2161
2161
|
} = this.model;
|
|
2162
2162
|
if (sheetName) {
|
|
2163
2163
|
if (/^[a-zA-Z0-9]*$/.test(sheetName)) {
|
|
2164
|
-
return
|
|
2164
|
+
return `${sheetName}!`;
|
|
2165
2165
|
}
|
|
2166
|
-
return
|
|
2166
|
+
return `'${sheetName}'!`;
|
|
2167
2167
|
}
|
|
2168
2168
|
return '';
|
|
2169
2169
|
}
|
|
@@ -2192,19 +2192,19 @@ class Range {
|
|
|
2192
2192
|
return colCache.n2l(this.left) + this.top;
|
|
2193
2193
|
}
|
|
2194
2194
|
get $t$l() {
|
|
2195
|
-
return
|
|
2195
|
+
return `$${colCache.n2l(this.left)}$${this.top}`;
|
|
2196
2196
|
}
|
|
2197
2197
|
get br() {
|
|
2198
2198
|
return colCache.n2l(this.right) + this.bottom;
|
|
2199
2199
|
}
|
|
2200
2200
|
get $b$r() {
|
|
2201
|
-
return
|
|
2201
|
+
return `$${colCache.n2l(this.right)}$${this.bottom}`;
|
|
2202
2202
|
}
|
|
2203
2203
|
get range() {
|
|
2204
|
-
return
|
|
2204
|
+
return `${this._serialisedSheetName + this.tl}:${this.br}`;
|
|
2205
2205
|
}
|
|
2206
2206
|
get $range() {
|
|
2207
|
-
return
|
|
2207
|
+
return `${this._serialisedSheetName + this.$t$l}:${this.$b$r}`;
|
|
2208
2208
|
}
|
|
2209
2209
|
get shortRange() {
|
|
2210
2210
|
return this.count > 1 ? this.range : this._serialisedSheetName + this.tl;
|
|
@@ -2605,7 +2605,7 @@ class Row {
|
|
|
2605
2605
|
row,
|
|
2606
2606
|
col,
|
|
2607
2607
|
address: colCache.encodeAddress(row, col),
|
|
2608
|
-
$col$row:
|
|
2608
|
+
$col$row: `$${colCache.n2l(col)}$${row}`
|
|
2609
2609
|
};
|
|
2610
2610
|
}
|
|
2611
2611
|
previousAddress = address;
|
|
@@ -2705,25 +2705,25 @@ class Table {
|
|
|
2705
2705
|
case 'none':
|
|
2706
2706
|
return null;
|
|
2707
2707
|
case 'average':
|
|
2708
|
-
return
|
|
2708
|
+
return `SUBTOTAL(101,${this.table.name}[${column.name}])`;
|
|
2709
2709
|
case 'countNums':
|
|
2710
|
-
return
|
|
2710
|
+
return `SUBTOTAL(102,${this.table.name}[${column.name}])`;
|
|
2711
2711
|
case 'count':
|
|
2712
|
-
return
|
|
2712
|
+
return `SUBTOTAL(103,${this.table.name}[${column.name}])`;
|
|
2713
2713
|
case 'max':
|
|
2714
|
-
return
|
|
2714
|
+
return `SUBTOTAL(104,${this.table.name}[${column.name}])`;
|
|
2715
2715
|
case 'min':
|
|
2716
|
-
return
|
|
2716
|
+
return `SUBTOTAL(105,${this.table.name}[${column.name}])`;
|
|
2717
2717
|
case 'stdDev':
|
|
2718
|
-
return
|
|
2718
|
+
return `SUBTOTAL(106,${this.table.name}[${column.name}])`;
|
|
2719
2719
|
case 'var':
|
|
2720
|
-
return
|
|
2720
|
+
return `SUBTOTAL(107,${this.table.name}[${column.name}])`;
|
|
2721
2721
|
case 'sum':
|
|
2722
|
-
return
|
|
2722
|
+
return `SUBTOTAL(109,${this.table.name}[${column.name}])`;
|
|
2723
2723
|
case 'custom':
|
|
2724
2724
|
return column.totalsRowFormula;
|
|
2725
2725
|
default:
|
|
2726
|
-
throw new Error(
|
|
2726
|
+
throw new Error(`Invalid Totals Row Function: ${column.totalsRowFunction}`);
|
|
2727
2727
|
}
|
|
2728
2728
|
}
|
|
2729
2729
|
get width() {
|
|
@@ -2787,7 +2787,7 @@ class Table {
|
|
|
2787
2787
|
// tableRef is a range that includes optional headers and totals
|
|
2788
2788
|
table.tableRef = colCache.encode(row, col, row + tableHeight - 1, col + width - 1);
|
|
2789
2789
|
table.columns.forEach((column, i) => {
|
|
2790
|
-
assert(column.name,
|
|
2790
|
+
assert(column.name, `Column ${i} must have a name`);
|
|
2791
2791
|
if (i === 0) {
|
|
2792
2792
|
assign(column, 'totalsRowLabel', 'Total');
|
|
2793
2793
|
} else {
|
|
@@ -3403,7 +3403,7 @@ class Worksheet {
|
|
|
3403
3403
|
}
|
|
3404
3404
|
set name(name) {
|
|
3405
3405
|
if (name === undefined) {
|
|
3406
|
-
name =
|
|
3406
|
+
name = `sheet${this.id}`;
|
|
3407
3407
|
}
|
|
3408
3408
|
if (this._name === name) return;
|
|
3409
3409
|
if (typeof name !== 'string') {
|
|
@@ -3419,18 +3419,18 @@ class Worksheet {
|
|
|
3419
3419
|
// Illegal character in worksheet name: asterisk (*), question mark (?),
|
|
3420
3420
|
// colon (:), forward slash (/ \), or bracket ([])
|
|
3421
3421
|
if (/[*?:/\\[\]]/.test(name)) {
|
|
3422
|
-
throw new Error(
|
|
3422
|
+
throw new Error(`Worksheet name ${name} cannot include any of the following characters: * ? : \\ / [ ]`);
|
|
3423
3423
|
}
|
|
3424
3424
|
if (/(^')|('$)/.test(name)) {
|
|
3425
|
-
throw new Error(
|
|
3425
|
+
throw new Error(`The first or last character of worksheet name cannot be a single quotation mark: ${name}`);
|
|
3426
3426
|
}
|
|
3427
3427
|
if (name && name.length > 31) {
|
|
3428
3428
|
// eslint-disable-next-line no-console
|
|
3429
|
-
console.warn(
|
|
3429
|
+
console.warn(`Worksheet name ${name} exceeds 31 chars. This will be truncated`);
|
|
3430
3430
|
name = name.substring(0, 31);
|
|
3431
3431
|
}
|
|
3432
3432
|
if (this._workbook._worksheets.find(ws => ws && ws.name.toLowerCase() === name.toLowerCase())) {
|
|
3433
|
-
throw new Error(
|
|
3433
|
+
throw new Error(`Worksheet name already exists: ${name}`);
|
|
3434
3434
|
}
|
|
3435
3435
|
this._name = name;
|
|
3436
3436
|
}
|
|
@@ -4072,7 +4072,8 @@ class Worksheet {
|
|
|
4072
4072
|
// Pivot Tables
|
|
4073
4073
|
addPivotTable(model) {
|
|
4074
4074
|
// eslint-disable-next-line no-console
|
|
4075
|
-
console.warn(
|
|
4075
|
+
console.warn(`Warning: Pivot Table support is experimental.
|
|
4076
|
+
Please leave feedback at https://github.com/exceljs/exceljs/discussions/2575`);
|
|
4076
4077
|
const pivotTable = makePivotTable(this, model);
|
|
4077
4078
|
this.pivotTables.push(pivotTable);
|
|
4078
4079
|
this.workbook.pivotTables.push(pivotTable);
|
|
@@ -4418,11 +4419,6 @@ module.exports = CellMatrix;
|
|
|
4418
4419
|
},{"./col-cache":20,"./under-dash":27}],20:[function(require,module,exports){
|
|
4419
4420
|
"use strict";
|
|
4420
4421
|
|
|
4421
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4422
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4423
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
4424
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
4425
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
4426
4422
|
const addressRegex = /^[A-Z]+\d+$/;
|
|
4427
4423
|
// =========================================================================
|
|
4428
4424
|
// Column Letter to Number conversion
|
|
@@ -4492,13 +4488,13 @@ const colCache = {
|
|
|
4492
4488
|
this._fill(l.length);
|
|
4493
4489
|
}
|
|
4494
4490
|
if (!this._l2n[l]) {
|
|
4495
|
-
throw new Error(
|
|
4491
|
+
throw new Error(`Out of bounds. Invalid column letter: ${l}`);
|
|
4496
4492
|
}
|
|
4497
4493
|
return this._l2n[l];
|
|
4498
4494
|
},
|
|
4499
4495
|
n2l(n) {
|
|
4500
4496
|
if (n < 1 || n > 16384) {
|
|
4501
|
-
throw new Error(
|
|
4497
|
+
throw new Error(`${n} is out of bounds. Excel supports columns from 1 to 16384`);
|
|
4502
4498
|
}
|
|
4503
4499
|
if (!this._n2l[n]) {
|
|
4504
4500
|
this._fill(this._level(n));
|
|
@@ -4511,7 +4507,7 @@ const colCache = {
|
|
|
4511
4507
|
// check if value looks like an address
|
|
4512
4508
|
validateAddress(value) {
|
|
4513
4509
|
if (!addressRegex.test(value)) {
|
|
4514
|
-
throw new Error(
|
|
4510
|
+
throw new Error(`Invalid Address: ${value}`);
|
|
4515
4511
|
}
|
|
4516
4512
|
return true;
|
|
4517
4513
|
},
|
|
@@ -4552,7 +4548,7 @@ const colCache = {
|
|
|
4552
4548
|
if (!hasCol) {
|
|
4553
4549
|
colNumber = undefined;
|
|
4554
4550
|
} else if (colNumber > 16384) {
|
|
4555
|
-
throw new Error(
|
|
4551
|
+
throw new Error(`Out of bounds. Invalid column letter: ${col}`);
|
|
4556
4552
|
}
|
|
4557
4553
|
if (!hasRow) {
|
|
4558
4554
|
rowNumber = undefined;
|
|
@@ -4564,7 +4560,7 @@ const colCache = {
|
|
|
4564
4560
|
address: value,
|
|
4565
4561
|
col: colNumber,
|
|
4566
4562
|
row: rowNumber,
|
|
4567
|
-
$col$row:
|
|
4563
|
+
$col$row: `$${col}$${row}`
|
|
4568
4564
|
};
|
|
4569
4565
|
|
|
4570
4566
|
// mem fix - cache only the tl 100x100 square
|
|
@@ -4597,7 +4593,7 @@ const colCache = {
|
|
|
4597
4593
|
// reconstruct tl, br and dimensions
|
|
4598
4594
|
result.tl = this.n2l(result.left) + result.top;
|
|
4599
4595
|
result.br = this.n2l(result.right) + result.bottom;
|
|
4600
|
-
result.dimensions =
|
|
4596
|
+
result.dimensions = `${result.tl}:${result.br}`;
|
|
4601
4597
|
return result;
|
|
4602
4598
|
}
|
|
4603
4599
|
return this.decodeAddress(value);
|
|
@@ -4647,17 +4643,17 @@ const colCache = {
|
|
|
4647
4643
|
address: tl,
|
|
4648
4644
|
col: left,
|
|
4649
4645
|
row: top,
|
|
4650
|
-
$col$row:
|
|
4646
|
+
$col$row: `$${this.n2l(left)}$${top}`,
|
|
4651
4647
|
sheetName
|
|
4652
4648
|
},
|
|
4653
4649
|
br: {
|
|
4654
4650
|
address: br,
|
|
4655
4651
|
col: right,
|
|
4656
4652
|
row: bottom,
|
|
4657
|
-
$col$row:
|
|
4653
|
+
$col$row: `$${this.n2l(right)}$${bottom}`,
|
|
4658
4654
|
sheetName
|
|
4659
4655
|
},
|
|
4660
|
-
dimensions:
|
|
4656
|
+
dimensions: `${tl}:${br}`
|
|
4661
4657
|
};
|
|
4662
4658
|
}
|
|
4663
4659
|
if (reference.startsWith('#')) {
|
|
@@ -4669,9 +4665,10 @@ const colCache = {
|
|
|
4669
4665
|
};
|
|
4670
4666
|
}
|
|
4671
4667
|
const address = this.decodeAddress(reference);
|
|
4672
|
-
return sheetName ?
|
|
4673
|
-
sheetName
|
|
4674
|
-
|
|
4668
|
+
return sheetName ? {
|
|
4669
|
+
sheetName,
|
|
4670
|
+
...address
|
|
4671
|
+
} : address;
|
|
4675
4672
|
},
|
|
4676
4673
|
// convert row,col into address string
|
|
4677
4674
|
encodeAddress(row, col) {
|
|
@@ -4683,7 +4680,7 @@ const colCache = {
|
|
|
4683
4680
|
case 2:
|
|
4684
4681
|
return colCache.encodeAddress(arguments[0], arguments[1]);
|
|
4685
4682
|
case 4:
|
|
4686
|
-
return
|
|
4683
|
+
return `${colCache.encodeAddress(arguments[0], arguments[1])}:${colCache.encodeAddress(arguments[2], arguments[3])}`;
|
|
4687
4684
|
default:
|
|
4688
4685
|
throw new Error('Can only encode with 2 or 4 arguments');
|
|
4689
4686
|
}
|
|
@@ -4700,15 +4697,15 @@ module.exports = colCache;
|
|
|
4700
4697
|
},{}],21:[function(require,module,exports){
|
|
4701
4698
|
"use strict";
|
|
4702
4699
|
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
4710
|
-
|
|
4711
|
-
}
|
|
4700
|
+
const oneDepthCopy = (obj, nestKeys) => ({
|
|
4701
|
+
...obj,
|
|
4702
|
+
...nestKeys.reduce((memo, key) => {
|
|
4703
|
+
if (obj[key]) memo[key] = {
|
|
4704
|
+
...obj[key]
|
|
4705
|
+
};
|
|
4706
|
+
return memo;
|
|
4707
|
+
}, {})
|
|
4708
|
+
});
|
|
4712
4709
|
const setIfExists = function (src, dst, key) {
|
|
4713
4710
|
let nestKeys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
4714
4711
|
if (src[key]) dst[key] = oneDepthCopy(src[key], nestKeys);
|
|
@@ -4717,7 +4714,9 @@ const isEmptyObj = obj => Object.keys(obj).length === 0;
|
|
|
4717
4714
|
const copyStyle = style => {
|
|
4718
4715
|
if (!style) return style;
|
|
4719
4716
|
if (isEmptyObj(style)) return {};
|
|
4720
|
-
const copied =
|
|
4717
|
+
const copied = {
|
|
4718
|
+
...style
|
|
4719
|
+
};
|
|
4721
4720
|
setIfExists(style, copied, 'font', ['color']);
|
|
4722
4721
|
setIfExists(style, copied, 'alignment');
|
|
4723
4722
|
setIfExists(style, copied, 'protection');
|
|
@@ -4772,7 +4771,7 @@ const Encryptor = {
|
|
|
4772
4771
|
hashAlgorithm = hashAlgorithm.toLowerCase();
|
|
4773
4772
|
const hashes = crypto.getHashes();
|
|
4774
4773
|
if (hashes.indexOf(hashAlgorithm) < 0) {
|
|
4775
|
-
throw new Error(
|
|
4774
|
+
throw new Error(`Hash algorithm '${hashAlgorithm}' not supported!`);
|
|
4776
4775
|
}
|
|
4777
4776
|
|
|
4778
4777
|
// Password must be in unicode buffer
|
|
@@ -4804,13 +4803,6 @@ module.exports = Encryptor;
|
|
|
4804
4803
|
},{"buffer":237,"crypto":416}],23:[function(require,module,exports){
|
|
4805
4804
|
"use strict";
|
|
4806
4805
|
|
|
4807
|
-
function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); }
|
|
4808
|
-
function _wrapAsyncGenerator(e) { return function () { return new AsyncGenerator(e.apply(this, arguments)); }; }
|
|
4809
|
-
function AsyncGenerator(e) { var r, t; function resume(r, t) { try { var n = e[r](t), o = n.value, u = o instanceof _OverloadYield; Promise.resolve(u ? o.v : o).then(function (t) { if (u) { var i = "return" === r ? "return" : "next"; if (!o.k || t.done) return resume(i, t); t = e[i](t).value; } settle(n.done ? "return" : "normal", t); }, function (e) { resume("throw", e); }); } catch (e) { settle("throw", e); } } function settle(e, n) { switch (e) { case "return": r.resolve({ value: n, done: !0 }); break; case "throw": r.reject(n); break; default: r.resolve({ value: n, done: !1 }); } (r = r.next) ? resume(r.key, r.arg) : t = null; } this._invoke = function (e, n) { return new Promise(function (o, u) { var i = { key: e, arg: n, resolve: o, reject: u, next: null }; t ? t = t.next = i : (r = t = i, resume(e, n)); }); }, "function" != typeof e.return && (this.return = void 0); }
|
|
4810
|
-
AsyncGenerator.prototype["function" == typeof Symbol && Symbol.asyncIterator || "@@asyncIterator"] = function () { return this; }, AsyncGenerator.prototype.next = function (e) { return this._invoke("next", e); }, AsyncGenerator.prototype.throw = function (e) { return this._invoke("throw", e); }, AsyncGenerator.prototype.return = function (e) { return this._invoke("return", e); };
|
|
4811
|
-
function _OverloadYield(e, d) { this.v = e, this.k = d; }
|
|
4812
|
-
function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
4813
|
-
function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function (r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function () { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function (r) { var n = this.s.return; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, throw: function (r) { var n = this.s.return; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
|
|
4814
4806
|
const {
|
|
4815
4807
|
SaxesParser
|
|
4816
4808
|
} = require('saxes');
|
|
@@ -4820,67 +4812,41 @@ const {
|
|
|
4820
4812
|
const {
|
|
4821
4813
|
bufferToString
|
|
4822
4814
|
} = require('./browser-buffer-decode');
|
|
4823
|
-
module.exports =
|
|
4824
|
-
|
|
4825
|
-
|
|
4826
|
-
|
|
4827
|
-
|
|
4828
|
-
|
|
4829
|
-
|
|
4830
|
-
|
|
4831
|
-
|
|
4832
|
-
|
|
4833
|
-
error = err;
|
|
4834
|
-
});
|
|
4835
|
-
let events = [];
|
|
4836
|
-
saxesParser.on('opentag', value => events.push({
|
|
4837
|
-
eventType: 'opentag',
|
|
4838
|
-
value
|
|
4839
|
-
}));
|
|
4840
|
-
saxesParser.on('text', value => events.push({
|
|
4841
|
-
eventType: 'text',
|
|
4842
|
-
value
|
|
4843
|
-
}));
|
|
4844
|
-
saxesParser.on('closetag', value => events.push({
|
|
4845
|
-
eventType: 'closetag',
|
|
4846
|
-
value
|
|
4847
|
-
}));
|
|
4848
|
-
var _iteratorAbruptCompletion = false;
|
|
4849
|
-
var _didIteratorError = false;
|
|
4850
|
-
var _iteratorError;
|
|
4851
|
-
try {
|
|
4852
|
-
for (var _iterator = _asyncIterator(iterable), _step; _iteratorAbruptCompletion = !(_step = yield _awaitAsyncGenerator(_iterator.next())).done; _iteratorAbruptCompletion = false) {
|
|
4853
|
-
const chunk = _step.value;
|
|
4854
|
-
{
|
|
4855
|
-
saxesParser.write(bufferToString(chunk));
|
|
4856
|
-
// saxesParser.write and saxesParser.on() are synchronous,
|
|
4857
|
-
// so we can only reach the below line once all events have been emitted
|
|
4858
|
-
if (error) throw error;
|
|
4859
|
-
// As a performance optimization, we gather all events instead of passing
|
|
4860
|
-
// them one by one, which would cause each event to go through the event queue
|
|
4861
|
-
yield events;
|
|
4862
|
-
events = [];
|
|
4863
|
-
}
|
|
4864
|
-
}
|
|
4865
|
-
} catch (err) {
|
|
4866
|
-
_didIteratorError = true;
|
|
4867
|
-
_iteratorError = err;
|
|
4868
|
-
} finally {
|
|
4869
|
-
try {
|
|
4870
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
4871
|
-
yield _awaitAsyncGenerator(_iterator.return());
|
|
4872
|
-
}
|
|
4873
|
-
} finally {
|
|
4874
|
-
if (_didIteratorError) {
|
|
4875
|
-
throw _iteratorError;
|
|
4876
|
-
}
|
|
4877
|
-
}
|
|
4878
|
-
}
|
|
4815
|
+
module.exports = async function* (iterable) {
|
|
4816
|
+
// TODO: Remove once node v8 is deprecated
|
|
4817
|
+
// Detect and upgrade old streams
|
|
4818
|
+
if (iterable.pipe && !iterable[Symbol.asyncIterator]) {
|
|
4819
|
+
iterable = iterable.pipe(new PassThrough());
|
|
4820
|
+
}
|
|
4821
|
+
const saxesParser = new SaxesParser();
|
|
4822
|
+
let error;
|
|
4823
|
+
saxesParser.on('error', err => {
|
|
4824
|
+
error = err;
|
|
4879
4825
|
});
|
|
4880
|
-
|
|
4881
|
-
|
|
4882
|
-
|
|
4883
|
-
|
|
4826
|
+
let events = [];
|
|
4827
|
+
saxesParser.on('opentag', value => events.push({
|
|
4828
|
+
eventType: 'opentag',
|
|
4829
|
+
value
|
|
4830
|
+
}));
|
|
4831
|
+
saxesParser.on('text', value => events.push({
|
|
4832
|
+
eventType: 'text',
|
|
4833
|
+
value
|
|
4834
|
+
}));
|
|
4835
|
+
saxesParser.on('closetag', value => events.push({
|
|
4836
|
+
eventType: 'closetag',
|
|
4837
|
+
value
|
|
4838
|
+
}));
|
|
4839
|
+
for await (const chunk of iterable) {
|
|
4840
|
+
saxesParser.write(bufferToString(chunk));
|
|
4841
|
+
// saxesParser.write and saxesParser.on() are synchronous,
|
|
4842
|
+
// so we can only reach the below line once all events have been emitted
|
|
4843
|
+
if (error) throw error;
|
|
4844
|
+
// As a performance optimization, we gather all events instead of passing
|
|
4845
|
+
// them one by one, which would cause each event to go through the event queue
|
|
4846
|
+
yield events;
|
|
4847
|
+
events = [];
|
|
4848
|
+
}
|
|
4849
|
+
};
|
|
4884
4850
|
|
|
4885
4851
|
},{"./browser-buffer-decode":17,"readable-stream":578,"saxes":599}],24:[function(require,module,exports){
|
|
4886
4852
|
"use strict";
|
|
@@ -5591,7 +5557,7 @@ const utils = {
|
|
|
5591
5557
|
},
|
|
5592
5558
|
getRelsPath(filepath) {
|
|
5593
5559
|
const path = utils.parsePath(filepath);
|
|
5594
|
-
return
|
|
5560
|
+
return `${path.path}/_rels/${path.name}.rels`;
|
|
5595
5561
|
},
|
|
5596
5562
|
xmlEncode(text) {
|
|
5597
5563
|
const regexResult = xmlDecodeRegex.exec(text);
|
|
@@ -5739,7 +5705,7 @@ const CLOSE_ANGLE = '>';
|
|
|
5739
5705
|
const OPEN_ANGLE_SLASH = '</';
|
|
5740
5706
|
const CLOSE_SLASH_ANGLE = '/>';
|
|
5741
5707
|
function pushAttribute(xml, name, value) {
|
|
5742
|
-
xml.push(
|
|
5708
|
+
xml.push(` ${name}="${utils.xmlEncode(value.toString())}"`);
|
|
5743
5709
|
}
|
|
5744
5710
|
function pushAttributes(xml, attributes) {
|
|
5745
5711
|
if (attributes) {
|
|
@@ -6218,8 +6184,6 @@ module.exports = {
|
|
|
6218
6184
|
},{}],33:[function(require,module,exports){
|
|
6219
6185
|
"use strict";
|
|
6220
6186
|
|
|
6221
|
-
function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
6222
|
-
function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function (r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function () { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function (r) { var n = this.s.return; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, throw: function (r) { var n = this.s.return; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
|
|
6223
6187
|
const parseSax = require('../../utils/parse-sax');
|
|
6224
6188
|
const XmlStream = require('../../utils/xml-stream');
|
|
6225
6189
|
|
|
@@ -6274,42 +6238,21 @@ class BaseXform {
|
|
|
6274
6238
|
this.model = Object.assign(this.model || {}, obj);
|
|
6275
6239
|
}
|
|
6276
6240
|
async parse(saxParser) {
|
|
6277
|
-
|
|
6278
|
-
|
|
6279
|
-
|
|
6280
|
-
|
|
6281
|
-
|
|
6282
|
-
|
|
6283
|
-
|
|
6284
|
-
|
|
6285
|
-
|
|
6286
|
-
|
|
6287
|
-
|
|
6288
|
-
|
|
6289
|
-
this.parseOpen(value);
|
|
6290
|
-
} else if (eventType === 'text') {
|
|
6291
|
-
this.parseText(value);
|
|
6292
|
-
} else if (eventType === 'closetag') {
|
|
6293
|
-
if (!this.parseClose(value.name)) {
|
|
6294
|
-
return this.model;
|
|
6295
|
-
}
|
|
6296
|
-
}
|
|
6241
|
+
for await (const events of saxParser) {
|
|
6242
|
+
for (const {
|
|
6243
|
+
eventType,
|
|
6244
|
+
value
|
|
6245
|
+
} of events) {
|
|
6246
|
+
if (eventType === 'opentag') {
|
|
6247
|
+
this.parseOpen(value);
|
|
6248
|
+
} else if (eventType === 'text') {
|
|
6249
|
+
this.parseText(value);
|
|
6250
|
+
} else if (eventType === 'closetag') {
|
|
6251
|
+
if (!this.parseClose(value.name)) {
|
|
6252
|
+
return this.model;
|
|
6297
6253
|
}
|
|
6298
6254
|
}
|
|
6299
6255
|
}
|
|
6300
|
-
} catch (err) {
|
|
6301
|
-
_didIteratorError = true;
|
|
6302
|
-
_iteratorError = err;
|
|
6303
|
-
} finally {
|
|
6304
|
-
try {
|
|
6305
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
6306
|
-
await _iterator.return();
|
|
6307
|
-
}
|
|
6308
|
-
} finally {
|
|
6309
|
-
if (_didIteratorError) {
|
|
6310
|
-
throw _iteratorError;
|
|
6311
|
-
}
|
|
6312
|
-
}
|
|
6313
6256
|
}
|
|
6314
6257
|
return this.model;
|
|
6315
6258
|
}
|
|
@@ -6440,7 +6383,7 @@ function extractRanges(parsedText) {
|
|
|
6440
6383
|
const quotes = (item.match(/'/g) || []).length;
|
|
6441
6384
|
if (!quotes) {
|
|
6442
6385
|
if (quotesOpened) {
|
|
6443
|
-
last +=
|
|
6386
|
+
last += `${item},`;
|
|
6444
6387
|
} else if (isValidRange(item)) {
|
|
6445
6388
|
ranges.push(item);
|
|
6446
6389
|
}
|
|
@@ -6457,7 +6400,7 @@ function extractRanges(parsedText) {
|
|
|
6457
6400
|
last = '';
|
|
6458
6401
|
} else {
|
|
6459
6402
|
quotesOpened = true;
|
|
6460
|
-
last +=
|
|
6403
|
+
last += `${item},`;
|
|
6461
6404
|
}
|
|
6462
6405
|
});
|
|
6463
6406
|
return ranges;
|
|
@@ -6686,7 +6629,7 @@ class WorkbookXform extends BaseXform {
|
|
|
6686
6629
|
const printAreaComponents = printArea.split(':');
|
|
6687
6630
|
const definedName = {
|
|
6688
6631
|
name: '_xlnm.Print_Area',
|
|
6689
|
-
ranges: [
|
|
6632
|
+
ranges: [`'${sheet.name}'!$${printAreaComponents[0]}:$${printAreaComponents[1]}`],
|
|
6690
6633
|
localSheetId: index
|
|
6691
6634
|
};
|
|
6692
6635
|
printAreas.push(definedName);
|
|
@@ -6696,11 +6639,11 @@ class WorkbookXform extends BaseXform {
|
|
|
6696
6639
|
const ranges = [];
|
|
6697
6640
|
if (sheet.pageSetup.printTitlesColumn) {
|
|
6698
6641
|
const titlesColumns = sheet.pageSetup.printTitlesColumn.split(':');
|
|
6699
|
-
ranges.push(
|
|
6642
|
+
ranges.push(`'${sheet.name}'!$${titlesColumns[0]}:$${titlesColumns[1]}`);
|
|
6700
6643
|
}
|
|
6701
6644
|
if (sheet.pageSetup.printTitlesRow) {
|
|
6702
6645
|
const titlesRows = sheet.pageSetup.printTitlesRow.split(':');
|
|
6703
|
-
ranges.push(
|
|
6646
|
+
ranges.push(`'${sheet.name}'!$${titlesRows[0]}:$${titlesRows[1]}`);
|
|
6704
6647
|
}
|
|
6705
6648
|
const definedName = {
|
|
6706
6649
|
name: '_xlnm.Print_Titles',
|
|
@@ -6793,7 +6736,7 @@ class WorkbookXform extends BaseXform {
|
|
|
6793
6736
|
}
|
|
6794
6737
|
// if rel.Target start with `[space]/xl/` or `/xl/` , then it will be replaced with `''` and spliced behind `xl/`,
|
|
6795
6738
|
// otherwise it will be spliced directly behind `xl/`. i.g.
|
|
6796
|
-
worksheet = model.worksheetHash[
|
|
6739
|
+
worksheet = model.worksheetHash[`xl/${rel.Target.replace(/^(\s|\/xl\/)+/, '')}`];
|
|
6797
6740
|
// If there are "chartsheets" in the file, rel.Target will
|
|
6798
6741
|
// come out as chartsheets/sheet1.xml or similar here, and
|
|
6799
6742
|
// that won't be in model.worksheetHash.
|
|
@@ -6817,7 +6760,7 @@ class WorkbookXform extends BaseXform {
|
|
|
6817
6760
|
worksheet.pageSetup = {};
|
|
6818
6761
|
}
|
|
6819
6762
|
const range = colCache.decodeEx(definedName.ranges[0]);
|
|
6820
|
-
worksheet.pageSetup.printArea = worksheet.pageSetup.printArea ?
|
|
6763
|
+
worksheet.pageSetup.printArea = worksheet.pageSetup.printArea ? `${worksheet.pageSetup.printArea}&&${range.dimensions}` : range.dimensions;
|
|
6821
6764
|
}
|
|
6822
6765
|
} else if (definedName.name === '_xlnm.Print_Titles') {
|
|
6823
6766
|
worksheet = worksheets[definedName.localSheetId];
|
|
@@ -6875,11 +6818,6 @@ module.exports = WorkbookXform;
|
|
|
6875
6818
|
},{"../../../utils/col-cache":20,"../../../utils/under-dash":27,"../../../utils/xml-stream":29,"../base-xform":33,"../list-xform":73,"../static-xform":126,"./defined-name-xform":34,"./sheet-xform":35,"./workbook-calc-properties-xform":36,"./workbook-pivot-cache-xform":37,"./workbook-properties-xform":38,"./workbook-view-xform":39}],41:[function(require,module,exports){
|
|
6876
6819
|
"use strict";
|
|
6877
6820
|
|
|
6878
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
6879
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6880
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
6881
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
6882
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
6883
6821
|
const RichTextXform = require('../strings/rich-text-xform');
|
|
6884
6822
|
const utils = require('../../../utils/utils');
|
|
6885
6823
|
const BaseXform = require('../base-xform');
|
|
@@ -6943,12 +6881,13 @@ utils.inherits(CommentXform, BaseXform, {
|
|
|
6943
6881
|
}
|
|
6944
6882
|
switch (node.name) {
|
|
6945
6883
|
case 'comment':
|
|
6946
|
-
this.model =
|
|
6884
|
+
this.model = {
|
|
6947
6885
|
type: 'note',
|
|
6948
6886
|
note: {
|
|
6949
6887
|
texts: []
|
|
6950
|
-
}
|
|
6951
|
-
|
|
6888
|
+
},
|
|
6889
|
+
...node.attributes
|
|
6890
|
+
};
|
|
6952
6891
|
return true;
|
|
6953
6892
|
case 'r':
|
|
6954
6893
|
this.parser = this.richTextXform;
|
|
@@ -7470,7 +7409,7 @@ class VmlShapeXform extends BaseXform {
|
|
|
7470
7409
|
}
|
|
7471
7410
|
}
|
|
7472
7411
|
VmlShapeXform.V_SHAPE_ATTRIBUTES = (model, index) => ({
|
|
7473
|
-
id:
|
|
7412
|
+
id: `_x0000_s${1025 + index}`,
|
|
7474
7413
|
type: '#_x0000_t202',
|
|
7475
7414
|
style: 'position:absolute; margin-left:105.3pt;margin-top:10.5pt;width:97.8pt;height:59.1pt;z-index:1;visibility:hidden',
|
|
7476
7415
|
fillcolor: 'infoBackground [80]',
|
|
@@ -7488,7 +7427,7 @@ class VmlTextboxXform extends BaseXform {
|
|
|
7488
7427
|
return 'v:textbox';
|
|
7489
7428
|
}
|
|
7490
7429
|
conversionUnit(value, multiple, unit) {
|
|
7491
|
-
return
|
|
7430
|
+
return `${parseFloat(value) * multiple.toFixed(2)}${unit}`;
|
|
7492
7431
|
}
|
|
7493
7432
|
reverseConversionUnit(inset) {
|
|
7494
7433
|
return (inset || '').split(',').map(margin => {
|
|
@@ -7766,7 +7705,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7766
7705
|
mediaHash[imageType] = true;
|
|
7767
7706
|
xmlStream.leafNode('Default', {
|
|
7768
7707
|
Extension: imageType,
|
|
7769
|
-
ContentType:
|
|
7708
|
+
ContentType: `image/${imageType}`
|
|
7770
7709
|
});
|
|
7771
7710
|
}
|
|
7772
7711
|
}
|
|
@@ -7784,7 +7723,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7784
7723
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml'
|
|
7785
7724
|
});
|
|
7786
7725
|
model.worksheets.forEach(worksheet => {
|
|
7787
|
-
const name =
|
|
7726
|
+
const name = `/xl/worksheets/sheet${worksheet.id}.xml`;
|
|
7788
7727
|
xmlStream.leafNode('Override', {
|
|
7789
7728
|
PartName: name,
|
|
7790
7729
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
|
|
@@ -7823,7 +7762,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7823
7762
|
if (model.tables) {
|
|
7824
7763
|
model.tables.forEach(table => {
|
|
7825
7764
|
xmlStream.leafNode('Override', {
|
|
7826
|
-
PartName:
|
|
7765
|
+
PartName: `/xl/tables/${table.target}`,
|
|
7827
7766
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml'
|
|
7828
7767
|
});
|
|
7829
7768
|
});
|
|
@@ -7831,7 +7770,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7831
7770
|
if (model.drawings) {
|
|
7832
7771
|
model.drawings.forEach(drawing => {
|
|
7833
7772
|
xmlStream.leafNode('Override', {
|
|
7834
|
-
PartName:
|
|
7773
|
+
PartName: `/xl/drawings/${drawing.name}.xml`,
|
|
7835
7774
|
ContentType: 'application/vnd.openxmlformats-officedocument.drawing+xml'
|
|
7836
7775
|
});
|
|
7837
7776
|
});
|
|
@@ -7846,7 +7785,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7846
7785
|
commentName
|
|
7847
7786
|
} = _ref;
|
|
7848
7787
|
xmlStream.leafNode('Override', {
|
|
7849
|
-
PartName:
|
|
7788
|
+
PartName: `/xl/${commentName}.xml`,
|
|
7850
7789
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml'
|
|
7851
7790
|
});
|
|
7852
7791
|
});
|
|
@@ -7977,7 +7916,7 @@ class CoreXform extends BaseXform {
|
|
|
7977
7916
|
this.parser.parseOpen(node);
|
|
7978
7917
|
return true;
|
|
7979
7918
|
}
|
|
7980
|
-
throw new Error(
|
|
7919
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
7981
7920
|
}
|
|
7982
7921
|
}
|
|
7983
7922
|
parseText(text) {
|
|
@@ -8014,7 +7953,7 @@ class CoreXform extends BaseXform {
|
|
|
8014
7953
|
};
|
|
8015
7954
|
return false;
|
|
8016
7955
|
default:
|
|
8017
|
-
throw new Error(
|
|
7956
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
8018
7957
|
}
|
|
8019
7958
|
}
|
|
8020
7959
|
}
|
|
@@ -8094,7 +8033,7 @@ class RelationshipsXform extends BaseXform {
|
|
|
8094
8033
|
this.parser.parseOpen(node);
|
|
8095
8034
|
return true;
|
|
8096
8035
|
}
|
|
8097
|
-
throw new Error(
|
|
8036
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
8098
8037
|
}
|
|
8099
8038
|
}
|
|
8100
8039
|
parseText(text) {
|
|
@@ -8114,7 +8053,7 @@ class RelationshipsXform extends BaseXform {
|
|
|
8114
8053
|
case 'Relationships':
|
|
8115
8054
|
return false;
|
|
8116
8055
|
default:
|
|
8117
|
-
throw new Error(
|
|
8056
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
8118
8057
|
}
|
|
8119
8058
|
}
|
|
8120
8059
|
}
|
|
@@ -8329,7 +8268,7 @@ class CNvPrXform extends BaseXform {
|
|
|
8329
8268
|
render(xmlStream, model) {
|
|
8330
8269
|
xmlStream.openNode(this.tag, {
|
|
8331
8270
|
id: model.index,
|
|
8332
|
-
name:
|
|
8271
|
+
name: `Picture ${model.index}`
|
|
8333
8272
|
});
|
|
8334
8273
|
this.map['a:hlinkClick'].render(xmlStream, model);
|
|
8335
8274
|
this.map['a:extLst'].render(xmlStream, model);
|
|
@@ -9031,7 +8970,7 @@ class ListXform extends BaseXform {
|
|
|
9031
8970
|
this.model.push(this.parser.model);
|
|
9032
8971
|
this.parser = undefined;
|
|
9033
8972
|
if (this.maxItems && this.model.length > this.maxItems) {
|
|
9034
|
-
throw new Error(
|
|
8973
|
+
throw new Error(`Max ${this.childXform.tag} count (${this.maxItems}) exceeded`);
|
|
9035
8974
|
}
|
|
9036
8975
|
}
|
|
9037
8976
|
return true;
|
|
@@ -9085,11 +9024,17 @@ class CacheField {
|
|
|
9085
9024
|
// integer types
|
|
9086
9025
|
if (this.sharedItems === null) {
|
|
9087
9026
|
// TK(2023-07-18): left out attributes... minValue="5" maxValue="45"
|
|
9088
|
-
return
|
|
9027
|
+
return `<cacheField name="${this.name}" numFmtId="0">
|
|
9028
|
+
<sharedItems containsSemiMixedTypes="0" containsString="0" containsNumber="1" containsInteger="1" />
|
|
9029
|
+
</cacheField>`;
|
|
9089
9030
|
}
|
|
9090
9031
|
|
|
9091
9032
|
// string types
|
|
9092
|
-
return
|
|
9033
|
+
return `<cacheField name="${this.name}" numFmtId="0">
|
|
9034
|
+
<sharedItems count="${this.sharedItems.length}">
|
|
9035
|
+
${this.sharedItems.map(item => `<s v="${item}" />`).join('')}
|
|
9036
|
+
</sharedItems>
|
|
9037
|
+
</cacheField>`;
|
|
9093
9038
|
}
|
|
9094
9039
|
}
|
|
9095
9040
|
module.exports = CacheField;
|
|
@@ -9097,11 +9042,6 @@ module.exports = CacheField;
|
|
|
9097
9042
|
},{}],75:[function(require,module,exports){
|
|
9098
9043
|
"use strict";
|
|
9099
9044
|
|
|
9100
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9101
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9102
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
9103
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9104
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9105
9045
|
const BaseXform = require('../base-xform');
|
|
9106
9046
|
const CacheField = require('./cache-field');
|
|
9107
9047
|
const XmlStream = require('../../../utils/xml-stream');
|
|
@@ -9123,7 +9063,8 @@ class PivotCacheDefinitionXform extends BaseXform {
|
|
|
9123
9063
|
cacheFields
|
|
9124
9064
|
} = model;
|
|
9125
9065
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9126
|
-
xmlStream.openNode(this.tag,
|
|
9066
|
+
xmlStream.openNode(this.tag, {
|
|
9067
|
+
...PivotCacheDefinitionXform.PIVOT_CACHE_DEFINITION_ATTRIBUTES,
|
|
9127
9068
|
'r:id': 'rId1',
|
|
9128
9069
|
refreshOnLoad: '1',
|
|
9129
9070
|
// important for our implementation to work
|
|
@@ -9133,7 +9074,7 @@ class PivotCacheDefinitionXform extends BaseXform {
|
|
|
9133
9074
|
refreshedVersion: '8',
|
|
9134
9075
|
minRefreshableVersion: '3',
|
|
9135
9076
|
recordCount: cacheFields.length + 1
|
|
9136
|
-
})
|
|
9077
|
+
});
|
|
9137
9078
|
xmlStream.openNode('cacheSource', {
|
|
9138
9079
|
type: 'worksheet'
|
|
9139
9080
|
});
|
|
@@ -9175,11 +9116,6 @@ module.exports = PivotCacheDefinitionXform;
|
|
|
9175
9116
|
},{"../../../utils/xml-stream":29,"../base-xform":33,"./cache-field":74}],76:[function(require,module,exports){
|
|
9176
9117
|
"use strict";
|
|
9177
9118
|
|
|
9178
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9179
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9180
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
9181
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9182
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9183
9119
|
const XmlStream = require('../../../utils/xml-stream');
|
|
9184
9120
|
const BaseXform = require('../base-xform');
|
|
9185
9121
|
class PivotCacheRecordsXform extends BaseXform {
|
|
@@ -9201,9 +9137,10 @@ class PivotCacheRecordsXform extends BaseXform {
|
|
|
9201
9137
|
} = model;
|
|
9202
9138
|
const sourceBodyRows = sourceSheet.getSheetValues().slice(2);
|
|
9203
9139
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9204
|
-
xmlStream.openNode(this.tag,
|
|
9140
|
+
xmlStream.openNode(this.tag, {
|
|
9141
|
+
...PivotCacheRecordsXform.PIVOT_CACHE_RECORDS_ATTRIBUTES,
|
|
9205
9142
|
count: sourceBodyRows.length
|
|
9206
|
-
})
|
|
9143
|
+
});
|
|
9207
9144
|
xmlStream.writeXml(renderTable());
|
|
9208
9145
|
xmlStream.closeNode();
|
|
9209
9146
|
|
|
@@ -9232,20 +9169,20 @@ class PivotCacheRecordsXform extends BaseXform {
|
|
|
9232
9169
|
if (sharedItems === null) {
|
|
9233
9170
|
if (Number.isFinite(value)) {
|
|
9234
9171
|
// Numeric value: http://www.datypic.com/sc/ooxml/e-ssml_n-2.html
|
|
9235
|
-
return
|
|
9172
|
+
return `<n v="${value}" />`;
|
|
9236
9173
|
}
|
|
9237
9174
|
// Character Value: http://www.datypic.com/sc/ooxml/e-ssml_s-2.html
|
|
9238
|
-
return
|
|
9175
|
+
return `<s v="${value}" />`;
|
|
9239
9176
|
}
|
|
9240
9177
|
|
|
9241
9178
|
// shared items
|
|
9242
9179
|
// --------------------------------------------------
|
|
9243
9180
|
const sharedItemsIndex = sharedItems.indexOf(value);
|
|
9244
9181
|
if (sharedItemsIndex < 0) {
|
|
9245
|
-
throw new Error(
|
|
9182
|
+
throw new Error(`${JSON.stringify(value)} not in sharedItems ${JSON.stringify(sharedItems)}`);
|
|
9246
9183
|
}
|
|
9247
9184
|
// Shared Items Index: http://www.datypic.com/sc/ooxml/e-ssml_x-9.html
|
|
9248
|
-
return
|
|
9185
|
+
return `<x v="${sharedItemsIndex}" />`;
|
|
9249
9186
|
}
|
|
9250
9187
|
}
|
|
9251
9188
|
parseOpen(node) {
|
|
@@ -9273,11 +9210,6 @@ module.exports = PivotCacheRecordsXform;
|
|
|
9273
9210
|
},{"../../../utils/xml-stream":29,"../base-xform":33}],77:[function(require,module,exports){
|
|
9274
9211
|
"use strict";
|
|
9275
9212
|
|
|
9276
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9277
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9278
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
9279
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9280
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9281
9213
|
const XmlStream = require('../../../utils/xml-stream');
|
|
9282
9214
|
const BaseXform = require('../base-xform');
|
|
9283
9215
|
class PivotTableXform extends BaseXform {
|
|
@@ -9313,7 +9245,8 @@ class PivotTableXform extends BaseXform {
|
|
|
9313
9245
|
// the numbers are indices into `cacheFields`.
|
|
9314
9246
|
|
|
9315
9247
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9316
|
-
xmlStream.openNode(this.tag,
|
|
9248
|
+
xmlStream.openNode(this.tag, {
|
|
9249
|
+
...PivotTableXform.PIVOT_TABLE_ATTRIBUTES,
|
|
9317
9250
|
'xr:uid': '{267EE50F-B116-784D-8DC2-BA77DE3F4F4A}',
|
|
9318
9251
|
name: 'PivotTable2',
|
|
9319
9252
|
cacheId,
|
|
@@ -9333,7 +9266,7 @@ class PivotTableXform extends BaseXform {
|
|
|
9333
9266
|
compact: '0',
|
|
9334
9267
|
compactData: '0',
|
|
9335
9268
|
multipleFieldFilters: '0'
|
|
9336
|
-
})
|
|
9269
|
+
});
|
|
9337
9270
|
|
|
9338
9271
|
// Note: keeping this pretty-printed and verbose for now to ease debugging.
|
|
9339
9272
|
//
|
|
@@ -9343,7 +9276,60 @@ class PivotTableXform extends BaseXform {
|
|
|
9343
9276
|
// colFields and colItems
|
|
9344
9277
|
// dataFields
|
|
9345
9278
|
// pivotTableStyleInfo
|
|
9346
|
-
xmlStream.writeXml(
|
|
9279
|
+
xmlStream.writeXml(`
|
|
9280
|
+
<location ref="A3:E15" firstHeaderRow="1" firstDataRow="2" firstDataCol="1" />
|
|
9281
|
+
<pivotFields count="${cacheFields.length}">
|
|
9282
|
+
${renderPivotFields(model)}
|
|
9283
|
+
</pivotFields>
|
|
9284
|
+
<rowFields count="${rows.length}">
|
|
9285
|
+
${rows.map(rowIndex => `<field x="${rowIndex}" />`).join('\n ')}
|
|
9286
|
+
</rowFields>
|
|
9287
|
+
<rowItems count="1">
|
|
9288
|
+
<i t="grand"><x /></i>
|
|
9289
|
+
</rowItems>
|
|
9290
|
+
<colFields count="${columns.length}">
|
|
9291
|
+
${columns.map(columnIndex => `<field x="${columnIndex}" />`).join('\n ')}
|
|
9292
|
+
</colFields>
|
|
9293
|
+
<colItems count="1">
|
|
9294
|
+
<i t="grand"><x /></i>
|
|
9295
|
+
</colItems>
|
|
9296
|
+
<dataFields count="${values.length}">
|
|
9297
|
+
<dataField
|
|
9298
|
+
name="Sum of ${cacheFields[values[0]].name}"
|
|
9299
|
+
fld="${values[0]}"
|
|
9300
|
+
baseField="0"
|
|
9301
|
+
baseItem="0"
|
|
9302
|
+
/>
|
|
9303
|
+
</dataFields>
|
|
9304
|
+
<pivotTableStyleInfo
|
|
9305
|
+
name="PivotStyleLight16"
|
|
9306
|
+
showRowHeaders="1"
|
|
9307
|
+
showColHeaders="1"
|
|
9308
|
+
showRowStripes="0"
|
|
9309
|
+
showColStripes="0"
|
|
9310
|
+
showLastColumn="1"
|
|
9311
|
+
/>
|
|
9312
|
+
<extLst>
|
|
9313
|
+
<ext
|
|
9314
|
+
uri="{962EF5D1-5CA2-4c93-8EF4-DBF5C05439D2}"
|
|
9315
|
+
xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"
|
|
9316
|
+
>
|
|
9317
|
+
<x14:pivotTableDefinition
|
|
9318
|
+
hideValuesRow="1"
|
|
9319
|
+
xmlns:xm="http://schemas.microsoft.com/office/excel/2006/main"
|
|
9320
|
+
/>
|
|
9321
|
+
</ext>
|
|
9322
|
+
<ext
|
|
9323
|
+
uri="{747A6164-185A-40DC-8AA5-F01512510D54}"
|
|
9324
|
+
xmlns:xpdl="http://schemas.microsoft.com/office/spreadsheetml/2016/pivotdefaultlayout"
|
|
9325
|
+
>
|
|
9326
|
+
<xpdl:pivotTableDefinition16
|
|
9327
|
+
EnabledSubtotalsDefault="0"
|
|
9328
|
+
SubtotalsOnTopDefault="0"
|
|
9329
|
+
/>
|
|
9330
|
+
</ext>
|
|
9331
|
+
</extLst>
|
|
9332
|
+
`);
|
|
9347
9333
|
xmlStream.closeNode();
|
|
9348
9334
|
}
|
|
9349
9335
|
parseOpen(node) {
|
|
@@ -9375,9 +9361,20 @@ function renderPivotField(fieldType, sharedItems) {
|
|
|
9375
9361
|
const defaultAttributes = 'compact="0" outline="0" showAll="0" defaultSubtotal="0"';
|
|
9376
9362
|
if (fieldType === 'row' || fieldType === 'column') {
|
|
9377
9363
|
const axis = fieldType === 'row' ? 'axisRow' : 'axisCol';
|
|
9378
|
-
return
|
|
9379
|
-
|
|
9380
|
-
|
|
9364
|
+
return `
|
|
9365
|
+
<pivotField axis="${axis}" ${defaultAttributes}>
|
|
9366
|
+
<items count="${sharedItems.length + 1}">
|
|
9367
|
+
${sharedItems.map((item, index) => `<item x="${index}" />`).join('\n ')}
|
|
9368
|
+
</items>
|
|
9369
|
+
</pivotField>
|
|
9370
|
+
`;
|
|
9371
|
+
}
|
|
9372
|
+
return `
|
|
9373
|
+
<pivotField
|
|
9374
|
+
${fieldType === 'value' ? 'dataField="1"' : ''}
|
|
9375
|
+
${defaultAttributes}
|
|
9376
|
+
/>
|
|
9377
|
+
`;
|
|
9381
9378
|
}
|
|
9382
9379
|
PivotTableXform.PIVOT_TABLE_ATTRIBUTES = {
|
|
9383
9380
|
xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',
|
|
@@ -9414,7 +9411,7 @@ class AutoFilterXform extends BaseXform {
|
|
|
9414
9411
|
const secondAddress = getAddress(model.to);
|
|
9415
9412
|
if (firstAddress && secondAddress) {
|
|
9416
9413
|
xmlStream.leafNode('autoFilter', {
|
|
9417
|
-
ref:
|
|
9414
|
+
ref: `${firstAddress}:${secondAddress}`
|
|
9418
9415
|
});
|
|
9419
9416
|
}
|
|
9420
9417
|
}
|
|
@@ -9431,11 +9428,6 @@ module.exports = AutoFilterXform;
|
|
|
9431
9428
|
},{"../../../utils/col-cache":20,"../base-xform":33}],79:[function(require,module,exports){
|
|
9432
9429
|
"use strict";
|
|
9433
9430
|
|
|
9434
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9435
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
9436
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
9437
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9438
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
9439
9431
|
const utils = require('../../../utils/utils');
|
|
9440
9432
|
const BaseXform = require('../base-xform');
|
|
9441
9433
|
const Range = require('../../../doc/range');
|
|
@@ -9490,9 +9482,10 @@ class CellXform extends BaseXform {
|
|
|
9490
9482
|
model.styleId = styleId;
|
|
9491
9483
|
}
|
|
9492
9484
|
if (model.comment) {
|
|
9493
|
-
options.comments.push(
|
|
9485
|
+
options.comments.push({
|
|
9486
|
+
...model.comment,
|
|
9494
9487
|
ref: model.address
|
|
9495
|
-
})
|
|
9488
|
+
});
|
|
9496
9489
|
}
|
|
9497
9490
|
switch (model.type) {
|
|
9498
9491
|
case Enums.ValueType.String:
|
|
@@ -9532,7 +9525,7 @@ class CellXform extends BaseXform {
|
|
|
9532
9525
|
} else if (model.sharedFormula) {
|
|
9533
9526
|
const master = options.formulae[model.sharedFormula];
|
|
9534
9527
|
if (!master) {
|
|
9535
|
-
throw new Error(
|
|
9528
|
+
throw new Error(`Shared Formula master must exist above and or left of clone for cell ${model.address}`);
|
|
9536
9529
|
}
|
|
9537
9530
|
if (master.si === undefined) {
|
|
9538
9531
|
master.shareType = 'shared';
|
|
@@ -9952,7 +9945,7 @@ class CfRuleExtXform extends CompositeXform {
|
|
|
9952
9945
|
}
|
|
9953
9946
|
prepare(model) {
|
|
9954
9947
|
if (CfRuleExtXform.isExt(model)) {
|
|
9955
|
-
model.x14Id =
|
|
9948
|
+
model.x14Id = `{${uuidv4()}}`.toUpperCase();
|
|
9956
9949
|
}
|
|
9957
9950
|
}
|
|
9958
9951
|
render(xmlStream, model) {
|
|
@@ -9980,7 +9973,7 @@ class CfRuleExtXform extends CompositeXform {
|
|
|
9980
9973
|
xmlStream.openNode(this.tag, {
|
|
9981
9974
|
type: 'iconSet',
|
|
9982
9975
|
priority: model.priority,
|
|
9983
|
-
id: model.x14Id ||
|
|
9976
|
+
id: model.x14Id || `{${uuidv4()}}`
|
|
9984
9977
|
});
|
|
9985
9978
|
this.iconSetXform.render(xmlStream, model);
|
|
9986
9979
|
xmlStream.closeNode();
|
|
@@ -10329,11 +10322,6 @@ module.exports = SqrefExtXform;
|
|
|
10329
10322
|
},{"../../base-xform":33}],89:[function(require,module,exports){
|
|
10330
10323
|
"use strict";
|
|
10331
10324
|
|
|
10332
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10333
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10334
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
10335
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
10336
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10337
10325
|
const BaseXform = require('../../base-xform');
|
|
10338
10326
|
const CompositeXform = require('../../composite-xform');
|
|
10339
10327
|
const Range = require('../../../../doc/range');
|
|
@@ -10357,15 +10345,15 @@ const getTextFormula = model => {
|
|
|
10357
10345
|
} = range;
|
|
10358
10346
|
switch (model.operator) {
|
|
10359
10347
|
case 'containsText':
|
|
10360
|
-
return
|
|
10348
|
+
return `NOT(ISERROR(SEARCH("${model.text}",${tl})))`;
|
|
10361
10349
|
case 'containsBlanks':
|
|
10362
|
-
return
|
|
10350
|
+
return `LEN(TRIM(${tl}))=0`;
|
|
10363
10351
|
case 'notContainsBlanks':
|
|
10364
|
-
return
|
|
10352
|
+
return `LEN(TRIM(${tl}))>0`;
|
|
10365
10353
|
case 'containsErrors':
|
|
10366
|
-
return
|
|
10354
|
+
return `ISERROR(${tl})`;
|
|
10367
10355
|
case 'notContainsErrors':
|
|
10368
|
-
return
|
|
10356
|
+
return `NOT(ISERROR(${tl}))`;
|
|
10369
10357
|
default:
|
|
10370
10358
|
return undefined;
|
|
10371
10359
|
}
|
|
@@ -10380,25 +10368,25 @@ const getTimePeriodFormula = model => {
|
|
|
10380
10368
|
} = range;
|
|
10381
10369
|
switch (model.timePeriod) {
|
|
10382
10370
|
case 'thisWeek':
|
|
10383
|
-
return
|
|
10371
|
+
return `AND(TODAY()-ROUNDDOWN(${tl},0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(${tl},0)-TODAY()<=7-WEEKDAY(TODAY()))`;
|
|
10384
10372
|
case 'lastWeek':
|
|
10385
|
-
return
|
|
10373
|
+
return `AND(TODAY()-ROUNDDOWN(${tl},0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(${tl},0)<(WEEKDAY(TODAY())+7))`;
|
|
10386
10374
|
case 'nextWeek':
|
|
10387
|
-
return
|
|
10375
|
+
return `AND(ROUNDDOWN(${tl},0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(${tl},0)-TODAY()<(15-WEEKDAY(TODAY())))`;
|
|
10388
10376
|
case 'yesterday':
|
|
10389
|
-
return
|
|
10377
|
+
return `FLOOR(${tl},1)=TODAY()-1`;
|
|
10390
10378
|
case 'today':
|
|
10391
|
-
return
|
|
10379
|
+
return `FLOOR(${tl},1)=TODAY()`;
|
|
10392
10380
|
case 'tomorrow':
|
|
10393
|
-
return
|
|
10381
|
+
return `FLOOR(${tl},1)=TODAY()+1`;
|
|
10394
10382
|
case 'last7Days':
|
|
10395
|
-
return
|
|
10383
|
+
return `AND(TODAY()-FLOOR(${tl},1)<=6,FLOOR(${tl},1)<=TODAY())`;
|
|
10396
10384
|
case 'lastMonth':
|
|
10397
|
-
return
|
|
10385
|
+
return `AND(MONTH(${tl})=MONTH(EDATE(TODAY(),0-1)),YEAR(${tl})=YEAR(EDATE(TODAY(),0-1)))`;
|
|
10398
10386
|
case 'thisMonth':
|
|
10399
|
-
return
|
|
10387
|
+
return `AND(MONTH(${tl})=MONTH(TODAY()),YEAR(${tl})=YEAR(TODAY()))`;
|
|
10400
10388
|
case 'nextMonth':
|
|
10401
|
-
return
|
|
10389
|
+
return `AND(MONTH(${tl})=MONTH(EDATE(TODAY(),0+1)),YEAR(${tl})=YEAR(EDATE(TODAY(),0+1)))`;
|
|
10402
10390
|
default:
|
|
10403
10391
|
return undefined;
|
|
10404
10392
|
}
|
|
@@ -10577,7 +10565,8 @@ class CfRuleXform extends CompositeXform {
|
|
|
10577
10565
|
let {
|
|
10578
10566
|
attributes
|
|
10579
10567
|
} = _ref;
|
|
10580
|
-
return
|
|
10568
|
+
return {
|
|
10569
|
+
...opType(attributes),
|
|
10581
10570
|
dxfId: BaseXform.toIntValue(attributes.dxfId),
|
|
10582
10571
|
priority: BaseXform.toIntValue(attributes.priority),
|
|
10583
10572
|
timePeriod: attributes.timePeriod,
|
|
@@ -10585,7 +10574,7 @@ class CfRuleXform extends CompositeXform {
|
|
|
10585
10574
|
bottom: BaseXform.toBoolValue(attributes.bottom),
|
|
10586
10575
|
rank: BaseXform.toIntValue(attributes.rank),
|
|
10587
10576
|
aboveAverage: BaseXform.toBoolValue(attributes.aboveAverage)
|
|
10588
|
-
}
|
|
10577
|
+
};
|
|
10589
10578
|
}
|
|
10590
10579
|
onParserClose(name, parser) {
|
|
10591
10580
|
switch (name) {
|
|
@@ -11059,11 +11048,6 @@ module.exports = ColXform;
|
|
|
11059
11048
|
},{"../../../utils/utils":28,"../base-xform":33}],99:[function(require,module,exports){
|
|
11060
11049
|
"use strict";
|
|
11061
11050
|
|
|
11062
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11063
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11064
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
11065
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
11066
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
11067
11051
|
const _ = require('../../../utils/under-dash');
|
|
11068
11052
|
const utils = require('../../../utils/utils');
|
|
11069
11053
|
const colCache = require('../../../utils/col-cache');
|
|
@@ -11108,9 +11092,10 @@ function optimiseDataValidations(model) {
|
|
|
11108
11092
|
const addr = colCache.decodeEx(dv.address);
|
|
11109
11093
|
if (addr.dimensions) {
|
|
11110
11094
|
dvMap[addr.dimensions].marked = true;
|
|
11111
|
-
return
|
|
11095
|
+
return {
|
|
11096
|
+
...dv.dataValidation,
|
|
11112
11097
|
sqref: dv.address
|
|
11113
|
-
}
|
|
11098
|
+
};
|
|
11114
11099
|
}
|
|
11115
11100
|
|
|
11116
11101
|
// iterate downwards - finding matching cells
|
|
@@ -11138,13 +11123,15 @@ function optimiseDataValidations(model) {
|
|
|
11138
11123
|
if (height > 1 || width > 1) {
|
|
11139
11124
|
const bottom = addr.row + (height - 1);
|
|
11140
11125
|
const right = addr.col + (width - 1);
|
|
11141
|
-
return
|
|
11142
|
-
|
|
11143
|
-
|
|
11126
|
+
return {
|
|
11127
|
+
...dv.dataValidation,
|
|
11128
|
+
sqref: `${dv.address}:${colCache.encodeAddress(bottom, right)}`
|
|
11129
|
+
};
|
|
11144
11130
|
}
|
|
11145
|
-
return
|
|
11131
|
+
return {
|
|
11132
|
+
...dv.dataValidation,
|
|
11146
11133
|
sqref: dv.address
|
|
11147
|
-
}
|
|
11134
|
+
};
|
|
11148
11135
|
}
|
|
11149
11136
|
return null;
|
|
11150
11137
|
}).filter(Boolean);
|
|
@@ -11193,7 +11180,7 @@ class DataValidationsXform extends BaseXform {
|
|
|
11193
11180
|
}
|
|
11194
11181
|
xmlStream.addAttribute('sqref', value.sqref);
|
|
11195
11182
|
(value.formulae || []).forEach((formula, index) => {
|
|
11196
|
-
xmlStream.openNode(
|
|
11183
|
+
xmlStream.openNode(`formula${index + 1}`);
|
|
11197
11184
|
if (value.type === 'date') {
|
|
11198
11185
|
xmlStream.writeText(utils.dateToExcel(new Date(formula)));
|
|
11199
11186
|
} else {
|
|
@@ -11660,7 +11647,7 @@ class Merges {
|
|
|
11660
11647
|
if (this.merges[merge.master]) {
|
|
11661
11648
|
this.merges[merge.master].expandToAddress(merge.address);
|
|
11662
11649
|
} else {
|
|
11663
|
-
const range =
|
|
11650
|
+
const range = `${merge.master}:${merge.address}`;
|
|
11664
11651
|
this.merges[merge.master] = new Range(range);
|
|
11665
11652
|
}
|
|
11666
11653
|
}
|
|
@@ -12092,7 +12079,7 @@ class RowXform extends BaseXform {
|
|
|
12092
12079
|
xmlStream.addAttribute('hidden', '1');
|
|
12093
12080
|
}
|
|
12094
12081
|
if (model.min > 0 && model.max > 0 && model.min <= model.max) {
|
|
12095
|
-
xmlStream.addAttribute('spans',
|
|
12082
|
+
xmlStream.addAttribute('spans', `${model.min}:${model.max}`);
|
|
12096
12083
|
}
|
|
12097
12084
|
if (model.styleId) {
|
|
12098
12085
|
xmlStream.addAttribute('s', model.styleId);
|
|
@@ -12162,7 +12149,7 @@ class RowXform extends BaseXform {
|
|
|
12162
12149
|
if (!this.parser.parseClose(name)) {
|
|
12163
12150
|
this.model.cells.push(this.parser.model);
|
|
12164
12151
|
if (this.maxItems && this.model.cells.length > this.maxItems) {
|
|
12165
|
-
throw new Error(
|
|
12152
|
+
throw new Error(`Max column count (${this.maxItems}) exceeded`);
|
|
12166
12153
|
}
|
|
12167
12154
|
this.parser = undefined;
|
|
12168
12155
|
}
|
|
@@ -12790,7 +12777,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12790
12777
|
// prepare relationships
|
|
12791
12778
|
const rels = model.rels = [];
|
|
12792
12779
|
function nextRid(r) {
|
|
12793
|
-
return
|
|
12780
|
+
return `rId${r.length + 1}`;
|
|
12794
12781
|
}
|
|
12795
12782
|
model.hyperlinks.forEach(hyperlink => {
|
|
12796
12783
|
const rId = nextRid(rels);
|
|
@@ -12808,21 +12795,21 @@ class WorkSheetXform extends BaseXform {
|
|
|
12808
12795
|
const comment = {
|
|
12809
12796
|
Id: nextRid(rels),
|
|
12810
12797
|
Type: RelType.Comments,
|
|
12811
|
-
Target:
|
|
12798
|
+
Target: `../comments${model.id}.xml`
|
|
12812
12799
|
};
|
|
12813
12800
|
rels.push(comment);
|
|
12814
12801
|
const vmlDrawing = {
|
|
12815
12802
|
Id: nextRid(rels),
|
|
12816
12803
|
Type: RelType.VmlDrawing,
|
|
12817
|
-
Target:
|
|
12804
|
+
Target: `../drawings/vmlDrawing${model.id}.vml`
|
|
12818
12805
|
};
|
|
12819
12806
|
rels.push(vmlDrawing);
|
|
12820
12807
|
model.comments.forEach(item => {
|
|
12821
12808
|
item.refAddress = colCache.decodeAddress(item.ref);
|
|
12822
12809
|
});
|
|
12823
12810
|
options.commentRefs.push({
|
|
12824
|
-
commentName:
|
|
12825
|
-
vmlDrawing:
|
|
12811
|
+
commentName: `comments${model.id}`,
|
|
12812
|
+
vmlDrawing: `vmlDrawing${model.id}`
|
|
12826
12813
|
});
|
|
12827
12814
|
}
|
|
12828
12815
|
const drawingRelsHash = [];
|
|
@@ -12834,7 +12821,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12834
12821
|
rels.push({
|
|
12835
12822
|
Id: rId,
|
|
12836
12823
|
Type: RelType.Image,
|
|
12837
|
-
Target:
|
|
12824
|
+
Target: `../media/${bookImage.name}.${bookImage.extension}`
|
|
12838
12825
|
});
|
|
12839
12826
|
model.background = {
|
|
12840
12827
|
rId
|
|
@@ -12848,7 +12835,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12848
12835
|
if (!drawing) {
|
|
12849
12836
|
drawing = model.drawing = {
|
|
12850
12837
|
rId: nextRid(rels),
|
|
12851
|
-
name:
|
|
12838
|
+
name: `drawing${++options.drawingsCount}`,
|
|
12852
12839
|
anchors: [],
|
|
12853
12840
|
rels: []
|
|
12854
12841
|
};
|
|
@@ -12856,7 +12843,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12856
12843
|
rels.push({
|
|
12857
12844
|
Id: drawing.rId,
|
|
12858
12845
|
Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',
|
|
12859
|
-
Target:
|
|
12846
|
+
Target: `../drawings/${drawing.name}.xml`
|
|
12860
12847
|
});
|
|
12861
12848
|
}
|
|
12862
12849
|
let rIdImage = this.preImageId === medium.imageId ? drawingRelsHash[medium.imageId] : drawingRelsHash[drawing.rels.length];
|
|
@@ -12866,7 +12853,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12866
12853
|
drawing.rels.push({
|
|
12867
12854
|
Id: rIdImage,
|
|
12868
12855
|
Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
|
|
12869
|
-
Target:
|
|
12856
|
+
Target: `../media/${bookImage.name}.${bookImage.extension}`
|
|
12870
12857
|
});
|
|
12871
12858
|
}
|
|
12872
12859
|
const anchor = {
|
|
@@ -12902,7 +12889,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12902
12889
|
rels.push({
|
|
12903
12890
|
Id: rId,
|
|
12904
12891
|
Type: RelType.Table,
|
|
12905
|
-
Target:
|
|
12892
|
+
Target: `../tables/${table.target}`
|
|
12906
12893
|
});
|
|
12907
12894
|
|
|
12908
12895
|
// dynamic styles
|
|
@@ -13782,7 +13769,7 @@ class SharedStringsXform extends BaseXform {
|
|
|
13782
13769
|
this.parser.parseOpen(node);
|
|
13783
13770
|
return true;
|
|
13784
13771
|
default:
|
|
13785
|
-
throw new Error(
|
|
13772
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
13786
13773
|
}
|
|
13787
13774
|
}
|
|
13788
13775
|
parseText(text) {
|
|
@@ -13803,7 +13790,7 @@ class SharedStringsXform extends BaseXform {
|
|
|
13803
13790
|
case 'sst':
|
|
13804
13791
|
return false;
|
|
13805
13792
|
default:
|
|
13806
|
-
throw new Error(
|
|
13793
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
13807
13794
|
}
|
|
13808
13795
|
}
|
|
13809
13796
|
}
|
|
@@ -13992,11 +13979,6 @@ module.exports = AlignmentXform;
|
|
|
13992
13979
|
},{"../../../doc/enums":7,"../../../utils/utils":28,"../base-xform":33}],133:[function(require,module,exports){
|
|
13993
13980
|
"use strict";
|
|
13994
13981
|
|
|
13995
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
13996
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13997
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13998
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
13999
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
14000
13982
|
/* eslint-disable max-classes-per-file */
|
|
14001
13983
|
const BaseXform = require('../base-xform');
|
|
14002
13984
|
const utils = require('../../../utils/utils');
|
|
@@ -14110,9 +14092,10 @@ class BorderXform extends BaseXform {
|
|
|
14110
14092
|
function add(edgeModel, edgeXform) {
|
|
14111
14093
|
if (edgeModel && !edgeModel.color && model.color) {
|
|
14112
14094
|
// don't mess with incoming models
|
|
14113
|
-
edgeModel =
|
|
14095
|
+
edgeModel = {
|
|
14096
|
+
...edgeModel,
|
|
14114
14097
|
color: model.color
|
|
14115
|
-
}
|
|
14098
|
+
};
|
|
14116
14099
|
}
|
|
14117
14100
|
edgeXform.render(xmlStream, edgeModel, color);
|
|
14118
14101
|
}
|
|
@@ -15778,7 +15761,7 @@ class AutoFilterXform extends BaseXform {
|
|
|
15778
15761
|
this.parseOpen(node);
|
|
15779
15762
|
return true;
|
|
15780
15763
|
}
|
|
15781
|
-
throw new Error(
|
|
15764
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
15782
15765
|
}
|
|
15783
15766
|
}
|
|
15784
15767
|
parseText(text) {
|
|
@@ -15798,7 +15781,7 @@ class AutoFilterXform extends BaseXform {
|
|
|
15798
15781
|
case this.tag:
|
|
15799
15782
|
return false;
|
|
15800
15783
|
default:
|
|
15801
|
-
throw new Error(
|
|
15784
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
15802
15785
|
}
|
|
15803
15786
|
}
|
|
15804
15787
|
}
|
|
@@ -15902,7 +15885,7 @@ class FilterColumnXform extends BaseXform {
|
|
|
15902
15885
|
this.parseOpen(node);
|
|
15903
15886
|
return true;
|
|
15904
15887
|
}
|
|
15905
|
-
throw new Error(
|
|
15888
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
15906
15889
|
}
|
|
15907
15890
|
}
|
|
15908
15891
|
parseText() {}
|
|
@@ -16041,11 +16024,6 @@ module.exports = TableStyleInfoXform;
|
|
|
16041
16024
|
},{"../base-xform":33}],149:[function(require,module,exports){
|
|
16042
16025
|
"use strict";
|
|
16043
16026
|
|
|
16044
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16045
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16046
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
16047
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
16048
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16049
16027
|
const XmlStream = require('../../../utils/xml-stream');
|
|
16050
16028
|
const BaseXform = require('../base-xform');
|
|
16051
16029
|
const ListXform = require('../list-xform');
|
|
@@ -16075,7 +16053,8 @@ class TableXform extends BaseXform {
|
|
|
16075
16053
|
}
|
|
16076
16054
|
render(xmlStream, model) {
|
|
16077
16055
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
16078
|
-
xmlStream.openNode(this.tag,
|
|
16056
|
+
xmlStream.openNode(this.tag, {
|
|
16057
|
+
...TableXform.TABLE_ATTRIBUTES,
|
|
16079
16058
|
id: model.id,
|
|
16080
16059
|
name: model.name,
|
|
16081
16060
|
displayName: model.displayName || model.name,
|
|
@@ -16083,7 +16062,7 @@ class TableXform extends BaseXform {
|
|
|
16083
16062
|
totalsRowCount: model.totalsRow ? '1' : undefined,
|
|
16084
16063
|
totalsRowShown: model.totalsRow ? undefined : '1',
|
|
16085
16064
|
headerRowCount: model.headerRow ? '1' : '0'
|
|
16086
|
-
})
|
|
16065
|
+
});
|
|
16087
16066
|
this.map.autoFilter.render(xmlStream, model);
|
|
16088
16067
|
this.map.tableColumns.render(xmlStream, model.columns);
|
|
16089
16068
|
this.map.tableStyleInfo.render(xmlStream, model.style);
|
|
@@ -16169,8 +16148,6 @@ module.exports = TableXform;
|
|
|
16169
16148
|
(function (process,Buffer){(function (){
|
|
16170
16149
|
"use strict";
|
|
16171
16150
|
|
|
16172
|
-
function _asyncIterator(r) { var n, t, o, e = 2; for ("undefined" != typeof Symbol && (t = Symbol.asyncIterator, o = Symbol.iterator); e--;) { if (t && null != (n = r[t])) return n.call(r); if (o && null != (n = r[o])) return new AsyncFromSyncIterator(n.call(r)); t = "@@asyncIterator", o = "@@iterator"; } throw new TypeError("Object is not async iterable"); }
|
|
16173
|
-
function AsyncFromSyncIterator(r) { function AsyncFromSyncIteratorContinuation(r) { if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object.")); var n = r.done; return Promise.resolve(r.value).then(function (r) { return { value: r, done: n }; }); } return AsyncFromSyncIterator = function (r) { this.s = r, this.n = r.next; }, AsyncFromSyncIterator.prototype = { s: null, n: null, next: function () { return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments)); }, return: function (r) { var n = this.s.return; return void 0 === n ? Promise.resolve({ value: r, done: !0 }) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); }, throw: function (r) { var n = this.s.return; return void 0 === n ? Promise.reject(r) : AsyncFromSyncIteratorContinuation(n.apply(this.s, arguments)); } }, new AsyncFromSyncIterator(r); }
|
|
16174
16151
|
const fs = require('fs');
|
|
16175
16152
|
const JSZip = require('jszip');
|
|
16176
16153
|
const {
|
|
@@ -16222,7 +16199,7 @@ class XLSX {
|
|
|
16222
16199
|
|
|
16223
16200
|
async readFile(filename, options) {
|
|
16224
16201
|
if (!(await utils.fs.exists(filename))) {
|
|
16225
|
-
throw new Error(
|
|
16202
|
+
throw new Error(`File not found: ${filename}`);
|
|
16226
16203
|
}
|
|
16227
16204
|
const stream = fs.createReadStream(filename);
|
|
16228
16205
|
try {
|
|
@@ -16323,12 +16300,12 @@ class XLSX {
|
|
|
16323
16300
|
async _processCommentEntry(stream, model, name) {
|
|
16324
16301
|
const xform = new CommentsXform();
|
|
16325
16302
|
const comments = await xform.parseStream(stream);
|
|
16326
|
-
model.comments[
|
|
16303
|
+
model.comments[`../${name}.xml`] = comments;
|
|
16327
16304
|
}
|
|
16328
16305
|
async _processTableEntry(stream, model, name) {
|
|
16329
16306
|
const xform = new TableXform();
|
|
16330
16307
|
const table = await xform.parseStream(stream);
|
|
16331
|
-
model.tables[
|
|
16308
|
+
model.tables[`../tables/${name}.xml`] = table;
|
|
16332
16309
|
}
|
|
16333
16310
|
async _processWorksheetRelsEntry(stream, model, sheetNo) {
|
|
16334
16311
|
const xform = new RelationshipsXform();
|
|
@@ -16375,7 +16352,7 @@ class XLSX {
|
|
|
16375
16352
|
async _processVmlDrawingEntry(entry, model, name) {
|
|
16376
16353
|
const xform = new VmlNotesXform();
|
|
16377
16354
|
const vmlDrawing = await xform.parseStream(entry);
|
|
16378
|
-
model.vmlDrawings[
|
|
16355
|
+
model.vmlDrawings[`../drawings/${name}.vml`] = vmlDrawing;
|
|
16379
16356
|
}
|
|
16380
16357
|
async _processThemeEntry(entry, model, name) {
|
|
16381
16358
|
await new Promise((resolve, reject) => {
|
|
@@ -16404,29 +16381,8 @@ class XLSX {
|
|
|
16404
16381
|
stream = stream.pipe(new PassThrough());
|
|
16405
16382
|
}
|
|
16406
16383
|
const chunks = [];
|
|
16407
|
-
|
|
16408
|
-
|
|
16409
|
-
var _iteratorError;
|
|
16410
|
-
try {
|
|
16411
|
-
for (var _iterator = _asyncIterator(stream), _step; _iteratorAbruptCompletion = !(_step = await _iterator.next()).done; _iteratorAbruptCompletion = false) {
|
|
16412
|
-
const chunk = _step.value;
|
|
16413
|
-
{
|
|
16414
|
-
chunks.push(chunk);
|
|
16415
|
-
}
|
|
16416
|
-
}
|
|
16417
|
-
} catch (err) {
|
|
16418
|
-
_didIteratorError = true;
|
|
16419
|
-
_iteratorError = err;
|
|
16420
|
-
} finally {
|
|
16421
|
-
try {
|
|
16422
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
16423
|
-
await _iterator.return();
|
|
16424
|
-
}
|
|
16425
|
-
} finally {
|
|
16426
|
-
if (_didIteratorError) {
|
|
16427
|
-
throw _iteratorError;
|
|
16428
|
-
}
|
|
16429
|
-
}
|
|
16384
|
+
for await (const chunk of stream) {
|
|
16385
|
+
chunks.push(chunk);
|
|
16430
16386
|
}
|
|
16431
16387
|
return this.load(Buffer.concat(chunks), options);
|
|
16432
16388
|
}
|
|
@@ -16589,7 +16545,7 @@ class XLSX {
|
|
|
16589
16545
|
async addMedia(zip, model) {
|
|
16590
16546
|
await Promise.all(model.media.map(async medium => {
|
|
16591
16547
|
if (medium.type === 'image') {
|
|
16592
|
-
const filename =
|
|
16548
|
+
const filename = `xl/media/${medium.name}.${medium.extension}`;
|
|
16593
16549
|
if (medium.filename) {
|
|
16594
16550
|
const data = await fsReadFileAsync(medium.filename);
|
|
16595
16551
|
return zip.append(data, {
|
|
@@ -16624,11 +16580,11 @@ class XLSX {
|
|
|
16624
16580
|
drawingXform.prepare(drawing, {});
|
|
16625
16581
|
let xml = drawingXform.toXml(drawing);
|
|
16626
16582
|
zip.append(xml, {
|
|
16627
|
-
name:
|
|
16583
|
+
name: `xl/drawings/${drawing.name}.xml`
|
|
16628
16584
|
});
|
|
16629
16585
|
xml = relsXform.toXml(drawing.rels);
|
|
16630
16586
|
zip.append(xml, {
|
|
16631
|
-
name:
|
|
16587
|
+
name: `xl/drawings/_rels/${drawing.name}.xml.rels`
|
|
16632
16588
|
});
|
|
16633
16589
|
}
|
|
16634
16590
|
});
|
|
@@ -16643,7 +16599,7 @@ class XLSX {
|
|
|
16643
16599
|
tableXform.prepare(table, {});
|
|
16644
16600
|
const tableXml = tableXform.toXml(table);
|
|
16645
16601
|
zip.append(tableXml, {
|
|
16646
|
-
name:
|
|
16602
|
+
name: `xl/tables/${table.target}`
|
|
16647
16603
|
});
|
|
16648
16604
|
});
|
|
16649
16605
|
});
|
|
@@ -16740,7 +16696,7 @@ class XLSX {
|
|
|
16740
16696
|
};
|
|
16741
16697
|
Object.keys(themes).forEach(name => {
|
|
16742
16698
|
const xml = themes[name];
|
|
16743
|
-
const path =
|
|
16699
|
+
const path = `xl/theme/${name}.xml`;
|
|
16744
16700
|
zip.append(xml, {
|
|
16745
16701
|
name: path
|
|
16746
16702
|
});
|
|
@@ -16768,24 +16724,24 @@ class XLSX {
|
|
|
16768
16724
|
async addWorkbookRels(zip, model) {
|
|
16769
16725
|
let count = 1;
|
|
16770
16726
|
const relationships = [{
|
|
16771
|
-
Id:
|
|
16727
|
+
Id: `rId${count++}`,
|
|
16772
16728
|
Type: XLSX.RelType.Styles,
|
|
16773
16729
|
Target: 'styles.xml'
|
|
16774
16730
|
}, {
|
|
16775
|
-
Id:
|
|
16731
|
+
Id: `rId${count++}`,
|
|
16776
16732
|
Type: XLSX.RelType.Theme,
|
|
16777
16733
|
Target: 'theme/theme1.xml'
|
|
16778
16734
|
}];
|
|
16779
16735
|
if (model.sharedStrings.count) {
|
|
16780
16736
|
relationships.push({
|
|
16781
|
-
Id:
|
|
16737
|
+
Id: `rId${count++}`,
|
|
16782
16738
|
Type: XLSX.RelType.SharedStrings,
|
|
16783
16739
|
Target: 'sharedStrings.xml'
|
|
16784
16740
|
});
|
|
16785
16741
|
}
|
|
16786
16742
|
if ((model.pivotTables || []).length) {
|
|
16787
16743
|
const pivotTable = model.pivotTables[0];
|
|
16788
|
-
pivotTable.rId =
|
|
16744
|
+
pivotTable.rId = `rId${count++}`;
|
|
16789
16745
|
relationships.push({
|
|
16790
16746
|
Id: pivotTable.rId,
|
|
16791
16747
|
Type: XLSX.RelType.PivotCacheDefinition,
|
|
@@ -16793,11 +16749,11 @@ class XLSX {
|
|
|
16793
16749
|
});
|
|
16794
16750
|
}
|
|
16795
16751
|
model.worksheets.forEach(worksheet => {
|
|
16796
|
-
worksheet.rId =
|
|
16752
|
+
worksheet.rId = `rId${count++}`;
|
|
16797
16753
|
relationships.push({
|
|
16798
16754
|
Id: worksheet.rId,
|
|
16799
16755
|
Type: XLSX.RelType.Worksheet,
|
|
16800
|
-
Target:
|
|
16756
|
+
Target: `worksheets/sheet${worksheet.id}.xml`
|
|
16801
16757
|
});
|
|
16802
16758
|
});
|
|
16803
16759
|
const xform = new RelationshipsXform();
|
|
@@ -16841,25 +16797,25 @@ class XLSX {
|
|
|
16841
16797
|
let xmlStream = new XmlStream();
|
|
16842
16798
|
worksheetXform.render(xmlStream, worksheet);
|
|
16843
16799
|
zip.append(xmlStream.xml, {
|
|
16844
|
-
name:
|
|
16800
|
+
name: `xl/worksheets/sheet${worksheet.id}.xml`
|
|
16845
16801
|
});
|
|
16846
16802
|
if (worksheet.rels && worksheet.rels.length) {
|
|
16847
16803
|
xmlStream = new XmlStream();
|
|
16848
16804
|
relationshipsXform.render(xmlStream, worksheet.rels);
|
|
16849
16805
|
zip.append(xmlStream.xml, {
|
|
16850
|
-
name:
|
|
16806
|
+
name: `xl/worksheets/_rels/sheet${worksheet.id}.xml.rels`
|
|
16851
16807
|
});
|
|
16852
16808
|
}
|
|
16853
16809
|
if (worksheet.comments.length > 0) {
|
|
16854
16810
|
xmlStream = new XmlStream();
|
|
16855
16811
|
commentsXform.render(xmlStream, worksheet);
|
|
16856
16812
|
zip.append(xmlStream.xml, {
|
|
16857
|
-
name:
|
|
16813
|
+
name: `xl/comments${worksheet.id}.xml`
|
|
16858
16814
|
});
|
|
16859
16815
|
xmlStream = new XmlStream();
|
|
16860
16816
|
vmlNotesXform.render(xmlStream, worksheet);
|
|
16861
16817
|
zip.append(xmlStream.xml, {
|
|
16862
|
-
name:
|
|
16818
|
+
name: `xl/drawings/vmlDrawing${worksheet.id}.vml`
|
|
16863
16819
|
});
|
|
16864
16820
|
}
|
|
16865
16821
|
});
|
|
@@ -16907,7 +16863,7 @@ class XLSX {
|
|
|
16907
16863
|
// assign unique filenames to tables
|
|
16908
16864
|
worksheet.tables.forEach(table => {
|
|
16909
16865
|
tableCount++;
|
|
16910
|
-
table.target =
|
|
16866
|
+
table.target = `table${tableCount}.xml`;
|
|
16911
16867
|
table.id = tableCount;
|
|
16912
16868
|
model.tables.push(table);
|
|
16913
16869
|
});
|
|
@@ -16977,9 +16933,6 @@ module.exports = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<a:th
|
|
|
16977
16933
|
(function (Buffer){(function (){
|
|
16978
16934
|
"use strict";
|
|
16979
16935
|
|
|
16980
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
16981
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
16982
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16983
16936
|
Object.defineProperty(exports, "__esModule", {
|
|
16984
16937
|
value: true
|
|
16985
16938
|
});
|
|
@@ -16987,13 +16940,13 @@ exports.CsvFormatterStream = void 0;
|
|
|
16987
16940
|
const stream_1 = require("stream");
|
|
16988
16941
|
const formatter_1 = require("./formatter");
|
|
16989
16942
|
class CsvFormatterStream extends stream_1.Transform {
|
|
16943
|
+
formatterOptions;
|
|
16944
|
+
rowFormatter;
|
|
16945
|
+
hasWrittenBOM = false;
|
|
16990
16946
|
constructor(formatterOptions) {
|
|
16991
16947
|
super({
|
|
16992
16948
|
writableObjectMode: formatterOptions.objectMode
|
|
16993
16949
|
});
|
|
16994
|
-
_defineProperty(this, "formatterOptions", void 0);
|
|
16995
|
-
_defineProperty(this, "rowFormatter", void 0);
|
|
16996
|
-
_defineProperty(this, "hasWrittenBOM", false);
|
|
16997
16950
|
this.formatterOptions = formatterOptions;
|
|
16998
16951
|
this.rowFormatter = new formatter_1.RowFormatter(formatterOptions);
|
|
16999
16952
|
// if writeBOM is false then set to true
|
|
@@ -17052,47 +17005,43 @@ exports.CsvFormatterStream = CsvFormatterStream;
|
|
|
17052
17005
|
},{"./formatter":156,"buffer":237,"stream":474}],153:[function(require,module,exports){
|
|
17053
17006
|
"use strict";
|
|
17054
17007
|
|
|
17055
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17056
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17057
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17058
17008
|
Object.defineProperty(exports, "__esModule", {
|
|
17059
17009
|
value: true
|
|
17060
17010
|
});
|
|
17061
17011
|
exports.FormatterOptions = void 0;
|
|
17062
17012
|
class FormatterOptions {
|
|
17013
|
+
objectMode = true;
|
|
17014
|
+
delimiter = ',';
|
|
17015
|
+
rowDelimiter = '\n';
|
|
17016
|
+
quote = '"';
|
|
17017
|
+
escape = this.quote;
|
|
17018
|
+
quoteColumns = false;
|
|
17019
|
+
quoteHeaders = this.quoteColumns;
|
|
17020
|
+
headers = null;
|
|
17021
|
+
includeEndRowDelimiter = false;
|
|
17022
|
+
transform;
|
|
17023
|
+
shouldWriteHeaders;
|
|
17024
|
+
writeBOM = false;
|
|
17025
|
+
escapedQuote;
|
|
17026
|
+
BOM = '\ufeff';
|
|
17027
|
+
alwaysWriteHeaders = false;
|
|
17063
17028
|
constructor() {
|
|
17064
|
-
var _opts$writeHeaders;
|
|
17065
17029
|
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
17066
|
-
_defineProperty(this, "objectMode", true);
|
|
17067
|
-
_defineProperty(this, "delimiter", ',');
|
|
17068
|
-
_defineProperty(this, "rowDelimiter", '\n');
|
|
17069
|
-
_defineProperty(this, "quote", '"');
|
|
17070
|
-
_defineProperty(this, "escape", this.quote);
|
|
17071
|
-
_defineProperty(this, "quoteColumns", false);
|
|
17072
|
-
_defineProperty(this, "quoteHeaders", this.quoteColumns);
|
|
17073
|
-
_defineProperty(this, "headers", null);
|
|
17074
|
-
_defineProperty(this, "includeEndRowDelimiter", false);
|
|
17075
|
-
_defineProperty(this, "transform", void 0);
|
|
17076
|
-
_defineProperty(this, "shouldWriteHeaders", void 0);
|
|
17077
|
-
_defineProperty(this, "writeBOM", false);
|
|
17078
|
-
_defineProperty(this, "escapedQuote", void 0);
|
|
17079
|
-
_defineProperty(this, "BOM", '\ufeff');
|
|
17080
|
-
_defineProperty(this, "alwaysWriteHeaders", false);
|
|
17081
17030
|
Object.assign(this, opts || {});
|
|
17082
|
-
if (typeof
|
|
17031
|
+
if (typeof opts?.quoteHeaders === 'undefined') {
|
|
17083
17032
|
this.quoteHeaders = this.quoteColumns;
|
|
17084
17033
|
}
|
|
17085
|
-
if (
|
|
17034
|
+
if (opts?.quote === true) {
|
|
17086
17035
|
this.quote = '"';
|
|
17087
|
-
} else if (
|
|
17036
|
+
} else if (opts?.quote === false) {
|
|
17088
17037
|
this.quote = '';
|
|
17089
17038
|
}
|
|
17090
|
-
if (typeof
|
|
17039
|
+
if (typeof opts?.escape !== 'string') {
|
|
17091
17040
|
this.escape = this.quote;
|
|
17092
17041
|
}
|
|
17093
|
-
this.shouldWriteHeaders = !!this.headers && (
|
|
17042
|
+
this.shouldWriteHeaders = !!this.headers && (opts.writeHeaders ?? true);
|
|
17094
17043
|
this.headers = Array.isArray(this.headers) ? this.headers : null;
|
|
17095
|
-
this.escapedQuote =
|
|
17044
|
+
this.escapedQuote = `${this.escape}${this.quote}`;
|
|
17096
17045
|
}
|
|
17097
17046
|
}
|
|
17098
17047
|
exports.FormatterOptions = FormatterOptions;
|
|
@@ -17100,9 +17049,6 @@ exports.FormatterOptions = FormatterOptions;
|
|
|
17100
17049
|
},{}],154:[function(require,module,exports){
|
|
17101
17050
|
"use strict";
|
|
17102
17051
|
|
|
17103
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17104
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17105
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17106
17052
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
17107
17053
|
return mod && mod.__esModule ? mod : {
|
|
17108
17054
|
"default": mod
|
|
@@ -17116,17 +17062,17 @@ const lodash_isboolean_1 = __importDefault(require("lodash.isboolean"));
|
|
|
17116
17062
|
const lodash_isnil_1 = __importDefault(require("lodash.isnil"));
|
|
17117
17063
|
const lodash_escaperegexp_1 = __importDefault(require("lodash.escaperegexp"));
|
|
17118
17064
|
class FieldFormatter {
|
|
17065
|
+
formatterOptions;
|
|
17066
|
+
_headers = null;
|
|
17067
|
+
REPLACE_REGEXP;
|
|
17068
|
+
ESCAPE_REGEXP;
|
|
17119
17069
|
constructor(formatterOptions) {
|
|
17120
|
-
_defineProperty(this, "formatterOptions", void 0);
|
|
17121
|
-
_defineProperty(this, "_headers", null);
|
|
17122
|
-
_defineProperty(this, "REPLACE_REGEXP", void 0);
|
|
17123
|
-
_defineProperty(this, "ESCAPE_REGEXP", void 0);
|
|
17124
17070
|
this.formatterOptions = formatterOptions;
|
|
17125
17071
|
if (formatterOptions.headers !== null) {
|
|
17126
17072
|
this.headers = formatterOptions.headers;
|
|
17127
17073
|
}
|
|
17128
17074
|
this.REPLACE_REGEXP = new RegExp(formatterOptions.quote, 'g');
|
|
17129
|
-
const escapePattern =
|
|
17075
|
+
const escapePattern = `[${formatterOptions.delimiter}${(0, lodash_escaperegexp_1.default)(formatterOptions.rowDelimiter)}|\r|\n]`;
|
|
17130
17076
|
this.ESCAPE_REGEXP = new RegExp(escapePattern);
|
|
17131
17077
|
}
|
|
17132
17078
|
set headers(headers) {
|
|
@@ -17146,7 +17092,7 @@ class FieldFormatter {
|
|
|
17146
17092
|
return false;
|
|
17147
17093
|
}
|
|
17148
17094
|
format(field, fieldIndex, isHeader) {
|
|
17149
|
-
const preparedField =
|
|
17095
|
+
const preparedField = `${(0, lodash_isnil_1.default)(field) ? '' : field}`.replace(/\0/g, '');
|
|
17150
17096
|
const {
|
|
17151
17097
|
formatterOptions
|
|
17152
17098
|
} = this;
|
|
@@ -17166,7 +17112,7 @@ class FieldFormatter {
|
|
|
17166
17112
|
const {
|
|
17167
17113
|
quote
|
|
17168
17114
|
} = this.formatterOptions;
|
|
17169
|
-
return
|
|
17115
|
+
return `${quote}${field}${quote}`;
|
|
17170
17116
|
}
|
|
17171
17117
|
}
|
|
17172
17118
|
exports.FieldFormatter = FieldFormatter;
|
|
@@ -17174,9 +17120,6 @@ exports.FieldFormatter = FieldFormatter;
|
|
|
17174
17120
|
},{"lodash.escaperegexp":521,"lodash.isboolean":523,"lodash.isnil":525}],155:[function(require,module,exports){
|
|
17175
17121
|
"use strict";
|
|
17176
17122
|
|
|
17177
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17178
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17179
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17180
17123
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
17181
17124
|
return mod && mod.__esModule ? mod : {
|
|
17182
17125
|
"default": mod
|
|
@@ -17229,14 +17172,14 @@ class RowFormatter {
|
|
|
17229
17172
|
transformFunction(row, cb);
|
|
17230
17173
|
};
|
|
17231
17174
|
}
|
|
17175
|
+
formatterOptions;
|
|
17176
|
+
fieldFormatter;
|
|
17177
|
+
shouldWriteHeaders;
|
|
17178
|
+
_rowTransform;
|
|
17179
|
+
headers;
|
|
17180
|
+
hasWrittenHeaders;
|
|
17181
|
+
rowCount = 0;
|
|
17232
17182
|
constructor(formatterOptions) {
|
|
17233
|
-
_defineProperty(this, "formatterOptions", void 0);
|
|
17234
|
-
_defineProperty(this, "fieldFormatter", void 0);
|
|
17235
|
-
_defineProperty(this, "shouldWriteHeaders", void 0);
|
|
17236
|
-
_defineProperty(this, "_rowTransform", void 0);
|
|
17237
|
-
_defineProperty(this, "headers", void 0);
|
|
17238
|
-
_defineProperty(this, "hasWrittenHeaders", void 0);
|
|
17239
|
-
_defineProperty(this, "rowCount", 0);
|
|
17240
17183
|
this.formatterOptions = formatterOptions;
|
|
17241
17184
|
this.fieldFormatter = new FieldFormatter_1.FieldFormatter(formatterOptions);
|
|
17242
17185
|
this.headers = formatterOptions.headers;
|
|
@@ -17540,9 +17483,6 @@ exports.isSyncTransform = isSyncTransform;
|
|
|
17540
17483
|
(function (setImmediate){(function (){
|
|
17541
17484
|
"use strict";
|
|
17542
17485
|
|
|
17543
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17544
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17545
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17546
17486
|
Object.defineProperty(exports, "__esModule", {
|
|
17547
17487
|
value: true
|
|
17548
17488
|
});
|
|
@@ -17552,21 +17492,21 @@ const stream_1 = require("stream");
|
|
|
17552
17492
|
const transforms_1 = require("./transforms");
|
|
17553
17493
|
const parser_1 = require("./parser");
|
|
17554
17494
|
class CsvParserStream extends stream_1.Transform {
|
|
17495
|
+
parserOptions;
|
|
17496
|
+
decoder;
|
|
17497
|
+
parser;
|
|
17498
|
+
headerTransformer;
|
|
17499
|
+
rowTransformerValidator;
|
|
17500
|
+
lines = '';
|
|
17501
|
+
rowCount = 0;
|
|
17502
|
+
parsedRowCount = 0;
|
|
17503
|
+
parsedLineCount = 0;
|
|
17504
|
+
endEmitted = false;
|
|
17505
|
+
headersEmitted = false;
|
|
17555
17506
|
constructor(parserOptions) {
|
|
17556
17507
|
super({
|
|
17557
17508
|
objectMode: parserOptions.objectMode
|
|
17558
17509
|
});
|
|
17559
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
17560
|
-
_defineProperty(this, "decoder", void 0);
|
|
17561
|
-
_defineProperty(this, "parser", void 0);
|
|
17562
|
-
_defineProperty(this, "headerTransformer", void 0);
|
|
17563
|
-
_defineProperty(this, "rowTransformerValidator", void 0);
|
|
17564
|
-
_defineProperty(this, "lines", '');
|
|
17565
|
-
_defineProperty(this, "rowCount", 0);
|
|
17566
|
-
_defineProperty(this, "parsedRowCount", 0);
|
|
17567
|
-
_defineProperty(this, "parsedLineCount", 0);
|
|
17568
|
-
_defineProperty(this, "endEmitted", false);
|
|
17569
|
-
_defineProperty(this, "headersEmitted", false);
|
|
17570
17510
|
this.parserOptions = parserOptions;
|
|
17571
17511
|
this.parser = new parser_1.Parser(parserOptions);
|
|
17572
17512
|
this.headerTransformer = new transforms_1.HeaderTransformer(parserOptions);
|
|
@@ -17784,9 +17724,6 @@ exports.CsvParserStream = CsvParserStream;
|
|
|
17784
17724
|
},{"./parser":171,"./transforms":174,"stream":474,"string_decoder":489,"timers":610}],160:[function(require,module,exports){
|
|
17785
17725
|
"use strict";
|
|
17786
17726
|
|
|
17787
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17788
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17789
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17790
17727
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
17791
17728
|
return mod && mod.__esModule ? mod : {
|
|
17792
17729
|
"default": mod
|
|
@@ -17799,39 +17736,38 @@ exports.ParserOptions = void 0;
|
|
|
17799
17736
|
const lodash_escaperegexp_1 = __importDefault(require("lodash.escaperegexp"));
|
|
17800
17737
|
const lodash_isnil_1 = __importDefault(require("lodash.isnil"));
|
|
17801
17738
|
class ParserOptions {
|
|
17739
|
+
escapedDelimiter;
|
|
17740
|
+
objectMode = true;
|
|
17741
|
+
delimiter = ',';
|
|
17742
|
+
ignoreEmpty = false;
|
|
17743
|
+
quote = '"';
|
|
17744
|
+
escape = null;
|
|
17745
|
+
escapeChar = this.quote;
|
|
17746
|
+
comment = null;
|
|
17747
|
+
supportsComments = false;
|
|
17748
|
+
ltrim = false;
|
|
17749
|
+
rtrim = false;
|
|
17750
|
+
trim = false;
|
|
17751
|
+
headers = null;
|
|
17752
|
+
renameHeaders = false;
|
|
17753
|
+
strictColumnHandling = false;
|
|
17754
|
+
discardUnmappedColumns = false;
|
|
17755
|
+
carriageReturn = '\r';
|
|
17756
|
+
NEXT_TOKEN_REGEXP;
|
|
17757
|
+
encoding = 'utf8';
|
|
17758
|
+
limitRows = false;
|
|
17759
|
+
maxRows = 0;
|
|
17760
|
+
skipLines = 0;
|
|
17761
|
+
skipRows = 0;
|
|
17802
17762
|
constructor(opts) {
|
|
17803
|
-
var _this$escape;
|
|
17804
|
-
_defineProperty(this, "escapedDelimiter", void 0);
|
|
17805
|
-
_defineProperty(this, "objectMode", true);
|
|
17806
|
-
_defineProperty(this, "delimiter", ',');
|
|
17807
|
-
_defineProperty(this, "ignoreEmpty", false);
|
|
17808
|
-
_defineProperty(this, "quote", '"');
|
|
17809
|
-
_defineProperty(this, "escape", null);
|
|
17810
|
-
_defineProperty(this, "escapeChar", this.quote);
|
|
17811
|
-
_defineProperty(this, "comment", null);
|
|
17812
|
-
_defineProperty(this, "supportsComments", false);
|
|
17813
|
-
_defineProperty(this, "ltrim", false);
|
|
17814
|
-
_defineProperty(this, "rtrim", false);
|
|
17815
|
-
_defineProperty(this, "trim", false);
|
|
17816
|
-
_defineProperty(this, "headers", null);
|
|
17817
|
-
_defineProperty(this, "renameHeaders", false);
|
|
17818
|
-
_defineProperty(this, "strictColumnHandling", false);
|
|
17819
|
-
_defineProperty(this, "discardUnmappedColumns", false);
|
|
17820
|
-
_defineProperty(this, "carriageReturn", '\r');
|
|
17821
|
-
_defineProperty(this, "NEXT_TOKEN_REGEXP", void 0);
|
|
17822
|
-
_defineProperty(this, "encoding", 'utf8');
|
|
17823
|
-
_defineProperty(this, "limitRows", false);
|
|
17824
|
-
_defineProperty(this, "maxRows", 0);
|
|
17825
|
-
_defineProperty(this, "skipLines", 0);
|
|
17826
|
-
_defineProperty(this, "skipRows", 0);
|
|
17827
17763
|
Object.assign(this, opts || {});
|
|
17828
17764
|
if (this.delimiter.length > 1) {
|
|
17829
17765
|
throw new Error('delimiter option must be one character long');
|
|
17830
17766
|
}
|
|
17831
17767
|
this.escapedDelimiter = (0, lodash_escaperegexp_1.default)(this.delimiter);
|
|
17832
|
-
this.escapeChar =
|
|
17768
|
+
this.escapeChar = this.escape ?? this.quote;
|
|
17833
17769
|
this.supportsComments = !(0, lodash_isnil_1.default)(this.comment);
|
|
17834
|
-
this.NEXT_TOKEN_REGEXP = new RegExp(
|
|
17770
|
+
this.NEXT_TOKEN_REGEXP = new RegExp(`([^\\s]|\\r\\n|\\n|\\r|${this.escapedDelimiter})`);
|
|
17835
17771
|
if (this.maxRows > 0) {
|
|
17836
17772
|
this.limitRows = true;
|
|
17837
17773
|
}
|
|
@@ -17923,9 +17859,6 @@ exports.parseString = parseString;
|
|
|
17923
17859
|
},{"./CsvParserStream":159,"./ParserOptions":160,"./types":175,"fs":471,"stream":474}],162:[function(require,module,exports){
|
|
17924
17860
|
"use strict";
|
|
17925
17861
|
|
|
17926
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
17927
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17928
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
17929
17862
|
Object.defineProperty(exports, "__esModule", {
|
|
17930
17863
|
value: true
|
|
17931
17864
|
});
|
|
@@ -17942,9 +17875,9 @@ class Parser {
|
|
|
17942
17875
|
}
|
|
17943
17876
|
return line;
|
|
17944
17877
|
}
|
|
17878
|
+
parserOptions;
|
|
17879
|
+
rowParser;
|
|
17945
17880
|
constructor(parserOptions) {
|
|
17946
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
17947
|
-
_defineProperty(this, "rowParser", void 0);
|
|
17948
17881
|
this.parserOptions = parserOptions;
|
|
17949
17882
|
this.rowParser = new RowParser_1.RowParser(this.parserOptions);
|
|
17950
17883
|
}
|
|
@@ -18021,9 +17954,6 @@ exports.Parser = Parser;
|
|
|
18021
17954
|
},{"./RowParser":163,"./Scanner":164,"./Token":165}],163:[function(require,module,exports){
|
|
18022
17955
|
"use strict";
|
|
18023
17956
|
|
|
18024
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18025
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18026
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18027
17957
|
Object.defineProperty(exports, "__esModule", {
|
|
18028
17958
|
value: true
|
|
18029
17959
|
});
|
|
@@ -18035,9 +17965,9 @@ class RowParser {
|
|
|
18035
17965
|
static isEmptyRow(row) {
|
|
18036
17966
|
return row.join(EMPTY_STRING).replace(/\s+/g, EMPTY_STRING) === EMPTY_STRING;
|
|
18037
17967
|
}
|
|
17968
|
+
parserOptions;
|
|
17969
|
+
columnParser;
|
|
18038
17970
|
constructor(parserOptions) {
|
|
18039
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18040
|
-
_defineProperty(this, "columnParser", void 0);
|
|
18041
17971
|
this.parserOptions = parserOptions;
|
|
18042
17972
|
this.columnParser = new column_1.ColumnParser(parserOptions);
|
|
18043
17973
|
}
|
|
@@ -18110,9 +18040,6 @@ exports.RowParser = RowParser;
|
|
|
18110
18040
|
},{"./Token":165,"./column":170}],164:[function(require,module,exports){
|
|
18111
18041
|
"use strict";
|
|
18112
18042
|
|
|
18113
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18114
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18115
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18116
18043
|
Object.defineProperty(exports, "__esModule", {
|
|
18117
18044
|
value: true
|
|
18118
18045
|
});
|
|
@@ -18120,12 +18047,12 @@ exports.Scanner = void 0;
|
|
|
18120
18047
|
const Token_1 = require("./Token");
|
|
18121
18048
|
const ROW_DELIMITER = /((?:\r\n)|\n|\r)/;
|
|
18122
18049
|
class Scanner {
|
|
18050
|
+
line;
|
|
18051
|
+
parserOptions;
|
|
18052
|
+
lineLength;
|
|
18053
|
+
hasMoreData;
|
|
18054
|
+
cursor = 0;
|
|
18123
18055
|
constructor(args) {
|
|
18124
|
-
_defineProperty(this, "line", void 0);
|
|
18125
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18126
|
-
_defineProperty(this, "lineLength", void 0);
|
|
18127
|
-
_defineProperty(this, "hasMoreData", void 0);
|
|
18128
|
-
_defineProperty(this, "cursor", 0);
|
|
18129
18056
|
this.line = args.line;
|
|
18130
18057
|
this.lineLength = this.line.length;
|
|
18131
18058
|
this.parserOptions = args.parserOptions;
|
|
@@ -18208,9 +18135,6 @@ exports.Scanner = Scanner;
|
|
|
18208
18135
|
},{"./Token":165}],165:[function(require,module,exports){
|
|
18209
18136
|
"use strict";
|
|
18210
18137
|
|
|
18211
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18212
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18213
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18214
18138
|
Object.defineProperty(exports, "__esModule", {
|
|
18215
18139
|
value: true
|
|
18216
18140
|
});
|
|
@@ -18235,10 +18159,10 @@ class Token {
|
|
|
18235
18159
|
static isTokenDelimiter(token, parserOptions) {
|
|
18236
18160
|
return token.token === parserOptions.delimiter;
|
|
18237
18161
|
}
|
|
18162
|
+
token;
|
|
18163
|
+
startCursor;
|
|
18164
|
+
endCursor;
|
|
18238
18165
|
constructor(tokenArgs) {
|
|
18239
|
-
_defineProperty(this, "token", void 0);
|
|
18240
|
-
_defineProperty(this, "startCursor", void 0);
|
|
18241
|
-
_defineProperty(this, "endCursor", void 0);
|
|
18242
18166
|
this.token = tokenArgs.token;
|
|
18243
18167
|
this.startCursor = tokenArgs.startCursor;
|
|
18244
18168
|
this.endCursor = tokenArgs.endCursor;
|
|
@@ -18249,16 +18173,13 @@ exports.Token = Token;
|
|
|
18249
18173
|
},{}],166:[function(require,module,exports){
|
|
18250
18174
|
"use strict";
|
|
18251
18175
|
|
|
18252
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18253
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18254
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18255
18176
|
Object.defineProperty(exports, "__esModule", {
|
|
18256
18177
|
value: true
|
|
18257
18178
|
});
|
|
18258
18179
|
exports.ColumnFormatter = void 0;
|
|
18259
18180
|
class ColumnFormatter {
|
|
18181
|
+
format;
|
|
18260
18182
|
constructor(parserOptions) {
|
|
18261
|
-
_defineProperty(this, "format", void 0);
|
|
18262
18183
|
if (parserOptions.trim) {
|
|
18263
18184
|
this.format = col => {
|
|
18264
18185
|
return col.trim();
|
|
@@ -18283,9 +18204,6 @@ exports.ColumnFormatter = ColumnFormatter;
|
|
|
18283
18204
|
},{}],167:[function(require,module,exports){
|
|
18284
18205
|
"use strict";
|
|
18285
18206
|
|
|
18286
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18287
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18288
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18289
18207
|
Object.defineProperty(exports, "__esModule", {
|
|
18290
18208
|
value: true
|
|
18291
18209
|
});
|
|
@@ -18294,10 +18212,10 @@ const NonQuotedColumnParser_1 = require("./NonQuotedColumnParser");
|
|
|
18294
18212
|
const QuotedColumnParser_1 = require("./QuotedColumnParser");
|
|
18295
18213
|
const Token_1 = require("../Token");
|
|
18296
18214
|
class ColumnParser {
|
|
18215
|
+
parserOptions;
|
|
18216
|
+
nonQuotedColumnParser;
|
|
18217
|
+
quotedColumnParser;
|
|
18297
18218
|
constructor(parserOptions) {
|
|
18298
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18299
|
-
_defineProperty(this, "nonQuotedColumnParser", void 0);
|
|
18300
|
-
_defineProperty(this, "quotedColumnParser", void 0);
|
|
18301
18219
|
this.parserOptions = parserOptions;
|
|
18302
18220
|
this.quotedColumnParser = new QuotedColumnParser_1.QuotedColumnParser(parserOptions);
|
|
18303
18221
|
this.nonQuotedColumnParser = new NonQuotedColumnParser_1.NonQuotedColumnParser(parserOptions);
|
|
@@ -18318,9 +18236,6 @@ exports.ColumnParser = ColumnParser;
|
|
|
18318
18236
|
},{"../Token":165,"./NonQuotedColumnParser":168,"./QuotedColumnParser":169}],168:[function(require,module,exports){
|
|
18319
18237
|
"use strict";
|
|
18320
18238
|
|
|
18321
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18322
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18323
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18324
18239
|
Object.defineProperty(exports, "__esModule", {
|
|
18325
18240
|
value: true
|
|
18326
18241
|
});
|
|
@@ -18328,9 +18243,9 @@ exports.NonQuotedColumnParser = void 0;
|
|
|
18328
18243
|
const ColumnFormatter_1 = require("./ColumnFormatter");
|
|
18329
18244
|
const Token_1 = require("../Token");
|
|
18330
18245
|
class NonQuotedColumnParser {
|
|
18246
|
+
parserOptions;
|
|
18247
|
+
columnFormatter;
|
|
18331
18248
|
constructor(parserOptions) {
|
|
18332
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18333
|
-
_defineProperty(this, "columnFormatter", void 0);
|
|
18334
18249
|
this.parserOptions = parserOptions;
|
|
18335
18250
|
this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);
|
|
18336
18251
|
}
|
|
@@ -18358,9 +18273,6 @@ exports.NonQuotedColumnParser = NonQuotedColumnParser;
|
|
|
18358
18273
|
},{"../Token":165,"./ColumnFormatter":166}],169:[function(require,module,exports){
|
|
18359
18274
|
"use strict";
|
|
18360
18275
|
|
|
18361
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18362
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18363
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18364
18276
|
Object.defineProperty(exports, "__esModule", {
|
|
18365
18277
|
value: true
|
|
18366
18278
|
});
|
|
@@ -18368,9 +18280,9 @@ exports.QuotedColumnParser = void 0;
|
|
|
18368
18280
|
const ColumnFormatter_1 = require("./ColumnFormatter");
|
|
18369
18281
|
const Token_1 = require("../Token");
|
|
18370
18282
|
class QuotedColumnParser {
|
|
18283
|
+
parserOptions;
|
|
18284
|
+
columnFormatter;
|
|
18371
18285
|
constructor(parserOptions) {
|
|
18372
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18373
|
-
_defineProperty(this, "columnFormatter", void 0);
|
|
18374
18286
|
this.parserOptions = parserOptions;
|
|
18375
18287
|
this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);
|
|
18376
18288
|
}
|
|
@@ -18389,7 +18301,7 @@ class QuotedColumnParser {
|
|
|
18389
18301
|
// if we didnt find a closing quote but we potentially have more data then skip the parsing
|
|
18390
18302
|
// and return the original scanner.
|
|
18391
18303
|
if (!scanner.hasMoreData) {
|
|
18392
|
-
throw new Error(
|
|
18304
|
+
throw new Error(`Parse Error: missing closing: '${this.parserOptions.quote || ''}' in line: at '${scanner.lineFromCursor.replace(/[\r\n]/g, "\\n'")}'`);
|
|
18393
18305
|
}
|
|
18394
18306
|
return null;
|
|
18395
18307
|
}
|
|
@@ -18455,7 +18367,7 @@ class QuotedColumnParser {
|
|
|
18455
18367
|
// if the final quote was NOT followed by a column (,) or row(\n) delimiter then its a bad column
|
|
18456
18368
|
// tldr: only part of the column was quoted
|
|
18457
18369
|
const linePreview = scanner.lineFromCursor.substr(0, 10).replace(/[\r\n]/g, "\\n'");
|
|
18458
|
-
throw new Error(
|
|
18370
|
+
throw new Error(`Parse Error: expected: '${parserOptions.escapedDelimiter}' OR new line got: '${nextNonSpaceToken.token}'. at '${linePreview}'`);
|
|
18459
18371
|
}
|
|
18460
18372
|
scanner.advanceToToken(nextNonSpaceToken);
|
|
18461
18373
|
} else if (!scanner.hasMoreData) {
|
|
@@ -18559,9 +18471,6 @@ Object.defineProperty(exports, "QuotedColumnParser", {
|
|
|
18559
18471
|
},{"./Parser":162,"./RowParser":163,"./Scanner":164,"./Token":165,"./column":170}],172:[function(require,module,exports){
|
|
18560
18472
|
"use strict";
|
|
18561
18473
|
|
|
18562
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18563
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18564
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18565
18474
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
18566
18475
|
return mod && mod.__esModule ? mod : {
|
|
18567
18476
|
"default": mod
|
|
@@ -18576,14 +18485,14 @@ const lodash_isfunction_1 = __importDefault(require("lodash.isfunction"));
|
|
|
18576
18485
|
const lodash_uniq_1 = __importDefault(require("lodash.uniq"));
|
|
18577
18486
|
const lodash_groupby_1 = __importDefault(require("lodash.groupby"));
|
|
18578
18487
|
class HeaderTransformer {
|
|
18488
|
+
parserOptions;
|
|
18489
|
+
headers = null;
|
|
18490
|
+
receivedHeaders = false;
|
|
18491
|
+
shouldUseFirstRow = false;
|
|
18492
|
+
processedFirstRow = false;
|
|
18493
|
+
headersLength = 0;
|
|
18494
|
+
headersTransform;
|
|
18579
18495
|
constructor(parserOptions) {
|
|
18580
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18581
|
-
_defineProperty(this, "headers", null);
|
|
18582
|
-
_defineProperty(this, "receivedHeaders", false);
|
|
18583
|
-
_defineProperty(this, "shouldUseFirstRow", false);
|
|
18584
|
-
_defineProperty(this, "processedFirstRow", false);
|
|
18585
|
-
_defineProperty(this, "headersLength", 0);
|
|
18586
|
-
_defineProperty(this, "headersTransform", void 0);
|
|
18587
18496
|
this.parserOptions = parserOptions;
|
|
18588
18497
|
if (parserOptions.headers === true) {
|
|
18589
18498
|
this.shouldUseFirstRow = true;
|
|
@@ -18638,19 +18547,19 @@ class HeaderTransformer {
|
|
|
18638
18547
|
} = this;
|
|
18639
18548
|
if (!parserOptions.discardUnmappedColumns && row.length > this.headersLength) {
|
|
18640
18549
|
if (!parserOptions.strictColumnHandling) {
|
|
18641
|
-
throw new Error(
|
|
18550
|
+
throw new Error(`Unexpected Error: column header mismatch expected: ${this.headersLength} columns got: ${row.length}`);
|
|
18642
18551
|
}
|
|
18643
18552
|
return {
|
|
18644
18553
|
row: row,
|
|
18645
18554
|
isValid: false,
|
|
18646
|
-
reason:
|
|
18555
|
+
reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`
|
|
18647
18556
|
};
|
|
18648
18557
|
}
|
|
18649
18558
|
if (parserOptions.strictColumnHandling && row.length < this.headersLength) {
|
|
18650
18559
|
return {
|
|
18651
18560
|
row: row,
|
|
18652
18561
|
isValid: false,
|
|
18653
|
-
reason:
|
|
18562
|
+
reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`
|
|
18654
18563
|
};
|
|
18655
18564
|
}
|
|
18656
18565
|
return {
|
|
@@ -18679,7 +18588,6 @@ class HeaderTransformer {
|
|
|
18679
18588
|
return rowMap;
|
|
18680
18589
|
}
|
|
18681
18590
|
setHeaders(headers) {
|
|
18682
|
-
var _this$headers;
|
|
18683
18591
|
const filteredHeaders = headers.filter(h => {
|
|
18684
18592
|
return !!h;
|
|
18685
18593
|
});
|
|
@@ -18688,11 +18596,11 @@ class HeaderTransformer {
|
|
|
18688
18596
|
const duplicates = Object.keys(grouped).filter(dup => {
|
|
18689
18597
|
return grouped[dup].length > 1;
|
|
18690
18598
|
});
|
|
18691
|
-
throw new Error(
|
|
18599
|
+
throw new Error(`Duplicate headers found ${JSON.stringify(duplicates)}`);
|
|
18692
18600
|
}
|
|
18693
18601
|
this.headers = headers;
|
|
18694
18602
|
this.receivedHeaders = true;
|
|
18695
|
-
this.headersLength =
|
|
18603
|
+
this.headersLength = this.headers?.length || 0;
|
|
18696
18604
|
}
|
|
18697
18605
|
}
|
|
18698
18606
|
exports.HeaderTransformer = HeaderTransformer;
|
|
@@ -18700,9 +18608,6 @@ exports.HeaderTransformer = HeaderTransformer;
|
|
|
18700
18608
|
},{"lodash.groupby":522,"lodash.isfunction":524,"lodash.isundefined":526,"lodash.uniq":527}],173:[function(require,module,exports){
|
|
18701
18609
|
"use strict";
|
|
18702
18610
|
|
|
18703
|
-
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
18704
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18705
|
-
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
18706
18611
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
18707
18612
|
return mod && mod.__esModule ? mod : {
|
|
18708
18613
|
"default": mod
|
|
@@ -18715,10 +18620,6 @@ exports.RowTransformerValidator = void 0;
|
|
|
18715
18620
|
const lodash_isfunction_1 = __importDefault(require("lodash.isfunction"));
|
|
18716
18621
|
const types_1 = require("../types");
|
|
18717
18622
|
class RowTransformerValidator {
|
|
18718
|
-
constructor() {
|
|
18719
|
-
_defineProperty(this, "_rowTransform", null);
|
|
18720
|
-
_defineProperty(this, "_rowValidator", null);
|
|
18721
|
-
}
|
|
18722
18623
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
18723
18624
|
static createTransform(transformFunction) {
|
|
18724
18625
|
if ((0, types_1.isSyncTransform)(transformFunction)) {
|
|
@@ -18763,6 +18664,8 @@ class RowTransformerValidator {
|
|
|
18763
18664
|
});
|
|
18764
18665
|
};
|
|
18765
18666
|
}
|
|
18667
|
+
_rowTransform = null;
|
|
18668
|
+
_rowValidator = null;
|
|
18766
18669
|
set rowTransform(transformFunction) {
|
|
18767
18670
|
if (!(0, lodash_isfunction_1.default)(transformFunction)) {
|
|
18768
18671
|
throw new TypeError('The transform should be a function');
|
|
@@ -61032,19 +60935,20 @@ function nsPairCheck(parser, prefix, uri) {
|
|
|
61032
60935
|
switch (prefix) {
|
|
61033
60936
|
case "xml":
|
|
61034
60937
|
if (uri !== XML_NAMESPACE) {
|
|
61035
|
-
parser.fail(
|
|
60938
|
+
parser.fail(`xml prefix must be bound to ${XML_NAMESPACE}.`);
|
|
61036
60939
|
}
|
|
61037
60940
|
break;
|
|
61038
60941
|
case "xmlns":
|
|
61039
60942
|
if (uri !== XMLNS_NAMESPACE) {
|
|
61040
|
-
parser.fail(
|
|
60943
|
+
parser.fail(`xmlns prefix must be bound to ${XMLNS_NAMESPACE}.`);
|
|
61041
60944
|
}
|
|
61042
60945
|
break;
|
|
61043
60946
|
default:
|
|
61044
60947
|
}
|
|
61045
60948
|
switch (uri) {
|
|
61046
60949
|
case XMLNS_NAMESPACE:
|
|
61047
|
-
parser.fail(prefix === "" ?
|
|
60950
|
+
parser.fail(prefix === "" ? `the default namespace may not be set to ${uri}.` : `may not assign a prefix (even "xmlns") to the URI \
|
|
60951
|
+
${XMLNS_NAMESPACE}.`);
|
|
61048
60952
|
break;
|
|
61049
60953
|
case XML_NAMESPACE:
|
|
61050
60954
|
switch (prefix) {
|
|
@@ -61052,7 +60956,7 @@ function nsPairCheck(parser, prefix, uri) {
|
|
|
61052
60956
|
// Assinging the XML namespace to "xml" is fine.
|
|
61053
60957
|
break;
|
|
61054
60958
|
case "":
|
|
61055
|
-
parser.fail(
|
|
60959
|
+
parser.fail(`the default namespace may not be set to ${uri}.`);
|
|
61056
60960
|
break;
|
|
61057
60961
|
default:
|
|
61058
60962
|
parser.fail("may not assign the xml namespace to another prefix.");
|
|
@@ -61268,7 +61172,7 @@ class SaxesParser {
|
|
|
61268
61172
|
if (msg.length > 0) {
|
|
61269
61173
|
msg += ":";
|
|
61270
61174
|
}
|
|
61271
|
-
msg +=
|
|
61175
|
+
msg += `${this.line}:${this.column}`;
|
|
61272
61176
|
}
|
|
61273
61177
|
if (msg.length > 0) {
|
|
61274
61178
|
msg += ": ";
|
|
@@ -61321,7 +61225,7 @@ class SaxesParser {
|
|
|
61321
61225
|
// ``Array.from`` but don't want to be dependent on Node.)
|
|
61322
61226
|
if (this.carriedFromPrevious !== undefined) {
|
|
61323
61227
|
// The previous chunk had char we must carry over.
|
|
61324
|
-
chunk =
|
|
61228
|
+
chunk = `${this.carriedFromPrevious}${chunk}`;
|
|
61325
61229
|
this.carriedFromPrevious = undefined;
|
|
61326
61230
|
}
|
|
61327
61231
|
let limit = chunk.length;
|
|
@@ -61550,7 +61454,7 @@ class SaxesParser {
|
|
|
61550
61454
|
return final;
|
|
61551
61455
|
}
|
|
61552
61456
|
if (isNLLike) {
|
|
61553
|
-
this.text +=
|
|
61457
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
61554
61458
|
start = this.i;
|
|
61555
61459
|
}
|
|
61556
61460
|
}
|
|
@@ -61576,7 +61480,7 @@ class SaxesParser {
|
|
|
61576
61480
|
let c = this.getCode();
|
|
61577
61481
|
switch (c) {
|
|
61578
61482
|
case NL_LIKE:
|
|
61579
|
-
this.text +=
|
|
61483
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
61580
61484
|
start = this.i;
|
|
61581
61485
|
c = NL;
|
|
61582
61486
|
break;
|
|
@@ -61839,7 +61743,7 @@ class SaxesParser {
|
|
|
61839
61743
|
while (true) {
|
|
61840
61744
|
switch (this.getCode()) {
|
|
61841
61745
|
case NL_LIKE:
|
|
61842
|
-
this.entity +=
|
|
61746
|
+
this.entity += `${chunk.slice(start, this.prevI)}\n`;
|
|
61843
61747
|
start = this.i;
|
|
61844
61748
|
break;
|
|
61845
61749
|
case SEMICOLON:
|
|
@@ -61951,7 +61855,7 @@ class SaxesParser {
|
|
|
61951
61855
|
(_a = this.commentHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);
|
|
61952
61856
|
this.text = "";
|
|
61953
61857
|
} else {
|
|
61954
|
-
this.text +=
|
|
61858
|
+
this.text += `-${String.fromCodePoint(c)}`;
|
|
61955
61859
|
this.state = S_COMMENT;
|
|
61956
61860
|
}
|
|
61957
61861
|
}
|
|
@@ -61961,7 +61865,7 @@ class SaxesParser {
|
|
|
61961
61865
|
this.fail("malformed comment.");
|
|
61962
61866
|
// <!-- blah -- bloo --> will be recorded as
|
|
61963
61867
|
// a comment of " blah -- bloo "
|
|
61964
|
-
this.text +=
|
|
61868
|
+
this.text += `--${String.fromCodePoint(c)}`;
|
|
61965
61869
|
this.state = S_COMMENT;
|
|
61966
61870
|
} else {
|
|
61967
61871
|
this.state = S_TEXT;
|
|
@@ -61977,7 +61881,7 @@ class SaxesParser {
|
|
|
61977
61881
|
if (c === CLOSE_BRACKET) {
|
|
61978
61882
|
this.state = S_CDATA_ENDING_2;
|
|
61979
61883
|
} else {
|
|
61980
|
-
this.text +=
|
|
61884
|
+
this.text += `]${String.fromCodePoint(c)}`;
|
|
61981
61885
|
this.state = S_CDATA;
|
|
61982
61886
|
}
|
|
61983
61887
|
}
|
|
@@ -61997,7 +61901,7 @@ class SaxesParser {
|
|
|
61997
61901
|
this.text += "]";
|
|
61998
61902
|
break;
|
|
61999
61903
|
default:
|
|
62000
|
-
this.text +=
|
|
61904
|
+
this.text += `]]${String.fromCodePoint(c)}`;
|
|
62001
61905
|
this.state = S_CDATA;
|
|
62002
61906
|
}
|
|
62003
61907
|
}
|
|
@@ -62094,7 +61998,7 @@ class SaxesParser {
|
|
|
62094
61998
|
// ending.
|
|
62095
61999
|
this.text += "?";
|
|
62096
62000
|
} else {
|
|
62097
|
-
this.text +=
|
|
62001
|
+
this.text += `?${String.fromCodePoint(c)}`;
|
|
62098
62002
|
this.state = S_PI_BODY;
|
|
62099
62003
|
}
|
|
62100
62004
|
this.xmlDeclPossible = false;
|
|
@@ -62135,10 +62039,10 @@ class SaxesParser {
|
|
|
62135
62039
|
this.fail("did not expect any more name/value pairs.");
|
|
62136
62040
|
break;
|
|
62137
62041
|
case 1:
|
|
62138
|
-
this.fail(
|
|
62042
|
+
this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);
|
|
62139
62043
|
break;
|
|
62140
62044
|
default:
|
|
62141
|
-
this.fail(
|
|
62045
|
+
this.fail(`expected one of ${this.xmlDeclExpects.join(", ")}`);
|
|
62142
62046
|
}
|
|
62143
62047
|
}
|
|
62144
62048
|
this.state = c === EQUAL ? S_XML_DECL_VALUE_START : S_XML_DECL_EQ;
|
|
@@ -62406,7 +62310,7 @@ class SaxesParser {
|
|
|
62406
62310
|
case NL:
|
|
62407
62311
|
case NL_LIKE:
|
|
62408
62312
|
case TAB:
|
|
62409
|
-
this.text +=
|
|
62313
|
+
this.text += `${chunk.slice(start, this.prevI)} `;
|
|
62410
62314
|
start = this.i;
|
|
62411
62315
|
break;
|
|
62412
62316
|
case LESS:
|
|
@@ -62560,7 +62464,7 @@ class SaxesParser {
|
|
|
62560
62464
|
break;
|
|
62561
62465
|
case NL_LIKE:
|
|
62562
62466
|
if (handler !== undefined) {
|
|
62563
|
-
this.text +=
|
|
62467
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
62564
62468
|
}
|
|
62565
62469
|
start = this.i;
|
|
62566
62470
|
forbiddenState = FORBIDDEN_START;
|
|
@@ -62625,7 +62529,7 @@ class SaxesParser {
|
|
|
62625
62529
|
break outRootLoop;
|
|
62626
62530
|
case NL_LIKE:
|
|
62627
62531
|
if (handler !== undefined) {
|
|
62628
|
-
this.text +=
|
|
62532
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
62629
62533
|
}
|
|
62630
62534
|
start = this.i;
|
|
62631
62535
|
break;
|
|
@@ -62710,7 +62614,7 @@ class SaxesParser {
|
|
|
62710
62614
|
} = this;
|
|
62711
62615
|
while (tags.length > 0) {
|
|
62712
62616
|
const tag = tags.pop();
|
|
62713
|
-
this.fail(
|
|
62617
|
+
this.fail(`unclosed tag: ${tag.name}`);
|
|
62714
62618
|
}
|
|
62715
62619
|
if (this.state !== S_BEGIN && this.state !== S_TEXT) {
|
|
62716
62620
|
this.fail("unexpected end.");
|
|
@@ -62776,7 +62680,7 @@ class SaxesParser {
|
|
|
62776
62680
|
const local = name.slice(colon + 1);
|
|
62777
62681
|
const prefix = name.slice(0, colon);
|
|
62778
62682
|
if (prefix === "" || local === "" || local.includes(":")) {
|
|
62779
|
-
this.fail(
|
|
62683
|
+
this.fail(`malformed name: ${name}.`);
|
|
62780
62684
|
}
|
|
62781
62685
|
return {
|
|
62782
62686
|
prefix,
|
|
@@ -62803,7 +62707,7 @@ class SaxesParser {
|
|
|
62803
62707
|
this.fail("tags may not have \"xmlns\" as prefix.");
|
|
62804
62708
|
}
|
|
62805
62709
|
if (uri === "") {
|
|
62806
|
-
this.fail(
|
|
62710
|
+
this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);
|
|
62807
62711
|
tag.uri = prefix;
|
|
62808
62712
|
}
|
|
62809
62713
|
}
|
|
@@ -62833,13 +62737,13 @@ class SaxesParser {
|
|
|
62833
62737
|
// if there's any attributes with an undefined namespace,
|
|
62834
62738
|
// then fail on them now.
|
|
62835
62739
|
if (uri === undefined) {
|
|
62836
|
-
this.fail(
|
|
62740
|
+
this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);
|
|
62837
62741
|
uri = prefix;
|
|
62838
62742
|
}
|
|
62839
|
-
eqname =
|
|
62743
|
+
eqname = `{${uri}}${local}`;
|
|
62840
62744
|
}
|
|
62841
62745
|
if (seen.has(eqname)) {
|
|
62842
|
-
this.fail(
|
|
62746
|
+
this.fail(`duplicate attribute: ${eqname}.`);
|
|
62843
62747
|
}
|
|
62844
62748
|
seen.add(eqname);
|
|
62845
62749
|
attr.uri = uri;
|
|
@@ -62858,7 +62762,7 @@ class SaxesParser {
|
|
|
62858
62762
|
value
|
|
62859
62763
|
} of attribList) {
|
|
62860
62764
|
if (attributes[name] !== undefined) {
|
|
62861
|
-
this.fail(
|
|
62765
|
+
this.fail(`duplicate attribute: ${name}.`);
|
|
62862
62766
|
}
|
|
62863
62767
|
attributes[name] = value;
|
|
62864
62768
|
}
|
|
@@ -62945,8 +62849,8 @@ class SaxesParser {
|
|
|
62945
62849
|
if (l === 0) {
|
|
62946
62850
|
this.closedRoot = true;
|
|
62947
62851
|
} else if (l < 0) {
|
|
62948
|
-
this.fail(
|
|
62949
|
-
this.text +=
|
|
62852
|
+
this.fail(`unmatched closing tag: ${name}.`);
|
|
62853
|
+
this.text += `</${name}>`;
|
|
62950
62854
|
}
|
|
62951
62855
|
}
|
|
62952
62856
|
/**
|
|
@@ -62965,7 +62869,7 @@ class SaxesParser {
|
|
|
62965
62869
|
return defined;
|
|
62966
62870
|
}
|
|
62967
62871
|
this.fail(this.isName(entity) ? "undefined entity." : "disallowed character in entity name.");
|
|
62968
|
-
return
|
|
62872
|
+
return `&${entity};`;
|
|
62969
62873
|
}
|
|
62970
62874
|
let num = NaN;
|
|
62971
62875
|
if (entity[1] === "x" && /^#x[0-9a-f]+$/i.test(entity)) {
|
|
@@ -62976,7 +62880,7 @@ class SaxesParser {
|
|
|
62976
62880
|
// The character reference is required to match the CHAR production.
|
|
62977
62881
|
if (!this.isChar(num)) {
|
|
62978
62882
|
this.fail("malformed character entity.");
|
|
62979
|
-
return
|
|
62883
|
+
return `&${entity};`;
|
|
62980
62884
|
}
|
|
62981
62885
|
return String.fromCodePoint(num);
|
|
62982
62886
|
}
|