@cj-tech-master/excelts 5.0.6 → 5.1.0
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/browser/index.browser.d.ts +1 -1
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/modules/archive/unzip/stream.base.js +19 -19
- package/dist/browser/modules/archive/unzip/stream.browser.js +3 -3
- package/dist/browser/modules/csv/csv-core.js +6 -3
- package/dist/browser/modules/csv/csv.browser.js +2 -2
- package/dist/browser/modules/csv/csv.js +1 -1
- package/dist/browser/modules/excel/anchor.js +4 -4
- package/dist/browser/modules/excel/cell.js +5 -5
- package/dist/browser/modules/excel/column.js +4 -4
- package/dist/browser/modules/excel/defined-names.js +1 -1
- package/dist/browser/modules/excel/form-control.js +1 -1
- package/dist/browser/modules/excel/pivot-table.d.ts +168 -17
- package/dist/browser/modules/excel/pivot-table.js +278 -70
- package/dist/browser/modules/excel/row.js +4 -4
- package/dist/browser/modules/excel/stream/workbook-reader.browser.js +4 -4
- package/dist/browser/modules/excel/stream/workbook-writer.browser.js +4 -4
- package/dist/browser/modules/excel/stream/worksheet-reader.js +1 -1
- package/dist/browser/modules/excel/stream/worksheet-writer.js +4 -4
- package/dist/browser/modules/excel/table.js +2 -2
- package/dist/browser/modules/excel/types.d.ts +0 -4
- package/dist/browser/modules/excel/utils/cell-format.js +3 -3
- package/dist/browser/modules/excel/utils/shared-formula.js +1 -1
- package/dist/browser/modules/excel/utils/stream-buf.js +2 -2
- package/dist/browser/modules/excel/utils/string-buf.js +1 -1
- package/dist/browser/modules/excel/workbook.d.ts +0 -2
- package/dist/browser/modules/excel/workbook.js +4 -5
- package/dist/browser/modules/excel/worksheet.js +9 -9
- package/dist/browser/modules/excel/xlsx/xform/base-xform.d.ts +5 -5
- package/dist/browser/modules/excel/xlsx/xform/base-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/book/defined-name-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-view-xform.js +4 -4
- package/dist/browser/modules/excel/xlsx/xform/book/workbook-xform.js +16 -4
- package/dist/browser/modules/excel/xlsx/xform/comment/comment-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/comment/comments-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-position-xform.d.ts +3 -4
- package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-position-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/comment/style/vml-protection-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-notes-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/comment/vml-textbox-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/composite-xform.d.ts +1 -1
- package/dist/browser/modules/excel/xlsx/xform/core/app-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/core/content-types-xform.js +24 -11
- package/dist/browser/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/blip-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/drawing/cell-position-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/drawing/ext-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/drawing/ext-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/drawing/vml-drawing-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/list-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/list-xform.js +3 -3
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.d.ts +5 -15
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +134 -52
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field.d.ts +14 -15
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/cache-field.js +244 -70
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +13 -29
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +213 -37
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +7 -34
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +143 -41
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +101 -27
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +793 -408
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/raw-xml-collector.d.ts +78 -0
- package/dist/browser/modules/excel/xlsx/xform/pivot-table/raw-xml-collector.js +149 -0
- package/dist/browser/modules/excel/xlsx/xform/sheet/cell-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/sheet/col-xform.js +3 -3
- package/dist/browser/modules/excel/xlsx/xform/sheet/data-validations-xform.js +3 -3
- package/dist/browser/modules/excel/xlsx/xform/sheet/header-footer-xform.js +6 -6
- package/dist/browser/modules/excel/xlsx/xform/sheet/page-setup-xform.js +11 -11
- package/dist/browser/modules/excel/xlsx/xform/sheet/row-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.js +3 -3
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/sheet/sheet-view-xform.js +10 -10
- package/dist/browser/modules/excel/xlsx/xform/sheet/worksheet-xform.js +12 -12
- package/dist/browser/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +2 -2
- package/dist/browser/modules/excel/xlsx/xform/style/color-xform.js +1 -1
- package/dist/browser/modules/excel/xlsx/xform/style/style-xform.js +5 -5
- package/dist/browser/modules/excel/xlsx/xform/table/auto-filter-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/table/custom-filter-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/table/filter-column-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/table/filter-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/table/table-column-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/table/table-style-info-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xform/table/table-xform.d.ts +1 -2
- package/dist/browser/modules/excel/xlsx/xlsx.browser.d.ts +5 -2
- package/dist/browser/modules/excel/xlsx/xlsx.browser.js +88 -54
- package/dist/browser/utils/env.d.ts +0 -5
- package/dist/browser/utils/env.js +0 -7
- package/dist/browser/utils/utils.base.d.ts +8 -13
- package/dist/browser/utils/utils.base.js +40 -47
- package/dist/browser/utils/utils.browser.d.ts +1 -1
- package/dist/browser/utils/utils.browser.js +1 -1
- package/dist/browser/utils/utils.d.ts +1 -1
- package/dist/browser/utils/utils.js +1 -1
- package/dist/cjs/modules/archive/unzip/stream.base.js +19 -19
- package/dist/cjs/modules/archive/unzip/stream.browser.js +3 -3
- package/dist/cjs/modules/csv/csv-core.js +6 -3
- package/dist/cjs/modules/csv/csv.browser.js +2 -2
- package/dist/cjs/modules/csv/csv.js +1 -1
- package/dist/cjs/modules/excel/anchor.js +4 -4
- package/dist/cjs/modules/excel/cell.js +5 -5
- package/dist/cjs/modules/excel/column.js +4 -4
- package/dist/cjs/modules/excel/defined-names.js +1 -1
- package/dist/cjs/modules/excel/form-control.js +1 -1
- package/dist/cjs/modules/excel/pivot-table.js +280 -70
- package/dist/cjs/modules/excel/row.js +4 -4
- package/dist/cjs/modules/excel/stream/workbook-reader.browser.js +4 -4
- package/dist/cjs/modules/excel/stream/workbook-writer.browser.js +4 -4
- package/dist/cjs/modules/excel/stream/worksheet-reader.js +1 -1
- package/dist/cjs/modules/excel/stream/worksheet-writer.js +4 -4
- package/dist/cjs/modules/excel/table.js +2 -2
- package/dist/cjs/modules/excel/utils/cell-format.js +3 -3
- package/dist/cjs/modules/excel/utils/shared-formula.js +1 -1
- package/dist/cjs/modules/excel/utils/stream-buf.js +2 -2
- package/dist/cjs/modules/excel/utils/string-buf.js +1 -1
- package/dist/cjs/modules/excel/workbook.js +4 -5
- package/dist/cjs/modules/excel/worksheet.js +9 -9
- package/dist/cjs/modules/excel/xlsx/xform/base-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/book/defined-name-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/book/workbook-view-xform.js +4 -4
- package/dist/cjs/modules/excel/xlsx/xform/book/workbook-xform.js +16 -4
- package/dist/cjs/modules/excel/xlsx/xform/comment/style/vml-position-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/comment/style/vml-protection-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/comment/vml-textbox-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/core/app-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/core/content-types-xform.js +24 -11
- package/dist/cjs/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/ext-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/list-xform.js +3 -3
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +133 -51
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/cache-field.js +245 -71
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +212 -36
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +142 -40
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +793 -408
- package/dist/cjs/modules/excel/xlsx/xform/pivot-table/raw-xml-collector.js +153 -0
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cell-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/sheet/col-xform.js +3 -3
- package/dist/cjs/modules/excel/xlsx/xform/sheet/data-validations-xform.js +3 -3
- package/dist/cjs/modules/excel/xlsx/xform/sheet/header-footer-xform.js +6 -6
- package/dist/cjs/modules/excel/xlsx/xform/sheet/page-setup-xform.js +11 -11
- package/dist/cjs/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.js +3 -3
- package/dist/cjs/modules/excel/xlsx/xform/sheet/sheet-view-xform.js +10 -10
- package/dist/cjs/modules/excel/xlsx/xform/sheet/worksheet-xform.js +12 -12
- package/dist/cjs/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +2 -2
- package/dist/cjs/modules/excel/xlsx/xform/style/color-xform.js +1 -1
- package/dist/cjs/modules/excel/xlsx/xform/style/style-xform.js +5 -5
- package/dist/cjs/modules/excel/xlsx/xlsx.browser.js +88 -54
- package/dist/cjs/utils/env.js +0 -8
- package/dist/cjs/utils/utils.base.js +41 -54
- package/dist/cjs/utils/utils.browser.js +2 -7
- package/dist/cjs/utils/utils.js +2 -7
- package/dist/esm/modules/archive/unzip/stream.base.js +19 -19
- package/dist/esm/modules/archive/unzip/stream.browser.js +3 -3
- package/dist/esm/modules/csv/csv-core.js +6 -3
- package/dist/esm/modules/csv/csv.browser.js +2 -2
- package/dist/esm/modules/csv/csv.js +1 -1
- package/dist/esm/modules/excel/anchor.js +4 -4
- package/dist/esm/modules/excel/cell.js +5 -5
- package/dist/esm/modules/excel/column.js +4 -4
- package/dist/esm/modules/excel/defined-names.js +1 -1
- package/dist/esm/modules/excel/form-control.js +1 -1
- package/dist/esm/modules/excel/pivot-table.js +278 -70
- package/dist/esm/modules/excel/row.js +4 -4
- package/dist/esm/modules/excel/stream/workbook-reader.browser.js +4 -4
- package/dist/esm/modules/excel/stream/workbook-writer.browser.js +4 -4
- package/dist/esm/modules/excel/stream/worksheet-reader.js +1 -1
- package/dist/esm/modules/excel/stream/worksheet-writer.js +4 -4
- package/dist/esm/modules/excel/table.js +2 -2
- package/dist/esm/modules/excel/utils/cell-format.js +3 -3
- package/dist/esm/modules/excel/utils/shared-formula.js +1 -1
- package/dist/esm/modules/excel/utils/stream-buf.js +2 -2
- package/dist/esm/modules/excel/utils/string-buf.js +1 -1
- package/dist/esm/modules/excel/workbook.js +4 -5
- package/dist/esm/modules/excel/worksheet.js +9 -9
- package/dist/esm/modules/excel/xlsx/xform/base-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/book/defined-name-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/book/workbook-view-xform.js +4 -4
- package/dist/esm/modules/excel/xlsx/xform/book/workbook-xform.js +16 -4
- package/dist/esm/modules/excel/xlsx/xform/comment/style/vml-position-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/comment/style/vml-protection-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/comment/vml-shape-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/comment/vml-textbox-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/core/app-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/core/content-types-xform.js +24 -11
- package/dist/esm/modules/excel/xlsx/xform/drawing/base-cell-anchor-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/ext-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/drawing/one-cell-anchor-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/drawing/two-cell-anchor-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/list-xform.js +3 -3
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/cache-field-xform.js +134 -52
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/cache-field.js +244 -70
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.js +213 -37
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.js +143 -41
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.js +793 -408
- package/dist/esm/modules/excel/xlsx/xform/pivot-table/raw-xml-collector.js +149 -0
- package/dist/esm/modules/excel/xlsx/xform/sheet/cell-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf/cf-rule-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf/conditional-formattings-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/cf-ext/cf-rule-ext-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/sheet/col-xform.js +3 -3
- package/dist/esm/modules/excel/xlsx/xform/sheet/data-validations-xform.js +3 -3
- package/dist/esm/modules/excel/xlsx/xform/sheet/header-footer-xform.js +6 -6
- package/dist/esm/modules/excel/xlsx/xform/sheet/page-setup-xform.js +11 -11
- package/dist/esm/modules/excel/xlsx/xform/sheet/sheet-format-properties-xform.js +3 -3
- package/dist/esm/modules/excel/xlsx/xform/sheet/sheet-view-xform.js +10 -10
- package/dist/esm/modules/excel/xlsx/xform/sheet/worksheet-xform.js +12 -12
- package/dist/esm/modules/excel/xlsx/xform/strings/phonetic-text-xform.js +2 -2
- package/dist/esm/modules/excel/xlsx/xform/style/color-xform.js +1 -1
- package/dist/esm/modules/excel/xlsx/xform/style/style-xform.js +5 -5
- package/dist/esm/modules/excel/xlsx/xlsx.browser.js +88 -54
- package/dist/esm/utils/env.js +0 -7
- package/dist/esm/utils/utils.base.js +40 -47
- package/dist/esm/utils/utils.browser.js +1 -1
- package/dist/esm/utils/utils.js +1 -1
- package/dist/iife/excelts.iife.js +1553 -718
- package/dist/iife/excelts.iife.js.map +1 -1
- package/dist/iife/excelts.iife.min.js +36 -105
- package/dist/types/index.browser.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/modules/excel/pivot-table.d.ts +168 -17
- package/dist/types/modules/excel/types.d.ts +0 -4
- package/dist/types/modules/excel/workbook.d.ts +0 -2
- package/dist/types/modules/excel/xlsx/xform/base-xform.d.ts +5 -5
- package/dist/types/modules/excel/xlsx/xform/comment/comment-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/comment/comments-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/comment/style/vml-position-xform.d.ts +3 -4
- package/dist/types/modules/excel/xlsx/xform/comment/vml-client-data-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/comment/vml-notes-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/comment/vml-textbox-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/composite-xform.d.ts +1 -1
- package/dist/types/modules/excel/xlsx/xform/drawing/blip-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/drawing/cell-position-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/drawing/ctrl-prop-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/drawing/drawing-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/drawing/ext-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/drawing/vml-drawing-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/list-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/pivot-table/cache-field-xform.d.ts +5 -15
- package/dist/types/modules/excel/xlsx/xform/pivot-table/cache-field.d.ts +14 -15
- package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-cache-definition-xform.d.ts +13 -29
- package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-cache-records-xform.d.ts +7 -34
- package/dist/types/modules/excel/xlsx/xform/pivot-table/pivot-table-xform.d.ts +101 -27
- package/dist/types/modules/excel/xlsx/xform/pivot-table/raw-xml-collector.d.ts +78 -0
- package/dist/types/modules/excel/xlsx/xform/sheet/row-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/sheet/sheet-view-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/table/auto-filter-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/table/custom-filter-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/table/filter-column-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/table/filter-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/table/table-column-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/table/table-style-info-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xform/table/table-xform.d.ts +1 -2
- package/dist/types/modules/excel/xlsx/xlsx.browser.d.ts +5 -2
- package/dist/types/utils/env.d.ts +0 -5
- package/dist/types/utils/utils.base.d.ts +8 -13
- package/dist/types/utils/utils.browser.d.ts +1 -1
- package/dist/types/utils/utils.d.ts +1 -1
- package/package.json +1 -1
|
@@ -132,7 +132,7 @@ class StreamBuf extends EventEmitter {
|
|
|
132
132
|
this._asyncWriteQueue = Promise.resolve();
|
|
133
133
|
this.bufSize = options?.bufSize || 1024 * 1024;
|
|
134
134
|
this.buffers = [];
|
|
135
|
-
this.batch = options?.batch
|
|
135
|
+
this.batch = options?.batch ?? false;
|
|
136
136
|
this.corked = false;
|
|
137
137
|
this.paused = false;
|
|
138
138
|
this.encoding = null;
|
|
@@ -345,7 +345,7 @@ class StreamBuf extends EventEmitter {
|
|
|
345
345
|
* Cross-platform compatible - works identically in Node.js and Browser.
|
|
346
346
|
*/
|
|
347
347
|
readString(encoding) {
|
|
348
|
-
const enc = encoding
|
|
348
|
+
const enc = encoding ?? this.encoding ?? "utf-8";
|
|
349
349
|
const buf = this.read();
|
|
350
350
|
if (typeof Buffer !== "undefined" && buf instanceof Buffer) {
|
|
351
351
|
return buf.toString(enc);
|
|
@@ -52,8 +52,6 @@ export interface WorkbookModel {
|
|
|
52
52
|
themes?: unknown;
|
|
53
53
|
media: WorkbookMedia[];
|
|
54
54
|
pivotTables: PivotTable[];
|
|
55
|
-
/** Loaded pivot tables from file - used during reconciliation */
|
|
56
|
-
loadedPivotTables?: any[];
|
|
57
55
|
calcProperties: Partial<CalculationProperties>;
|
|
58
56
|
/** Passthrough files (charts, etc.) preserved for round-trip */
|
|
59
57
|
passthrough?: Record<string, Uint8Array>;
|
|
@@ -230,8 +230,8 @@ class Workbook {
|
|
|
230
230
|
// ===========================================================================
|
|
231
231
|
get model() {
|
|
232
232
|
return {
|
|
233
|
-
creator: this.creator
|
|
234
|
-
lastModifiedBy: this.lastModifiedBy
|
|
233
|
+
creator: this.creator ?? "Unknown",
|
|
234
|
+
lastModifiedBy: this.lastModifiedBy ?? "Unknown",
|
|
235
235
|
lastPrinted: this.lastPrinted,
|
|
236
236
|
created: this.created,
|
|
237
237
|
modified: this.modified,
|
|
@@ -293,10 +293,9 @@ class Workbook {
|
|
|
293
293
|
this._definedNames.model = value.definedNames;
|
|
294
294
|
this.views = value.views;
|
|
295
295
|
this._themes = value.themes;
|
|
296
|
-
this.media = value.media
|
|
296
|
+
this.media = value.media ?? [];
|
|
297
297
|
// Handle pivot tables - either newly created or loaded from file
|
|
298
|
-
|
|
299
|
-
this.pivotTables = value.pivotTables || value.loadedPivotTables || [];
|
|
298
|
+
this.pivotTables = value.pivotTables ?? [];
|
|
300
299
|
// Preserve passthrough files (charts, etc.) for round-trip preservation
|
|
301
300
|
this._passthrough = value.passthrough || {};
|
|
302
301
|
// Preserve raw drawing data for drawings with chart references
|
|
@@ -21,12 +21,12 @@ class Worksheet {
|
|
|
21
21
|
options = options || {};
|
|
22
22
|
this._workbook = options.workbook;
|
|
23
23
|
// in a workbook, each sheet will have a number
|
|
24
|
-
this.id = options.id
|
|
25
|
-
this.orderNo = options.orderNo
|
|
24
|
+
this.id = options.id ?? 0;
|
|
25
|
+
this.orderNo = options.orderNo ?? 0;
|
|
26
26
|
// and a name - use the setter to ensure validation and truncation
|
|
27
27
|
this.name = options.name || `sheet${this.id}`;
|
|
28
28
|
// add a state
|
|
29
|
-
this.state = options.state
|
|
29
|
+
this.state = options.state ?? "visible";
|
|
30
30
|
// rows allows access organised by row. Sparse array of arrays indexed by row-1, col
|
|
31
31
|
// Note: _rows is zero based. Must subtract 1 to go from cell.row to index
|
|
32
32
|
this._rows = [];
|
|
@@ -86,8 +86,8 @@ class Worksheet {
|
|
|
86
86
|
}, options.headerFooter);
|
|
87
87
|
this.dataValidations = new DataValidations();
|
|
88
88
|
// for freezepanes, split, zoom, gridlines, etc
|
|
89
|
-
this.views = options.views
|
|
90
|
-
this.autoFilter = options.autoFilter
|
|
89
|
+
this.views = options.views ?? [];
|
|
90
|
+
this.autoFilter = options.autoFilter ?? null;
|
|
91
91
|
// for images, etc
|
|
92
92
|
this._media = [];
|
|
93
93
|
// worksheet protection
|
|
@@ -250,7 +250,7 @@ class Worksheet {
|
|
|
250
250
|
if (inserts.length > 0) {
|
|
251
251
|
// must iterate over all rows whether they exist yet or not
|
|
252
252
|
for (let i = 0; i < nRows; i++) {
|
|
253
|
-
const insertValues = inserts.map(insert => insert[i]
|
|
253
|
+
const insertValues = inserts.map(insert => insert[i] ?? null);
|
|
254
254
|
const row = this.getRow(i + 1);
|
|
255
255
|
row.splice(start, count, ...insertValues);
|
|
256
256
|
}
|
|
@@ -930,7 +930,7 @@ class Worksheet {
|
|
|
930
930
|
};
|
|
931
931
|
// =================================================
|
|
932
932
|
// columns
|
|
933
|
-
model.cols = Column.toModel(this.columns
|
|
933
|
+
model.cols = Column.toModel(this.columns ?? []);
|
|
934
934
|
// ==========================================================
|
|
935
935
|
// Rows
|
|
936
936
|
const rows = (model.rows = []);
|
|
@@ -978,8 +978,8 @@ class Worksheet {
|
|
|
978
978
|
this.properties = value.properties;
|
|
979
979
|
this.pageSetup = value.pageSetup;
|
|
980
980
|
this.headerFooter = value.headerFooter;
|
|
981
|
-
this.rowBreaks = value.rowBreaks
|
|
982
|
-
this.colBreaks = value.colBreaks
|
|
981
|
+
this.rowBreaks = value.rowBreaks ?? [];
|
|
982
|
+
this.colBreaks = value.colBreaks ?? [];
|
|
983
983
|
this.views = value.views;
|
|
984
984
|
this.autoFilter = value.autoFilter;
|
|
985
985
|
this._media = value.media.map(medium => new Image(this, medium));
|
|
@@ -3,11 +3,11 @@ interface ParseEvent {
|
|
|
3
3
|
eventType: string;
|
|
4
4
|
value: any;
|
|
5
5
|
}
|
|
6
|
-
declare class BaseXform {
|
|
6
|
+
declare class BaseXform<TModel = any> {
|
|
7
7
|
map?: {
|
|
8
8
|
[key: string]: any;
|
|
9
9
|
};
|
|
10
|
-
model?:
|
|
10
|
+
model?: TModel;
|
|
11
11
|
prepare(_model?: any, _options?: any): void;
|
|
12
12
|
render(_xmlStream?: XmlStream, _model?: any): void;
|
|
13
13
|
parseOpen(_node: any): void;
|
|
@@ -16,10 +16,10 @@ declare class BaseXform {
|
|
|
16
16
|
reconcile(_model: any, _options?: any): void;
|
|
17
17
|
reset(): void;
|
|
18
18
|
mergeModel(obj: any): void;
|
|
19
|
-
parse(saxParser: AsyncIterable<ParseEvent[]>): Promise<
|
|
20
|
-
parseStream(stream: any): Promise<
|
|
19
|
+
parse(saxParser: AsyncIterable<ParseEvent[]>): Promise<TModel | undefined>;
|
|
20
|
+
parseStream(stream: any): Promise<TModel | undefined>;
|
|
21
21
|
get xml(): string;
|
|
22
|
-
toXml(model
|
|
22
|
+
toXml(model?: any): string;
|
|
23
23
|
static toAttribute(value: any, dflt?: any, always?: boolean): string | undefined;
|
|
24
24
|
static toStringAttribute(value: any, dflt?: any, always?: boolean): string | undefined;
|
|
25
25
|
static toStringValue(attr: any, dflt?: any): any;
|
|
@@ -62,7 +62,7 @@ class BaseXform {
|
|
|
62
62
|
// ============================================================
|
|
63
63
|
reset() {
|
|
64
64
|
// to make sure parses don't bleed to next iteration
|
|
65
|
-
this.model =
|
|
65
|
+
this.model = undefined;
|
|
66
66
|
// if we have a map - reset them too
|
|
67
67
|
if (this.map) {
|
|
68
68
|
Object.values(this.map).forEach(xform => {
|
|
@@ -57,7 +57,7 @@ function isValidRange(range) {
|
|
|
57
57
|
return false;
|
|
58
58
|
}
|
|
59
59
|
// Extract the cell reference part (after the sheet name if present)
|
|
60
|
-
const cellRef = range.split("!").pop()
|
|
60
|
+
const cellRef = range.split("!").pop() ?? "";
|
|
61
61
|
// Must match one of the valid patterns
|
|
62
62
|
if (!cellRangeRegexp.test(cellRef) &&
|
|
63
63
|
!rowRangeRegexp.test(cellRef) &&
|
|
@@ -93,7 +93,7 @@ function extractRanges(parsedText) {
|
|
|
93
93
|
if (!item) {
|
|
94
94
|
return;
|
|
95
95
|
}
|
|
96
|
-
const quotes = (item.match(/'/g)
|
|
96
|
+
const quotes = (item.match(/'/g) ?? []).length;
|
|
97
97
|
if (!quotes) {
|
|
98
98
|
if (quotesOpened) {
|
|
99
99
|
last += `${item},`;
|
|
@@ -2,10 +2,10 @@ import { BaseXform } from "../base-xform.js";
|
|
|
2
2
|
class WorkbookViewXform extends BaseXform {
|
|
3
3
|
render(xmlStream, model) {
|
|
4
4
|
const attributes = {
|
|
5
|
-
xWindow: model.x
|
|
6
|
-
yWindow: model.y
|
|
7
|
-
windowWidth: model.width
|
|
8
|
-
windowHeight: model.height
|
|
5
|
+
xWindow: model.x ?? 0,
|
|
6
|
+
yWindow: model.y ?? 0,
|
|
7
|
+
windowWidth: model.width ?? 12000,
|
|
8
|
+
windowHeight: model.height ?? 24000,
|
|
9
9
|
firstSheet: model.firstSheet,
|
|
10
10
|
activeTab: model.activeTab
|
|
11
11
|
};
|
|
@@ -74,7 +74,7 @@ class WorkbookXform extends BaseXform {
|
|
|
74
74
|
if (printAreas.length) {
|
|
75
75
|
model.definedNames = model.definedNames.concat(printAreas);
|
|
76
76
|
}
|
|
77
|
-
(model.media
|
|
77
|
+
(model.media ?? []).forEach((medium, i) => {
|
|
78
78
|
// assign name
|
|
79
79
|
medium.name = medium.type + (i + 1);
|
|
80
80
|
});
|
|
@@ -88,7 +88,19 @@ class WorkbookXform extends BaseXform {
|
|
|
88
88
|
this.map.sheets.render(xmlStream, model.sheets);
|
|
89
89
|
this.map.definedNames.render(xmlStream, model.definedNames);
|
|
90
90
|
this.map.calcPr.render(xmlStream, model.calcProperties);
|
|
91
|
-
|
|
91
|
+
// R9-B6: Deduplicate pivot caches by cacheId before rendering.
|
|
92
|
+
// Multiple pivot tables may share the same cache, but workbook.xml should
|
|
93
|
+
// only list each cache once in <pivotCaches>.
|
|
94
|
+
const pivotTables = model.pivotTables ?? [];
|
|
95
|
+
const seenCacheIds = new Set();
|
|
96
|
+
const uniquePivotCaches = pivotTables.filter((pt) => {
|
|
97
|
+
if (seenCacheIds.has(pt.cacheId)) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
seenCacheIds.add(pt.cacheId);
|
|
101
|
+
return true;
|
|
102
|
+
});
|
|
103
|
+
this.map.pivotCaches.render(xmlStream, uniquePivotCaches);
|
|
92
104
|
xmlStream.closeNode();
|
|
93
105
|
}
|
|
94
106
|
parseOpen(node) {
|
|
@@ -140,7 +152,7 @@ class WorkbookXform extends BaseXform {
|
|
|
140
152
|
}
|
|
141
153
|
}
|
|
142
154
|
reconcile(model) {
|
|
143
|
-
const rels = (model.workbookRels
|
|
155
|
+
const rels = (model.workbookRels ?? []).reduce((map, rel) => {
|
|
144
156
|
map[rel.Id] = rel;
|
|
145
157
|
return map;
|
|
146
158
|
}, {});
|
|
@@ -148,7 +160,7 @@ class WorkbookXform extends BaseXform {
|
|
|
148
160
|
const worksheets = [];
|
|
149
161
|
let worksheet;
|
|
150
162
|
let index = 0;
|
|
151
|
-
(model.sheets
|
|
163
|
+
(model.sheets ?? []).forEach((sheet) => {
|
|
152
164
|
const rel = rels[sheet.rId];
|
|
153
165
|
if (!rel) {
|
|
154
166
|
return;
|
|
@@ -13,8 +13,7 @@ interface CommentModel {
|
|
|
13
13
|
ref: string;
|
|
14
14
|
authorId?: number;
|
|
15
15
|
}
|
|
16
|
-
declare class CommentXform extends BaseXform {
|
|
17
|
-
model: CommentModel;
|
|
16
|
+
declare class CommentXform extends BaseXform<CommentModel> {
|
|
18
17
|
parser: any;
|
|
19
18
|
private _richTextXform?;
|
|
20
19
|
constructor(model?: CommentModel);
|
|
@@ -3,12 +3,11 @@ import { CommentXform } from "@excel/xlsx/xform/comment/comment-xform";
|
|
|
3
3
|
interface CommentsModel {
|
|
4
4
|
comments: any[];
|
|
5
5
|
}
|
|
6
|
-
declare class CommentsXform extends BaseXform {
|
|
6
|
+
declare class CommentsXform extends BaseXform<CommentsModel> {
|
|
7
7
|
map: {
|
|
8
8
|
[key: string]: CommentXform;
|
|
9
9
|
};
|
|
10
10
|
parser: any;
|
|
11
|
-
model: CommentsModel;
|
|
12
11
|
constructor();
|
|
13
12
|
render(xmlStream: any, model?: CommentsModel): void;
|
|
14
13
|
parseOpen(node: any): boolean;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { BaseXform } from "@excel/xlsx/xform/base-xform";
|
|
2
|
-
declare class VmlPositionXform extends BaseXform
|
|
2
|
+
declare class VmlPositionXform extends BaseXform<{
|
|
3
|
+
[key: string]: boolean;
|
|
4
|
+
}> {
|
|
3
5
|
private _model;
|
|
4
|
-
model: {
|
|
5
|
-
[key: string]: boolean;
|
|
6
|
-
};
|
|
7
6
|
constructor(model?: {
|
|
8
7
|
tag?: string;
|
|
9
8
|
});
|
|
@@ -18,12 +18,11 @@ interface RenderModel {
|
|
|
18
18
|
col: number;
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
declare class VmlClientDataXform extends BaseXform {
|
|
21
|
+
declare class VmlClientDataXform extends BaseXform<ClientDataModel> {
|
|
22
22
|
map: {
|
|
23
23
|
[key: string]: any;
|
|
24
24
|
};
|
|
25
25
|
parser: any;
|
|
26
|
-
model: ClientDataModel;
|
|
27
26
|
constructor();
|
|
28
27
|
get tag(): string;
|
|
29
28
|
render(xmlStream: any, model: RenderModel): void;
|
|
@@ -2,12 +2,11 @@ import { BaseXform } from "@excel/xlsx/xform/base-xform";
|
|
|
2
2
|
interface VmlNotesModel {
|
|
3
3
|
comments: any[];
|
|
4
4
|
}
|
|
5
|
-
declare class VmlNotesXform extends BaseXform {
|
|
5
|
+
declare class VmlNotesXform extends BaseXform<VmlNotesModel> {
|
|
6
6
|
map: {
|
|
7
7
|
[key: string]: any;
|
|
8
8
|
};
|
|
9
9
|
parser: any;
|
|
10
|
-
model: VmlNotesModel;
|
|
11
10
|
constructor();
|
|
12
11
|
get tag(): string;
|
|
13
12
|
render(xmlStream: any, model?: VmlNotesModel): void;
|
|
@@ -13,7 +13,7 @@ class VmlShapeXform extends BaseXform {
|
|
|
13
13
|
return "v:shape";
|
|
14
14
|
}
|
|
15
15
|
render(xmlStream, model, index) {
|
|
16
|
-
xmlStream.openNode("v:shape", VmlShapeXform.V_SHAPE_ATTRIBUTES(model, index
|
|
16
|
+
xmlStream.openNode("v:shape", VmlShapeXform.V_SHAPE_ATTRIBUTES(model, index ?? 0));
|
|
17
17
|
xmlStream.leafNode("v:fill", { color2: "infoBackground [80]" });
|
|
18
18
|
xmlStream.leafNode("v:shadow", { color: "none [81]", obscured: "t" });
|
|
19
19
|
xmlStream.leafNode("v:path", { "o:connecttype": "none" });
|
|
@@ -9,8 +9,7 @@ interface TextboxModel {
|
|
|
9
9
|
note?: NoteModel;
|
|
10
10
|
inset?: number[];
|
|
11
11
|
}
|
|
12
|
-
declare class VmlTextboxXform extends BaseXform {
|
|
13
|
-
model: TextboxModel;
|
|
12
|
+
declare class VmlTextboxXform extends BaseXform<TextboxModel> {
|
|
14
13
|
constructor();
|
|
15
14
|
get tag(): string;
|
|
16
15
|
conversionUnit(value: string | number, multiple: number, unit: string): string;
|
|
@@ -11,7 +11,7 @@ class VmlTextboxXform extends BaseXform {
|
|
|
11
11
|
return `${(parseFloat(value.toString()) * multiple).toFixed(2)}${unit}`;
|
|
12
12
|
}
|
|
13
13
|
reverseConversionUnit(inset) {
|
|
14
|
-
return (inset
|
|
14
|
+
return (inset ?? "").split(",").map(margin => {
|
|
15
15
|
return Number(parseFloat(this.conversionUnit(parseFloat(margin), 0.1, "")).toFixed(2));
|
|
16
16
|
});
|
|
17
17
|
}
|
|
@@ -21,7 +21,7 @@ class AppXform extends BaseXform {
|
|
|
21
21
|
xmlStream.leafNode("ScaleCrop", undefined, "false");
|
|
22
22
|
this.map.HeadingPairs.render(xmlStream, model.worksheets);
|
|
23
23
|
this.map.TitlesOfParts.render(xmlStream, model.worksheets);
|
|
24
|
-
this.map.Company.render(xmlStream, model.company
|
|
24
|
+
this.map.Company.render(xmlStream, model.company ?? "");
|
|
25
25
|
this.map.Manager.render(xmlStream, model.manager);
|
|
26
26
|
xmlStream.leafNode("LinksUpToDate", undefined, "false");
|
|
27
27
|
xmlStream.leafNode("SharedDoc", undefined, "false");
|
|
@@ -8,7 +8,7 @@ class ContentTypesXform extends BaseXform {
|
|
|
8
8
|
xmlStream.openXml(XmlStream.StdDocAttributes);
|
|
9
9
|
xmlStream.openNode("Types", ContentTypesXform.PROPERTY_ATTRIBUTES);
|
|
10
10
|
const mediaHash = {};
|
|
11
|
-
(model.media
|
|
11
|
+
(model.media ?? []).forEach((medium) => {
|
|
12
12
|
if (medium.type === "image") {
|
|
13
13
|
const imageType = medium.extension;
|
|
14
14
|
if (!mediaHash[imageType]) {
|
|
@@ -37,18 +37,31 @@ class ContentTypesXform extends BaseXform {
|
|
|
37
37
|
ContentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"
|
|
38
38
|
});
|
|
39
39
|
});
|
|
40
|
-
if ((model.pivotTables
|
|
40
|
+
if ((model.pivotTables ?? []).length) {
|
|
41
|
+
// R9-B6: Deduplicate cache content types by cacheId. When multiple pivot tables
|
|
42
|
+
// share the same cache, the cache definition/records files are written only once.
|
|
43
|
+
const writtenCacheIds = new Set();
|
|
41
44
|
// Add content types for each pivot table
|
|
42
|
-
(model.pivotTables
|
|
45
|
+
(model.pivotTables ?? []).forEach((pivotTable) => {
|
|
43
46
|
const n = pivotTable.tableNumber;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
47
|
+
const cacheId = pivotTable.cacheId;
|
|
48
|
+
if (!writtenCacheIds.has(cacheId)) {
|
|
49
|
+
writtenCacheIds.add(cacheId);
|
|
50
|
+
xmlStream.leafNode("Override", {
|
|
51
|
+
PartName: toContentTypesPartName(pivotCacheDefinitionPath(n)),
|
|
52
|
+
ContentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml"
|
|
53
|
+
});
|
|
54
|
+
// R9-B5: Only register cacheRecords content type when the file actually exists.
|
|
55
|
+
// Loaded pivot tables may lack cacheRecords (e.g. OLAP sources).
|
|
56
|
+
const hasCacheRecords = pivotTable.isLoaded ? !!pivotTable.cacheRecords : true;
|
|
57
|
+
if (hasCacheRecords) {
|
|
58
|
+
xmlStream.leafNode("Override", {
|
|
59
|
+
PartName: toContentTypesPartName(pivotCacheRecordsPath(n)),
|
|
60
|
+
ContentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml"
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Each pivot table always has its own file
|
|
52
65
|
xmlStream.leafNode("Override", {
|
|
53
66
|
PartName: toContentTypesPartName(pivotTablePath(n)),
|
|
54
67
|
ContentType: "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml"
|
|
@@ -2,8 +2,7 @@ import { BaseXform } from "@excel/xlsx/xform/base-xform";
|
|
|
2
2
|
interface BlipModel {
|
|
3
3
|
rId: string;
|
|
4
4
|
}
|
|
5
|
-
declare class BlipXform extends BaseXform {
|
|
6
|
-
model: BlipModel;
|
|
5
|
+
declare class BlipXform extends BaseXform<BlipModel> {
|
|
7
6
|
constructor();
|
|
8
7
|
get tag(): string;
|
|
9
8
|
render(xmlStream: any, model: BlipModel): void;
|
|
@@ -6,13 +6,12 @@ interface PositionModel {
|
|
|
6
6
|
nativeRow: number;
|
|
7
7
|
nativeRowOff: number;
|
|
8
8
|
}
|
|
9
|
-
declare class CellPositionXform extends BaseXform {
|
|
9
|
+
declare class CellPositionXform extends BaseXform<PositionModel> {
|
|
10
10
|
private tag;
|
|
11
11
|
map: {
|
|
12
12
|
[key: string]: IntegerXform;
|
|
13
13
|
};
|
|
14
14
|
parser: any;
|
|
15
|
-
model: PositionModel;
|
|
16
15
|
constructor(options: {
|
|
17
16
|
tag: string;
|
|
18
17
|
});
|
|
@@ -6,8 +6,7 @@ import type { FormCheckboxModel } from "@excel/form-control";
|
|
|
6
6
|
* Each form control (checkbox, button, etc.) has an associated ctrlProp file
|
|
7
7
|
* that stores its properties like objectType, checked state, and linked cell.
|
|
8
8
|
*/
|
|
9
|
-
declare class CtrlPropXform extends BaseXform {
|
|
10
|
-
model: FormCheckboxModel;
|
|
9
|
+
declare class CtrlPropXform extends BaseXform<FormCheckboxModel> {
|
|
11
10
|
private _checkedToXmlValue;
|
|
12
11
|
get tag(): string;
|
|
13
12
|
render(xmlStream: any, model?: FormCheckboxModel): void;
|
|
@@ -2,12 +2,11 @@ import { BaseXform } from "@excel/xlsx/xform/base-xform";
|
|
|
2
2
|
interface DrawingModel {
|
|
3
3
|
anchors: any[];
|
|
4
4
|
}
|
|
5
|
-
declare class DrawingXform extends BaseXform {
|
|
5
|
+
declare class DrawingXform extends BaseXform<DrawingModel> {
|
|
6
6
|
map: {
|
|
7
7
|
[key: string]: any;
|
|
8
8
|
};
|
|
9
9
|
parser: any;
|
|
10
|
-
model: DrawingModel;
|
|
11
10
|
constructor();
|
|
12
11
|
prepare(model: DrawingModel): void;
|
|
13
12
|
get tag(): string;
|
|
@@ -3,12 +3,11 @@ interface ExtModel {
|
|
|
3
3
|
width: number;
|
|
4
4
|
height: number;
|
|
5
5
|
}
|
|
6
|
-
declare class ExtXform extends BaseXform {
|
|
6
|
+
declare class ExtXform extends BaseXform<ExtModel> {
|
|
7
7
|
private tag;
|
|
8
8
|
map: {
|
|
9
9
|
[key: string]: any;
|
|
10
10
|
};
|
|
11
|
-
model: ExtModel;
|
|
12
11
|
constructor(options: {
|
|
13
12
|
tag: string;
|
|
14
13
|
});
|
|
@@ -19,8 +19,8 @@ class ExtXform extends BaseXform {
|
|
|
19
19
|
parseOpen(node) {
|
|
20
20
|
if (node.name === this.tag) {
|
|
21
21
|
this.model = {
|
|
22
|
-
width: parseInt(node.attributes.cx
|
|
23
|
-
height: parseInt(node.attributes.cy
|
|
22
|
+
width: parseInt(node.attributes.cx ?? "0", 10) / EMU_PER_PIXEL_AT_96_DPI,
|
|
23
|
+
height: parseInt(node.attributes.cy ?? "0", 10) / EMU_PER_PIXEL_AT_96_DPI
|
|
24
24
|
};
|
|
25
25
|
return true;
|
|
26
26
|
}
|
|
@@ -20,7 +20,7 @@ class OneCellAnchorXform extends BaseCellAnchorXform {
|
|
|
20
20
|
this.map["xdr:pic"].prepare(model.picture, options);
|
|
21
21
|
}
|
|
22
22
|
render(xmlStream, model) {
|
|
23
|
-
xmlStream.openNode(this.tag, { editAs: model.range.editAs
|
|
23
|
+
xmlStream.openNode(this.tag, { editAs: model.range.editAs ?? "oneCell" });
|
|
24
24
|
this.map["xdr:from"].render(xmlStream, model.range.tl);
|
|
25
25
|
this.map["xdr:ext"].render(xmlStream, model.range.ext);
|
|
26
26
|
this.map["xdr:pic"].render(xmlStream, model.picture);
|
|
@@ -37,7 +37,7 @@ class TwoCellAnchorXform extends BaseCellAnchorXform {
|
|
|
37
37
|
: {})
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
xmlStream.openNode(this.tag, { editAs: model.range.editAs
|
|
40
|
+
xmlStream.openNode(this.tag, { editAs: model.range.editAs ?? "oneCell" });
|
|
41
41
|
this.map["xdr:from"].render(xmlStream, model.range.tl);
|
|
42
42
|
this.map["xdr:to"].render(xmlStream, model.range.br);
|
|
43
43
|
if (model.picture) {
|
|
@@ -15,12 +15,11 @@ interface VmlDrawingModel {
|
|
|
15
15
|
/** Form control checkboxes */
|
|
16
16
|
formControls?: FormCheckboxModel[];
|
|
17
17
|
}
|
|
18
|
-
declare class VmlDrawingXform extends BaseXform {
|
|
18
|
+
declare class VmlDrawingXform extends BaseXform<VmlDrawingModel> {
|
|
19
19
|
map: {
|
|
20
20
|
[key: string]: any;
|
|
21
21
|
};
|
|
22
22
|
parser: any;
|
|
23
|
-
model: VmlDrawingModel;
|
|
24
23
|
constructor();
|
|
25
24
|
get tag(): string;
|
|
26
25
|
/**
|
|
@@ -9,7 +9,7 @@ interface ListXformOptions {
|
|
|
9
9
|
childXform: any;
|
|
10
10
|
maxItems?: number;
|
|
11
11
|
}
|
|
12
|
-
declare class ListXform extends BaseXform {
|
|
12
|
+
declare class ListXform<TChild = any> extends BaseXform<TChild[]> {
|
|
13
13
|
protected tag: string;
|
|
14
14
|
protected always: boolean;
|
|
15
15
|
protected count?: boolean;
|
|
@@ -19,7 +19,6 @@ declare class ListXform extends BaseXform {
|
|
|
19
19
|
protected childXform: any;
|
|
20
20
|
protected maxItems?: number;
|
|
21
21
|
parser: any;
|
|
22
|
-
model: any[];
|
|
23
22
|
constructor(options: ListXformOptions);
|
|
24
23
|
prepare(model: any[], options: any): void;
|
|
25
24
|
render(xmlStream: any, model?: any[]): void;
|
|
@@ -6,7 +6,7 @@ class ListXform extends BaseXform {
|
|
|
6
6
|
this.always = !!options.always;
|
|
7
7
|
this.count = options.count;
|
|
8
8
|
this.empty = options.empty;
|
|
9
|
-
this.$count = options.$count
|
|
9
|
+
this.$count = options.$count ?? "count";
|
|
10
10
|
this.$ = options.$;
|
|
11
11
|
this.childXform = options.childXform;
|
|
12
12
|
this.maxItems = options.maxItems;
|
|
@@ -24,10 +24,10 @@ class ListXform extends BaseXform {
|
|
|
24
24
|
if (this.always || (model && model.length)) {
|
|
25
25
|
xmlStream.openNode(this.tag, this.$);
|
|
26
26
|
if (this.count) {
|
|
27
|
-
xmlStream.addAttribute(this.$count,
|
|
27
|
+
xmlStream.addAttribute(this.$count, model?.length ?? 0);
|
|
28
28
|
}
|
|
29
29
|
const { childXform } = this;
|
|
30
|
-
(model
|
|
30
|
+
(model ?? []).forEach((childModel, index) => {
|
|
31
31
|
childXform.render(xmlStream, childModel, index);
|
|
32
32
|
});
|
|
33
33
|
xmlStream.closeNode();
|
|
@@ -1,15 +1,5 @@
|
|
|
1
1
|
import { BaseXform } from "@excel/xlsx/xform/base-xform";
|
|
2
|
-
|
|
3
|
-
* Parsed cache field model containing name and shared items (if any)
|
|
4
|
-
*/
|
|
5
|
-
interface CacheFieldModel {
|
|
6
|
-
name: string;
|
|
7
|
-
sharedItems: any[] | null;
|
|
8
|
-
containsNumber?: boolean;
|
|
9
|
-
containsInteger?: boolean;
|
|
10
|
-
minValue?: number;
|
|
11
|
-
maxValue?: number;
|
|
12
|
-
}
|
|
2
|
+
import type { CacheField } from "@excel/pivot-table";
|
|
13
3
|
/**
|
|
14
4
|
* Xform for parsing individual <cacheField> elements within a pivot cache definition.
|
|
15
5
|
*
|
|
@@ -29,14 +19,14 @@ interface CacheFieldModel {
|
|
|
29
19
|
* </cacheField>
|
|
30
20
|
* ```
|
|
31
21
|
*/
|
|
32
|
-
declare class CacheFieldXform extends BaseXform {
|
|
33
|
-
model: CacheFieldModel | null;
|
|
22
|
+
declare class CacheFieldXform extends BaseXform<CacheField | null> {
|
|
34
23
|
private inSharedItems;
|
|
24
|
+
private fieldGroupCollector;
|
|
35
25
|
constructor();
|
|
36
26
|
get tag(): string;
|
|
37
27
|
reset(): void;
|
|
38
28
|
parseOpen(node: any): boolean;
|
|
39
|
-
parseText(
|
|
29
|
+
parseText(text: string): void;
|
|
40
30
|
parseClose(name: string): boolean;
|
|
41
31
|
}
|
|
42
|
-
export { CacheFieldXform
|
|
32
|
+
export { CacheFieldXform };
|