devextreme-exceljs-fork 4.4.4 → 4.4.5
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 +1034 -1019
- package/dist/dx-exceljs-fork.js.map +28 -24
- package/dist/dx-exceljs-fork.min.js +9 -9
- 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 +3 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* DevExtreme-ExcelJS Fork v.4.4.
|
|
2
|
+
* DevExtreme-ExcelJS Fork v.4.4.5
|
|
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.5/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);
|
|
@@ -4396,11 +4397,6 @@ module.exports = CellMatrix;
|
|
|
4396
4397
|
},{"./col-cache":20,"./under-dash":27}],20:[function(require,module,exports){
|
|
4397
4398
|
"use strict";
|
|
4398
4399
|
|
|
4399
|
-
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; }
|
|
4400
|
-
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; }
|
|
4401
|
-
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; }
|
|
4402
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
4403
|
-
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); }
|
|
4404
4400
|
const addressRegex = /^[A-Z]+\d+$/;
|
|
4405
4401
|
// =========================================================================
|
|
4406
4402
|
// Column Letter to Number conversion
|
|
@@ -4470,13 +4466,13 @@ const colCache = {
|
|
|
4470
4466
|
this._fill(l.length);
|
|
4471
4467
|
}
|
|
4472
4468
|
if (!this._l2n[l]) {
|
|
4473
|
-
throw new Error(
|
|
4469
|
+
throw new Error(`Out of bounds. Invalid column letter: ${l}`);
|
|
4474
4470
|
}
|
|
4475
4471
|
return this._l2n[l];
|
|
4476
4472
|
},
|
|
4477
4473
|
n2l(n) {
|
|
4478
4474
|
if (n < 1 || n > 16384) {
|
|
4479
|
-
throw new Error(
|
|
4475
|
+
throw new Error(`${n} is out of bounds. Excel supports columns from 1 to 16384`);
|
|
4480
4476
|
}
|
|
4481
4477
|
if (!this._n2l[n]) {
|
|
4482
4478
|
this._fill(this._level(n));
|
|
@@ -4489,7 +4485,7 @@ const colCache = {
|
|
|
4489
4485
|
// check if value looks like an address
|
|
4490
4486
|
validateAddress(value) {
|
|
4491
4487
|
if (!addressRegex.test(value)) {
|
|
4492
|
-
throw new Error(
|
|
4488
|
+
throw new Error(`Invalid Address: ${value}`);
|
|
4493
4489
|
}
|
|
4494
4490
|
return true;
|
|
4495
4491
|
},
|
|
@@ -4530,7 +4526,7 @@ const colCache = {
|
|
|
4530
4526
|
if (!hasCol) {
|
|
4531
4527
|
colNumber = undefined;
|
|
4532
4528
|
} else if (colNumber > 16384) {
|
|
4533
|
-
throw new Error(
|
|
4529
|
+
throw new Error(`Out of bounds. Invalid column letter: ${col}`);
|
|
4534
4530
|
}
|
|
4535
4531
|
if (!hasRow) {
|
|
4536
4532
|
rowNumber = undefined;
|
|
@@ -4542,7 +4538,7 @@ const colCache = {
|
|
|
4542
4538
|
address: value,
|
|
4543
4539
|
col: colNumber,
|
|
4544
4540
|
row: rowNumber,
|
|
4545
|
-
$col$row:
|
|
4541
|
+
$col$row: `$${col}$${row}`
|
|
4546
4542
|
};
|
|
4547
4543
|
|
|
4548
4544
|
// mem fix - cache only the tl 100x100 square
|
|
@@ -4575,7 +4571,7 @@ const colCache = {
|
|
|
4575
4571
|
// reconstruct tl, br and dimensions
|
|
4576
4572
|
result.tl = this.n2l(result.left) + result.top;
|
|
4577
4573
|
result.br = this.n2l(result.right) + result.bottom;
|
|
4578
|
-
result.dimensions =
|
|
4574
|
+
result.dimensions = `${result.tl}:${result.br}`;
|
|
4579
4575
|
return result;
|
|
4580
4576
|
}
|
|
4581
4577
|
return this.decodeAddress(value);
|
|
@@ -4606,17 +4602,17 @@ const colCache = {
|
|
|
4606
4602
|
address: tl,
|
|
4607
4603
|
col: left,
|
|
4608
4604
|
row: top,
|
|
4609
|
-
$col$row:
|
|
4605
|
+
$col$row: `$${this.n2l(left)}$${top}`,
|
|
4610
4606
|
sheetName
|
|
4611
4607
|
},
|
|
4612
4608
|
br: {
|
|
4613
4609
|
address: br,
|
|
4614
4610
|
col: right,
|
|
4615
4611
|
row: bottom,
|
|
4616
|
-
$col$row:
|
|
4612
|
+
$col$row: `$${this.n2l(right)}$${bottom}`,
|
|
4617
4613
|
sheetName
|
|
4618
4614
|
},
|
|
4619
|
-
dimensions:
|
|
4615
|
+
dimensions: `${tl}:${br}`
|
|
4620
4616
|
};
|
|
4621
4617
|
}
|
|
4622
4618
|
if (reference.startsWith('#')) {
|
|
@@ -4628,9 +4624,10 @@ const colCache = {
|
|
|
4628
4624
|
};
|
|
4629
4625
|
}
|
|
4630
4626
|
const address = this.decodeAddress(reference);
|
|
4631
|
-
return sheetName ?
|
|
4632
|
-
sheetName
|
|
4633
|
-
|
|
4627
|
+
return sheetName ? {
|
|
4628
|
+
sheetName,
|
|
4629
|
+
...address
|
|
4630
|
+
} : address;
|
|
4634
4631
|
},
|
|
4635
4632
|
// convert row,col into address string
|
|
4636
4633
|
encodeAddress(row, col) {
|
|
@@ -4642,7 +4639,7 @@ const colCache = {
|
|
|
4642
4639
|
case 2:
|
|
4643
4640
|
return colCache.encodeAddress(arguments[0], arguments[1]);
|
|
4644
4641
|
case 4:
|
|
4645
|
-
return
|
|
4642
|
+
return `${colCache.encodeAddress(arguments[0], arguments[1])}:${colCache.encodeAddress(arguments[2], arguments[3])}`;
|
|
4646
4643
|
default:
|
|
4647
4644
|
throw new Error('Can only encode with 2 or 4 arguments');
|
|
4648
4645
|
}
|
|
@@ -4659,15 +4656,15 @@ module.exports = colCache;
|
|
|
4659
4656
|
},{}],21:[function(require,module,exports){
|
|
4660
4657
|
"use strict";
|
|
4661
4658
|
|
|
4662
|
-
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
|
|
4668
|
-
|
|
4669
|
-
|
|
4670
|
-
}
|
|
4659
|
+
const oneDepthCopy = (obj, nestKeys) => ({
|
|
4660
|
+
...obj,
|
|
4661
|
+
...nestKeys.reduce((memo, key) => {
|
|
4662
|
+
if (obj[key]) memo[key] = {
|
|
4663
|
+
...obj[key]
|
|
4664
|
+
};
|
|
4665
|
+
return memo;
|
|
4666
|
+
}, {})
|
|
4667
|
+
});
|
|
4671
4668
|
const setIfExists = function (src, dst, key) {
|
|
4672
4669
|
let nestKeys = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
4673
4670
|
if (src[key]) dst[key] = oneDepthCopy(src[key], nestKeys);
|
|
@@ -4676,7 +4673,9 @@ const isEmptyObj = obj => Object.keys(obj).length === 0;
|
|
|
4676
4673
|
const copyStyle = style => {
|
|
4677
4674
|
if (!style) return style;
|
|
4678
4675
|
if (isEmptyObj(style)) return {};
|
|
4679
|
-
const copied =
|
|
4676
|
+
const copied = {
|
|
4677
|
+
...style
|
|
4678
|
+
};
|
|
4680
4679
|
setIfExists(style, copied, 'font', ['color']);
|
|
4681
4680
|
setIfExists(style, copied, 'alignment');
|
|
4682
4681
|
setIfExists(style, copied, 'protection');
|
|
@@ -4731,7 +4730,7 @@ const Encryptor = {
|
|
|
4731
4730
|
hashAlgorithm = hashAlgorithm.toLowerCase();
|
|
4732
4731
|
const hashes = crypto.getHashes();
|
|
4733
4732
|
if (hashes.indexOf(hashAlgorithm) < 0) {
|
|
4734
|
-
throw new Error(
|
|
4733
|
+
throw new Error(`Hash algorithm '${hashAlgorithm}' not supported!`);
|
|
4735
4734
|
}
|
|
4736
4735
|
|
|
4737
4736
|
// Password must be in unicode buffer
|
|
@@ -4763,13 +4762,6 @@ module.exports = Encryptor;
|
|
|
4763
4762
|
},{"buffer":237,"crypto":254}],23:[function(require,module,exports){
|
|
4764
4763
|
"use strict";
|
|
4765
4764
|
|
|
4766
|
-
function _awaitAsyncGenerator(e) { return new _OverloadYield(e, 0); }
|
|
4767
|
-
function _wrapAsyncGenerator(e) { return function () { return new AsyncGenerator(e.apply(this, arguments)); }; }
|
|
4768
|
-
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); }
|
|
4769
|
-
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); };
|
|
4770
|
-
function _OverloadYield(e, d) { this.v = e, this.k = d; }
|
|
4771
|
-
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"); }
|
|
4772
|
-
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); }
|
|
4773
4765
|
const {
|
|
4774
4766
|
SaxesParser
|
|
4775
4767
|
} = require('saxes');
|
|
@@ -4779,67 +4771,41 @@ const {
|
|
|
4779
4771
|
const {
|
|
4780
4772
|
bufferToString
|
|
4781
4773
|
} = require('./browser-buffer-decode');
|
|
4782
|
-
module.exports =
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
error = err;
|
|
4793
|
-
});
|
|
4794
|
-
let events = [];
|
|
4795
|
-
saxesParser.on('opentag', value => events.push({
|
|
4796
|
-
eventType: 'opentag',
|
|
4797
|
-
value
|
|
4798
|
-
}));
|
|
4799
|
-
saxesParser.on('text', value => events.push({
|
|
4800
|
-
eventType: 'text',
|
|
4801
|
-
value
|
|
4802
|
-
}));
|
|
4803
|
-
saxesParser.on('closetag', value => events.push({
|
|
4804
|
-
eventType: 'closetag',
|
|
4805
|
-
value
|
|
4806
|
-
}));
|
|
4807
|
-
var _iteratorAbruptCompletion = false;
|
|
4808
|
-
var _didIteratorError = false;
|
|
4809
|
-
var _iteratorError;
|
|
4810
|
-
try {
|
|
4811
|
-
for (var _iterator = _asyncIterator(iterable), _step; _iteratorAbruptCompletion = !(_step = yield _awaitAsyncGenerator(_iterator.next())).done; _iteratorAbruptCompletion = false) {
|
|
4812
|
-
const chunk = _step.value;
|
|
4813
|
-
{
|
|
4814
|
-
saxesParser.write(bufferToString(chunk));
|
|
4815
|
-
// saxesParser.write and saxesParser.on() are synchronous,
|
|
4816
|
-
// so we can only reach the below line once all events have been emitted
|
|
4817
|
-
if (error) throw error;
|
|
4818
|
-
// As a performance optimization, we gather all events instead of passing
|
|
4819
|
-
// them one by one, which would cause each event to go through the event queue
|
|
4820
|
-
yield events;
|
|
4821
|
-
events = [];
|
|
4822
|
-
}
|
|
4823
|
-
}
|
|
4824
|
-
} catch (err) {
|
|
4825
|
-
_didIteratorError = true;
|
|
4826
|
-
_iteratorError = err;
|
|
4827
|
-
} finally {
|
|
4828
|
-
try {
|
|
4829
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
4830
|
-
yield _awaitAsyncGenerator(_iterator.return());
|
|
4831
|
-
}
|
|
4832
|
-
} finally {
|
|
4833
|
-
if (_didIteratorError) {
|
|
4834
|
-
throw _iteratorError;
|
|
4835
|
-
}
|
|
4836
|
-
}
|
|
4837
|
-
}
|
|
4774
|
+
module.exports = async function* (iterable) {
|
|
4775
|
+
// TODO: Remove once node v8 is deprecated
|
|
4776
|
+
// Detect and upgrade old streams
|
|
4777
|
+
if (iterable.pipe && !iterable[Symbol.asyncIterator]) {
|
|
4778
|
+
iterable = iterable.pipe(new PassThrough());
|
|
4779
|
+
}
|
|
4780
|
+
const saxesParser = new SaxesParser();
|
|
4781
|
+
let error;
|
|
4782
|
+
saxesParser.on('error', err => {
|
|
4783
|
+
error = err;
|
|
4838
4784
|
});
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
|
|
4842
|
-
|
|
4785
|
+
let events = [];
|
|
4786
|
+
saxesParser.on('opentag', value => events.push({
|
|
4787
|
+
eventType: 'opentag',
|
|
4788
|
+
value
|
|
4789
|
+
}));
|
|
4790
|
+
saxesParser.on('text', value => events.push({
|
|
4791
|
+
eventType: 'text',
|
|
4792
|
+
value
|
|
4793
|
+
}));
|
|
4794
|
+
saxesParser.on('closetag', value => events.push({
|
|
4795
|
+
eventType: 'closetag',
|
|
4796
|
+
value
|
|
4797
|
+
}));
|
|
4798
|
+
for await (const chunk of iterable) {
|
|
4799
|
+
saxesParser.write(bufferToString(chunk));
|
|
4800
|
+
// saxesParser.write and saxesParser.on() are synchronous,
|
|
4801
|
+
// so we can only reach the below line once all events have been emitted
|
|
4802
|
+
if (error) throw error;
|
|
4803
|
+
// As a performance optimization, we gather all events instead of passing
|
|
4804
|
+
// them one by one, which would cause each event to go through the event queue
|
|
4805
|
+
yield events;
|
|
4806
|
+
events = [];
|
|
4807
|
+
}
|
|
4808
|
+
};
|
|
4843
4809
|
|
|
4844
4810
|
},{"./browser-buffer-decode":17,"readable-stream":416,"saxes":436}],24:[function(require,module,exports){
|
|
4845
4811
|
"use strict";
|
|
@@ -5550,7 +5516,7 @@ const utils = {
|
|
|
5550
5516
|
},
|
|
5551
5517
|
getRelsPath(filepath) {
|
|
5552
5518
|
const path = utils.parsePath(filepath);
|
|
5553
|
-
return
|
|
5519
|
+
return `${path.path}/_rels/${path.name}.rels`;
|
|
5554
5520
|
},
|
|
5555
5521
|
xmlEncode(text) {
|
|
5556
5522
|
const regexResult = xmlDecodeRegex.exec(text);
|
|
@@ -5698,7 +5664,7 @@ const CLOSE_ANGLE = '>';
|
|
|
5698
5664
|
const OPEN_ANGLE_SLASH = '</';
|
|
5699
5665
|
const CLOSE_SLASH_ANGLE = '/>';
|
|
5700
5666
|
function pushAttribute(xml, name, value) {
|
|
5701
|
-
xml.push(
|
|
5667
|
+
xml.push(` ${name}="${utils.xmlEncode(value.toString())}"`);
|
|
5702
5668
|
}
|
|
5703
5669
|
function pushAttributes(xml, attributes) {
|
|
5704
5670
|
if (attributes) {
|
|
@@ -6177,8 +6143,6 @@ module.exports = {
|
|
|
6177
6143
|
},{}],33:[function(require,module,exports){
|
|
6178
6144
|
"use strict";
|
|
6179
6145
|
|
|
6180
|
-
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"); }
|
|
6181
|
-
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); }
|
|
6182
6146
|
const parseSax = require('../../utils/parse-sax');
|
|
6183
6147
|
const XmlStream = require('../../utils/xml-stream');
|
|
6184
6148
|
|
|
@@ -6233,42 +6197,21 @@ class BaseXform {
|
|
|
6233
6197
|
this.model = Object.assign(this.model || {}, obj);
|
|
6234
6198
|
}
|
|
6235
6199
|
async parse(saxParser) {
|
|
6236
|
-
|
|
6237
|
-
|
|
6238
|
-
|
|
6239
|
-
|
|
6240
|
-
|
|
6241
|
-
|
|
6242
|
-
|
|
6243
|
-
|
|
6244
|
-
|
|
6245
|
-
|
|
6246
|
-
|
|
6247
|
-
|
|
6248
|
-
this.parseOpen(value);
|
|
6249
|
-
} else if (eventType === 'text') {
|
|
6250
|
-
this.parseText(value);
|
|
6251
|
-
} else if (eventType === 'closetag') {
|
|
6252
|
-
if (!this.parseClose(value.name)) {
|
|
6253
|
-
return this.model;
|
|
6254
|
-
}
|
|
6255
|
-
}
|
|
6200
|
+
for await (const events of saxParser) {
|
|
6201
|
+
for (const {
|
|
6202
|
+
eventType,
|
|
6203
|
+
value
|
|
6204
|
+
} of events) {
|
|
6205
|
+
if (eventType === 'opentag') {
|
|
6206
|
+
this.parseOpen(value);
|
|
6207
|
+
} else if (eventType === 'text') {
|
|
6208
|
+
this.parseText(value);
|
|
6209
|
+
} else if (eventType === 'closetag') {
|
|
6210
|
+
if (!this.parseClose(value.name)) {
|
|
6211
|
+
return this.model;
|
|
6256
6212
|
}
|
|
6257
6213
|
}
|
|
6258
6214
|
}
|
|
6259
|
-
} catch (err) {
|
|
6260
|
-
_didIteratorError = true;
|
|
6261
|
-
_iteratorError = err;
|
|
6262
|
-
} finally {
|
|
6263
|
-
try {
|
|
6264
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
6265
|
-
await _iterator.return();
|
|
6266
|
-
}
|
|
6267
|
-
} finally {
|
|
6268
|
-
if (_didIteratorError) {
|
|
6269
|
-
throw _iteratorError;
|
|
6270
|
-
}
|
|
6271
|
-
}
|
|
6272
6215
|
}
|
|
6273
6216
|
return this.model;
|
|
6274
6217
|
}
|
|
@@ -6399,7 +6342,7 @@ function extractRanges(parsedText) {
|
|
|
6399
6342
|
const quotes = (item.match(/'/g) || []).length;
|
|
6400
6343
|
if (!quotes) {
|
|
6401
6344
|
if (quotesOpened) {
|
|
6402
|
-
last +=
|
|
6345
|
+
last += `${item},`;
|
|
6403
6346
|
} else if (isValidRange(item)) {
|
|
6404
6347
|
ranges.push(item);
|
|
6405
6348
|
}
|
|
@@ -6416,7 +6359,7 @@ function extractRanges(parsedText) {
|
|
|
6416
6359
|
last = '';
|
|
6417
6360
|
} else {
|
|
6418
6361
|
quotesOpened = true;
|
|
6419
|
-
last +=
|
|
6362
|
+
last += `${item},`;
|
|
6420
6363
|
}
|
|
6421
6364
|
});
|
|
6422
6365
|
return ranges;
|
|
@@ -6645,7 +6588,7 @@ class WorkbookXform extends BaseXform {
|
|
|
6645
6588
|
const printAreaComponents = printArea.split(':');
|
|
6646
6589
|
const definedName = {
|
|
6647
6590
|
name: '_xlnm.Print_Area',
|
|
6648
|
-
ranges: [
|
|
6591
|
+
ranges: [`'${sheet.name}'!$${printAreaComponents[0]}:$${printAreaComponents[1]}`],
|
|
6649
6592
|
localSheetId: index
|
|
6650
6593
|
};
|
|
6651
6594
|
printAreas.push(definedName);
|
|
@@ -6655,11 +6598,11 @@ class WorkbookXform extends BaseXform {
|
|
|
6655
6598
|
const ranges = [];
|
|
6656
6599
|
if (sheet.pageSetup.printTitlesColumn) {
|
|
6657
6600
|
const titlesColumns = sheet.pageSetup.printTitlesColumn.split(':');
|
|
6658
|
-
ranges.push(
|
|
6601
|
+
ranges.push(`'${sheet.name}'!$${titlesColumns[0]}:$${titlesColumns[1]}`);
|
|
6659
6602
|
}
|
|
6660
6603
|
if (sheet.pageSetup.printTitlesRow) {
|
|
6661
6604
|
const titlesRows = sheet.pageSetup.printTitlesRow.split(':');
|
|
6662
|
-
ranges.push(
|
|
6605
|
+
ranges.push(`'${sheet.name}'!$${titlesRows[0]}:$${titlesRows[1]}`);
|
|
6663
6606
|
}
|
|
6664
6607
|
const definedName = {
|
|
6665
6608
|
name: '_xlnm.Print_Titles',
|
|
@@ -6752,7 +6695,7 @@ class WorkbookXform extends BaseXform {
|
|
|
6752
6695
|
}
|
|
6753
6696
|
// if rel.Target start with `[space]/xl/` or `/xl/` , then it will be replaced with `''` and spliced behind `xl/`,
|
|
6754
6697
|
// otherwise it will be spliced directly behind `xl/`. i.g.
|
|
6755
|
-
worksheet = model.worksheetHash[
|
|
6698
|
+
worksheet = model.worksheetHash[`xl/${rel.Target.replace(/^(\s|\/xl\/)+/, '')}`];
|
|
6756
6699
|
// If there are "chartsheets" in the file, rel.Target will
|
|
6757
6700
|
// come out as chartsheets/sheet1.xml or similar here, and
|
|
6758
6701
|
// that won't be in model.worksheetHash.
|
|
@@ -6776,7 +6719,7 @@ class WorkbookXform extends BaseXform {
|
|
|
6776
6719
|
worksheet.pageSetup = {};
|
|
6777
6720
|
}
|
|
6778
6721
|
const range = colCache.decodeEx(definedName.ranges[0]);
|
|
6779
|
-
worksheet.pageSetup.printArea = worksheet.pageSetup.printArea ?
|
|
6722
|
+
worksheet.pageSetup.printArea = worksheet.pageSetup.printArea ? `${worksheet.pageSetup.printArea}&&${range.dimensions}` : range.dimensions;
|
|
6780
6723
|
}
|
|
6781
6724
|
} else if (definedName.name === '_xlnm.Print_Titles') {
|
|
6782
6725
|
worksheet = worksheets[definedName.localSheetId];
|
|
@@ -6834,11 +6777,6 @@ module.exports = WorkbookXform;
|
|
|
6834
6777
|
},{"../../../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){
|
|
6835
6778
|
"use strict";
|
|
6836
6779
|
|
|
6837
|
-
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; }
|
|
6838
|
-
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; }
|
|
6839
|
-
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; }
|
|
6840
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
6841
|
-
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); }
|
|
6842
6780
|
const RichTextXform = require('../strings/rich-text-xform');
|
|
6843
6781
|
const utils = require('../../../utils/utils');
|
|
6844
6782
|
const BaseXform = require('../base-xform');
|
|
@@ -6902,12 +6840,13 @@ utils.inherits(CommentXform, BaseXform, {
|
|
|
6902
6840
|
}
|
|
6903
6841
|
switch (node.name) {
|
|
6904
6842
|
case 'comment':
|
|
6905
|
-
this.model =
|
|
6843
|
+
this.model = {
|
|
6906
6844
|
type: 'note',
|
|
6907
6845
|
note: {
|
|
6908
6846
|
texts: []
|
|
6909
|
-
}
|
|
6910
|
-
|
|
6847
|
+
},
|
|
6848
|
+
...node.attributes
|
|
6849
|
+
};
|
|
6911
6850
|
return true;
|
|
6912
6851
|
case 'r':
|
|
6913
6852
|
this.parser = this.richTextXform;
|
|
@@ -7429,7 +7368,7 @@ class VmlShapeXform extends BaseXform {
|
|
|
7429
7368
|
}
|
|
7430
7369
|
}
|
|
7431
7370
|
VmlShapeXform.V_SHAPE_ATTRIBUTES = (model, index) => ({
|
|
7432
|
-
id:
|
|
7371
|
+
id: `_x0000_s${1025 + index}`,
|
|
7433
7372
|
type: '#_x0000_t202',
|
|
7434
7373
|
style: 'position:absolute; margin-left:105.3pt;margin-top:10.5pt;width:97.8pt;height:59.1pt;z-index:1;visibility:hidden',
|
|
7435
7374
|
fillcolor: 'infoBackground [80]',
|
|
@@ -7447,7 +7386,7 @@ class VmlTextboxXform extends BaseXform {
|
|
|
7447
7386
|
return 'v:textbox';
|
|
7448
7387
|
}
|
|
7449
7388
|
conversionUnit(value, multiple, unit) {
|
|
7450
|
-
return
|
|
7389
|
+
return `${parseFloat(value) * multiple.toFixed(2)}${unit}`;
|
|
7451
7390
|
}
|
|
7452
7391
|
reverseConversionUnit(inset) {
|
|
7453
7392
|
return (inset || '').split(',').map(margin => {
|
|
@@ -7725,7 +7664,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7725
7664
|
mediaHash[imageType] = true;
|
|
7726
7665
|
xmlStream.leafNode('Default', {
|
|
7727
7666
|
Extension: imageType,
|
|
7728
|
-
ContentType:
|
|
7667
|
+
ContentType: `image/${imageType}`
|
|
7729
7668
|
});
|
|
7730
7669
|
}
|
|
7731
7670
|
}
|
|
@@ -7743,7 +7682,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7743
7682
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml'
|
|
7744
7683
|
});
|
|
7745
7684
|
model.worksheets.forEach(worksheet => {
|
|
7746
|
-
const name =
|
|
7685
|
+
const name = `/xl/worksheets/sheet${worksheet.id}.xml`;
|
|
7747
7686
|
xmlStream.leafNode('Override', {
|
|
7748
7687
|
PartName: name,
|
|
7749
7688
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml'
|
|
@@ -7782,7 +7721,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7782
7721
|
if (model.tables) {
|
|
7783
7722
|
model.tables.forEach(table => {
|
|
7784
7723
|
xmlStream.leafNode('Override', {
|
|
7785
|
-
PartName:
|
|
7724
|
+
PartName: `/xl/tables/${table.target}`,
|
|
7786
7725
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml'
|
|
7787
7726
|
});
|
|
7788
7727
|
});
|
|
@@ -7790,7 +7729,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7790
7729
|
if (model.drawings) {
|
|
7791
7730
|
model.drawings.forEach(drawing => {
|
|
7792
7731
|
xmlStream.leafNode('Override', {
|
|
7793
|
-
PartName:
|
|
7732
|
+
PartName: `/xl/drawings/${drawing.name}.xml`,
|
|
7794
7733
|
ContentType: 'application/vnd.openxmlformats-officedocument.drawing+xml'
|
|
7795
7734
|
});
|
|
7796
7735
|
});
|
|
@@ -7805,7 +7744,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
7805
7744
|
commentName
|
|
7806
7745
|
} = _ref;
|
|
7807
7746
|
xmlStream.leafNode('Override', {
|
|
7808
|
-
PartName:
|
|
7747
|
+
PartName: `/xl/${commentName}.xml`,
|
|
7809
7748
|
ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml'
|
|
7810
7749
|
});
|
|
7811
7750
|
});
|
|
@@ -7936,7 +7875,7 @@ class CoreXform extends BaseXform {
|
|
|
7936
7875
|
this.parser.parseOpen(node);
|
|
7937
7876
|
return true;
|
|
7938
7877
|
}
|
|
7939
|
-
throw new Error(
|
|
7878
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
7940
7879
|
}
|
|
7941
7880
|
}
|
|
7942
7881
|
parseText(text) {
|
|
@@ -7973,7 +7912,7 @@ class CoreXform extends BaseXform {
|
|
|
7973
7912
|
};
|
|
7974
7913
|
return false;
|
|
7975
7914
|
default:
|
|
7976
|
-
throw new Error(
|
|
7915
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
7977
7916
|
}
|
|
7978
7917
|
}
|
|
7979
7918
|
}
|
|
@@ -8053,7 +7992,7 @@ class RelationshipsXform extends BaseXform {
|
|
|
8053
7992
|
this.parser.parseOpen(node);
|
|
8054
7993
|
return true;
|
|
8055
7994
|
}
|
|
8056
|
-
throw new Error(
|
|
7995
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
8057
7996
|
}
|
|
8058
7997
|
}
|
|
8059
7998
|
parseText(text) {
|
|
@@ -8073,7 +8012,7 @@ class RelationshipsXform extends BaseXform {
|
|
|
8073
8012
|
case 'Relationships':
|
|
8074
8013
|
return false;
|
|
8075
8014
|
default:
|
|
8076
|
-
throw new Error(
|
|
8015
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
8077
8016
|
}
|
|
8078
8017
|
}
|
|
8079
8018
|
}
|
|
@@ -8288,7 +8227,7 @@ class CNvPrXform extends BaseXform {
|
|
|
8288
8227
|
render(xmlStream, model) {
|
|
8289
8228
|
xmlStream.openNode(this.tag, {
|
|
8290
8229
|
id: model.index,
|
|
8291
|
-
name:
|
|
8230
|
+
name: `Picture ${model.index}`
|
|
8292
8231
|
});
|
|
8293
8232
|
this.map['a:hlinkClick'].render(xmlStream, model);
|
|
8294
8233
|
this.map['a:extLst'].render(xmlStream, model);
|
|
@@ -8990,7 +8929,7 @@ class ListXform extends BaseXform {
|
|
|
8990
8929
|
this.model.push(this.parser.model);
|
|
8991
8930
|
this.parser = undefined;
|
|
8992
8931
|
if (this.maxItems && this.model.length > this.maxItems) {
|
|
8993
|
-
throw new Error(
|
|
8932
|
+
throw new Error(`Max ${this.childXform.tag} count (${this.maxItems}) exceeded`);
|
|
8994
8933
|
}
|
|
8995
8934
|
}
|
|
8996
8935
|
return true;
|
|
@@ -9044,11 +8983,17 @@ class CacheField {
|
|
|
9044
8983
|
// integer types
|
|
9045
8984
|
if (this.sharedItems === null) {
|
|
9046
8985
|
// TK(2023-07-18): left out attributes... minValue="5" maxValue="45"
|
|
9047
|
-
return
|
|
8986
|
+
return `<cacheField name="${this.name}" numFmtId="0">
|
|
8987
|
+
<sharedItems containsSemiMixedTypes="0" containsString="0" containsNumber="1" containsInteger="1" />
|
|
8988
|
+
</cacheField>`;
|
|
9048
8989
|
}
|
|
9049
8990
|
|
|
9050
8991
|
// string types
|
|
9051
|
-
return
|
|
8992
|
+
return `<cacheField name="${this.name}" numFmtId="0">
|
|
8993
|
+
<sharedItems count="${this.sharedItems.length}">
|
|
8994
|
+
${this.sharedItems.map(item => `<s v="${item}" />`).join('')}
|
|
8995
|
+
</sharedItems>
|
|
8996
|
+
</cacheField>`;
|
|
9052
8997
|
}
|
|
9053
8998
|
}
|
|
9054
8999
|
module.exports = CacheField;
|
|
@@ -9056,11 +9001,6 @@ module.exports = CacheField;
|
|
|
9056
9001
|
},{}],75:[function(require,module,exports){
|
|
9057
9002
|
"use strict";
|
|
9058
9003
|
|
|
9059
|
-
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; }
|
|
9060
|
-
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; }
|
|
9061
|
-
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; }
|
|
9062
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9063
|
-
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); }
|
|
9064
9004
|
const BaseXform = require('../base-xform');
|
|
9065
9005
|
const CacheField = require('./cache-field');
|
|
9066
9006
|
const XmlStream = require('../../../utils/xml-stream');
|
|
@@ -9082,7 +9022,8 @@ class PivotCacheDefinitionXform extends BaseXform {
|
|
|
9082
9022
|
cacheFields
|
|
9083
9023
|
} = model;
|
|
9084
9024
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9085
|
-
xmlStream.openNode(this.tag,
|
|
9025
|
+
xmlStream.openNode(this.tag, {
|
|
9026
|
+
...PivotCacheDefinitionXform.PIVOT_CACHE_DEFINITION_ATTRIBUTES,
|
|
9086
9027
|
'r:id': 'rId1',
|
|
9087
9028
|
refreshOnLoad: '1',
|
|
9088
9029
|
// important for our implementation to work
|
|
@@ -9092,7 +9033,7 @@ class PivotCacheDefinitionXform extends BaseXform {
|
|
|
9092
9033
|
refreshedVersion: '8',
|
|
9093
9034
|
minRefreshableVersion: '3',
|
|
9094
9035
|
recordCount: cacheFields.length + 1
|
|
9095
|
-
})
|
|
9036
|
+
});
|
|
9096
9037
|
xmlStream.openNode('cacheSource', {
|
|
9097
9038
|
type: 'worksheet'
|
|
9098
9039
|
});
|
|
@@ -9134,11 +9075,6 @@ module.exports = PivotCacheDefinitionXform;
|
|
|
9134
9075
|
},{"../../../utils/xml-stream":29,"../base-xform":33,"./cache-field":74}],76:[function(require,module,exports){
|
|
9135
9076
|
"use strict";
|
|
9136
9077
|
|
|
9137
|
-
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; }
|
|
9138
|
-
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; }
|
|
9139
|
-
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; }
|
|
9140
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9141
|
-
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); }
|
|
9142
9078
|
const XmlStream = require('../../../utils/xml-stream');
|
|
9143
9079
|
const BaseXform = require('../base-xform');
|
|
9144
9080
|
class PivotCacheRecordsXform extends BaseXform {
|
|
@@ -9160,9 +9096,10 @@ class PivotCacheRecordsXform extends BaseXform {
|
|
|
9160
9096
|
} = model;
|
|
9161
9097
|
const sourceBodyRows = sourceSheet.getSheetValues().slice(2);
|
|
9162
9098
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9163
|
-
xmlStream.openNode(this.tag,
|
|
9099
|
+
xmlStream.openNode(this.tag, {
|
|
9100
|
+
...PivotCacheRecordsXform.PIVOT_CACHE_RECORDS_ATTRIBUTES,
|
|
9164
9101
|
count: sourceBodyRows.length
|
|
9165
|
-
})
|
|
9102
|
+
});
|
|
9166
9103
|
xmlStream.writeXml(renderTable());
|
|
9167
9104
|
xmlStream.closeNode();
|
|
9168
9105
|
|
|
@@ -9191,20 +9128,20 @@ class PivotCacheRecordsXform extends BaseXform {
|
|
|
9191
9128
|
if (sharedItems === null) {
|
|
9192
9129
|
if (Number.isFinite(value)) {
|
|
9193
9130
|
// Numeric value: http://www.datypic.com/sc/ooxml/e-ssml_n-2.html
|
|
9194
|
-
return
|
|
9131
|
+
return `<n v="${value}" />`;
|
|
9195
9132
|
}
|
|
9196
9133
|
// Character Value: http://www.datypic.com/sc/ooxml/e-ssml_s-2.html
|
|
9197
|
-
return
|
|
9134
|
+
return `<s v="${value}" />`;
|
|
9198
9135
|
}
|
|
9199
9136
|
|
|
9200
9137
|
// shared items
|
|
9201
9138
|
// --------------------------------------------------
|
|
9202
9139
|
const sharedItemsIndex = sharedItems.indexOf(value);
|
|
9203
9140
|
if (sharedItemsIndex < 0) {
|
|
9204
|
-
throw new Error(
|
|
9141
|
+
throw new Error(`${JSON.stringify(value)} not in sharedItems ${JSON.stringify(sharedItems)}`);
|
|
9205
9142
|
}
|
|
9206
9143
|
// Shared Items Index: http://www.datypic.com/sc/ooxml/e-ssml_x-9.html
|
|
9207
|
-
return
|
|
9144
|
+
return `<x v="${sharedItemsIndex}" />`;
|
|
9208
9145
|
}
|
|
9209
9146
|
}
|
|
9210
9147
|
parseOpen(node) {
|
|
@@ -9232,11 +9169,6 @@ module.exports = PivotCacheRecordsXform;
|
|
|
9232
9169
|
},{"../../../utils/xml-stream":29,"../base-xform":33}],77:[function(require,module,exports){
|
|
9233
9170
|
"use strict";
|
|
9234
9171
|
|
|
9235
|
-
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; }
|
|
9236
|
-
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; }
|
|
9237
|
-
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; }
|
|
9238
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9239
|
-
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); }
|
|
9240
9172
|
const XmlStream = require('../../../utils/xml-stream');
|
|
9241
9173
|
const BaseXform = require('../base-xform');
|
|
9242
9174
|
class PivotTableXform extends BaseXform {
|
|
@@ -9272,7 +9204,8 @@ class PivotTableXform extends BaseXform {
|
|
|
9272
9204
|
// the numbers are indices into `cacheFields`.
|
|
9273
9205
|
|
|
9274
9206
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9275
|
-
xmlStream.openNode(this.tag,
|
|
9207
|
+
xmlStream.openNode(this.tag, {
|
|
9208
|
+
...PivotTableXform.PIVOT_TABLE_ATTRIBUTES,
|
|
9276
9209
|
'xr:uid': '{267EE50F-B116-784D-8DC2-BA77DE3F4F4A}',
|
|
9277
9210
|
name: 'PivotTable2',
|
|
9278
9211
|
cacheId,
|
|
@@ -9292,7 +9225,7 @@ class PivotTableXform extends BaseXform {
|
|
|
9292
9225
|
compact: '0',
|
|
9293
9226
|
compactData: '0',
|
|
9294
9227
|
multipleFieldFilters: '0'
|
|
9295
|
-
})
|
|
9228
|
+
});
|
|
9296
9229
|
|
|
9297
9230
|
// Note: keeping this pretty-printed and verbose for now to ease debugging.
|
|
9298
9231
|
//
|
|
@@ -9302,7 +9235,60 @@ class PivotTableXform extends BaseXform {
|
|
|
9302
9235
|
// colFields and colItems
|
|
9303
9236
|
// dataFields
|
|
9304
9237
|
// pivotTableStyleInfo
|
|
9305
|
-
xmlStream.writeXml(
|
|
9238
|
+
xmlStream.writeXml(`
|
|
9239
|
+
<location ref="A3:E15" firstHeaderRow="1" firstDataRow="2" firstDataCol="1" />
|
|
9240
|
+
<pivotFields count="${cacheFields.length}">
|
|
9241
|
+
${renderPivotFields(model)}
|
|
9242
|
+
</pivotFields>
|
|
9243
|
+
<rowFields count="${rows.length}">
|
|
9244
|
+
${rows.map(rowIndex => `<field x="${rowIndex}" />`).join('\n ')}
|
|
9245
|
+
</rowFields>
|
|
9246
|
+
<rowItems count="1">
|
|
9247
|
+
<i t="grand"><x /></i>
|
|
9248
|
+
</rowItems>
|
|
9249
|
+
<colFields count="${columns.length}">
|
|
9250
|
+
${columns.map(columnIndex => `<field x="${columnIndex}" />`).join('\n ')}
|
|
9251
|
+
</colFields>
|
|
9252
|
+
<colItems count="1">
|
|
9253
|
+
<i t="grand"><x /></i>
|
|
9254
|
+
</colItems>
|
|
9255
|
+
<dataFields count="${values.length}">
|
|
9256
|
+
<dataField
|
|
9257
|
+
name="Sum of ${cacheFields[values[0]].name}"
|
|
9258
|
+
fld="${values[0]}"
|
|
9259
|
+
baseField="0"
|
|
9260
|
+
baseItem="0"
|
|
9261
|
+
/>
|
|
9262
|
+
</dataFields>
|
|
9263
|
+
<pivotTableStyleInfo
|
|
9264
|
+
name="PivotStyleLight16"
|
|
9265
|
+
showRowHeaders="1"
|
|
9266
|
+
showColHeaders="1"
|
|
9267
|
+
showRowStripes="0"
|
|
9268
|
+
showColStripes="0"
|
|
9269
|
+
showLastColumn="1"
|
|
9270
|
+
/>
|
|
9271
|
+
<extLst>
|
|
9272
|
+
<ext
|
|
9273
|
+
uri="{962EF5D1-5CA2-4c93-8EF4-DBF5C05439D2}"
|
|
9274
|
+
xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"
|
|
9275
|
+
>
|
|
9276
|
+
<x14:pivotTableDefinition
|
|
9277
|
+
hideValuesRow="1"
|
|
9278
|
+
xmlns:xm="http://schemas.microsoft.com/office/excel/2006/main"
|
|
9279
|
+
/>
|
|
9280
|
+
</ext>
|
|
9281
|
+
<ext
|
|
9282
|
+
uri="{747A6164-185A-40DC-8AA5-F01512510D54}"
|
|
9283
|
+
xmlns:xpdl="http://schemas.microsoft.com/office/spreadsheetml/2016/pivotdefaultlayout"
|
|
9284
|
+
>
|
|
9285
|
+
<xpdl:pivotTableDefinition16
|
|
9286
|
+
EnabledSubtotalsDefault="0"
|
|
9287
|
+
SubtotalsOnTopDefault="0"
|
|
9288
|
+
/>
|
|
9289
|
+
</ext>
|
|
9290
|
+
</extLst>
|
|
9291
|
+
`);
|
|
9306
9292
|
xmlStream.closeNode();
|
|
9307
9293
|
}
|
|
9308
9294
|
parseOpen(node) {
|
|
@@ -9334,9 +9320,20 @@ function renderPivotField(fieldType, sharedItems) {
|
|
|
9334
9320
|
const defaultAttributes = 'compact="0" outline="0" showAll="0" defaultSubtotal="0"';
|
|
9335
9321
|
if (fieldType === 'row' || fieldType === 'column') {
|
|
9336
9322
|
const axis = fieldType === 'row' ? 'axisRow' : 'axisCol';
|
|
9337
|
-
return
|
|
9338
|
-
|
|
9339
|
-
|
|
9323
|
+
return `
|
|
9324
|
+
<pivotField axis="${axis}" ${defaultAttributes}>
|
|
9325
|
+
<items count="${sharedItems.length + 1}">
|
|
9326
|
+
${sharedItems.map((item, index) => `<item x="${index}" />`).join('\n ')}
|
|
9327
|
+
</items>
|
|
9328
|
+
</pivotField>
|
|
9329
|
+
`;
|
|
9330
|
+
}
|
|
9331
|
+
return `
|
|
9332
|
+
<pivotField
|
|
9333
|
+
${fieldType === 'value' ? 'dataField="1"' : ''}
|
|
9334
|
+
${defaultAttributes}
|
|
9335
|
+
/>
|
|
9336
|
+
`;
|
|
9340
9337
|
}
|
|
9341
9338
|
PivotTableXform.PIVOT_TABLE_ATTRIBUTES = {
|
|
9342
9339
|
xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',
|
|
@@ -9373,7 +9370,7 @@ class AutoFilterXform extends BaseXform {
|
|
|
9373
9370
|
const secondAddress = getAddress(model.to);
|
|
9374
9371
|
if (firstAddress && secondAddress) {
|
|
9375
9372
|
xmlStream.leafNode('autoFilter', {
|
|
9376
|
-
ref:
|
|
9373
|
+
ref: `${firstAddress}:${secondAddress}`
|
|
9377
9374
|
});
|
|
9378
9375
|
}
|
|
9379
9376
|
}
|
|
@@ -9390,11 +9387,6 @@ module.exports = AutoFilterXform;
|
|
|
9390
9387
|
},{"../../../utils/col-cache":20,"../base-xform":33}],79:[function(require,module,exports){
|
|
9391
9388
|
"use strict";
|
|
9392
9389
|
|
|
9393
|
-
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; }
|
|
9394
|
-
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; }
|
|
9395
|
-
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; }
|
|
9396
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
9397
|
-
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); }
|
|
9398
9390
|
const utils = require('../../../utils/utils');
|
|
9399
9391
|
const BaseXform = require('../base-xform');
|
|
9400
9392
|
const Range = require('../../../doc/range');
|
|
@@ -9449,9 +9441,10 @@ class CellXform extends BaseXform {
|
|
|
9449
9441
|
model.styleId = styleId;
|
|
9450
9442
|
}
|
|
9451
9443
|
if (model.comment) {
|
|
9452
|
-
options.comments.push(
|
|
9444
|
+
options.comments.push({
|
|
9445
|
+
...model.comment,
|
|
9453
9446
|
ref: model.address
|
|
9454
|
-
})
|
|
9447
|
+
});
|
|
9455
9448
|
}
|
|
9456
9449
|
switch (model.type) {
|
|
9457
9450
|
case Enums.ValueType.String:
|
|
@@ -9491,7 +9484,7 @@ class CellXform extends BaseXform {
|
|
|
9491
9484
|
} else if (model.sharedFormula) {
|
|
9492
9485
|
const master = options.formulae[model.sharedFormula];
|
|
9493
9486
|
if (!master) {
|
|
9494
|
-
throw new Error(
|
|
9487
|
+
throw new Error(`Shared Formula master must exist above and or left of clone for cell ${model.address}`);
|
|
9495
9488
|
}
|
|
9496
9489
|
if (master.si === undefined) {
|
|
9497
9490
|
master.shareType = 'shared';
|
|
@@ -9911,7 +9904,7 @@ class CfRuleExtXform extends CompositeXform {
|
|
|
9911
9904
|
}
|
|
9912
9905
|
prepare(model) {
|
|
9913
9906
|
if (CfRuleExtXform.isExt(model)) {
|
|
9914
|
-
model.x14Id =
|
|
9907
|
+
model.x14Id = `{${uuidv4()}}`.toUpperCase();
|
|
9915
9908
|
}
|
|
9916
9909
|
}
|
|
9917
9910
|
render(xmlStream, model) {
|
|
@@ -9939,7 +9932,7 @@ class CfRuleExtXform extends CompositeXform {
|
|
|
9939
9932
|
xmlStream.openNode(this.tag, {
|
|
9940
9933
|
type: 'iconSet',
|
|
9941
9934
|
priority: model.priority,
|
|
9942
|
-
id: model.x14Id ||
|
|
9935
|
+
id: model.x14Id || `{${uuidv4()}}`
|
|
9943
9936
|
});
|
|
9944
9937
|
this.iconSetXform.render(xmlStream, model);
|
|
9945
9938
|
xmlStream.closeNode();
|
|
@@ -10288,11 +10281,6 @@ module.exports = SqrefExtXform;
|
|
|
10288
10281
|
},{"../../base-xform":33}],89:[function(require,module,exports){
|
|
10289
10282
|
"use strict";
|
|
10290
10283
|
|
|
10291
|
-
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; }
|
|
10292
|
-
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; }
|
|
10293
|
-
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; }
|
|
10294
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
10295
|
-
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); }
|
|
10296
10284
|
const BaseXform = require('../../base-xform');
|
|
10297
10285
|
const CompositeXform = require('../../composite-xform');
|
|
10298
10286
|
const Range = require('../../../../doc/range');
|
|
@@ -10316,15 +10304,15 @@ const getTextFormula = model => {
|
|
|
10316
10304
|
} = range;
|
|
10317
10305
|
switch (model.operator) {
|
|
10318
10306
|
case 'containsText':
|
|
10319
|
-
return
|
|
10307
|
+
return `NOT(ISERROR(SEARCH("${model.text}",${tl})))`;
|
|
10320
10308
|
case 'containsBlanks':
|
|
10321
|
-
return
|
|
10309
|
+
return `LEN(TRIM(${tl}))=0`;
|
|
10322
10310
|
case 'notContainsBlanks':
|
|
10323
|
-
return
|
|
10311
|
+
return `LEN(TRIM(${tl}))>0`;
|
|
10324
10312
|
case 'containsErrors':
|
|
10325
|
-
return
|
|
10313
|
+
return `ISERROR(${tl})`;
|
|
10326
10314
|
case 'notContainsErrors':
|
|
10327
|
-
return
|
|
10315
|
+
return `NOT(ISERROR(${tl}))`;
|
|
10328
10316
|
default:
|
|
10329
10317
|
return undefined;
|
|
10330
10318
|
}
|
|
@@ -10339,25 +10327,25 @@ const getTimePeriodFormula = model => {
|
|
|
10339
10327
|
} = range;
|
|
10340
10328
|
switch (model.timePeriod) {
|
|
10341
10329
|
case 'thisWeek':
|
|
10342
|
-
return
|
|
10330
|
+
return `AND(TODAY()-ROUNDDOWN(${tl},0)<=WEEKDAY(TODAY())-1,ROUNDDOWN(${tl},0)-TODAY()<=7-WEEKDAY(TODAY()))`;
|
|
10343
10331
|
case 'lastWeek':
|
|
10344
|
-
return
|
|
10332
|
+
return `AND(TODAY()-ROUNDDOWN(${tl},0)>=(WEEKDAY(TODAY())),TODAY()-ROUNDDOWN(${tl},0)<(WEEKDAY(TODAY())+7))`;
|
|
10345
10333
|
case 'nextWeek':
|
|
10346
|
-
return
|
|
10334
|
+
return `AND(ROUNDDOWN(${tl},0)-TODAY()>(7-WEEKDAY(TODAY())),ROUNDDOWN(${tl},0)-TODAY()<(15-WEEKDAY(TODAY())))`;
|
|
10347
10335
|
case 'yesterday':
|
|
10348
|
-
return
|
|
10336
|
+
return `FLOOR(${tl},1)=TODAY()-1`;
|
|
10349
10337
|
case 'today':
|
|
10350
|
-
return
|
|
10338
|
+
return `FLOOR(${tl},1)=TODAY()`;
|
|
10351
10339
|
case 'tomorrow':
|
|
10352
|
-
return
|
|
10340
|
+
return `FLOOR(${tl},1)=TODAY()+1`;
|
|
10353
10341
|
case 'last7Days':
|
|
10354
|
-
return
|
|
10342
|
+
return `AND(TODAY()-FLOOR(${tl},1)<=6,FLOOR(${tl},1)<=TODAY())`;
|
|
10355
10343
|
case 'lastMonth':
|
|
10356
|
-
return
|
|
10344
|
+
return `AND(MONTH(${tl})=MONTH(EDATE(TODAY(),0-1)),YEAR(${tl})=YEAR(EDATE(TODAY(),0-1)))`;
|
|
10357
10345
|
case 'thisMonth':
|
|
10358
|
-
return
|
|
10346
|
+
return `AND(MONTH(${tl})=MONTH(TODAY()),YEAR(${tl})=YEAR(TODAY()))`;
|
|
10359
10347
|
case 'nextMonth':
|
|
10360
|
-
return
|
|
10348
|
+
return `AND(MONTH(${tl})=MONTH(EDATE(TODAY(),0+1)),YEAR(${tl})=YEAR(EDATE(TODAY(),0+1)))`;
|
|
10361
10349
|
default:
|
|
10362
10350
|
return undefined;
|
|
10363
10351
|
}
|
|
@@ -10536,7 +10524,8 @@ class CfRuleXform extends CompositeXform {
|
|
|
10536
10524
|
let {
|
|
10537
10525
|
attributes
|
|
10538
10526
|
} = _ref;
|
|
10539
|
-
return
|
|
10527
|
+
return {
|
|
10528
|
+
...opType(attributes),
|
|
10540
10529
|
dxfId: BaseXform.toIntValue(attributes.dxfId),
|
|
10541
10530
|
priority: BaseXform.toIntValue(attributes.priority),
|
|
10542
10531
|
timePeriod: attributes.timePeriod,
|
|
@@ -10544,7 +10533,7 @@ class CfRuleXform extends CompositeXform {
|
|
|
10544
10533
|
bottom: BaseXform.toBoolValue(attributes.bottom),
|
|
10545
10534
|
rank: BaseXform.toIntValue(attributes.rank),
|
|
10546
10535
|
aboveAverage: BaseXform.toBoolValue(attributes.aboveAverage)
|
|
10547
|
-
}
|
|
10536
|
+
};
|
|
10548
10537
|
}
|
|
10549
10538
|
onParserClose(name, parser) {
|
|
10550
10539
|
switch (name) {
|
|
@@ -11018,11 +11007,6 @@ module.exports = ColXform;
|
|
|
11018
11007
|
},{"../../../utils/utils":28,"../base-xform":33}],99:[function(require,module,exports){
|
|
11019
11008
|
"use strict";
|
|
11020
11009
|
|
|
11021
|
-
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; }
|
|
11022
|
-
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; }
|
|
11023
|
-
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; }
|
|
11024
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
11025
|
-
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); }
|
|
11026
11010
|
const _ = require('../../../utils/under-dash');
|
|
11027
11011
|
const utils = require('../../../utils/utils');
|
|
11028
11012
|
const colCache = require('../../../utils/col-cache');
|
|
@@ -11067,9 +11051,10 @@ function optimiseDataValidations(model) {
|
|
|
11067
11051
|
const addr = colCache.decodeEx(dv.address);
|
|
11068
11052
|
if (addr.dimensions) {
|
|
11069
11053
|
dvMap[addr.dimensions].marked = true;
|
|
11070
|
-
return
|
|
11054
|
+
return {
|
|
11055
|
+
...dv.dataValidation,
|
|
11071
11056
|
sqref: dv.address
|
|
11072
|
-
}
|
|
11057
|
+
};
|
|
11073
11058
|
}
|
|
11074
11059
|
|
|
11075
11060
|
// iterate downwards - finding matching cells
|
|
@@ -11097,13 +11082,15 @@ function optimiseDataValidations(model) {
|
|
|
11097
11082
|
if (height > 1 || width > 1) {
|
|
11098
11083
|
const bottom = addr.row + (height - 1);
|
|
11099
11084
|
const right = addr.col + (width - 1);
|
|
11100
|
-
return
|
|
11101
|
-
|
|
11102
|
-
|
|
11085
|
+
return {
|
|
11086
|
+
...dv.dataValidation,
|
|
11087
|
+
sqref: `${dv.address}:${colCache.encodeAddress(bottom, right)}`
|
|
11088
|
+
};
|
|
11103
11089
|
}
|
|
11104
|
-
return
|
|
11090
|
+
return {
|
|
11091
|
+
...dv.dataValidation,
|
|
11105
11092
|
sqref: dv.address
|
|
11106
|
-
}
|
|
11093
|
+
};
|
|
11107
11094
|
}
|
|
11108
11095
|
return null;
|
|
11109
11096
|
}).filter(Boolean);
|
|
@@ -11152,7 +11139,7 @@ class DataValidationsXform extends BaseXform {
|
|
|
11152
11139
|
}
|
|
11153
11140
|
xmlStream.addAttribute('sqref', value.sqref);
|
|
11154
11141
|
(value.formulae || []).forEach((formula, index) => {
|
|
11155
|
-
xmlStream.openNode(
|
|
11142
|
+
xmlStream.openNode(`formula${index + 1}`);
|
|
11156
11143
|
if (value.type === 'date') {
|
|
11157
11144
|
xmlStream.writeText(utils.dateToExcel(new Date(formula)));
|
|
11158
11145
|
} else {
|
|
@@ -11619,7 +11606,7 @@ class Merges {
|
|
|
11619
11606
|
if (this.merges[merge.master]) {
|
|
11620
11607
|
this.merges[merge.master].expandToAddress(merge.address);
|
|
11621
11608
|
} else {
|
|
11622
|
-
const range =
|
|
11609
|
+
const range = `${merge.master}:${merge.address}`;
|
|
11623
11610
|
this.merges[merge.master] = new Range(range);
|
|
11624
11611
|
}
|
|
11625
11612
|
}
|
|
@@ -12051,7 +12038,7 @@ class RowXform extends BaseXform {
|
|
|
12051
12038
|
xmlStream.addAttribute('hidden', '1');
|
|
12052
12039
|
}
|
|
12053
12040
|
if (model.min > 0 && model.max > 0 && model.min <= model.max) {
|
|
12054
|
-
xmlStream.addAttribute('spans',
|
|
12041
|
+
xmlStream.addAttribute('spans', `${model.min}:${model.max}`);
|
|
12055
12042
|
}
|
|
12056
12043
|
if (model.styleId) {
|
|
12057
12044
|
xmlStream.addAttribute('s', model.styleId);
|
|
@@ -12121,7 +12108,7 @@ class RowXform extends BaseXform {
|
|
|
12121
12108
|
if (!this.parser.parseClose(name)) {
|
|
12122
12109
|
this.model.cells.push(this.parser.model);
|
|
12123
12110
|
if (this.maxItems && this.model.cells.length > this.maxItems) {
|
|
12124
|
-
throw new Error(
|
|
12111
|
+
throw new Error(`Max column count (${this.maxItems}) exceeded`);
|
|
12125
12112
|
}
|
|
12126
12113
|
this.parser = undefined;
|
|
12127
12114
|
}
|
|
@@ -12749,7 +12736,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12749
12736
|
// prepare relationships
|
|
12750
12737
|
const rels = model.rels = [];
|
|
12751
12738
|
function nextRid(r) {
|
|
12752
|
-
return
|
|
12739
|
+
return `rId${r.length + 1}`;
|
|
12753
12740
|
}
|
|
12754
12741
|
model.hyperlinks.forEach(hyperlink => {
|
|
12755
12742
|
const rId = nextRid(rels);
|
|
@@ -12767,21 +12754,21 @@ class WorkSheetXform extends BaseXform {
|
|
|
12767
12754
|
const comment = {
|
|
12768
12755
|
Id: nextRid(rels),
|
|
12769
12756
|
Type: RelType.Comments,
|
|
12770
|
-
Target:
|
|
12757
|
+
Target: `../comments${model.id}.xml`
|
|
12771
12758
|
};
|
|
12772
12759
|
rels.push(comment);
|
|
12773
12760
|
const vmlDrawing = {
|
|
12774
12761
|
Id: nextRid(rels),
|
|
12775
12762
|
Type: RelType.VmlDrawing,
|
|
12776
|
-
Target:
|
|
12763
|
+
Target: `../drawings/vmlDrawing${model.id}.vml`
|
|
12777
12764
|
};
|
|
12778
12765
|
rels.push(vmlDrawing);
|
|
12779
12766
|
model.comments.forEach(item => {
|
|
12780
12767
|
item.refAddress = colCache.decodeAddress(item.ref);
|
|
12781
12768
|
});
|
|
12782
12769
|
options.commentRefs.push({
|
|
12783
|
-
commentName:
|
|
12784
|
-
vmlDrawing:
|
|
12770
|
+
commentName: `comments${model.id}`,
|
|
12771
|
+
vmlDrawing: `vmlDrawing${model.id}`
|
|
12785
12772
|
});
|
|
12786
12773
|
}
|
|
12787
12774
|
const drawingRelsHash = [];
|
|
@@ -12793,7 +12780,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12793
12780
|
rels.push({
|
|
12794
12781
|
Id: rId,
|
|
12795
12782
|
Type: RelType.Image,
|
|
12796
|
-
Target:
|
|
12783
|
+
Target: `../media/${bookImage.name}.${bookImage.extension}`
|
|
12797
12784
|
});
|
|
12798
12785
|
model.background = {
|
|
12799
12786
|
rId
|
|
@@ -12807,7 +12794,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12807
12794
|
if (!drawing) {
|
|
12808
12795
|
drawing = model.drawing = {
|
|
12809
12796
|
rId: nextRid(rels),
|
|
12810
|
-
name:
|
|
12797
|
+
name: `drawing${++options.drawingsCount}`,
|
|
12811
12798
|
anchors: [],
|
|
12812
12799
|
rels: []
|
|
12813
12800
|
};
|
|
@@ -12815,7 +12802,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12815
12802
|
rels.push({
|
|
12816
12803
|
Id: drawing.rId,
|
|
12817
12804
|
Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',
|
|
12818
|
-
Target:
|
|
12805
|
+
Target: `../drawings/${drawing.name}.xml`
|
|
12819
12806
|
});
|
|
12820
12807
|
}
|
|
12821
12808
|
let rIdImage = this.preImageId === medium.imageId ? drawingRelsHash[medium.imageId] : drawingRelsHash[drawing.rels.length];
|
|
@@ -12825,7 +12812,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12825
12812
|
drawing.rels.push({
|
|
12826
12813
|
Id: rIdImage,
|
|
12827
12814
|
Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
|
|
12828
|
-
Target:
|
|
12815
|
+
Target: `../media/${bookImage.name}.${bookImage.extension}`
|
|
12829
12816
|
});
|
|
12830
12817
|
}
|
|
12831
12818
|
const anchor = {
|
|
@@ -12861,7 +12848,7 @@ class WorkSheetXform extends BaseXform {
|
|
|
12861
12848
|
rels.push({
|
|
12862
12849
|
Id: rId,
|
|
12863
12850
|
Type: RelType.Table,
|
|
12864
|
-
Target:
|
|
12851
|
+
Target: `../tables/${table.target}`
|
|
12865
12852
|
});
|
|
12866
12853
|
|
|
12867
12854
|
// dynamic styles
|
|
@@ -13741,7 +13728,7 @@ class SharedStringsXform extends BaseXform {
|
|
|
13741
13728
|
this.parser.parseOpen(node);
|
|
13742
13729
|
return true;
|
|
13743
13730
|
default:
|
|
13744
|
-
throw new Error(
|
|
13731
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
13745
13732
|
}
|
|
13746
13733
|
}
|
|
13747
13734
|
parseText(text) {
|
|
@@ -13762,7 +13749,7 @@ class SharedStringsXform extends BaseXform {
|
|
|
13762
13749
|
case 'sst':
|
|
13763
13750
|
return false;
|
|
13764
13751
|
default:
|
|
13765
|
-
throw new Error(
|
|
13752
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
13766
13753
|
}
|
|
13767
13754
|
}
|
|
13768
13755
|
}
|
|
@@ -13951,11 +13938,6 @@ module.exports = AlignmentXform;
|
|
|
13951
13938
|
},{"../../../doc/enums":7,"../../../utils/utils":28,"../base-xform":33}],133:[function(require,module,exports){
|
|
13952
13939
|
"use strict";
|
|
13953
13940
|
|
|
13954
|
-
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; }
|
|
13955
|
-
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; }
|
|
13956
|
-
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; }
|
|
13957
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
13958
|
-
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); }
|
|
13959
13941
|
/* eslint-disable max-classes-per-file */
|
|
13960
13942
|
const BaseXform = require('../base-xform');
|
|
13961
13943
|
const utils = require('../../../utils/utils');
|
|
@@ -14069,9 +14051,10 @@ class BorderXform extends BaseXform {
|
|
|
14069
14051
|
function add(edgeModel, edgeXform) {
|
|
14070
14052
|
if (edgeModel && !edgeModel.color && model.color) {
|
|
14071
14053
|
// don't mess with incoming models
|
|
14072
|
-
edgeModel =
|
|
14054
|
+
edgeModel = {
|
|
14055
|
+
...edgeModel,
|
|
14073
14056
|
color: model.color
|
|
14074
|
-
}
|
|
14057
|
+
};
|
|
14075
14058
|
}
|
|
14076
14059
|
edgeXform.render(xmlStream, edgeModel, color);
|
|
14077
14060
|
}
|
|
@@ -15737,7 +15720,7 @@ class AutoFilterXform extends BaseXform {
|
|
|
15737
15720
|
this.parseOpen(node);
|
|
15738
15721
|
return true;
|
|
15739
15722
|
}
|
|
15740
|
-
throw new Error(
|
|
15723
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
15741
15724
|
}
|
|
15742
15725
|
}
|
|
15743
15726
|
parseText(text) {
|
|
@@ -15757,7 +15740,7 @@ class AutoFilterXform extends BaseXform {
|
|
|
15757
15740
|
case this.tag:
|
|
15758
15741
|
return false;
|
|
15759
15742
|
default:
|
|
15760
|
-
throw new Error(
|
|
15743
|
+
throw new Error(`Unexpected xml node in parseClose: ${name}`);
|
|
15761
15744
|
}
|
|
15762
15745
|
}
|
|
15763
15746
|
}
|
|
@@ -15861,7 +15844,7 @@ class FilterColumnXform extends BaseXform {
|
|
|
15861
15844
|
this.parseOpen(node);
|
|
15862
15845
|
return true;
|
|
15863
15846
|
}
|
|
15864
|
-
throw new Error(
|
|
15847
|
+
throw new Error(`Unexpected xml node in parseOpen: ${JSON.stringify(node)}`);
|
|
15865
15848
|
}
|
|
15866
15849
|
}
|
|
15867
15850
|
parseText() {}
|
|
@@ -16000,11 +15983,6 @@ module.exports = TableStyleInfoXform;
|
|
|
16000
15983
|
},{"../base-xform":33}],149:[function(require,module,exports){
|
|
16001
15984
|
"use strict";
|
|
16002
15985
|
|
|
16003
|
-
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; }
|
|
16004
|
-
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; }
|
|
16005
|
-
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; }
|
|
16006
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
16007
|
-
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); }
|
|
16008
15986
|
const XmlStream = require('../../../utils/xml-stream');
|
|
16009
15987
|
const BaseXform = require('../base-xform');
|
|
16010
15988
|
const ListXform = require('../list-xform');
|
|
@@ -16034,7 +16012,8 @@ class TableXform extends BaseXform {
|
|
|
16034
16012
|
}
|
|
16035
16013
|
render(xmlStream, model) {
|
|
16036
16014
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
16037
|
-
xmlStream.openNode(this.tag,
|
|
16015
|
+
xmlStream.openNode(this.tag, {
|
|
16016
|
+
...TableXform.TABLE_ATTRIBUTES,
|
|
16038
16017
|
id: model.id,
|
|
16039
16018
|
name: model.name,
|
|
16040
16019
|
displayName: model.displayName || model.name,
|
|
@@ -16042,7 +16021,7 @@ class TableXform extends BaseXform {
|
|
|
16042
16021
|
totalsRowCount: model.totalsRow ? '1' : undefined,
|
|
16043
16022
|
totalsRowShown: model.totalsRow ? undefined : '1',
|
|
16044
16023
|
headerRowCount: model.headerRow ? '1' : '0'
|
|
16045
|
-
})
|
|
16024
|
+
});
|
|
16046
16025
|
this.map.autoFilter.render(xmlStream, model);
|
|
16047
16026
|
this.map.tableColumns.render(xmlStream, model.columns);
|
|
16048
16027
|
this.map.tableStyleInfo.render(xmlStream, model.style);
|
|
@@ -16128,8 +16107,6 @@ module.exports = TableXform;
|
|
|
16128
16107
|
(function (process,Buffer){(function (){
|
|
16129
16108
|
"use strict";
|
|
16130
16109
|
|
|
16131
|
-
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"); }
|
|
16132
|
-
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); }
|
|
16133
16110
|
const fs = require('fs');
|
|
16134
16111
|
const JSZip = require('jszip');
|
|
16135
16112
|
const {
|
|
@@ -16181,7 +16158,7 @@ class XLSX {
|
|
|
16181
16158
|
|
|
16182
16159
|
async readFile(filename, options) {
|
|
16183
16160
|
if (!(await utils.fs.exists(filename))) {
|
|
16184
|
-
throw new Error(
|
|
16161
|
+
throw new Error(`File not found: ${filename}`);
|
|
16185
16162
|
}
|
|
16186
16163
|
const stream = fs.createReadStream(filename);
|
|
16187
16164
|
try {
|
|
@@ -16282,12 +16259,12 @@ class XLSX {
|
|
|
16282
16259
|
async _processCommentEntry(stream, model, name) {
|
|
16283
16260
|
const xform = new CommentsXform();
|
|
16284
16261
|
const comments = await xform.parseStream(stream);
|
|
16285
|
-
model.comments[
|
|
16262
|
+
model.comments[`../${name}.xml`] = comments;
|
|
16286
16263
|
}
|
|
16287
16264
|
async _processTableEntry(stream, model, name) {
|
|
16288
16265
|
const xform = new TableXform();
|
|
16289
16266
|
const table = await xform.parseStream(stream);
|
|
16290
|
-
model.tables[
|
|
16267
|
+
model.tables[`../tables/${name}.xml`] = table;
|
|
16291
16268
|
}
|
|
16292
16269
|
async _processWorksheetRelsEntry(stream, model, sheetNo) {
|
|
16293
16270
|
const xform = new RelationshipsXform();
|
|
@@ -16334,7 +16311,7 @@ class XLSX {
|
|
|
16334
16311
|
async _processVmlDrawingEntry(entry, model, name) {
|
|
16335
16312
|
const xform = new VmlNotesXform();
|
|
16336
16313
|
const vmlDrawing = await xform.parseStream(entry);
|
|
16337
|
-
model.vmlDrawings[
|
|
16314
|
+
model.vmlDrawings[`../drawings/${name}.vml`] = vmlDrawing;
|
|
16338
16315
|
}
|
|
16339
16316
|
async _processThemeEntry(entry, model, name) {
|
|
16340
16317
|
await new Promise((resolve, reject) => {
|
|
@@ -16363,29 +16340,8 @@ class XLSX {
|
|
|
16363
16340
|
stream = stream.pipe(new PassThrough());
|
|
16364
16341
|
}
|
|
16365
16342
|
const chunks = [];
|
|
16366
|
-
|
|
16367
|
-
|
|
16368
|
-
var _iteratorError;
|
|
16369
|
-
try {
|
|
16370
|
-
for (var _iterator = _asyncIterator(stream), _step; _iteratorAbruptCompletion = !(_step = await _iterator.next()).done; _iteratorAbruptCompletion = false) {
|
|
16371
|
-
const chunk = _step.value;
|
|
16372
|
-
{
|
|
16373
|
-
chunks.push(chunk);
|
|
16374
|
-
}
|
|
16375
|
-
}
|
|
16376
|
-
} catch (err) {
|
|
16377
|
-
_didIteratorError = true;
|
|
16378
|
-
_iteratorError = err;
|
|
16379
|
-
} finally {
|
|
16380
|
-
try {
|
|
16381
|
-
if (_iteratorAbruptCompletion && _iterator.return != null) {
|
|
16382
|
-
await _iterator.return();
|
|
16383
|
-
}
|
|
16384
|
-
} finally {
|
|
16385
|
-
if (_didIteratorError) {
|
|
16386
|
-
throw _iteratorError;
|
|
16387
|
-
}
|
|
16388
|
-
}
|
|
16343
|
+
for await (const chunk of stream) {
|
|
16344
|
+
chunks.push(chunk);
|
|
16389
16345
|
}
|
|
16390
16346
|
return this.load(Buffer.concat(chunks), options);
|
|
16391
16347
|
}
|
|
@@ -16548,7 +16504,7 @@ class XLSX {
|
|
|
16548
16504
|
async addMedia(zip, model) {
|
|
16549
16505
|
await Promise.all(model.media.map(async medium => {
|
|
16550
16506
|
if (medium.type === 'image') {
|
|
16551
|
-
const filename =
|
|
16507
|
+
const filename = `xl/media/${medium.name}.${medium.extension}`;
|
|
16552
16508
|
if (medium.filename) {
|
|
16553
16509
|
const data = await fsReadFileAsync(medium.filename);
|
|
16554
16510
|
return zip.append(data, {
|
|
@@ -16583,11 +16539,11 @@ class XLSX {
|
|
|
16583
16539
|
drawingXform.prepare(drawing, {});
|
|
16584
16540
|
let xml = drawingXform.toXml(drawing);
|
|
16585
16541
|
zip.append(xml, {
|
|
16586
|
-
name:
|
|
16542
|
+
name: `xl/drawings/${drawing.name}.xml`
|
|
16587
16543
|
});
|
|
16588
16544
|
xml = relsXform.toXml(drawing.rels);
|
|
16589
16545
|
zip.append(xml, {
|
|
16590
|
-
name:
|
|
16546
|
+
name: `xl/drawings/_rels/${drawing.name}.xml.rels`
|
|
16591
16547
|
});
|
|
16592
16548
|
}
|
|
16593
16549
|
});
|
|
@@ -16602,7 +16558,7 @@ class XLSX {
|
|
|
16602
16558
|
tableXform.prepare(table, {});
|
|
16603
16559
|
const tableXml = tableXform.toXml(table);
|
|
16604
16560
|
zip.append(tableXml, {
|
|
16605
|
-
name:
|
|
16561
|
+
name: `xl/tables/${table.target}`
|
|
16606
16562
|
});
|
|
16607
16563
|
});
|
|
16608
16564
|
});
|
|
@@ -16699,7 +16655,7 @@ class XLSX {
|
|
|
16699
16655
|
};
|
|
16700
16656
|
Object.keys(themes).forEach(name => {
|
|
16701
16657
|
const xml = themes[name];
|
|
16702
|
-
const path =
|
|
16658
|
+
const path = `xl/theme/${name}.xml`;
|
|
16703
16659
|
zip.append(xml, {
|
|
16704
16660
|
name: path
|
|
16705
16661
|
});
|
|
@@ -16727,24 +16683,24 @@ class XLSX {
|
|
|
16727
16683
|
async addWorkbookRels(zip, model) {
|
|
16728
16684
|
let count = 1;
|
|
16729
16685
|
const relationships = [{
|
|
16730
|
-
Id:
|
|
16686
|
+
Id: `rId${count++}`,
|
|
16731
16687
|
Type: XLSX.RelType.Styles,
|
|
16732
16688
|
Target: 'styles.xml'
|
|
16733
16689
|
}, {
|
|
16734
|
-
Id:
|
|
16690
|
+
Id: `rId${count++}`,
|
|
16735
16691
|
Type: XLSX.RelType.Theme,
|
|
16736
16692
|
Target: 'theme/theme1.xml'
|
|
16737
16693
|
}];
|
|
16738
16694
|
if (model.sharedStrings.count) {
|
|
16739
16695
|
relationships.push({
|
|
16740
|
-
Id:
|
|
16696
|
+
Id: `rId${count++}`,
|
|
16741
16697
|
Type: XLSX.RelType.SharedStrings,
|
|
16742
16698
|
Target: 'sharedStrings.xml'
|
|
16743
16699
|
});
|
|
16744
16700
|
}
|
|
16745
16701
|
if ((model.pivotTables || []).length) {
|
|
16746
16702
|
const pivotTable = model.pivotTables[0];
|
|
16747
|
-
pivotTable.rId =
|
|
16703
|
+
pivotTable.rId = `rId${count++}`;
|
|
16748
16704
|
relationships.push({
|
|
16749
16705
|
Id: pivotTable.rId,
|
|
16750
16706
|
Type: XLSX.RelType.PivotCacheDefinition,
|
|
@@ -16752,11 +16708,11 @@ class XLSX {
|
|
|
16752
16708
|
});
|
|
16753
16709
|
}
|
|
16754
16710
|
model.worksheets.forEach(worksheet => {
|
|
16755
|
-
worksheet.rId =
|
|
16711
|
+
worksheet.rId = `rId${count++}`;
|
|
16756
16712
|
relationships.push({
|
|
16757
16713
|
Id: worksheet.rId,
|
|
16758
16714
|
Type: XLSX.RelType.Worksheet,
|
|
16759
|
-
Target:
|
|
16715
|
+
Target: `worksheets/sheet${worksheet.id}.xml`
|
|
16760
16716
|
});
|
|
16761
16717
|
});
|
|
16762
16718
|
const xform = new RelationshipsXform();
|
|
@@ -16800,25 +16756,25 @@ class XLSX {
|
|
|
16800
16756
|
let xmlStream = new XmlStream();
|
|
16801
16757
|
worksheetXform.render(xmlStream, worksheet);
|
|
16802
16758
|
zip.append(xmlStream.xml, {
|
|
16803
|
-
name:
|
|
16759
|
+
name: `xl/worksheets/sheet${worksheet.id}.xml`
|
|
16804
16760
|
});
|
|
16805
16761
|
if (worksheet.rels && worksheet.rels.length) {
|
|
16806
16762
|
xmlStream = new XmlStream();
|
|
16807
16763
|
relationshipsXform.render(xmlStream, worksheet.rels);
|
|
16808
16764
|
zip.append(xmlStream.xml, {
|
|
16809
|
-
name:
|
|
16765
|
+
name: `xl/worksheets/_rels/sheet${worksheet.id}.xml.rels`
|
|
16810
16766
|
});
|
|
16811
16767
|
}
|
|
16812
16768
|
if (worksheet.comments.length > 0) {
|
|
16813
16769
|
xmlStream = new XmlStream();
|
|
16814
16770
|
commentsXform.render(xmlStream, worksheet);
|
|
16815
16771
|
zip.append(xmlStream.xml, {
|
|
16816
|
-
name:
|
|
16772
|
+
name: `xl/comments${worksheet.id}.xml`
|
|
16817
16773
|
});
|
|
16818
16774
|
xmlStream = new XmlStream();
|
|
16819
16775
|
vmlNotesXform.render(xmlStream, worksheet);
|
|
16820
16776
|
zip.append(xmlStream.xml, {
|
|
16821
|
-
name:
|
|
16777
|
+
name: `xl/drawings/vmlDrawing${worksheet.id}.vml`
|
|
16822
16778
|
});
|
|
16823
16779
|
}
|
|
16824
16780
|
});
|
|
@@ -16866,7 +16822,7 @@ class XLSX {
|
|
|
16866
16822
|
// assign unique filenames to tables
|
|
16867
16823
|
worksheet.tables.forEach(table => {
|
|
16868
16824
|
tableCount++;
|
|
16869
|
-
table.target =
|
|
16825
|
+
table.target = `table${tableCount}.xml`;
|
|
16870
16826
|
table.id = tableCount;
|
|
16871
16827
|
model.tables.push(table);
|
|
16872
16828
|
});
|
|
@@ -16936,9 +16892,6 @@ module.exports = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<a:th
|
|
|
16936
16892
|
(function (Buffer){(function (){
|
|
16937
16893
|
"use strict";
|
|
16938
16894
|
|
|
16939
|
-
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; }
|
|
16940
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
16941
|
-
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); }
|
|
16942
16895
|
Object.defineProperty(exports, "__esModule", {
|
|
16943
16896
|
value: true
|
|
16944
16897
|
});
|
|
@@ -16946,13 +16899,13 @@ exports.CsvFormatterStream = void 0;
|
|
|
16946
16899
|
const stream_1 = require("stream");
|
|
16947
16900
|
const formatter_1 = require("./formatter");
|
|
16948
16901
|
class CsvFormatterStream extends stream_1.Transform {
|
|
16902
|
+
formatterOptions;
|
|
16903
|
+
rowFormatter;
|
|
16904
|
+
hasWrittenBOM = false;
|
|
16949
16905
|
constructor(formatterOptions) {
|
|
16950
16906
|
super({
|
|
16951
16907
|
writableObjectMode: formatterOptions.objectMode
|
|
16952
16908
|
});
|
|
16953
|
-
_defineProperty(this, "formatterOptions", void 0);
|
|
16954
|
-
_defineProperty(this, "rowFormatter", void 0);
|
|
16955
|
-
_defineProperty(this, "hasWrittenBOM", false);
|
|
16956
16909
|
this.formatterOptions = formatterOptions;
|
|
16957
16910
|
this.rowFormatter = new formatter_1.RowFormatter(formatterOptions);
|
|
16958
16911
|
// if writeBOM is false then set to true
|
|
@@ -17011,47 +16964,43 @@ exports.CsvFormatterStream = CsvFormatterStream;
|
|
|
17011
16964
|
},{"./formatter":156,"buffer":237,"stream":312}],153:[function(require,module,exports){
|
|
17012
16965
|
"use strict";
|
|
17013
16966
|
|
|
17014
|
-
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; }
|
|
17015
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17016
|
-
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); }
|
|
17017
16967
|
Object.defineProperty(exports, "__esModule", {
|
|
17018
16968
|
value: true
|
|
17019
16969
|
});
|
|
17020
16970
|
exports.FormatterOptions = void 0;
|
|
17021
16971
|
class FormatterOptions {
|
|
16972
|
+
objectMode = true;
|
|
16973
|
+
delimiter = ',';
|
|
16974
|
+
rowDelimiter = '\n';
|
|
16975
|
+
quote = '"';
|
|
16976
|
+
escape = this.quote;
|
|
16977
|
+
quoteColumns = false;
|
|
16978
|
+
quoteHeaders = this.quoteColumns;
|
|
16979
|
+
headers = null;
|
|
16980
|
+
includeEndRowDelimiter = false;
|
|
16981
|
+
transform;
|
|
16982
|
+
shouldWriteHeaders;
|
|
16983
|
+
writeBOM = false;
|
|
16984
|
+
escapedQuote;
|
|
16985
|
+
BOM = '\ufeff';
|
|
16986
|
+
alwaysWriteHeaders = false;
|
|
17022
16987
|
constructor() {
|
|
17023
|
-
var _opts$writeHeaders;
|
|
17024
16988
|
let opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
17025
|
-
_defineProperty(this, "objectMode", true);
|
|
17026
|
-
_defineProperty(this, "delimiter", ',');
|
|
17027
|
-
_defineProperty(this, "rowDelimiter", '\n');
|
|
17028
|
-
_defineProperty(this, "quote", '"');
|
|
17029
|
-
_defineProperty(this, "escape", this.quote);
|
|
17030
|
-
_defineProperty(this, "quoteColumns", false);
|
|
17031
|
-
_defineProperty(this, "quoteHeaders", this.quoteColumns);
|
|
17032
|
-
_defineProperty(this, "headers", null);
|
|
17033
|
-
_defineProperty(this, "includeEndRowDelimiter", false);
|
|
17034
|
-
_defineProperty(this, "transform", void 0);
|
|
17035
|
-
_defineProperty(this, "shouldWriteHeaders", void 0);
|
|
17036
|
-
_defineProperty(this, "writeBOM", false);
|
|
17037
|
-
_defineProperty(this, "escapedQuote", void 0);
|
|
17038
|
-
_defineProperty(this, "BOM", '\ufeff');
|
|
17039
|
-
_defineProperty(this, "alwaysWriteHeaders", false);
|
|
17040
16989
|
Object.assign(this, opts || {});
|
|
17041
|
-
if (typeof
|
|
16990
|
+
if (typeof opts?.quoteHeaders === 'undefined') {
|
|
17042
16991
|
this.quoteHeaders = this.quoteColumns;
|
|
17043
16992
|
}
|
|
17044
|
-
if (
|
|
16993
|
+
if (opts?.quote === true) {
|
|
17045
16994
|
this.quote = '"';
|
|
17046
|
-
} else if (
|
|
16995
|
+
} else if (opts?.quote === false) {
|
|
17047
16996
|
this.quote = '';
|
|
17048
16997
|
}
|
|
17049
|
-
if (typeof
|
|
16998
|
+
if (typeof opts?.escape !== 'string') {
|
|
17050
16999
|
this.escape = this.quote;
|
|
17051
17000
|
}
|
|
17052
|
-
this.shouldWriteHeaders = !!this.headers && (
|
|
17001
|
+
this.shouldWriteHeaders = !!this.headers && (opts.writeHeaders ?? true);
|
|
17053
17002
|
this.headers = Array.isArray(this.headers) ? this.headers : null;
|
|
17054
|
-
this.escapedQuote =
|
|
17003
|
+
this.escapedQuote = `${this.escape}${this.quote}`;
|
|
17055
17004
|
}
|
|
17056
17005
|
}
|
|
17057
17006
|
exports.FormatterOptions = FormatterOptions;
|
|
@@ -17059,9 +17008,6 @@ exports.FormatterOptions = FormatterOptions;
|
|
|
17059
17008
|
},{}],154:[function(require,module,exports){
|
|
17060
17009
|
"use strict";
|
|
17061
17010
|
|
|
17062
|
-
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; }
|
|
17063
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17064
|
-
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); }
|
|
17065
17011
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
17066
17012
|
return mod && mod.__esModule ? mod : {
|
|
17067
17013
|
"default": mod
|
|
@@ -17075,17 +17021,17 @@ const lodash_isboolean_1 = __importDefault(require("lodash.isboolean"));
|
|
|
17075
17021
|
const lodash_isnil_1 = __importDefault(require("lodash.isnil"));
|
|
17076
17022
|
const lodash_escaperegexp_1 = __importDefault(require("lodash.escaperegexp"));
|
|
17077
17023
|
class FieldFormatter {
|
|
17024
|
+
formatterOptions;
|
|
17025
|
+
_headers = null;
|
|
17026
|
+
REPLACE_REGEXP;
|
|
17027
|
+
ESCAPE_REGEXP;
|
|
17078
17028
|
constructor(formatterOptions) {
|
|
17079
|
-
_defineProperty(this, "formatterOptions", void 0);
|
|
17080
|
-
_defineProperty(this, "_headers", null);
|
|
17081
|
-
_defineProperty(this, "REPLACE_REGEXP", void 0);
|
|
17082
|
-
_defineProperty(this, "ESCAPE_REGEXP", void 0);
|
|
17083
17029
|
this.formatterOptions = formatterOptions;
|
|
17084
17030
|
if (formatterOptions.headers !== null) {
|
|
17085
17031
|
this.headers = formatterOptions.headers;
|
|
17086
17032
|
}
|
|
17087
17033
|
this.REPLACE_REGEXP = new RegExp(formatterOptions.quote, 'g');
|
|
17088
|
-
const escapePattern =
|
|
17034
|
+
const escapePattern = `[${formatterOptions.delimiter}${(0, lodash_escaperegexp_1.default)(formatterOptions.rowDelimiter)}|\r|\n]`;
|
|
17089
17035
|
this.ESCAPE_REGEXP = new RegExp(escapePattern);
|
|
17090
17036
|
}
|
|
17091
17037
|
set headers(headers) {
|
|
@@ -17105,7 +17051,7 @@ class FieldFormatter {
|
|
|
17105
17051
|
return false;
|
|
17106
17052
|
}
|
|
17107
17053
|
format(field, fieldIndex, isHeader) {
|
|
17108
|
-
const preparedField =
|
|
17054
|
+
const preparedField = `${(0, lodash_isnil_1.default)(field) ? '' : field}`.replace(/\0/g, '');
|
|
17109
17055
|
const {
|
|
17110
17056
|
formatterOptions
|
|
17111
17057
|
} = this;
|
|
@@ -17125,7 +17071,7 @@ class FieldFormatter {
|
|
|
17125
17071
|
const {
|
|
17126
17072
|
quote
|
|
17127
17073
|
} = this.formatterOptions;
|
|
17128
|
-
return
|
|
17074
|
+
return `${quote}${field}${quote}`;
|
|
17129
17075
|
}
|
|
17130
17076
|
}
|
|
17131
17077
|
exports.FieldFormatter = FieldFormatter;
|
|
@@ -17133,9 +17079,6 @@ exports.FieldFormatter = FieldFormatter;
|
|
|
17133
17079
|
},{"lodash.escaperegexp":359,"lodash.isboolean":361,"lodash.isnil":363}],155:[function(require,module,exports){
|
|
17134
17080
|
"use strict";
|
|
17135
17081
|
|
|
17136
|
-
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; }
|
|
17137
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17138
|
-
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); }
|
|
17139
17082
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
17140
17083
|
return mod && mod.__esModule ? mod : {
|
|
17141
17084
|
"default": mod
|
|
@@ -17188,14 +17131,14 @@ class RowFormatter {
|
|
|
17188
17131
|
transformFunction(row, cb);
|
|
17189
17132
|
};
|
|
17190
17133
|
}
|
|
17134
|
+
formatterOptions;
|
|
17135
|
+
fieldFormatter;
|
|
17136
|
+
shouldWriteHeaders;
|
|
17137
|
+
_rowTransform;
|
|
17138
|
+
headers;
|
|
17139
|
+
hasWrittenHeaders;
|
|
17140
|
+
rowCount = 0;
|
|
17191
17141
|
constructor(formatterOptions) {
|
|
17192
|
-
_defineProperty(this, "formatterOptions", void 0);
|
|
17193
|
-
_defineProperty(this, "fieldFormatter", void 0);
|
|
17194
|
-
_defineProperty(this, "shouldWriteHeaders", void 0);
|
|
17195
|
-
_defineProperty(this, "_rowTransform", void 0);
|
|
17196
|
-
_defineProperty(this, "headers", void 0);
|
|
17197
|
-
_defineProperty(this, "hasWrittenHeaders", void 0);
|
|
17198
|
-
_defineProperty(this, "rowCount", 0);
|
|
17199
17142
|
this.formatterOptions = formatterOptions;
|
|
17200
17143
|
this.fieldFormatter = new FieldFormatter_1.FieldFormatter(formatterOptions);
|
|
17201
17144
|
this.headers = formatterOptions.headers;
|
|
@@ -17499,9 +17442,6 @@ exports.isSyncTransform = isSyncTransform;
|
|
|
17499
17442
|
(function (setImmediate){(function (){
|
|
17500
17443
|
"use strict";
|
|
17501
17444
|
|
|
17502
|
-
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; }
|
|
17503
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17504
|
-
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); }
|
|
17505
17445
|
Object.defineProperty(exports, "__esModule", {
|
|
17506
17446
|
value: true
|
|
17507
17447
|
});
|
|
@@ -17511,21 +17451,21 @@ const stream_1 = require("stream");
|
|
|
17511
17451
|
const transforms_1 = require("./transforms");
|
|
17512
17452
|
const parser_1 = require("./parser");
|
|
17513
17453
|
class CsvParserStream extends stream_1.Transform {
|
|
17454
|
+
parserOptions;
|
|
17455
|
+
decoder;
|
|
17456
|
+
parser;
|
|
17457
|
+
headerTransformer;
|
|
17458
|
+
rowTransformerValidator;
|
|
17459
|
+
lines = '';
|
|
17460
|
+
rowCount = 0;
|
|
17461
|
+
parsedRowCount = 0;
|
|
17462
|
+
parsedLineCount = 0;
|
|
17463
|
+
endEmitted = false;
|
|
17464
|
+
headersEmitted = false;
|
|
17514
17465
|
constructor(parserOptions) {
|
|
17515
17466
|
super({
|
|
17516
17467
|
objectMode: parserOptions.objectMode
|
|
17517
17468
|
});
|
|
17518
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
17519
|
-
_defineProperty(this, "decoder", void 0);
|
|
17520
|
-
_defineProperty(this, "parser", void 0);
|
|
17521
|
-
_defineProperty(this, "headerTransformer", void 0);
|
|
17522
|
-
_defineProperty(this, "rowTransformerValidator", void 0);
|
|
17523
|
-
_defineProperty(this, "lines", '');
|
|
17524
|
-
_defineProperty(this, "rowCount", 0);
|
|
17525
|
-
_defineProperty(this, "parsedRowCount", 0);
|
|
17526
|
-
_defineProperty(this, "parsedLineCount", 0);
|
|
17527
|
-
_defineProperty(this, "endEmitted", false);
|
|
17528
|
-
_defineProperty(this, "headersEmitted", false);
|
|
17529
17469
|
this.parserOptions = parserOptions;
|
|
17530
17470
|
this.parser = new parser_1.Parser(parserOptions);
|
|
17531
17471
|
this.headerTransformer = new transforms_1.HeaderTransformer(parserOptions);
|
|
@@ -17743,9 +17683,6 @@ exports.CsvParserStream = CsvParserStream;
|
|
|
17743
17683
|
},{"./parser":171,"./transforms":174,"stream":312,"string_decoder":327,"timers":447}],160:[function(require,module,exports){
|
|
17744
17684
|
"use strict";
|
|
17745
17685
|
|
|
17746
|
-
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; }
|
|
17747
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17748
|
-
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); }
|
|
17749
17686
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
17750
17687
|
return mod && mod.__esModule ? mod : {
|
|
17751
17688
|
"default": mod
|
|
@@ -17758,39 +17695,38 @@ exports.ParserOptions = void 0;
|
|
|
17758
17695
|
const lodash_escaperegexp_1 = __importDefault(require("lodash.escaperegexp"));
|
|
17759
17696
|
const lodash_isnil_1 = __importDefault(require("lodash.isnil"));
|
|
17760
17697
|
class ParserOptions {
|
|
17698
|
+
escapedDelimiter;
|
|
17699
|
+
objectMode = true;
|
|
17700
|
+
delimiter = ',';
|
|
17701
|
+
ignoreEmpty = false;
|
|
17702
|
+
quote = '"';
|
|
17703
|
+
escape = null;
|
|
17704
|
+
escapeChar = this.quote;
|
|
17705
|
+
comment = null;
|
|
17706
|
+
supportsComments = false;
|
|
17707
|
+
ltrim = false;
|
|
17708
|
+
rtrim = false;
|
|
17709
|
+
trim = false;
|
|
17710
|
+
headers = null;
|
|
17711
|
+
renameHeaders = false;
|
|
17712
|
+
strictColumnHandling = false;
|
|
17713
|
+
discardUnmappedColumns = false;
|
|
17714
|
+
carriageReturn = '\r';
|
|
17715
|
+
NEXT_TOKEN_REGEXP;
|
|
17716
|
+
encoding = 'utf8';
|
|
17717
|
+
limitRows = false;
|
|
17718
|
+
maxRows = 0;
|
|
17719
|
+
skipLines = 0;
|
|
17720
|
+
skipRows = 0;
|
|
17761
17721
|
constructor(opts) {
|
|
17762
|
-
var _this$escape;
|
|
17763
|
-
_defineProperty(this, "escapedDelimiter", void 0);
|
|
17764
|
-
_defineProperty(this, "objectMode", true);
|
|
17765
|
-
_defineProperty(this, "delimiter", ',');
|
|
17766
|
-
_defineProperty(this, "ignoreEmpty", false);
|
|
17767
|
-
_defineProperty(this, "quote", '"');
|
|
17768
|
-
_defineProperty(this, "escape", null);
|
|
17769
|
-
_defineProperty(this, "escapeChar", this.quote);
|
|
17770
|
-
_defineProperty(this, "comment", null);
|
|
17771
|
-
_defineProperty(this, "supportsComments", false);
|
|
17772
|
-
_defineProperty(this, "ltrim", false);
|
|
17773
|
-
_defineProperty(this, "rtrim", false);
|
|
17774
|
-
_defineProperty(this, "trim", false);
|
|
17775
|
-
_defineProperty(this, "headers", null);
|
|
17776
|
-
_defineProperty(this, "renameHeaders", false);
|
|
17777
|
-
_defineProperty(this, "strictColumnHandling", false);
|
|
17778
|
-
_defineProperty(this, "discardUnmappedColumns", false);
|
|
17779
|
-
_defineProperty(this, "carriageReturn", '\r');
|
|
17780
|
-
_defineProperty(this, "NEXT_TOKEN_REGEXP", void 0);
|
|
17781
|
-
_defineProperty(this, "encoding", 'utf8');
|
|
17782
|
-
_defineProperty(this, "limitRows", false);
|
|
17783
|
-
_defineProperty(this, "maxRows", 0);
|
|
17784
|
-
_defineProperty(this, "skipLines", 0);
|
|
17785
|
-
_defineProperty(this, "skipRows", 0);
|
|
17786
17722
|
Object.assign(this, opts || {});
|
|
17787
17723
|
if (this.delimiter.length > 1) {
|
|
17788
17724
|
throw new Error('delimiter option must be one character long');
|
|
17789
17725
|
}
|
|
17790
17726
|
this.escapedDelimiter = (0, lodash_escaperegexp_1.default)(this.delimiter);
|
|
17791
|
-
this.escapeChar =
|
|
17727
|
+
this.escapeChar = this.escape ?? this.quote;
|
|
17792
17728
|
this.supportsComments = !(0, lodash_isnil_1.default)(this.comment);
|
|
17793
|
-
this.NEXT_TOKEN_REGEXP = new RegExp(
|
|
17729
|
+
this.NEXT_TOKEN_REGEXP = new RegExp(`([^\\s]|\\r\\n|\\n|\\r|${this.escapedDelimiter})`);
|
|
17794
17730
|
if (this.maxRows > 0) {
|
|
17795
17731
|
this.limitRows = true;
|
|
17796
17732
|
}
|
|
@@ -17882,9 +17818,6 @@ exports.parseString = parseString;
|
|
|
17882
17818
|
},{"./CsvParserStream":159,"./ParserOptions":160,"./types":175,"fs":309,"stream":312}],162:[function(require,module,exports){
|
|
17883
17819
|
"use strict";
|
|
17884
17820
|
|
|
17885
|
-
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; }
|
|
17886
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17887
|
-
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); }
|
|
17888
17821
|
Object.defineProperty(exports, "__esModule", {
|
|
17889
17822
|
value: true
|
|
17890
17823
|
});
|
|
@@ -17901,9 +17834,9 @@ class Parser {
|
|
|
17901
17834
|
}
|
|
17902
17835
|
return line;
|
|
17903
17836
|
}
|
|
17837
|
+
parserOptions;
|
|
17838
|
+
rowParser;
|
|
17904
17839
|
constructor(parserOptions) {
|
|
17905
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
17906
|
-
_defineProperty(this, "rowParser", void 0);
|
|
17907
17840
|
this.parserOptions = parserOptions;
|
|
17908
17841
|
this.rowParser = new RowParser_1.RowParser(this.parserOptions);
|
|
17909
17842
|
}
|
|
@@ -17980,9 +17913,6 @@ exports.Parser = Parser;
|
|
|
17980
17913
|
},{"./RowParser":163,"./Scanner":164,"./Token":165}],163:[function(require,module,exports){
|
|
17981
17914
|
"use strict";
|
|
17982
17915
|
|
|
17983
|
-
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; }
|
|
17984
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
17985
|
-
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); }
|
|
17986
17916
|
Object.defineProperty(exports, "__esModule", {
|
|
17987
17917
|
value: true
|
|
17988
17918
|
});
|
|
@@ -17994,9 +17924,9 @@ class RowParser {
|
|
|
17994
17924
|
static isEmptyRow(row) {
|
|
17995
17925
|
return row.join(EMPTY_STRING).replace(/\s+/g, EMPTY_STRING) === EMPTY_STRING;
|
|
17996
17926
|
}
|
|
17927
|
+
parserOptions;
|
|
17928
|
+
columnParser;
|
|
17997
17929
|
constructor(parserOptions) {
|
|
17998
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
17999
|
-
_defineProperty(this, "columnParser", void 0);
|
|
18000
17930
|
this.parserOptions = parserOptions;
|
|
18001
17931
|
this.columnParser = new column_1.ColumnParser(parserOptions);
|
|
18002
17932
|
}
|
|
@@ -18069,9 +17999,6 @@ exports.RowParser = RowParser;
|
|
|
18069
17999
|
},{"./Token":165,"./column":170}],164:[function(require,module,exports){
|
|
18070
18000
|
"use strict";
|
|
18071
18001
|
|
|
18072
|
-
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; }
|
|
18073
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18074
|
-
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); }
|
|
18075
18002
|
Object.defineProperty(exports, "__esModule", {
|
|
18076
18003
|
value: true
|
|
18077
18004
|
});
|
|
@@ -18079,12 +18006,12 @@ exports.Scanner = void 0;
|
|
|
18079
18006
|
const Token_1 = require("./Token");
|
|
18080
18007
|
const ROW_DELIMITER = /((?:\r\n)|\n|\r)/;
|
|
18081
18008
|
class Scanner {
|
|
18009
|
+
line;
|
|
18010
|
+
parserOptions;
|
|
18011
|
+
lineLength;
|
|
18012
|
+
hasMoreData;
|
|
18013
|
+
cursor = 0;
|
|
18082
18014
|
constructor(args) {
|
|
18083
|
-
_defineProperty(this, "line", void 0);
|
|
18084
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18085
|
-
_defineProperty(this, "lineLength", void 0);
|
|
18086
|
-
_defineProperty(this, "hasMoreData", void 0);
|
|
18087
|
-
_defineProperty(this, "cursor", 0);
|
|
18088
18015
|
this.line = args.line;
|
|
18089
18016
|
this.lineLength = this.line.length;
|
|
18090
18017
|
this.parserOptions = args.parserOptions;
|
|
@@ -18167,9 +18094,6 @@ exports.Scanner = Scanner;
|
|
|
18167
18094
|
},{"./Token":165}],165:[function(require,module,exports){
|
|
18168
18095
|
"use strict";
|
|
18169
18096
|
|
|
18170
|
-
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; }
|
|
18171
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18172
|
-
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); }
|
|
18173
18097
|
Object.defineProperty(exports, "__esModule", {
|
|
18174
18098
|
value: true
|
|
18175
18099
|
});
|
|
@@ -18194,10 +18118,10 @@ class Token {
|
|
|
18194
18118
|
static isTokenDelimiter(token, parserOptions) {
|
|
18195
18119
|
return token.token === parserOptions.delimiter;
|
|
18196
18120
|
}
|
|
18121
|
+
token;
|
|
18122
|
+
startCursor;
|
|
18123
|
+
endCursor;
|
|
18197
18124
|
constructor(tokenArgs) {
|
|
18198
|
-
_defineProperty(this, "token", void 0);
|
|
18199
|
-
_defineProperty(this, "startCursor", void 0);
|
|
18200
|
-
_defineProperty(this, "endCursor", void 0);
|
|
18201
18125
|
this.token = tokenArgs.token;
|
|
18202
18126
|
this.startCursor = tokenArgs.startCursor;
|
|
18203
18127
|
this.endCursor = tokenArgs.endCursor;
|
|
@@ -18208,16 +18132,13 @@ exports.Token = Token;
|
|
|
18208
18132
|
},{}],166:[function(require,module,exports){
|
|
18209
18133
|
"use strict";
|
|
18210
18134
|
|
|
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
18135
|
Object.defineProperty(exports, "__esModule", {
|
|
18215
18136
|
value: true
|
|
18216
18137
|
});
|
|
18217
18138
|
exports.ColumnFormatter = void 0;
|
|
18218
18139
|
class ColumnFormatter {
|
|
18140
|
+
format;
|
|
18219
18141
|
constructor(parserOptions) {
|
|
18220
|
-
_defineProperty(this, "format", void 0);
|
|
18221
18142
|
if (parserOptions.trim) {
|
|
18222
18143
|
this.format = col => {
|
|
18223
18144
|
return col.trim();
|
|
@@ -18242,9 +18163,6 @@ exports.ColumnFormatter = ColumnFormatter;
|
|
|
18242
18163
|
},{}],167:[function(require,module,exports){
|
|
18243
18164
|
"use strict";
|
|
18244
18165
|
|
|
18245
|
-
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; }
|
|
18246
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18247
|
-
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); }
|
|
18248
18166
|
Object.defineProperty(exports, "__esModule", {
|
|
18249
18167
|
value: true
|
|
18250
18168
|
});
|
|
@@ -18253,10 +18171,10 @@ const NonQuotedColumnParser_1 = require("./NonQuotedColumnParser");
|
|
|
18253
18171
|
const QuotedColumnParser_1 = require("./QuotedColumnParser");
|
|
18254
18172
|
const Token_1 = require("../Token");
|
|
18255
18173
|
class ColumnParser {
|
|
18174
|
+
parserOptions;
|
|
18175
|
+
nonQuotedColumnParser;
|
|
18176
|
+
quotedColumnParser;
|
|
18256
18177
|
constructor(parserOptions) {
|
|
18257
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18258
|
-
_defineProperty(this, "nonQuotedColumnParser", void 0);
|
|
18259
|
-
_defineProperty(this, "quotedColumnParser", void 0);
|
|
18260
18178
|
this.parserOptions = parserOptions;
|
|
18261
18179
|
this.quotedColumnParser = new QuotedColumnParser_1.QuotedColumnParser(parserOptions);
|
|
18262
18180
|
this.nonQuotedColumnParser = new NonQuotedColumnParser_1.NonQuotedColumnParser(parserOptions);
|
|
@@ -18277,9 +18195,6 @@ exports.ColumnParser = ColumnParser;
|
|
|
18277
18195
|
},{"../Token":165,"./NonQuotedColumnParser":168,"./QuotedColumnParser":169}],168:[function(require,module,exports){
|
|
18278
18196
|
"use strict";
|
|
18279
18197
|
|
|
18280
|
-
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; }
|
|
18281
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18282
|
-
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); }
|
|
18283
18198
|
Object.defineProperty(exports, "__esModule", {
|
|
18284
18199
|
value: true
|
|
18285
18200
|
});
|
|
@@ -18287,9 +18202,9 @@ exports.NonQuotedColumnParser = void 0;
|
|
|
18287
18202
|
const ColumnFormatter_1 = require("./ColumnFormatter");
|
|
18288
18203
|
const Token_1 = require("../Token");
|
|
18289
18204
|
class NonQuotedColumnParser {
|
|
18205
|
+
parserOptions;
|
|
18206
|
+
columnFormatter;
|
|
18290
18207
|
constructor(parserOptions) {
|
|
18291
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18292
|
-
_defineProperty(this, "columnFormatter", void 0);
|
|
18293
18208
|
this.parserOptions = parserOptions;
|
|
18294
18209
|
this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);
|
|
18295
18210
|
}
|
|
@@ -18317,9 +18232,6 @@ exports.NonQuotedColumnParser = NonQuotedColumnParser;
|
|
|
18317
18232
|
},{"../Token":165,"./ColumnFormatter":166}],169:[function(require,module,exports){
|
|
18318
18233
|
"use strict";
|
|
18319
18234
|
|
|
18320
|
-
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; }
|
|
18321
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18322
|
-
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); }
|
|
18323
18235
|
Object.defineProperty(exports, "__esModule", {
|
|
18324
18236
|
value: true
|
|
18325
18237
|
});
|
|
@@ -18327,9 +18239,9 @@ exports.QuotedColumnParser = void 0;
|
|
|
18327
18239
|
const ColumnFormatter_1 = require("./ColumnFormatter");
|
|
18328
18240
|
const Token_1 = require("../Token");
|
|
18329
18241
|
class QuotedColumnParser {
|
|
18242
|
+
parserOptions;
|
|
18243
|
+
columnFormatter;
|
|
18330
18244
|
constructor(parserOptions) {
|
|
18331
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18332
|
-
_defineProperty(this, "columnFormatter", void 0);
|
|
18333
18245
|
this.parserOptions = parserOptions;
|
|
18334
18246
|
this.columnFormatter = new ColumnFormatter_1.ColumnFormatter(parserOptions);
|
|
18335
18247
|
}
|
|
@@ -18348,7 +18260,7 @@ class QuotedColumnParser {
|
|
|
18348
18260
|
// if we didnt find a closing quote but we potentially have more data then skip the parsing
|
|
18349
18261
|
// and return the original scanner.
|
|
18350
18262
|
if (!scanner.hasMoreData) {
|
|
18351
|
-
throw new Error(
|
|
18263
|
+
throw new Error(`Parse Error: missing closing: '${this.parserOptions.quote || ''}' in line: at '${scanner.lineFromCursor.replace(/[\r\n]/g, "\\n'")}'`);
|
|
18352
18264
|
}
|
|
18353
18265
|
return null;
|
|
18354
18266
|
}
|
|
@@ -18414,7 +18326,7 @@ class QuotedColumnParser {
|
|
|
18414
18326
|
// if the final quote was NOT followed by a column (,) or row(\n) delimiter then its a bad column
|
|
18415
18327
|
// tldr: only part of the column was quoted
|
|
18416
18328
|
const linePreview = scanner.lineFromCursor.substr(0, 10).replace(/[\r\n]/g, "\\n'");
|
|
18417
|
-
throw new Error(
|
|
18329
|
+
throw new Error(`Parse Error: expected: '${parserOptions.escapedDelimiter}' OR new line got: '${nextNonSpaceToken.token}'. at '${linePreview}'`);
|
|
18418
18330
|
}
|
|
18419
18331
|
scanner.advanceToToken(nextNonSpaceToken);
|
|
18420
18332
|
} else if (!scanner.hasMoreData) {
|
|
@@ -18518,9 +18430,6 @@ Object.defineProperty(exports, "QuotedColumnParser", {
|
|
|
18518
18430
|
},{"./Parser":162,"./RowParser":163,"./Scanner":164,"./Token":165,"./column":170}],172:[function(require,module,exports){
|
|
18519
18431
|
"use strict";
|
|
18520
18432
|
|
|
18521
|
-
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; }
|
|
18522
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18523
|
-
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); }
|
|
18524
18433
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
18525
18434
|
return mod && mod.__esModule ? mod : {
|
|
18526
18435
|
"default": mod
|
|
@@ -18535,14 +18444,14 @@ const lodash_isfunction_1 = __importDefault(require("lodash.isfunction"));
|
|
|
18535
18444
|
const lodash_uniq_1 = __importDefault(require("lodash.uniq"));
|
|
18536
18445
|
const lodash_groupby_1 = __importDefault(require("lodash.groupby"));
|
|
18537
18446
|
class HeaderTransformer {
|
|
18447
|
+
parserOptions;
|
|
18448
|
+
headers = null;
|
|
18449
|
+
receivedHeaders = false;
|
|
18450
|
+
shouldUseFirstRow = false;
|
|
18451
|
+
processedFirstRow = false;
|
|
18452
|
+
headersLength = 0;
|
|
18453
|
+
headersTransform;
|
|
18538
18454
|
constructor(parserOptions) {
|
|
18539
|
-
_defineProperty(this, "parserOptions", void 0);
|
|
18540
|
-
_defineProperty(this, "headers", null);
|
|
18541
|
-
_defineProperty(this, "receivedHeaders", false);
|
|
18542
|
-
_defineProperty(this, "shouldUseFirstRow", false);
|
|
18543
|
-
_defineProperty(this, "processedFirstRow", false);
|
|
18544
|
-
_defineProperty(this, "headersLength", 0);
|
|
18545
|
-
_defineProperty(this, "headersTransform", void 0);
|
|
18546
18455
|
this.parserOptions = parserOptions;
|
|
18547
18456
|
if (parserOptions.headers === true) {
|
|
18548
18457
|
this.shouldUseFirstRow = true;
|
|
@@ -18597,19 +18506,19 @@ class HeaderTransformer {
|
|
|
18597
18506
|
} = this;
|
|
18598
18507
|
if (!parserOptions.discardUnmappedColumns && row.length > this.headersLength) {
|
|
18599
18508
|
if (!parserOptions.strictColumnHandling) {
|
|
18600
|
-
throw new Error(
|
|
18509
|
+
throw new Error(`Unexpected Error: column header mismatch expected: ${this.headersLength} columns got: ${row.length}`);
|
|
18601
18510
|
}
|
|
18602
18511
|
return {
|
|
18603
18512
|
row: row,
|
|
18604
18513
|
isValid: false,
|
|
18605
|
-
reason:
|
|
18514
|
+
reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`
|
|
18606
18515
|
};
|
|
18607
18516
|
}
|
|
18608
18517
|
if (parserOptions.strictColumnHandling && row.length < this.headersLength) {
|
|
18609
18518
|
return {
|
|
18610
18519
|
row: row,
|
|
18611
18520
|
isValid: false,
|
|
18612
|
-
reason:
|
|
18521
|
+
reason: `Column header mismatch expected: ${this.headersLength} columns got: ${row.length}`
|
|
18613
18522
|
};
|
|
18614
18523
|
}
|
|
18615
18524
|
return {
|
|
@@ -18638,7 +18547,6 @@ class HeaderTransformer {
|
|
|
18638
18547
|
return rowMap;
|
|
18639
18548
|
}
|
|
18640
18549
|
setHeaders(headers) {
|
|
18641
|
-
var _this$headers;
|
|
18642
18550
|
const filteredHeaders = headers.filter(h => {
|
|
18643
18551
|
return !!h;
|
|
18644
18552
|
});
|
|
@@ -18647,11 +18555,11 @@ class HeaderTransformer {
|
|
|
18647
18555
|
const duplicates = Object.keys(grouped).filter(dup => {
|
|
18648
18556
|
return grouped[dup].length > 1;
|
|
18649
18557
|
});
|
|
18650
|
-
throw new Error(
|
|
18558
|
+
throw new Error(`Duplicate headers found ${JSON.stringify(duplicates)}`);
|
|
18651
18559
|
}
|
|
18652
18560
|
this.headers = headers;
|
|
18653
18561
|
this.receivedHeaders = true;
|
|
18654
|
-
this.headersLength =
|
|
18562
|
+
this.headersLength = this.headers?.length || 0;
|
|
18655
18563
|
}
|
|
18656
18564
|
}
|
|
18657
18565
|
exports.HeaderTransformer = HeaderTransformer;
|
|
@@ -18659,9 +18567,6 @@ exports.HeaderTransformer = HeaderTransformer;
|
|
|
18659
18567
|
},{"lodash.groupby":360,"lodash.isfunction":362,"lodash.isundefined":364,"lodash.uniq":365}],173:[function(require,module,exports){
|
|
18660
18568
|
"use strict";
|
|
18661
18569
|
|
|
18662
|
-
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; }
|
|
18663
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
18664
|
-
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); }
|
|
18665
18570
|
var __importDefault = void 0 && (void 0).__importDefault || function (mod) {
|
|
18666
18571
|
return mod && mod.__esModule ? mod : {
|
|
18667
18572
|
"default": mod
|
|
@@ -18674,10 +18579,6 @@ exports.RowTransformerValidator = void 0;
|
|
|
18674
18579
|
const lodash_isfunction_1 = __importDefault(require("lodash.isfunction"));
|
|
18675
18580
|
const types_1 = require("../types");
|
|
18676
18581
|
class RowTransformerValidator {
|
|
18677
|
-
constructor() {
|
|
18678
|
-
_defineProperty(this, "_rowTransform", null);
|
|
18679
|
-
_defineProperty(this, "_rowValidator", null);
|
|
18680
|
-
}
|
|
18681
18582
|
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
18682
18583
|
static createTransform(transformFunction) {
|
|
18683
18584
|
if ((0, types_1.isSyncTransform)(transformFunction)) {
|
|
@@ -18722,6 +18623,8 @@ class RowTransformerValidator {
|
|
|
18722
18623
|
});
|
|
18723
18624
|
};
|
|
18724
18625
|
}
|
|
18626
|
+
_rowTransform = null;
|
|
18627
|
+
_rowValidator = null;
|
|
18725
18628
|
set rowTransform(transformFunction) {
|
|
18726
18629
|
if (!(0, lodash_isfunction_1.default)(transformFunction)) {
|
|
18727
18630
|
throw new TypeError('The transform should be a function');
|
|
@@ -56243,19 +56146,20 @@ function nsPairCheck(parser, prefix, uri) {
|
|
|
56243
56146
|
switch (prefix) {
|
|
56244
56147
|
case "xml":
|
|
56245
56148
|
if (uri !== XML_NAMESPACE) {
|
|
56246
|
-
parser.fail(
|
|
56149
|
+
parser.fail(`xml prefix must be bound to ${XML_NAMESPACE}.`);
|
|
56247
56150
|
}
|
|
56248
56151
|
break;
|
|
56249
56152
|
case "xmlns":
|
|
56250
56153
|
if (uri !== XMLNS_NAMESPACE) {
|
|
56251
|
-
parser.fail(
|
|
56154
|
+
parser.fail(`xmlns prefix must be bound to ${XMLNS_NAMESPACE}.`);
|
|
56252
56155
|
}
|
|
56253
56156
|
break;
|
|
56254
56157
|
default:
|
|
56255
56158
|
}
|
|
56256
56159
|
switch (uri) {
|
|
56257
56160
|
case XMLNS_NAMESPACE:
|
|
56258
|
-
parser.fail(prefix === "" ?
|
|
56161
|
+
parser.fail(prefix === "" ? `the default namespace may not be set to ${uri}.` : `may not assign a prefix (even "xmlns") to the URI \
|
|
56162
|
+
${XMLNS_NAMESPACE}.`);
|
|
56259
56163
|
break;
|
|
56260
56164
|
case XML_NAMESPACE:
|
|
56261
56165
|
switch (prefix) {
|
|
@@ -56263,7 +56167,7 @@ function nsPairCheck(parser, prefix, uri) {
|
|
|
56263
56167
|
// Assinging the XML namespace to "xml" is fine.
|
|
56264
56168
|
break;
|
|
56265
56169
|
case "":
|
|
56266
|
-
parser.fail(
|
|
56170
|
+
parser.fail(`the default namespace may not be set to ${uri}.`);
|
|
56267
56171
|
break;
|
|
56268
56172
|
default:
|
|
56269
56173
|
parser.fail("may not assign the xml namespace to another prefix.");
|
|
@@ -56479,7 +56383,7 @@ class SaxesParser {
|
|
|
56479
56383
|
if (msg.length > 0) {
|
|
56480
56384
|
msg += ":";
|
|
56481
56385
|
}
|
|
56482
|
-
msg +=
|
|
56386
|
+
msg += `${this.line}:${this.column}`;
|
|
56483
56387
|
}
|
|
56484
56388
|
if (msg.length > 0) {
|
|
56485
56389
|
msg += ": ";
|
|
@@ -56532,7 +56436,7 @@ class SaxesParser {
|
|
|
56532
56436
|
// ``Array.from`` but don't want to be dependent on Node.)
|
|
56533
56437
|
if (this.carriedFromPrevious !== undefined) {
|
|
56534
56438
|
// The previous chunk had char we must carry over.
|
|
56535
|
-
chunk =
|
|
56439
|
+
chunk = `${this.carriedFromPrevious}${chunk}`;
|
|
56536
56440
|
this.carriedFromPrevious = undefined;
|
|
56537
56441
|
}
|
|
56538
56442
|
let limit = chunk.length;
|
|
@@ -56761,7 +56665,7 @@ class SaxesParser {
|
|
|
56761
56665
|
return final;
|
|
56762
56666
|
}
|
|
56763
56667
|
if (isNLLike) {
|
|
56764
|
-
this.text +=
|
|
56668
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
56765
56669
|
start = this.i;
|
|
56766
56670
|
}
|
|
56767
56671
|
}
|
|
@@ -56787,7 +56691,7 @@ class SaxesParser {
|
|
|
56787
56691
|
let c = this.getCode();
|
|
56788
56692
|
switch (c) {
|
|
56789
56693
|
case NL_LIKE:
|
|
56790
|
-
this.text +=
|
|
56694
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
56791
56695
|
start = this.i;
|
|
56792
56696
|
c = NL;
|
|
56793
56697
|
break;
|
|
@@ -57050,7 +56954,7 @@ class SaxesParser {
|
|
|
57050
56954
|
while (true) {
|
|
57051
56955
|
switch (this.getCode()) {
|
|
57052
56956
|
case NL_LIKE:
|
|
57053
|
-
this.entity +=
|
|
56957
|
+
this.entity += `${chunk.slice(start, this.prevI)}\n`;
|
|
57054
56958
|
start = this.i;
|
|
57055
56959
|
break;
|
|
57056
56960
|
case SEMICOLON:
|
|
@@ -57162,7 +57066,7 @@ class SaxesParser {
|
|
|
57162
57066
|
(_a = this.commentHandler) === null || _a === void 0 ? void 0 : _a.call(this, this.text);
|
|
57163
57067
|
this.text = "";
|
|
57164
57068
|
} else {
|
|
57165
|
-
this.text +=
|
|
57069
|
+
this.text += `-${String.fromCodePoint(c)}`;
|
|
57166
57070
|
this.state = S_COMMENT;
|
|
57167
57071
|
}
|
|
57168
57072
|
}
|
|
@@ -57172,7 +57076,7 @@ class SaxesParser {
|
|
|
57172
57076
|
this.fail("malformed comment.");
|
|
57173
57077
|
// <!-- blah -- bloo --> will be recorded as
|
|
57174
57078
|
// a comment of " blah -- bloo "
|
|
57175
|
-
this.text +=
|
|
57079
|
+
this.text += `--${String.fromCodePoint(c)}`;
|
|
57176
57080
|
this.state = S_COMMENT;
|
|
57177
57081
|
} else {
|
|
57178
57082
|
this.state = S_TEXT;
|
|
@@ -57188,7 +57092,7 @@ class SaxesParser {
|
|
|
57188
57092
|
if (c === CLOSE_BRACKET) {
|
|
57189
57093
|
this.state = S_CDATA_ENDING_2;
|
|
57190
57094
|
} else {
|
|
57191
|
-
this.text +=
|
|
57095
|
+
this.text += `]${String.fromCodePoint(c)}`;
|
|
57192
57096
|
this.state = S_CDATA;
|
|
57193
57097
|
}
|
|
57194
57098
|
}
|
|
@@ -57208,7 +57112,7 @@ class SaxesParser {
|
|
|
57208
57112
|
this.text += "]";
|
|
57209
57113
|
break;
|
|
57210
57114
|
default:
|
|
57211
|
-
this.text +=
|
|
57115
|
+
this.text += `]]${String.fromCodePoint(c)}`;
|
|
57212
57116
|
this.state = S_CDATA;
|
|
57213
57117
|
}
|
|
57214
57118
|
}
|
|
@@ -57305,7 +57209,7 @@ class SaxesParser {
|
|
|
57305
57209
|
// ending.
|
|
57306
57210
|
this.text += "?";
|
|
57307
57211
|
} else {
|
|
57308
|
-
this.text +=
|
|
57212
|
+
this.text += `?${String.fromCodePoint(c)}`;
|
|
57309
57213
|
this.state = S_PI_BODY;
|
|
57310
57214
|
}
|
|
57311
57215
|
this.xmlDeclPossible = false;
|
|
@@ -57346,10 +57250,10 @@ class SaxesParser {
|
|
|
57346
57250
|
this.fail("did not expect any more name/value pairs.");
|
|
57347
57251
|
break;
|
|
57348
57252
|
case 1:
|
|
57349
|
-
this.fail(
|
|
57253
|
+
this.fail(`expected the name ${this.xmlDeclExpects[0]}.`);
|
|
57350
57254
|
break;
|
|
57351
57255
|
default:
|
|
57352
|
-
this.fail(
|
|
57256
|
+
this.fail(`expected one of ${this.xmlDeclExpects.join(", ")}`);
|
|
57353
57257
|
}
|
|
57354
57258
|
}
|
|
57355
57259
|
this.state = c === EQUAL ? S_XML_DECL_VALUE_START : S_XML_DECL_EQ;
|
|
@@ -57617,7 +57521,7 @@ class SaxesParser {
|
|
|
57617
57521
|
case NL:
|
|
57618
57522
|
case NL_LIKE:
|
|
57619
57523
|
case TAB:
|
|
57620
|
-
this.text +=
|
|
57524
|
+
this.text += `${chunk.slice(start, this.prevI)} `;
|
|
57621
57525
|
start = this.i;
|
|
57622
57526
|
break;
|
|
57623
57527
|
case LESS:
|
|
@@ -57771,7 +57675,7 @@ class SaxesParser {
|
|
|
57771
57675
|
break;
|
|
57772
57676
|
case NL_LIKE:
|
|
57773
57677
|
if (handler !== undefined) {
|
|
57774
|
-
this.text +=
|
|
57678
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
57775
57679
|
}
|
|
57776
57680
|
start = this.i;
|
|
57777
57681
|
forbiddenState = FORBIDDEN_START;
|
|
@@ -57836,7 +57740,7 @@ class SaxesParser {
|
|
|
57836
57740
|
break outRootLoop;
|
|
57837
57741
|
case NL_LIKE:
|
|
57838
57742
|
if (handler !== undefined) {
|
|
57839
|
-
this.text +=
|
|
57743
|
+
this.text += `${chunk.slice(start, this.prevI)}\n`;
|
|
57840
57744
|
}
|
|
57841
57745
|
start = this.i;
|
|
57842
57746
|
break;
|
|
@@ -57921,7 +57825,7 @@ class SaxesParser {
|
|
|
57921
57825
|
} = this;
|
|
57922
57826
|
while (tags.length > 0) {
|
|
57923
57827
|
const tag = tags.pop();
|
|
57924
|
-
this.fail(
|
|
57828
|
+
this.fail(`unclosed tag: ${tag.name}`);
|
|
57925
57829
|
}
|
|
57926
57830
|
if (this.state !== S_BEGIN && this.state !== S_TEXT) {
|
|
57927
57831
|
this.fail("unexpected end.");
|
|
@@ -57987,7 +57891,7 @@ class SaxesParser {
|
|
|
57987
57891
|
const local = name.slice(colon + 1);
|
|
57988
57892
|
const prefix = name.slice(0, colon);
|
|
57989
57893
|
if (prefix === "" || local === "" || local.includes(":")) {
|
|
57990
|
-
this.fail(
|
|
57894
|
+
this.fail(`malformed name: ${name}.`);
|
|
57991
57895
|
}
|
|
57992
57896
|
return {
|
|
57993
57897
|
prefix,
|
|
@@ -58014,7 +57918,7 @@ class SaxesParser {
|
|
|
58014
57918
|
this.fail("tags may not have \"xmlns\" as prefix.");
|
|
58015
57919
|
}
|
|
58016
57920
|
if (uri === "") {
|
|
58017
|
-
this.fail(
|
|
57921
|
+
this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);
|
|
58018
57922
|
tag.uri = prefix;
|
|
58019
57923
|
}
|
|
58020
57924
|
}
|
|
@@ -58044,13 +57948,13 @@ class SaxesParser {
|
|
|
58044
57948
|
// if there's any attributes with an undefined namespace,
|
|
58045
57949
|
// then fail on them now.
|
|
58046
57950
|
if (uri === undefined) {
|
|
58047
|
-
this.fail(
|
|
57951
|
+
this.fail(`unbound namespace prefix: ${JSON.stringify(prefix)}.`);
|
|
58048
57952
|
uri = prefix;
|
|
58049
57953
|
}
|
|
58050
|
-
eqname =
|
|
57954
|
+
eqname = `{${uri}}${local}`;
|
|
58051
57955
|
}
|
|
58052
57956
|
if (seen.has(eqname)) {
|
|
58053
|
-
this.fail(
|
|
57957
|
+
this.fail(`duplicate attribute: ${eqname}.`);
|
|
58054
57958
|
}
|
|
58055
57959
|
seen.add(eqname);
|
|
58056
57960
|
attr.uri = uri;
|
|
@@ -58069,7 +57973,7 @@ class SaxesParser {
|
|
|
58069
57973
|
value
|
|
58070
57974
|
} of attribList) {
|
|
58071
57975
|
if (attributes[name] !== undefined) {
|
|
58072
|
-
this.fail(
|
|
57976
|
+
this.fail(`duplicate attribute: ${name}.`);
|
|
58073
57977
|
}
|
|
58074
57978
|
attributes[name] = value;
|
|
58075
57979
|
}
|
|
@@ -58156,8 +58060,8 @@ class SaxesParser {
|
|
|
58156
58060
|
if (l === 0) {
|
|
58157
58061
|
this.closedRoot = true;
|
|
58158
58062
|
} else if (l < 0) {
|
|
58159
|
-
this.fail(
|
|
58160
|
-
this.text +=
|
|
58063
|
+
this.fail(`unmatched closing tag: ${name}.`);
|
|
58064
|
+
this.text += `</${name}>`;
|
|
58161
58065
|
}
|
|
58162
58066
|
}
|
|
58163
58067
|
/**
|
|
@@ -58176,7 +58080,7 @@ class SaxesParser {
|
|
|
58176
58080
|
return defined;
|
|
58177
58081
|
}
|
|
58178
58082
|
this.fail(this.isName(entity) ? "undefined entity." : "disallowed character in entity name.");
|
|
58179
|
-
return
|
|
58083
|
+
return `&${entity};`;
|
|
58180
58084
|
}
|
|
58181
58085
|
let num = NaN;
|
|
58182
58086
|
if (entity[1] === "x" && /^#x[0-9a-f]+$/i.test(entity)) {
|
|
@@ -58187,7 +58091,7 @@ class SaxesParser {
|
|
|
58187
58091
|
// The character reference is required to match the CHAR production.
|
|
58188
58092
|
if (!this.isChar(num)) {
|
|
58189
58093
|
this.fail("malformed character entity.");
|
|
58190
|
-
return
|
|
58094
|
+
return `&${entity};`;
|
|
58191
58095
|
}
|
|
58192
58096
|
return String.fromCodePoint(num);
|
|
58193
58097
|
}
|