@rowsncolumns/toolkit 24.4.2 → 24.4.3
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/cjs/excel-parser/cfb-decryptor.d.ts +6 -0
- package/dist/cjs/excel-parser/cfb-decryptor.d.ts.map +1 -1
- package/dist/cjs/excel-parser/cfb-decryptor.js +6 -0
- package/dist/cjs/excel-parser/helpers.d.ts +9 -1
- package/dist/cjs/excel-parser/helpers.d.ts.map +1 -1
- package/dist/cjs/excel-parser/helpers.js +37 -0
- package/dist/cjs/excel-parser/interface.d.ts +10 -1
- package/dist/cjs/excel-parser/interface.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/ods/index.d.ts +19 -0
- package/dist/cjs/excel-parser/plugins/ods/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/ods/index.js +676 -304
- package/dist/cjs/excel-parser/plugins/ods/styles.d.ts +43 -1
- package/dist/cjs/excel-parser/plugins/ods/styles.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/ods/styles.js +343 -45
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts +11 -3
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xls/index.js +55 -6
- package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts +4 -0
- package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsb/index.js +21 -9
- package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts +10 -0
- package/dist/cjs/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/charts.js +68 -9
- package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts +28 -1
- package/dist/cjs/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/drawing.js +155 -20
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +26 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.js +567 -234
- package/dist/cjs/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/pivots.js +125 -37
- package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts +3 -0
- package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/sheet-views.js +4 -1
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/styles.js +12 -2
- package/dist/cjs/excel-parser/registry.d.ts.map +1 -1
- package/dist/cjs/excel-parser/registry.js +2 -0
- package/dist/cjs/excel-parser/types.d.ts +7 -1
- package/dist/cjs/excel-parser/types.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.d.ts +1 -0
- package/dist/cjs/excel-parser/workbook.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.js +4 -0
- package/dist/cjs/excel-parser/worker.js +3 -1
- package/dist/cjs/exporter/ods/ods-export.d.ts.map +1 -1
- package/dist/cjs/exporter/ods/ods-export.js +432 -175
- package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/chart-builder.js +210 -6
- package/dist/cjs/exporter/xlsx/pivot-builder.d.ts +8 -0
- package/dist/cjs/exporter/xlsx/pivot-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/pivot-builder.js +141 -42
- package/dist/cjs/exporter/xlsx/style-builder.js +9 -3
- package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts +7 -1
- package/dist/cjs/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/threaded-comments-builder.js +15 -3
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts +11 -2
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/xlsx-export.js +678 -222
- package/dist/cjs/helpers/implicit-intersection.d.ts +16 -0
- package/dist/cjs/helpers/implicit-intersection.d.ts.map +1 -0
- package/dist/cjs/helpers/implicit-intersection.js +197 -0
- package/dist/cjs/print-settings.d.ts +105 -0
- package/dist/cjs/print-settings.d.ts.map +1 -0
- package/dist/cjs/print-settings.js +494 -0
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/excel-parser/cfb-decryptor.d.ts +6 -0
- package/dist/esm/excel-parser/cfb-decryptor.d.ts.map +1 -1
- package/dist/esm/excel-parser/cfb-decryptor.js +6 -0
- package/dist/esm/excel-parser/helpers.d.ts +9 -1
- package/dist/esm/excel-parser/helpers.d.ts.map +1 -1
- package/dist/esm/excel-parser/helpers.js +34 -0
- package/dist/esm/excel-parser/interface.d.ts +10 -1
- package/dist/esm/excel-parser/interface.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/ods/index.d.ts +19 -0
- package/dist/esm/excel-parser/plugins/ods/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/ods/index.js +347 -33
- package/dist/esm/excel-parser/plugins/ods/styles.d.ts +43 -1
- package/dist/esm/excel-parser/plugins/ods/styles.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/ods/styles.js +276 -2
- package/dist/esm/excel-parser/plugins/xls/index.d.ts +11 -3
- package/dist/esm/excel-parser/plugins/xls/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xls/index.js +37 -5
- package/dist/esm/excel-parser/plugins/xlsb/index.d.ts +4 -0
- package/dist/esm/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsb/index.js +20 -6
- package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts +10 -0
- package/dist/esm/excel-parser/plugins/xlsx/charts.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/charts.js +69 -6
- package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts +28 -1
- package/dist/esm/excel-parser/plugins/xlsx/drawing.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/drawing.js +99 -0
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +26 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.js +362 -26
- package/dist/esm/excel-parser/plugins/xlsx/pivots.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/pivots.js +86 -6
- package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts +3 -0
- package/dist/esm/excel-parser/plugins/xlsx/sheet-views.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/sheet-views.js +2 -0
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/styles.js +12 -2
- package/dist/esm/excel-parser/registry.d.ts.map +1 -1
- package/dist/esm/excel-parser/registry.js +2 -0
- package/dist/esm/excel-parser/types.d.ts +7 -1
- package/dist/esm/excel-parser/types.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.d.ts +1 -0
- package/dist/esm/excel-parser/workbook.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.js +3 -0
- package/dist/esm/excel-parser/worker.js +2 -0
- package/dist/esm/exporter/ods/ods-export.d.ts.map +1 -1
- package/dist/esm/exporter/ods/ods-export.js +306 -35
- package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/chart-builder.js +161 -0
- package/dist/esm/exporter/xlsx/pivot-builder.d.ts +8 -0
- package/dist/esm/exporter/xlsx/pivot-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/pivot-builder.js +104 -19
- package/dist/esm/exporter/xlsx/style-builder.js +9 -3
- package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts +7 -1
- package/dist/esm/exporter/xlsx/threaded-comments-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/threaded-comments-builder.js +15 -3
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts +11 -2
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/xlsx-export.js +449 -47
- package/dist/esm/helpers/implicit-intersection.d.ts +16 -0
- package/dist/esm/helpers/implicit-intersection.d.ts.map +1 -0
- package/dist/esm/helpers/implicit-intersection.js +184 -0
- package/dist/esm/print-settings.d.ts +105 -0
- package/dist/esm/print-settings.d.ts.map +1 -0
- package/dist/esm/print-settings.js +422 -0
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { __assign, __values } from "tslib";
|
|
1
|
+
import { __assign, __read, __spreadArray, __values } from "tslib";
|
|
2
2
|
import { get } from "lodash-es";
|
|
3
|
+
import { headerFooterZoneFromTokens, joinHeaderFooterZones, odsLengthToInches, paperSizeFromCm, parseOdsPrintTokens, parseOdsTableCentering, } from "../../../print-settings";
|
|
3
4
|
var OdsStyles = /** @class */ (function () {
|
|
4
5
|
function OdsStyles() {
|
|
5
6
|
this.cellStyles = new Map();
|
|
@@ -14,6 +15,14 @@ var OdsStyles = /** @class */ (function () {
|
|
|
14
15
|
this.automaticTableStyles = new Map();
|
|
15
16
|
this.numberFormats = new Map();
|
|
16
17
|
this.chartStyles = new Map();
|
|
18
|
+
/** Table style name → `style:master-page-name`. */
|
|
19
|
+
this.tableMasterPages = new Map();
|
|
20
|
+
this.pageLayouts = new Map();
|
|
21
|
+
this.masterPages = new Map();
|
|
22
|
+
/** `style:family="table"` styles whose `style:table-properties` carry a right-to-left `style:writing-mode`. */
|
|
23
|
+
this.rightToLeftTableStyles = new Set();
|
|
24
|
+
/** Chart styles whose `style:chart-properties` carry `chart:three-dimensional="true"`. */
|
|
25
|
+
this.threeDimensionalChartStyles = new Set();
|
|
17
26
|
}
|
|
18
27
|
OdsStyles.prototype.reset = function () {
|
|
19
28
|
this.cellStyles.clear();
|
|
@@ -28,6 +37,11 @@ var OdsStyles = /** @class */ (function () {
|
|
|
28
37
|
this.automaticTableStyles.clear();
|
|
29
38
|
this.numberFormats.clear();
|
|
30
39
|
this.chartStyles.clear();
|
|
40
|
+
this.tableMasterPages.clear();
|
|
41
|
+
this.pageLayouts.clear();
|
|
42
|
+
this.masterPages.clear();
|
|
43
|
+
this.rightToLeftTableStyles.clear();
|
|
44
|
+
this.threeDimensionalChartStyles.clear();
|
|
31
45
|
};
|
|
32
46
|
OdsStyles.prototype.parseStylesXml = function (stylesXml) {
|
|
33
47
|
if (!stylesXml)
|
|
@@ -44,6 +58,158 @@ var OdsStyles = /** @class */ (function () {
|
|
|
44
58
|
this.processStyles(automaticStyles, false);
|
|
45
59
|
this.processNumberStyles(documentStyles, get(documentStyles, "office:styles") || get(documentStyles, "styles"), get(documentStyles, "office:automatic-styles") ||
|
|
46
60
|
get(documentStyles, "automatic-styles"));
|
|
61
|
+
this.processPageLayouts(get(documentStyles, "office:automatic-styles.style:page-layout") ||
|
|
62
|
+
get(documentStyles, "automatic-styles.page-layout"));
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* `<office:master-styles><style:master-page>` from the ORDER-PRESERVING
|
|
66
|
+
* parse of styles.xml — header/footer paragraphs are mixed content
|
|
67
|
+
* (`Page <text:page-number/> of <text:page-count/>`), which the unordered
|
|
68
|
+
* tree cannot represent.
|
|
69
|
+
*/
|
|
70
|
+
OdsStyles.prototype.parseMasterPagesOrdered = function (stylesOrdered) {
|
|
71
|
+
var e_1, _a;
|
|
72
|
+
var documentStyles = orderedChildren(stylesOrdered, "office:document-styles") ||
|
|
73
|
+
orderedChildren(stylesOrdered, "document-styles");
|
|
74
|
+
var masterStyles = orderedChildren(documentStyles, "office:master-styles") ||
|
|
75
|
+
orderedChildren(documentStyles, "master-styles");
|
|
76
|
+
if (!Array.isArray(masterStyles))
|
|
77
|
+
return;
|
|
78
|
+
try {
|
|
79
|
+
for (var masterStyles_1 = __values(masterStyles), masterStyles_1_1 = masterStyles_1.next(); !masterStyles_1_1.done; masterStyles_1_1 = masterStyles_1.next()) {
|
|
80
|
+
var node = masterStyles_1_1.value;
|
|
81
|
+
var children = node["style:master-page"] || node["master-page"];
|
|
82
|
+
if (!children)
|
|
83
|
+
continue;
|
|
84
|
+
var attrs = node[":@"] || {};
|
|
85
|
+
var name_1 = attrs["@_style:name"] || attrs["@_name"];
|
|
86
|
+
if (!name_1)
|
|
87
|
+
continue;
|
|
88
|
+
var header = odsHeaderFooterToCode(orderedChildren(children, "style:header") ||
|
|
89
|
+
orderedChildren(children, "header"));
|
|
90
|
+
var footer = odsHeaderFooterToCode(orderedChildren(children, "style:footer") ||
|
|
91
|
+
orderedChildren(children, "footer"));
|
|
92
|
+
this.masterPages.set(name_1, {
|
|
93
|
+
pageLayoutName: attrs["@_style:page-layout-name"] || attrs["@_page-layout-name"],
|
|
94
|
+
header: header,
|
|
95
|
+
footer: footer,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
100
|
+
finally {
|
|
101
|
+
try {
|
|
102
|
+
if (masterStyles_1_1 && !masterStyles_1_1.done && (_a = masterStyles_1.return)) _a.call(masterStyles_1);
|
|
103
|
+
}
|
|
104
|
+
finally { if (e_1) throw e_1.error; }
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
OdsStyles.prototype.processPageLayouts = function (layouts) {
|
|
108
|
+
var e_2, _a;
|
|
109
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
110
|
+
if (!layouts)
|
|
111
|
+
return;
|
|
112
|
+
try {
|
|
113
|
+
for (var _l = __values(Array.isArray(layouts) ? layouts : [layouts]), _m = _l.next(); !_m.done; _m = _l.next()) {
|
|
114
|
+
var layout = _m.value;
|
|
115
|
+
var name_2 = layout["@_style:name"] || layout["@_name"];
|
|
116
|
+
if (!name_2)
|
|
117
|
+
continue;
|
|
118
|
+
var props = this.getAttributes(layout["style:page-layout-properties"] ||
|
|
119
|
+
layout["page-layout-properties"]) || {};
|
|
120
|
+
var headerProps = this.getAttributes(get(layout, "style:header-style.style:header-footer-properties") ||
|
|
121
|
+
get(layout, "header-style.header-footer-properties"));
|
|
122
|
+
var footerProps = this.getAttributes(get(layout, "style:footer-style.style:header-footer-properties") ||
|
|
123
|
+
get(layout, "footer-style.header-footer-properties"));
|
|
124
|
+
var pageSetup = {};
|
|
125
|
+
var orientation_1 = props["@_style:print-orientation"];
|
|
126
|
+
if (orientation_1 === "landscape" || orientation_1 === "portrait") {
|
|
127
|
+
pageSetup.orientation = orientation_1;
|
|
128
|
+
}
|
|
129
|
+
var widthIn = odsLengthToInches(props["@_fo:page-width"]);
|
|
130
|
+
var heightIn = odsLengthToInches(props["@_fo:page-height"]);
|
|
131
|
+
if (widthIn !== undefined && heightIn !== undefined) {
|
|
132
|
+
var code = paperSizeFromCm(widthIn * 2.54, heightIn * 2.54);
|
|
133
|
+
if (code !== undefined)
|
|
134
|
+
pageSetup.paperSize = code;
|
|
135
|
+
}
|
|
136
|
+
var scale = parseFloat(String((_b = props["@_style:scale-to"]) !== null && _b !== void 0 ? _b : ""));
|
|
137
|
+
if (Number.isFinite(scale) && scale > 0) {
|
|
138
|
+
pageSetup.scale = Math.round(scale);
|
|
139
|
+
}
|
|
140
|
+
var scaleToX = parseInt((_c = props["@_loext:scale-to-X"]) !== null && _c !== void 0 ? _c : "", 10);
|
|
141
|
+
var scaleToY = parseInt((_d = props["@_loext:scale-to-Y"]) !== null && _d !== void 0 ? _d : "", 10);
|
|
142
|
+
var scaleToPages = parseInt((_e = props["@_style:scale-to-pages"]) !== null && _e !== void 0 ? _e : "", 10);
|
|
143
|
+
if (Number.isFinite(scaleToX) || Number.isFinite(scaleToY)) {
|
|
144
|
+
pageSetup.fitToPage = true;
|
|
145
|
+
pageSetup.fitToWidth = Number.isFinite(scaleToX) ? scaleToX : 0;
|
|
146
|
+
pageSetup.fitToHeight = Number.isFinite(scaleToY) ? scaleToY : 0;
|
|
147
|
+
}
|
|
148
|
+
else if (Number.isFinite(scaleToPages)) {
|
|
149
|
+
// ODF's single "total pages" knob: 1 page ≡ Excel's 1×1 fit.
|
|
150
|
+
pageSetup.fitToPage = true;
|
|
151
|
+
pageSetup.fitToWidth = scaleToPages;
|
|
152
|
+
pageSetup.fitToHeight = scaleToPages === 1 ? 1 : 0;
|
|
153
|
+
}
|
|
154
|
+
var pageOrder = props["@_style:print-page-order"];
|
|
155
|
+
if (pageOrder === "ltr")
|
|
156
|
+
pageSetup.pageOrder = "overThenDown";
|
|
157
|
+
var firstPage = parseInt((_f = props["@_style:first-page-number"]) !== null && _f !== void 0 ? _f : "", 10);
|
|
158
|
+
if (Number.isFinite(firstPage) && firstPage > 0) {
|
|
159
|
+
pageSetup.firstPageNumber = firstPage;
|
|
160
|
+
pageSetup.useFirstPageNumber = true;
|
|
161
|
+
}
|
|
162
|
+
// ODF: header sits inside `fo:margin-top`; Excel: `header` is the edge
|
|
163
|
+
// → header distance and `top` the edge → body distance.
|
|
164
|
+
var marginTop = odsLengthToInches(props["@_fo:margin-top"]);
|
|
165
|
+
var marginBottom = odsLengthToInches(props["@_fo:margin-bottom"]);
|
|
166
|
+
var headerHeight = ((_g = odsLengthToInches(headerProps === null || headerProps === void 0 ? void 0 : headerProps["@_fo:min-height"])) !== null && _g !== void 0 ? _g : 0) +
|
|
167
|
+
((_h = odsLengthToInches(headerProps === null || headerProps === void 0 ? void 0 : headerProps["@_fo:margin-bottom"])) !== null && _h !== void 0 ? _h : 0);
|
|
168
|
+
var footerHeight = ((_j = odsLengthToInches(footerProps === null || footerProps === void 0 ? void 0 : footerProps["@_fo:min-height"])) !== null && _j !== void 0 ? _j : 0) +
|
|
169
|
+
((_k = odsLengthToInches(footerProps === null || footerProps === void 0 ? void 0 : footerProps["@_fo:margin-top"])) !== null && _k !== void 0 ? _k : 0);
|
|
170
|
+
var pageMargins = {};
|
|
171
|
+
var left = odsLengthToInches(props["@_fo:margin-left"]);
|
|
172
|
+
var right = odsLengthToInches(props["@_fo:margin-right"]);
|
|
173
|
+
if (left !== undefined)
|
|
174
|
+
pageMargins.left = roundInches(left);
|
|
175
|
+
if (right !== undefined)
|
|
176
|
+
pageMargins.right = roundInches(right);
|
|
177
|
+
if (marginTop !== undefined) {
|
|
178
|
+
pageMargins.header = roundInches(marginTop);
|
|
179
|
+
pageMargins.top = roundInches(marginTop + headerHeight);
|
|
180
|
+
}
|
|
181
|
+
if (marginBottom !== undefined) {
|
|
182
|
+
pageMargins.footer = roundInches(marginBottom);
|
|
183
|
+
pageMargins.bottom = roundInches(marginBottom + footerHeight);
|
|
184
|
+
}
|
|
185
|
+
var printOptions = __assign(__assign({}, parseOdsPrintTokens(props["@_style:print"])), parseOdsTableCentering(props["@_style:table-centering"]));
|
|
186
|
+
var layoutEntry = {};
|
|
187
|
+
if (Object.keys(pageSetup).length)
|
|
188
|
+
layoutEntry.pageSetup = pageSetup;
|
|
189
|
+
if (Object.keys(pageMargins).length)
|
|
190
|
+
layoutEntry.pageMargins = pageMargins;
|
|
191
|
+
if (Object.keys(printOptions).length) {
|
|
192
|
+
layoutEntry.printOptions = printOptions;
|
|
193
|
+
}
|
|
194
|
+
this.pageLayouts.set(name_2, layoutEntry);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
198
|
+
finally {
|
|
199
|
+
try {
|
|
200
|
+
if (_m && !_m.done && (_a = _l.return)) _a.call(_l);
|
|
201
|
+
}
|
|
202
|
+
finally { if (e_2) throw e_2.error; }
|
|
203
|
+
}
|
|
204
|
+
};
|
|
205
|
+
OdsStyles.prototype.getTableMasterPageName = function (styleName) {
|
|
206
|
+
return this.tableMasterPages.get(styleName);
|
|
207
|
+
};
|
|
208
|
+
OdsStyles.prototype.getMasterPage = function (name) {
|
|
209
|
+
return this.masterPages.get(name);
|
|
210
|
+
};
|
|
211
|
+
OdsStyles.prototype.getPageLayout = function (name) {
|
|
212
|
+
return this.pageLayouts.get(name);
|
|
47
213
|
};
|
|
48
214
|
OdsStyles.prototype.parseContentXml = function (contentXml) {
|
|
49
215
|
if (!contentXml)
|
|
@@ -55,46 +221,60 @@ var OdsStyles = /** @class */ (function () {
|
|
|
55
221
|
this.processNumberStyles(contentXml, autoStylesContainer);
|
|
56
222
|
};
|
|
57
223
|
OdsStyles.prototype.processStyles = function (styles, isAutomatic) {
|
|
58
|
-
var
|
|
224
|
+
var e_3, _a;
|
|
225
|
+
var _b, _c;
|
|
59
226
|
if (!styles)
|
|
60
227
|
return;
|
|
61
228
|
var styleArray = Array.isArray(styles) ? styles : [styles];
|
|
62
229
|
try {
|
|
63
230
|
for (var styleArray_1 = __values(styleArray), styleArray_1_1 = styleArray_1.next(); !styleArray_1_1.done; styleArray_1_1 = styleArray_1.next()) {
|
|
64
231
|
var style = styleArray_1_1.value;
|
|
65
|
-
var
|
|
66
|
-
if (!
|
|
232
|
+
var name_3 = style["@_style:name"] || style["@_name"];
|
|
233
|
+
if (!name_3)
|
|
67
234
|
continue;
|
|
68
235
|
var family = style["@_style:family"] || style["@_family"];
|
|
69
236
|
if (family === "table-row") {
|
|
70
237
|
var props = this.convertRowStyle(style);
|
|
71
238
|
if (props) {
|
|
72
|
-
(isAutomatic ? this.automaticRowStyles : this.rowStyles).set(
|
|
239
|
+
(isAutomatic ? this.automaticRowStyles : this.rowStyles).set(name_3, props);
|
|
73
240
|
}
|
|
74
241
|
continue;
|
|
75
242
|
}
|
|
76
243
|
if (family === "table-column") {
|
|
77
244
|
var props = this.convertColumnStyle(style);
|
|
78
245
|
if (props) {
|
|
79
|
-
(isAutomatic ? this.automaticColumnStyles : this.columnStyles).set(
|
|
246
|
+
(isAutomatic ? this.automaticColumnStyles : this.columnStyles).set(name_3, props);
|
|
80
247
|
}
|
|
81
248
|
continue;
|
|
82
249
|
}
|
|
83
250
|
if (family === "table") {
|
|
251
|
+
var masterPageName = style["@_style:master-page-name"] || style["@_master-page-name"];
|
|
252
|
+
if (masterPageName) {
|
|
253
|
+
this.tableMasterPages.set(name_3, masterPageName);
|
|
254
|
+
}
|
|
255
|
+
// ODF has no per-sheet flag for right-to-left display; it is the
|
|
256
|
+
// table style's `style:writing-mode` (`rl-tb` / `rl`), the
|
|
257
|
+
// counterpart of OOXML `<sheetView rightToLeft="1">`.
|
|
258
|
+
var tableProps = this.getAttributes(style["style:table-properties"] || style["table-properties"]);
|
|
259
|
+
var writingMode = (_b = tableProps === null || tableProps === void 0 ? void 0 : tableProps["@_style:writing-mode"]) !== null && _b !== void 0 ? _b : tableProps === null || tableProps === void 0 ? void 0 : tableProps["@_writing-mode"];
|
|
260
|
+
if (typeof writingMode === "string" &&
|
|
261
|
+
/^(rl|rl-tb|tb-rl)$/.test(writingMode)) {
|
|
262
|
+
this.rightToLeftTableStyles.add(name_3);
|
|
263
|
+
}
|
|
84
264
|
var format = this.normalizeCellFormat(this.convertToCellFormat(style));
|
|
85
265
|
if (format) {
|
|
86
|
-
(isAutomatic ? this.automaticTableStyles : this.tableStyles).set(
|
|
266
|
+
(isAutomatic ? this.automaticTableStyles : this.tableStyles).set(name_3, format);
|
|
87
267
|
}
|
|
88
268
|
continue;
|
|
89
269
|
}
|
|
90
270
|
if (family === "text") {
|
|
91
271
|
var format = this.normalizeCellFormat(this.convertToCellFormat(style));
|
|
92
|
-
(isAutomatic ? this.automaticTextStyles : this.textStyles).set(
|
|
272
|
+
(isAutomatic ? this.automaticTextStyles : this.textStyles).set(name_3, format);
|
|
93
273
|
continue;
|
|
94
274
|
}
|
|
95
275
|
if (family === "table-cell") {
|
|
96
276
|
var displayName = style["@_style:display-name"] || style["@_display-name"];
|
|
97
|
-
var key = displayName ||
|
|
277
|
+
var key = displayName || name_3;
|
|
98
278
|
if (!key) {
|
|
99
279
|
continue;
|
|
100
280
|
}
|
|
@@ -102,21 +282,26 @@ var OdsStyles = /** @class */ (function () {
|
|
|
102
282
|
? this.automaticCellStyles
|
|
103
283
|
: this.cellStyles;
|
|
104
284
|
targetMap.set(key, style);
|
|
105
|
-
if (displayName &&
|
|
106
|
-
targetMap.set(
|
|
285
|
+
if (displayName && name_3 && name_3 !== key && !targetMap.has(name_3)) {
|
|
286
|
+
targetMap.set(name_3, style);
|
|
107
287
|
}
|
|
108
288
|
continue;
|
|
109
289
|
}
|
|
110
290
|
if (typeof family === "string" &&
|
|
111
291
|
(family.startsWith("chart") || family === "graphic")) {
|
|
292
|
+
var chartProps = this.getAttributes(style["style:chart-properties"] || style["chart:chart-properties"]);
|
|
293
|
+
var threeDimensional = (_c = chartProps === null || chartProps === void 0 ? void 0 : chartProps["@_chart:three-dimensional"]) !== null && _c !== void 0 ? _c : chartProps === null || chartProps === void 0 ? void 0 : chartProps["@_three-dimensional"];
|
|
294
|
+
if (threeDimensional === "true" || threeDimensional === true) {
|
|
295
|
+
this.threeDimensionalChartStyles.add(name_3);
|
|
296
|
+
}
|
|
112
297
|
var color = this.convertChartStyle(style);
|
|
113
298
|
if (color) {
|
|
114
299
|
var displayName = style["@_style:display-name"] || style["@_display-name"];
|
|
115
|
-
var key = displayName ||
|
|
300
|
+
var key = displayName || name_3;
|
|
116
301
|
if (key) {
|
|
117
302
|
this.chartStyles.set(key, color);
|
|
118
|
-
if (displayName &&
|
|
119
|
-
this.chartStyles.set(
|
|
303
|
+
if (displayName && name_3 && name_3 !== key) {
|
|
304
|
+
this.chartStyles.set(name_3, color);
|
|
120
305
|
}
|
|
121
306
|
}
|
|
122
307
|
}
|
|
@@ -124,16 +309,16 @@ var OdsStyles = /** @class */ (function () {
|
|
|
124
309
|
}
|
|
125
310
|
}
|
|
126
311
|
}
|
|
127
|
-
catch (
|
|
312
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
128
313
|
finally {
|
|
129
314
|
try {
|
|
130
315
|
if (styleArray_1_1 && !styleArray_1_1.done && (_a = styleArray_1.return)) _a.call(styleArray_1);
|
|
131
316
|
}
|
|
132
|
-
finally { if (
|
|
317
|
+
finally { if (e_3) throw e_3.error; }
|
|
133
318
|
}
|
|
134
319
|
};
|
|
135
320
|
OdsStyles.prototype.processNumberStyles = function () {
|
|
136
|
-
var
|
|
321
|
+
var e_4, _a, e_5, _b;
|
|
137
322
|
var _c, _d;
|
|
138
323
|
var containers = [];
|
|
139
324
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
@@ -154,31 +339,31 @@ var OdsStyles = /** @class */ (function () {
|
|
|
154
339
|
if (!container)
|
|
155
340
|
continue;
|
|
156
341
|
try {
|
|
157
|
-
for (var definitions_1 = (
|
|
342
|
+
for (var definitions_1 = (e_5 = void 0, __values(definitions)), definitions_1_1 = definitions_1.next(); !definitions_1_1.done; definitions_1_1 = definitions_1.next()) {
|
|
158
343
|
var _e = definitions_1_1.value, key = _e.key, kind = _e.kind;
|
|
159
344
|
var nodes = (_d = (_c = (container && container[key])) !== null && _c !== void 0 ? _c : get(container, key)) !== null && _d !== void 0 ? _d : get(container, key.replace("number:", ""));
|
|
160
345
|
this.processNumberStyleNodes(nodes, kind);
|
|
161
346
|
}
|
|
162
347
|
}
|
|
163
|
-
catch (
|
|
348
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
164
349
|
finally {
|
|
165
350
|
try {
|
|
166
351
|
if (definitions_1_1 && !definitions_1_1.done && (_b = definitions_1.return)) _b.call(definitions_1);
|
|
167
352
|
}
|
|
168
|
-
finally { if (
|
|
353
|
+
finally { if (e_5) throw e_5.error; }
|
|
169
354
|
}
|
|
170
355
|
}
|
|
171
356
|
}
|
|
172
|
-
catch (
|
|
357
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
173
358
|
finally {
|
|
174
359
|
try {
|
|
175
360
|
if (containers_1_1 && !containers_1_1.done && (_a = containers_1.return)) _a.call(containers_1);
|
|
176
361
|
}
|
|
177
|
-
finally { if (
|
|
362
|
+
finally { if (e_4) throw e_4.error; }
|
|
178
363
|
}
|
|
179
364
|
};
|
|
180
365
|
OdsStyles.prototype.processNumberStyleNodes = function (nodes, kind) {
|
|
181
|
-
var
|
|
366
|
+
var e_6, _a;
|
|
182
367
|
if (!nodes)
|
|
183
368
|
return;
|
|
184
369
|
var arr = Array.isArray(nodes) ? nodes : [nodes];
|
|
@@ -187,21 +372,21 @@ var OdsStyles = /** @class */ (function () {
|
|
|
187
372
|
var node = arr_1_1.value;
|
|
188
373
|
if (!node)
|
|
189
374
|
continue;
|
|
190
|
-
var
|
|
191
|
-
if (!
|
|
375
|
+
var name_4 = node["@_style:name"] || node["@_name"];
|
|
376
|
+
if (!name_4)
|
|
192
377
|
continue;
|
|
193
378
|
var numberFormat = this.convertNumberStyleNode(node, kind);
|
|
194
379
|
if (numberFormat) {
|
|
195
|
-
this.numberFormats.set(
|
|
380
|
+
this.numberFormats.set(name_4, numberFormat);
|
|
196
381
|
}
|
|
197
382
|
}
|
|
198
383
|
}
|
|
199
|
-
catch (
|
|
384
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
200
385
|
finally {
|
|
201
386
|
try {
|
|
202
387
|
if (arr_1_1 && !arr_1_1.done && (_a = arr_1.return)) _a.call(arr_1);
|
|
203
388
|
}
|
|
204
|
-
finally { if (
|
|
389
|
+
finally { if (e_6) throw e_6.error; }
|
|
205
390
|
}
|
|
206
391
|
};
|
|
207
392
|
OdsStyles.prototype.getStyle = function (styleName) {
|
|
@@ -222,6 +407,14 @@ var OdsStyles = /** @class */ (function () {
|
|
|
222
407
|
return undefined;
|
|
223
408
|
return this.chartStyles.get(styleName);
|
|
224
409
|
};
|
|
410
|
+
/** Whether a chart style (plot-area) declares `chart:three-dimensional="true"`. */
|
|
411
|
+
OdsStyles.prototype.isChartStyleThreeDimensional = function (styleName) {
|
|
412
|
+
return !!styleName && this.threeDimensionalChartStyles.has(styleName);
|
|
413
|
+
};
|
|
414
|
+
/** Whether a `style:family="table"` style renders the sheet right-to-left. */
|
|
415
|
+
OdsStyles.prototype.isTableStyleRightToLeft = function (styleName) {
|
|
416
|
+
return !!styleName && this.rightToLeftTableStyles.has(styleName);
|
|
417
|
+
};
|
|
225
418
|
OdsStyles.prototype.getTableCellFormat = function (styleName) {
|
|
226
419
|
return (this.automaticTableStyles.get(styleName) ||
|
|
227
420
|
this.tableStyles.get(styleName));
|
|
@@ -234,7 +427,7 @@ var OdsStyles = /** @class */ (function () {
|
|
|
234
427
|
return (_a = format === null || format === void 0 ? void 0 : format.textFormat) !== null && _a !== void 0 ? _a : undefined;
|
|
235
428
|
};
|
|
236
429
|
OdsStyles.prototype.convertToCellFormat = function (style) {
|
|
237
|
-
var
|
|
430
|
+
var e_7, _a, e_8, _b;
|
|
238
431
|
var _c;
|
|
239
432
|
var cellFormat = {};
|
|
240
433
|
var textPropsNode = style["style:text-properties"] || style["text-properties"];
|
|
@@ -349,12 +542,12 @@ var OdsStyles = /** @class */ (function () {
|
|
|
349
542
|
cellFormat.borders[key] = parsedBorder;
|
|
350
543
|
}
|
|
351
544
|
}
|
|
352
|
-
catch (
|
|
545
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
353
546
|
finally {
|
|
354
547
|
try {
|
|
355
548
|
if (sideMap_1_1 && !sideMap_1_1.done && (_a = sideMap_1.return)) _a.call(sideMap_1);
|
|
356
549
|
}
|
|
357
|
-
finally { if (
|
|
550
|
+
finally { if (e_7) throw e_7.error; }
|
|
358
551
|
}
|
|
359
552
|
// ODS diagonals: `style:diagonal-bl-tr` = bottom-left → top-right
|
|
360
553
|
// (= our diagonalUp). `style:diagonal-tl-br` = top-left → bottom-right
|
|
@@ -385,12 +578,12 @@ var OdsStyles = /** @class */ (function () {
|
|
|
385
578
|
cellFormat.borders[key] = parsedBorder;
|
|
386
579
|
}
|
|
387
580
|
}
|
|
388
|
-
catch (
|
|
581
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
389
582
|
finally {
|
|
390
583
|
try {
|
|
391
584
|
if (diagonalMap_1_1 && !diagonalMap_1_1.done && (_b = diagonalMap_1.return)) _b.call(diagonalMap_1);
|
|
392
585
|
}
|
|
393
|
-
finally { if (
|
|
586
|
+
finally { if (e_8) throw e_8.error; }
|
|
394
587
|
}
|
|
395
588
|
var verticalAlign = cellProps["@_style:vertical-align"] ||
|
|
396
589
|
cellProps["@_vertical-align"] ||
|
|
@@ -482,15 +675,12 @@ var OdsStyles = /** @class */ (function () {
|
|
|
482
675
|
var hidden = visibility === "collapse" ||
|
|
483
676
|
visibility === "hidden" ||
|
|
484
677
|
visibility === "none";
|
|
678
|
+
var breakBefore = (rowProps === null || rowProps === void 0 ? void 0 : rowProps["@_fo:break-before"]) === "page";
|
|
485
679
|
var format = this.normalizeCellFormat(this.convertToCellFormat(style));
|
|
486
|
-
if (height === undefined && !hidden && !format) {
|
|
680
|
+
if (height === undefined && !hidden && !format && !breakBefore) {
|
|
487
681
|
return undefined;
|
|
488
682
|
}
|
|
489
|
-
return {
|
|
490
|
-
height: height,
|
|
491
|
-
hidden: hidden,
|
|
492
|
-
format: format,
|
|
493
|
-
};
|
|
683
|
+
return __assign({ height: height, hidden: hidden, format: format }, (breakBefore ? { breakBefore: breakBefore } : {}));
|
|
494
684
|
};
|
|
495
685
|
OdsStyles.prototype.convertColumnStyle = function (style) {
|
|
496
686
|
var columnPropsNode = style["style:table-column-properties"] ||
|
|
@@ -510,15 +700,12 @@ var OdsStyles = /** @class */ (function () {
|
|
|
510
700
|
var hidden = visibility === "collapse" ||
|
|
511
701
|
visibility === "hidden" ||
|
|
512
702
|
visibility === "none";
|
|
703
|
+
var breakBefore = (columnProps === null || columnProps === void 0 ? void 0 : columnProps["@_fo:break-before"]) === "page";
|
|
513
704
|
var format = this.normalizeCellFormat(this.convertToCellFormat(style));
|
|
514
|
-
if (width === undefined && !hidden && !format) {
|
|
705
|
+
if (width === undefined && !hidden && !format && !breakBefore) {
|
|
515
706
|
return undefined;
|
|
516
707
|
}
|
|
517
|
-
return {
|
|
518
|
-
width: width,
|
|
519
|
-
hidden: hidden,
|
|
520
|
-
format: format,
|
|
521
|
-
};
|
|
708
|
+
return __assign({ width: width, hidden: hidden, format: format }, (breakBefore ? { breakBefore: breakBefore } : {}));
|
|
522
709
|
};
|
|
523
710
|
OdsStyles.prototype.convertChartStyle = function (style) {
|
|
524
711
|
var graphicProps = style["style:graphic-properties"] || style["graphic-properties"];
|
|
@@ -806,3 +993,114 @@ var OdsStyles = /** @class */ (function () {
|
|
|
806
993
|
return OdsStyles;
|
|
807
994
|
}());
|
|
808
995
|
export { OdsStyles };
|
|
996
|
+
var roundInches = function (value) { return Math.round(value * 1000) / 1000; };
|
|
997
|
+
/** Children of the first `tagName` node in an order-preserving node list. */
|
|
998
|
+
var orderedChildren = function (nodes, tagName) {
|
|
999
|
+
if (!Array.isArray(nodes))
|
|
1000
|
+
return undefined;
|
|
1001
|
+
var found = nodes.find(function (node) { return node && node[tagName]; });
|
|
1002
|
+
return found ? found[tagName] : undefined;
|
|
1003
|
+
};
|
|
1004
|
+
var ODS_FIELD_TAGS = {
|
|
1005
|
+
"text:page-number": "page",
|
|
1006
|
+
"text:page-count": "pages",
|
|
1007
|
+
"text:date": "date",
|
|
1008
|
+
"text:time": "time",
|
|
1009
|
+
"text:sheet-name": "sheet",
|
|
1010
|
+
"text:title": "sheet",
|
|
1011
|
+
"text:file-name": "file",
|
|
1012
|
+
};
|
|
1013
|
+
/** One `<text:p>` (order-preserving children) → header/footer tokens. */
|
|
1014
|
+
var odsParagraphToTokens = function (children) {
|
|
1015
|
+
var e_9, _a;
|
|
1016
|
+
var _b;
|
|
1017
|
+
var tokens = [];
|
|
1018
|
+
try {
|
|
1019
|
+
for (var _c = __values(children !== null && children !== void 0 ? children : []), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
1020
|
+
var child = _d.value;
|
|
1021
|
+
if (!child || typeof child !== "object")
|
|
1022
|
+
continue;
|
|
1023
|
+
if (child["#text"] !== undefined) {
|
|
1024
|
+
tokens.push({ type: "text", text: String(child["#text"]) });
|
|
1025
|
+
continue;
|
|
1026
|
+
}
|
|
1027
|
+
var tag = Object.keys(child).find(function (key) { return key !== ":@"; });
|
|
1028
|
+
if (!tag)
|
|
1029
|
+
continue;
|
|
1030
|
+
var attrs = child[":@"] || {};
|
|
1031
|
+
if (tag === "text:s") {
|
|
1032
|
+
var count = parseInt((_b = attrs["@_text:c"]) !== null && _b !== void 0 ? _b : "1", 10);
|
|
1033
|
+
tokens.push({ type: "text", text: " ".repeat(Number.isFinite(count) ? count : 1) });
|
|
1034
|
+
continue;
|
|
1035
|
+
}
|
|
1036
|
+
if (tag === "text:tab") {
|
|
1037
|
+
tokens.push({ type: "text", text: "\t" });
|
|
1038
|
+
continue;
|
|
1039
|
+
}
|
|
1040
|
+
if (tag === "text:line-break") {
|
|
1041
|
+
tokens.push({ type: "text", text: "\n" });
|
|
1042
|
+
continue;
|
|
1043
|
+
}
|
|
1044
|
+
var field = ODS_FIELD_TAGS[tag];
|
|
1045
|
+
if (field) {
|
|
1046
|
+
// `<text:file-name text:display>`: `path` is the folder (`&Z`), `full`
|
|
1047
|
+
// the folder + name (`&Z&F`); `name` / `name-and-extension` / absent
|
|
1048
|
+
// is the file name (`&F`).
|
|
1049
|
+
var display = field === "file" ? attrs["@_text:display"] : undefined;
|
|
1050
|
+
if (display === "path" || display === "full") {
|
|
1051
|
+
tokens.push({ type: "field", field: "path" });
|
|
1052
|
+
}
|
|
1053
|
+
if (display !== "path") {
|
|
1054
|
+
tokens.push({ type: "field", field: field });
|
|
1055
|
+
}
|
|
1056
|
+
continue;
|
|
1057
|
+
}
|
|
1058
|
+
// `text:span`, `text:a`, … — descend.
|
|
1059
|
+
tokens.push.apply(tokens, __spreadArray([], __read(odsParagraphToTokens(child[tag])), false));
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
1063
|
+
finally {
|
|
1064
|
+
try {
|
|
1065
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
1066
|
+
}
|
|
1067
|
+
finally { if (e_9) throw e_9.error; }
|
|
1068
|
+
}
|
|
1069
|
+
return tokens;
|
|
1070
|
+
};
|
|
1071
|
+
var odsRegionToCode = function (children) {
|
|
1072
|
+
if (!Array.isArray(children))
|
|
1073
|
+
return undefined;
|
|
1074
|
+
var paragraphs = children
|
|
1075
|
+
.filter(function (node) { return node && (node["text:p"] || node["p"]); })
|
|
1076
|
+
.map(function (node) {
|
|
1077
|
+
return headerFooterZoneFromTokens(odsParagraphToTokens(node["text:p"] || node["p"]));
|
|
1078
|
+
});
|
|
1079
|
+
var code = paragraphs.join("\n");
|
|
1080
|
+
return code ? code : undefined;
|
|
1081
|
+
};
|
|
1082
|
+
/**
|
|
1083
|
+
* `<style:header>` / `<style:footer>` (order-preserving children) → Excel
|
|
1084
|
+
* header/footer code. Regions map to `&L` / `&C` / `&R`; paragraphs outside
|
|
1085
|
+
* regions are the centre zone. `style:display="false"` yields nothing.
|
|
1086
|
+
*/
|
|
1087
|
+
var odsHeaderFooterToCode = function (children) {
|
|
1088
|
+
if (!Array.isArray(children))
|
|
1089
|
+
return undefined;
|
|
1090
|
+
var zones = {};
|
|
1091
|
+
var left = odsRegionToCode(orderedChildren(children, "style:region-left") ||
|
|
1092
|
+
orderedChildren(children, "region-left"));
|
|
1093
|
+
var center = odsRegionToCode(orderedChildren(children, "style:region-center") ||
|
|
1094
|
+
orderedChildren(children, "region-center"));
|
|
1095
|
+
var right = odsRegionToCode(orderedChildren(children, "style:region-right") ||
|
|
1096
|
+
orderedChildren(children, "region-right"));
|
|
1097
|
+
var plain = odsRegionToCode(children);
|
|
1098
|
+
if (left)
|
|
1099
|
+
zones.left = left;
|
|
1100
|
+
if (center || plain)
|
|
1101
|
+
zones.center = center !== null && center !== void 0 ? center : plain;
|
|
1102
|
+
if (right)
|
|
1103
|
+
zones.right = right;
|
|
1104
|
+
var code = joinHeaderFooterZones(zones);
|
|
1105
|
+
return code ? code : undefined;
|
|
1106
|
+
};
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import { XlsxPlugin } from "../xlsx/index";
|
|
2
|
+
/**
|
|
3
|
+
* `.xls` handler. The BIFF (Excel 97-2003) binary format is not parsed;
|
|
4
|
+
* this plugin exists so a `.xls` file gets a clear, actionable error
|
|
5
|
+
* instead of falling through to the xlsx zip reader (which fails with an
|
|
6
|
+
* opaque "not a zip" error) or stalling in the password prompt. The one
|
|
7
|
+
* `.xls` shape that does load is an OOXML package saved with the wrong
|
|
8
|
+
* extension — Excel opens those too, so they are handed to the xlsx parser.
|
|
9
|
+
*/
|
|
10
|
+
export declare class XlsPlugin extends XlsxPlugin {
|
|
11
|
+
load(buffer: ArrayBuffer | File, password?: string): Promise<void>;
|
|
4
12
|
}
|
|
5
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xls/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xls/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAoB3C;;;;;;;GAOG;AACH,qBAAa,SAAU,SAAQ,UAAU;IACjC,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM;CAiBzD"}
|