@node-projects/excelforge 2.0.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/README.md +566 -0
- package/dist/core/SharedStrings.d.ts +11 -0
- package/dist/core/SharedStrings.js +67 -0
- package/dist/core/SharedStrings.js.map +1 -0
- package/dist/core/Workbook.d.ts +42 -0
- package/dist/core/Workbook.js +459 -0
- package/dist/core/Workbook.js.map +1 -0
- package/dist/core/WorkbookReader.d.ts +43 -0
- package/dist/core/WorkbookReader.js +563 -0
- package/dist/core/WorkbookReader.js.map +1 -0
- package/dist/core/Worksheet.d.ts +78 -0
- package/dist/core/Worksheet.js +568 -0
- package/dist/core/Worksheet.js.map +1 -0
- package/dist/core/properties.d.ts +91 -0
- package/dist/core/properties.js +265 -0
- package/dist/core/properties.js.map +1 -0
- package/dist/core/types.d.ts +388 -0
- package/dist/core/types.js +2 -0
- package/dist/core/types.js.map +1 -0
- package/dist/features/ChartBuilder.d.ts +2 -0
- package/dist/features/ChartBuilder.js +165 -0
- package/dist/features/ChartBuilder.js.map +1 -0
- package/dist/features/TableBuilder.d.ts +2 -0
- package/dist/features/TableBuilder.js +36 -0
- package/dist/features/TableBuilder.js.map +1 -0
- package/dist/index-min.js +259 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/styles/StyleRegistry.d.ts +19 -0
- package/dist/styles/StyleRegistry.js +215 -0
- package/dist/styles/StyleRegistry.js.map +1 -0
- package/dist/styles/builders.d.ts +91 -0
- package/dist/styles/builders.js +136 -0
- package/dist/styles/builders.js.map +1 -0
- package/dist/utils/helpers.d.ts +26 -0
- package/dist/utils/helpers.js +85 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/xmlParser.d.ts +17 -0
- package/dist/utils/xmlParser.js +179 -0
- package/dist/utils/xmlParser.js.map +1 -0
- package/dist/utils/zip.d.ts +11 -0
- package/dist/utils/zip.js +571 -0
- package/dist/utils/zip.js.map +1 -0
- package/dist/utils/zipReader.d.ts +6 -0
- package/dist/utils/zipReader.js +84 -0
- package/dist/utils/zipReader.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { escapeXml } from '../utils/helpers.js';
|
|
2
|
+
const BUILTIN_NUMFMT = {
|
|
3
|
+
0: 'General', 1: '0', 2: '0.00', 3: '#,##0', 4: '#,##0.00',
|
|
4
|
+
9: '0%', 10: '0.00%', 11: '0.00E+00', 12: '# ?/?', 13: '# ??/??',
|
|
5
|
+
14: 'mm-dd-yy', 15: 'd-mmm-yy', 16: 'd-mmm', 17: 'mmm-yy',
|
|
6
|
+
18: 'h:mm AM/PM', 19: 'h:mm:ss AM/PM', 20: 'h:mm', 21: 'h:mm:ss',
|
|
7
|
+
22: 'm/d/yy h:mm', 37: '#,##0 ;(#,##0)', 38: '#,##0 ;[Red](#,##0)',
|
|
8
|
+
39: '#,##0.00;(#,##0.00)', 40: '#,##0.00;[Red](#,##0.00)',
|
|
9
|
+
45: 'mm:ss', 46: '[h]:mm:ss', 47: 'mmss.0', 48: '##0.0E+0', 49: '@',
|
|
10
|
+
};
|
|
11
|
+
function colorXml(color, prefix = 'rgb') {
|
|
12
|
+
if (!color)
|
|
13
|
+
return '';
|
|
14
|
+
if (color.startsWith('#'))
|
|
15
|
+
color = 'FF' + color.slice(1);
|
|
16
|
+
return `<color ${prefix}="${color}"/>`;
|
|
17
|
+
}
|
|
18
|
+
function fontXml(f) {
|
|
19
|
+
const parts = [];
|
|
20
|
+
if (f.bold)
|
|
21
|
+
parts.push('<b/>');
|
|
22
|
+
if (f.italic)
|
|
23
|
+
parts.push('<i/>');
|
|
24
|
+
if (f.strike)
|
|
25
|
+
parts.push('<strike/>');
|
|
26
|
+
if (f.underline && f.underline !== 'none')
|
|
27
|
+
parts.push(`<u val="${f.underline}"/>`);
|
|
28
|
+
if (f.vertAlign)
|
|
29
|
+
parts.push(`<vertAlign val="${f.vertAlign}"/>`);
|
|
30
|
+
if (f.size)
|
|
31
|
+
parts.push(`<sz val="${f.size}"/>`);
|
|
32
|
+
if (f.color)
|
|
33
|
+
parts.push(`<color rgb="${f.color.startsWith('#') ? 'FF' + f.color.slice(1) : f.color}"/>`);
|
|
34
|
+
if (f.name)
|
|
35
|
+
parts.push(`<name val="${escapeXml(f.name)}"/>`);
|
|
36
|
+
if (f.family)
|
|
37
|
+
parts.push(`<family val="${f.family}"/>`);
|
|
38
|
+
if (f.scheme)
|
|
39
|
+
parts.push(`<scheme val="${f.scheme}"/>`);
|
|
40
|
+
if (f.charset)
|
|
41
|
+
parts.push(`<charset val="${f.charset}"/>`);
|
|
42
|
+
return parts.join('');
|
|
43
|
+
}
|
|
44
|
+
function fillXml(fill) {
|
|
45
|
+
if (fill.type === 'pattern') {
|
|
46
|
+
const f = fill;
|
|
47
|
+
const fg = f.fgColor ? `<fgColor rgb="${f.fgColor.startsWith('#') ? 'FF' + f.fgColor.slice(1) : f.fgColor}"/>` : '';
|
|
48
|
+
const bg = f.bgColor ? `<bgColor rgb="${f.bgColor.startsWith('#') ? 'FF' + f.bgColor.slice(1) : f.bgColor}"/>` : '';
|
|
49
|
+
return `<patternFill patternType="${f.pattern}">${fg}${bg}</patternFill>`;
|
|
50
|
+
}
|
|
51
|
+
const f = fill;
|
|
52
|
+
const stops = f.stops.map(s => `<gradientStop position="${s.position}"><color rgb="${s.color.startsWith('#') ? 'FF' + s.color.slice(1) : s.color}"/></gradientStop>`).join('');
|
|
53
|
+
const attrs = [
|
|
54
|
+
f.gradientType ? `type="${f.gradientType}"` : '',
|
|
55
|
+
f.degree !== undefined ? `degree="${f.degree}"` : '',
|
|
56
|
+
f.left !== undefined ? `left="${f.left}"` : '',
|
|
57
|
+
f.right !== undefined ? `right="${f.right}"` : '',
|
|
58
|
+
f.top !== undefined ? `top="${f.top}"` : '',
|
|
59
|
+
f.bottom !== undefined ? `bottom="${f.bottom}"` : '',
|
|
60
|
+
].filter(Boolean).join(' ');
|
|
61
|
+
return `<gradientFill ${attrs}>${stops}</gradientFill>`;
|
|
62
|
+
}
|
|
63
|
+
function borderSideXml(tag, s) {
|
|
64
|
+
if (!s)
|
|
65
|
+
return `<${tag}/>`;
|
|
66
|
+
const color = s.color ? `<color rgb="${s.color.startsWith('#') ? 'FF' + s.color.slice(1) : s.color}"/>` : '';
|
|
67
|
+
return s.style
|
|
68
|
+
? `<${tag} style="${s.style}">${color}</${tag}>`
|
|
69
|
+
: `<${tag}/>`;
|
|
70
|
+
}
|
|
71
|
+
function borderXml(b) {
|
|
72
|
+
const diag = [
|
|
73
|
+
b.diagonalUp ? 'diagonalUp="1"' : '',
|
|
74
|
+
b.diagonalDown ? 'diagonalDown="1"' : '',
|
|
75
|
+
].filter(Boolean).join(' ');
|
|
76
|
+
return `<border${diag ? ' ' + diag : ''}>` +
|
|
77
|
+
borderSideXml('left', b.left) +
|
|
78
|
+
borderSideXml('right', b.right) +
|
|
79
|
+
borderSideXml('top', b.top) +
|
|
80
|
+
borderSideXml('bottom', b.bottom) +
|
|
81
|
+
borderSideXml('diagonal', b.diagonal) +
|
|
82
|
+
'</border>';
|
|
83
|
+
}
|
|
84
|
+
function alignmentXml(a) {
|
|
85
|
+
const attrs = [
|
|
86
|
+
a.horizontal ? `horizontal="${a.horizontal}"` : '',
|
|
87
|
+
a.vertical ? `vertical="${a.vertical}"` : '',
|
|
88
|
+
a.wrapText ? `wrapText="1"` : '',
|
|
89
|
+
a.shrinkToFit ? `shrinkToFit="1"` : '',
|
|
90
|
+
a.textRotation !== undefined ? `textRotation="${a.textRotation}"` : '',
|
|
91
|
+
a.indent ? `indent="${a.indent}"` : '',
|
|
92
|
+
a.readingOrder !== undefined ? `readingOrder="${a.readingOrder}"` : '',
|
|
93
|
+
].filter(Boolean).join(' ');
|
|
94
|
+
return `<alignment ${attrs}/>`;
|
|
95
|
+
}
|
|
96
|
+
export class StyleRegistry {
|
|
97
|
+
constructor() {
|
|
98
|
+
this.fonts = [];
|
|
99
|
+
this.fills = [];
|
|
100
|
+
this.borders = [];
|
|
101
|
+
this.numFmts = new Map();
|
|
102
|
+
this.xfs = [];
|
|
103
|
+
this.styleKey = new Map();
|
|
104
|
+
this.dxfs = [];
|
|
105
|
+
this.nextNumFmtId = 164;
|
|
106
|
+
this.fonts.push(fontXml({ name: 'Calibri', size: 11, scheme: 'minor' }));
|
|
107
|
+
this.fills.push(fillXml({ type: 'pattern', pattern: 'none' }));
|
|
108
|
+
this.fills.push(fillXml({ type: 'pattern', pattern: 'gray125' }));
|
|
109
|
+
this.borders.push(borderXml({}));
|
|
110
|
+
this.xfs.push(`<xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/>`);
|
|
111
|
+
}
|
|
112
|
+
internFont(f) {
|
|
113
|
+
if (!f)
|
|
114
|
+
return 0;
|
|
115
|
+
const key = JSON.stringify(f);
|
|
116
|
+
const idx = this.fonts.findIndex((_, i) => this.fonts[i] === fontXml(f));
|
|
117
|
+
if (idx >= 0)
|
|
118
|
+
return idx;
|
|
119
|
+
this.fonts.push(fontXml(f));
|
|
120
|
+
return this.fonts.length - 1;
|
|
121
|
+
}
|
|
122
|
+
internFill(f) {
|
|
123
|
+
if (!f)
|
|
124
|
+
return 0;
|
|
125
|
+
const xml = fillXml(f);
|
|
126
|
+
const idx = this.fills.indexOf(xml);
|
|
127
|
+
if (idx >= 0)
|
|
128
|
+
return idx;
|
|
129
|
+
this.fills.push(xml);
|
|
130
|
+
return this.fills.length - 1;
|
|
131
|
+
}
|
|
132
|
+
internBorder(b) {
|
|
133
|
+
if (!b)
|
|
134
|
+
return 0;
|
|
135
|
+
const xml = borderXml(b);
|
|
136
|
+
const idx = this.borders.indexOf(xml);
|
|
137
|
+
if (idx >= 0)
|
|
138
|
+
return idx;
|
|
139
|
+
this.borders.push(xml);
|
|
140
|
+
return this.borders.length - 1;
|
|
141
|
+
}
|
|
142
|
+
internNumFmt(fmt, builtinId) {
|
|
143
|
+
if (builtinId !== undefined)
|
|
144
|
+
return builtinId;
|
|
145
|
+
if (!fmt)
|
|
146
|
+
return 0;
|
|
147
|
+
if (this.numFmts.has(fmt.formatCode))
|
|
148
|
+
return this.numFmts.get(fmt.formatCode);
|
|
149
|
+
const id = this.nextNumFmtId++;
|
|
150
|
+
this.numFmts.set(fmt.formatCode, id);
|
|
151
|
+
return id;
|
|
152
|
+
}
|
|
153
|
+
register(style) {
|
|
154
|
+
if (!style)
|
|
155
|
+
return 0;
|
|
156
|
+
const key = JSON.stringify(style);
|
|
157
|
+
if (this.styleKey.has(key))
|
|
158
|
+
return this.styleKey.get(key);
|
|
159
|
+
const fontId = this.internFont(style.font);
|
|
160
|
+
const fillId = this.internFill(style.fill);
|
|
161
|
+
const borderId = this.internBorder(style.border);
|
|
162
|
+
const numFmtId = this.internNumFmt(style.numberFormat, style.numFmtId);
|
|
163
|
+
const applyFont = style.font ? ' applyFont="1"' : '';
|
|
164
|
+
const applyFill = style.fill ? ' applyFill="1"' : '';
|
|
165
|
+
const applyBorder = style.border ? ' applyBorder="1"' : '';
|
|
166
|
+
const applyAlignment = style.alignment ? ' applyAlignment="1"' : '';
|
|
167
|
+
const applyNumFmt = (style.numberFormat || style.numFmtId !== undefined) ? ' applyNumberFormat="1"' : '';
|
|
168
|
+
const applyProtection = (style.locked !== undefined || style.hidden !== undefined) ? ' applyProtection="1"' : '';
|
|
169
|
+
const align = style.alignment ? alignmentXml(style.alignment) : '';
|
|
170
|
+
const prot = (style.locked !== undefined || style.hidden !== undefined)
|
|
171
|
+
? `<protection${style.locked !== undefined ? ` locked="${style.locked ? '1' : '0'}"` : ''}${style.hidden !== undefined ? ` hidden="${style.hidden ? '1' : '0'}"` : ''}/>`
|
|
172
|
+
: '';
|
|
173
|
+
const xml = `<xf numFmtId="${numFmtId}" fontId="${fontId}" fillId="${fillId}" borderId="${borderId}" xfId="0"${applyFont}${applyFill}${applyBorder}${applyAlignment}${applyNumFmt}${applyProtection}>${align}${prot}</xf>`;
|
|
174
|
+
this.xfs.push(xml);
|
|
175
|
+
const idx = this.xfs.length - 1;
|
|
176
|
+
this.styleKey.set(key, idx);
|
|
177
|
+
return idx;
|
|
178
|
+
}
|
|
179
|
+
registerDxf(style) {
|
|
180
|
+
const parts = [];
|
|
181
|
+
if (style.font)
|
|
182
|
+
parts.push(`<font>${fontXml(style.font)}</font>`);
|
|
183
|
+
if (style.fill)
|
|
184
|
+
parts.push(`<fill>${fillXml(style.fill)}</fill>`);
|
|
185
|
+
if (style.border)
|
|
186
|
+
parts.push(borderXml(style.border));
|
|
187
|
+
if (style.numberFormat) {
|
|
188
|
+
const id = this.internNumFmt(style.numberFormat);
|
|
189
|
+
parts.push(`<numFmt numFmtId="${id}" formatCode="${escapeXml(style.numberFormat.formatCode)}"/>`);
|
|
190
|
+
}
|
|
191
|
+
if (style.alignment) {
|
|
192
|
+
parts.push(`<alignment${style.alignment.horizontal ? ` horizontal="${style.alignment.horizontal}"` : ''}${style.alignment.vertical ? ` vertical="${style.alignment.vertical}"` : ''}${style.alignment.wrapText ? ' wrapText="1"' : ''}${style.alignment.textRotation ? ` textRotation="${style.alignment.textRotation}"` : ''}/>`);
|
|
193
|
+
}
|
|
194
|
+
const xml = parts.join('');
|
|
195
|
+
this.dxfs.push(xml);
|
|
196
|
+
return this.dxfs.length - 1;
|
|
197
|
+
}
|
|
198
|
+
toXml() {
|
|
199
|
+
const numFmtXml = this.numFmts.size
|
|
200
|
+
? `<numFmts count="${this.numFmts.size}">${[...this.numFmts.entries()].map(([fmt, id]) => `<numFmt numFmtId="${id}" formatCode="${escapeXml(fmt)}"/>`).join('')}</numFmts>`
|
|
201
|
+
: '';
|
|
202
|
+
return `<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
|
203
|
+
<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
|
|
204
|
+
${numFmtXml}
|
|
205
|
+
<fonts count="${this.fonts.length}">${this.fonts.map(f => `<font>${f}</font>`).join('')}</fonts>
|
|
206
|
+
<fills count="${this.fills.length}">${this.fills.map(f => `<fill>${f}</fill>`).join('')}</fills>
|
|
207
|
+
<borders count="${this.borders.length}">${this.borders.join('')}</borders>
|
|
208
|
+
<cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>
|
|
209
|
+
<cellXfs count="${this.xfs.length}">${this.xfs.join('')}</cellXfs>
|
|
210
|
+
<cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles>
|
|
211
|
+
${this.dxfs.length ? `<dxfs count="${this.dxfs.length}">${this.dxfs.map(d => `<dxf>${d}</dxf>`).join('')}</dxfs>` : ''}
|
|
212
|
+
</styleSheet>`;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
//# sourceMappingURL=StyleRegistry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StyleRegistry.js","sourceRoot":"","sources":["../../src/styles/StyleRegistry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,cAAc,GAA2B;IAC7C,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU;IAC1D,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS;IAChE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ;IACzD,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS;IAChE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,qBAAqB;IAClE,EAAE,EAAE,qBAAqB,EAAE,EAAE,EAAE,0BAA0B;IACzD,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,GAAG;CACpE,CAAC;AAEF,SAAS,QAAQ,CAAC,KAAwB,EAAE,MAAM,GAAG,KAAK;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,UAAU,MAAM,KAAK,KAAK,KAAK,CAAC;AACzC,CAAC;AAED,SAAS,OAAO,CAAC,CAAO;IACtB,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,CAAC,CAAC,IAAI;QAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,SAAS,KAAK,MAAM;QACvC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC;IAC1C,IAAI,CAAC,CAAC,SAAS;QACb,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,IAAI;QAAI,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC,KAAK;QAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC;IACxG,IAAI,CAAC,CAAC,IAAI;QAAI,KAAK,CAAC,IAAI,CAAC,cAAc,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IACxD,IAAI,CAAC,CAAC,OAAO;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC;IAC3D,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,OAAO,CAAC,IAAU;IACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,CAAC,GAAG,IAAmB,CAAC;QAC9B,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,OAAO,6BAA6B,CAAC,CAAC,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,CAAC;IAC5E,CAAC;IAED,MAAM,CAAC,GAAG,IAAoB,CAAC;IAC/B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAC5B,2BAA2B,CAAC,CAAC,QAAQ,iBAAiB,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,oBAAoB,CACpI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,MAAM,KAAK,GAAG;QACZ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE;QAChD,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;QACpD,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;QAC9C,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;QACjD,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE;QAC3C,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;KACrD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,iBAAiB,KAAK,IAAI,KAAK,iBAAiB,CAAC;AAC1D,CAAC;AAED,SAAS,aAAa,CAAC,GAAW,EAAE,CAAyB;IAC3D,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,GAAG,IAAI,CAAC;IAC3B,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3G,OAAO,CAAC,CAAC,KAAK;QACZ,CAAC,CAAC,IAAI,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG;QAChD,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,SAAS,SAAS,CAAC,CAAS;IAC1B,MAAM,IAAI,GAAG;QACX,CAAC,CAAC,UAAU,CAAG,CAAC,CAAC,gBAAgB,CAAG,CAAC,CAAC,EAAE;QACxC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;KACzC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,UAAU,IAAI,CAAC,CAAC,CAAC,GAAG,GAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG;QACtC,aAAa,CAAC,MAAM,EAAM,CAAC,CAAC,IAAI,CAAC;QACjC,aAAa,CAAC,OAAO,EAAK,CAAC,CAAC,KAAK,CAAC;QAClC,aAAa,CAAC,KAAK,EAAO,CAAC,CAAC,GAAG,CAAC;QAChC,aAAa,CAAC,QAAQ,EAAI,CAAC,CAAC,MAAM,CAAC;QACnC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC;QACrC,WAAW,CAAC;AAChB,CAAC;AAED,SAAS,YAAY,CAAC,CAAY;IAChC,MAAM,KAAK,GAAG;QACZ,CAAC,CAAC,UAAU,CAAI,CAAC,CAAC,eAAe,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE;QACrD,CAAC,CAAC,QAAQ,CAAM,CAAC,CAAC,aAAa,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE;QACjD,CAAC,CAAC,QAAQ,CAAM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE;QACrC,CAAC,CAAC,WAAW,CAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE;QACxC,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE;QACtE,CAAC,CAAC,MAAM,CAAQ,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE;QAC7C,CAAC,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE;KACvE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,OAAO,cAAc,KAAK,IAAI,CAAC;AACjC,CAAC;AAID,MAAM,OAAO,aAAa;IAUxB;QATQ,UAAK,GAAe,EAAE,CAAC;QACvB,UAAK,GAAe,EAAE,CAAC;QACvB,YAAO,GAAa,EAAE,CAAC;QACvB,YAAO,GAAwB,IAAI,GAAG,EAAE,CAAC;QACzC,QAAG,GAAiB,EAAE,CAAC;QACvB,aAAQ,GAAwB,IAAI,GAAG,EAAE,CAAC;QAC1C,SAAI,GAAa,EAAE,CAAC;QACpB,iBAAY,GAAG,GAAG,CAAC;QAIzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QACzE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;IAClF,CAAC;IAEO,UAAU,CAAC,CAAmB;QACpC,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEO,UAAU,CAAC,CAAmB;QACpC,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,GAAG,CAAC;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,CAAC;IAEO,YAAY,CAAC,CAAqB;QACxC,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACtC,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,GAAG,CAAC;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,CAAC;IAEO,YAAY,CAAC,GAA6B,EAAE,SAAkB;QACpE,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,OAAO,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;QAC/E,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IAGD,QAAQ,CAAC,KAA4B;QACnC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC;QAE3D,MAAM,MAAM,GAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAK,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,SAAS,GAAQ,KAAK,CAAC,IAAI,CAAM,CAAC,CAAC,gBAAgB,CAAM,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,SAAS,GAAQ,KAAK,CAAC,IAAI,CAAM,CAAC,CAAC,gBAAgB,CAAM,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,WAAW,GAAM,KAAK,CAAC,MAAM,CAAI,CAAC,CAAC,kBAAkB,CAAI,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,WAAW,GAAM,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5G,MAAM,eAAe,GAAE,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;QAChH,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,GAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;YACtE,CAAC,CAAC,cAAc,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI;YACzK,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,GAAG,GAAG,iBAAiB,QAAQ,aAAa,MAAM,aAAa,MAAM,eAAe,QAAQ,aAAa,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,GAAG,WAAW,GAAG,eAAe,IAAI,KAAK,GAAG,IAAI,OAAO,CAAC;QAE3N,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IASD,WAAW,CAAC,KAAgB;QAC1B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI;YAAI,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,IAAI;YAAI,KAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpE,IAAI,KAAK,CAAC,MAAM;YAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACtD,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACjD,KAAK,CAAC,IAAI,CAAC,qBAAqB,EAAE,iBAAiB,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACpG,CAAC;QACD,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,aACT,KAAK,CAAC,SAAS,CAAC,UAAU,CAAG,CAAC,CAAC,gBAAgB,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE,GACjF,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAK,CAAC,CAAC,cAAc,KAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,GAC7E,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,GACnD,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC,kBAAkB,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC/F,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAGD,KAAK;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI;YACjC,CAAC,CAAC,mBAAmB,IAAI,CAAC,OAAO,CAAC,IAAI,KAClC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAC5C,qBAAqB,EAAE,iBAAiB,SAAS,CAAC,GAAG,CAAC,KAAK,CAC5D,CAAC,IAAI,CAAC,EAAE,CACX,YAAY;YACd,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO;;EAET,SAAS;gBACK,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvE,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;kBACrE,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;;kBAE7C,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;;EAErD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;cACxG,CAAC;IACb,CAAC;CACF"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { CellStyle, Font, Color, BorderStyle, FillPattern, HorizontalAlign, VerticalAlign } from '../core/types.js';
|
|
2
|
+
export declare class StyleBuilder {
|
|
3
|
+
private s;
|
|
4
|
+
font(props: Font): this;
|
|
5
|
+
fontSize(size: number): this;
|
|
6
|
+
fontName(name: string): this;
|
|
7
|
+
bold(v?: boolean): this;
|
|
8
|
+
italic(v?: boolean): this;
|
|
9
|
+
strike(v?: boolean): this;
|
|
10
|
+
underline(style?: Font['underline']): this;
|
|
11
|
+
fontColor(color: Color): this;
|
|
12
|
+
fill(pattern: FillPattern, fgColor: Color, bgColor?: Color): this;
|
|
13
|
+
bg(color: Color): this;
|
|
14
|
+
border(style: BorderStyle, color?: Color): this;
|
|
15
|
+
borderLeft(style: BorderStyle, color?: Color): this;
|
|
16
|
+
borderRight(style: BorderStyle, color?: Color): this;
|
|
17
|
+
borderTop(style: BorderStyle, color?: Color): this;
|
|
18
|
+
borderBottom(style: BorderStyle, color?: Color): this;
|
|
19
|
+
align(horizontal: HorizontalAlign, vertical?: VerticalAlign): this;
|
|
20
|
+
center(): this;
|
|
21
|
+
wrap(v?: boolean): this;
|
|
22
|
+
rotate(degrees: number): this;
|
|
23
|
+
indent(n: number): this;
|
|
24
|
+
shrink(v?: boolean): this;
|
|
25
|
+
numFmt(formatCode: string): this;
|
|
26
|
+
numFmtId(id: number): this;
|
|
27
|
+
locked(v?: boolean): this;
|
|
28
|
+
hidden(v?: boolean): this;
|
|
29
|
+
build(): CellStyle;
|
|
30
|
+
}
|
|
31
|
+
export declare function style(): StyleBuilder;
|
|
32
|
+
export declare const Styles: {
|
|
33
|
+
headerBlue: CellStyle;
|
|
34
|
+
headerGray: CellStyle;
|
|
35
|
+
headerGreen: CellStyle;
|
|
36
|
+
currency: CellStyle;
|
|
37
|
+
percent: CellStyle;
|
|
38
|
+
integer: CellStyle;
|
|
39
|
+
date: CellStyle;
|
|
40
|
+
dateTime: CellStyle;
|
|
41
|
+
bold: CellStyle;
|
|
42
|
+
centered: CellStyle;
|
|
43
|
+
wrapped: CellStyle;
|
|
44
|
+
bordered: CellStyle;
|
|
45
|
+
borderedBlack: CellStyle;
|
|
46
|
+
highlight: CellStyle;
|
|
47
|
+
lightBlue: CellStyle;
|
|
48
|
+
redText: CellStyle;
|
|
49
|
+
blueText: CellStyle;
|
|
50
|
+
greenText: CellStyle;
|
|
51
|
+
tableHeader: CellStyle;
|
|
52
|
+
deleted: CellStyle;
|
|
53
|
+
};
|
|
54
|
+
export declare const NumFmt: {
|
|
55
|
+
readonly General: "General";
|
|
56
|
+
readonly Integer: "#,##0";
|
|
57
|
+
readonly Decimal2: "#,##0.00";
|
|
58
|
+
readonly Currency: "\"$\"#,##0.00";
|
|
59
|
+
readonly CurrencyNeg: "\"$\"#,##0.00;[Red](\"$\"#,##0.00)";
|
|
60
|
+
readonly Percent: "0%";
|
|
61
|
+
readonly Percent2: "0.00%";
|
|
62
|
+
readonly Scientific: "0.00E+00";
|
|
63
|
+
readonly Fraction: "# ?/?";
|
|
64
|
+
readonly ShortDate: "mm/dd/yyyy";
|
|
65
|
+
readonly LongDate: "mmmm d, yyyy";
|
|
66
|
+
readonly Time: "h:mm AM/PM";
|
|
67
|
+
readonly DateTime: "mm/dd/yyyy h:mm";
|
|
68
|
+
readonly Text: "@";
|
|
69
|
+
readonly Accounting: "_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)";
|
|
70
|
+
readonly FinancialPos: "#,##0;(#,##0)";
|
|
71
|
+
readonly ZeroDash: "#,##0;(#,##0);\"-\"";
|
|
72
|
+
readonly Multiple: "0.0\"x\"";
|
|
73
|
+
};
|
|
74
|
+
export declare const Colors: {
|
|
75
|
+
readonly White: "FFFFFFFF";
|
|
76
|
+
readonly Black: "FF000000";
|
|
77
|
+
readonly Red: "FFFF0000";
|
|
78
|
+
readonly Green: "FF00B050";
|
|
79
|
+
readonly Blue: "FF0070C0";
|
|
80
|
+
readonly Yellow: "FFFFFF00";
|
|
81
|
+
readonly Orange: "FFFFA500";
|
|
82
|
+
readonly Gray: "FF808080";
|
|
83
|
+
readonly LightGray: "FFD3D3D3";
|
|
84
|
+
readonly DarkBlue: "FF003366";
|
|
85
|
+
readonly ExcelBlue: "FF4472C4";
|
|
86
|
+
readonly ExcelOrange: "FFED7D31";
|
|
87
|
+
readonly ExcelGreen: "FF70AD47";
|
|
88
|
+
readonly ExcelRed: "FFFF0000";
|
|
89
|
+
readonly ExcelPurple: "FF7030A0";
|
|
90
|
+
readonly Transparent: "00FFFFFF";
|
|
91
|
+
};
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
export class StyleBuilder {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.s = {};
|
|
4
|
+
}
|
|
5
|
+
font(props) {
|
|
6
|
+
this.s.font = { ...(this.s.font ?? {}), ...props };
|
|
7
|
+
return this;
|
|
8
|
+
}
|
|
9
|
+
fontSize(size) { return this.font({ size }); }
|
|
10
|
+
fontName(name) { return this.font({ name }); }
|
|
11
|
+
bold(v = true) { return this.font({ bold: v }); }
|
|
12
|
+
italic(v = true) { return this.font({ italic: v }); }
|
|
13
|
+
strike(v = true) { return this.font({ strike: v }); }
|
|
14
|
+
underline(style = 'single') { return this.font({ underline: style }); }
|
|
15
|
+
fontColor(color) { return this.font({ color }); }
|
|
16
|
+
fill(pattern, fgColor, bgColor) {
|
|
17
|
+
this.s.fill = { type: 'pattern', pattern, fgColor, bgColor };
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
bg(color) { return this.fill('solid', color); }
|
|
21
|
+
border(style, color) {
|
|
22
|
+
const side = { style, color };
|
|
23
|
+
this.s.border = { left: side, right: side, top: side, bottom: side };
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
borderLeft(style, color) {
|
|
27
|
+
this.s.border = { ...(this.s.border ?? {}), left: { style, color } };
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
borderRight(style, color) {
|
|
31
|
+
this.s.border = { ...(this.s.border ?? {}), right: { style, color } };
|
|
32
|
+
return this;
|
|
33
|
+
}
|
|
34
|
+
borderTop(style, color) {
|
|
35
|
+
this.s.border = { ...(this.s.border ?? {}), top: { style, color } };
|
|
36
|
+
return this;
|
|
37
|
+
}
|
|
38
|
+
borderBottom(style, color) {
|
|
39
|
+
this.s.border = { ...(this.s.border ?? {}), bottom: { style, color } };
|
|
40
|
+
return this;
|
|
41
|
+
}
|
|
42
|
+
align(horizontal, vertical) {
|
|
43
|
+
this.s.alignment = { ...(this.s.alignment ?? {}), horizontal, vertical };
|
|
44
|
+
return this;
|
|
45
|
+
}
|
|
46
|
+
center() { return this.align('center', 'center'); }
|
|
47
|
+
wrap(v = true) {
|
|
48
|
+
this.s.alignment = { ...(this.s.alignment ?? {}), wrapText: v };
|
|
49
|
+
return this;
|
|
50
|
+
}
|
|
51
|
+
rotate(degrees) {
|
|
52
|
+
this.s.alignment = { ...(this.s.alignment ?? {}), textRotation: degrees };
|
|
53
|
+
return this;
|
|
54
|
+
}
|
|
55
|
+
indent(n) {
|
|
56
|
+
this.s.alignment = { ...(this.s.alignment ?? {}), indent: n };
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
shrink(v = true) {
|
|
60
|
+
this.s.alignment = { ...(this.s.alignment ?? {}), shrinkToFit: v };
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
numFmt(formatCode) {
|
|
64
|
+
this.s.numberFormat = { formatCode };
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
numFmtId(id) {
|
|
68
|
+
this.s.numFmtId = id;
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
locked(v = true) { this.s.locked = v; return this; }
|
|
72
|
+
hidden(v = true) { this.s.hidden = v; return this; }
|
|
73
|
+
build() { return { ...this.s }; }
|
|
74
|
+
}
|
|
75
|
+
export function style() { return new StyleBuilder(); }
|
|
76
|
+
export const Styles = {
|
|
77
|
+
headerBlue: style().bold().bg('FF4472C4').fontColor('FFFFFFFF').center().build(),
|
|
78
|
+
headerGray: style().bold().bg('FF595959').fontColor('FFFFFFFF').center().build(),
|
|
79
|
+
headerGreen: style().bold().bg('FF70AD47').fontColor('FFFFFFFF').center().build(),
|
|
80
|
+
currency: style().numFmt('"$"#,##0.00').build(),
|
|
81
|
+
percent: style().numFmt('0.00%').build(),
|
|
82
|
+
integer: style().numFmt('#,##0').build(),
|
|
83
|
+
date: style().numFmtId(14).build(),
|
|
84
|
+
dateTime: style().numFmtId(22).build(),
|
|
85
|
+
bold: style().bold().build(),
|
|
86
|
+
centered: style().center().build(),
|
|
87
|
+
wrapped: style().wrap().build(),
|
|
88
|
+
bordered: style().border('thin').build(),
|
|
89
|
+
borderedBlack: style().border('thin', 'FF000000').build(),
|
|
90
|
+
highlight: style().bg('FFFFFF00').build(),
|
|
91
|
+
lightBlue: style().bg('FFDCE6F1').build(),
|
|
92
|
+
redText: style().fontColor('FFFF0000').build(),
|
|
93
|
+
blueText: style().fontColor('FF0000FF').build(),
|
|
94
|
+
greenText: style().fontColor('FF00B050').build(),
|
|
95
|
+
tableHeader: style().bold().border('thin').center().bg('FFD9E1F2').build(),
|
|
96
|
+
deleted: style().strike().fontColor('FF808080').build(),
|
|
97
|
+
};
|
|
98
|
+
export const NumFmt = {
|
|
99
|
+
General: 'General',
|
|
100
|
+
Integer: '#,##0',
|
|
101
|
+
Decimal2: '#,##0.00',
|
|
102
|
+
Currency: '"$"#,##0.00',
|
|
103
|
+
CurrencyNeg: '"$"#,##0.00;[Red]("$"#,##0.00)',
|
|
104
|
+
Percent: '0%',
|
|
105
|
+
Percent2: '0.00%',
|
|
106
|
+
Scientific: '0.00E+00',
|
|
107
|
+
Fraction: '# ?/?',
|
|
108
|
+
ShortDate: 'mm/dd/yyyy',
|
|
109
|
+
LongDate: 'mmmm d, yyyy',
|
|
110
|
+
Time: 'h:mm AM/PM',
|
|
111
|
+
DateTime: 'mm/dd/yyyy h:mm',
|
|
112
|
+
Text: '@',
|
|
113
|
+
Accounting: '_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',
|
|
114
|
+
FinancialPos: '#,##0;(#,##0)',
|
|
115
|
+
ZeroDash: '#,##0;(#,##0);"-"',
|
|
116
|
+
Multiple: '0.0"x"',
|
|
117
|
+
};
|
|
118
|
+
export const Colors = {
|
|
119
|
+
White: 'FFFFFFFF',
|
|
120
|
+
Black: 'FF000000',
|
|
121
|
+
Red: 'FFFF0000',
|
|
122
|
+
Green: 'FF00B050',
|
|
123
|
+
Blue: 'FF0070C0',
|
|
124
|
+
Yellow: 'FFFFFF00',
|
|
125
|
+
Orange: 'FFFFA500',
|
|
126
|
+
Gray: 'FF808080',
|
|
127
|
+
LightGray: 'FFD3D3D3',
|
|
128
|
+
DarkBlue: 'FF003366',
|
|
129
|
+
ExcelBlue: 'FF4472C4',
|
|
130
|
+
ExcelOrange: 'FFED7D31',
|
|
131
|
+
ExcelGreen: 'FF70AD47',
|
|
132
|
+
ExcelRed: 'FFFF0000',
|
|
133
|
+
ExcelPurple: 'FF7030A0',
|
|
134
|
+
Transparent: '00FFFFFF',
|
|
135
|
+
};
|
|
136
|
+
//# sourceMappingURL=builders.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.js","sourceRoot":"","sources":["../../src/styles/builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare function colIndexToLetter(n: number): string;
|
|
2
|
+
export declare function colLetterToIndex(col: string): number;
|
|
3
|
+
export declare function cellRefToIndices(ref: string): {
|
|
4
|
+
row: number;
|
|
5
|
+
col: number;
|
|
6
|
+
};
|
|
7
|
+
export declare function indicesToCellRef(row: number, col: number, abs?: boolean): string;
|
|
8
|
+
export declare function parseRange(range: string): {
|
|
9
|
+
startRow: number;
|
|
10
|
+
startCol: number;
|
|
11
|
+
endRow: number;
|
|
12
|
+
endCol: number;
|
|
13
|
+
};
|
|
14
|
+
export declare function escapeXml(s: string): string;
|
|
15
|
+
export declare function xmlAttrs(attrs: Record<string, string | number | boolean | undefined>): string;
|
|
16
|
+
export declare function xmlTag(tag: string, attrs: Record<string, any>, content?: string): string;
|
|
17
|
+
export declare function strToBytes(s: string): Uint8Array;
|
|
18
|
+
export declare function dateToSerial(d: Date, date1904?: boolean): number;
|
|
19
|
+
export declare function deepClone<T>(v: T): T;
|
|
20
|
+
export declare function uid(): string;
|
|
21
|
+
export declare function emuToPx(emu: number): number;
|
|
22
|
+
export declare function pxToEmu(px: number): number;
|
|
23
|
+
export declare function colWidthToEmu(w: number, charWidth?: number): number;
|
|
24
|
+
export declare function rowHeightToEmu(h: number): number;
|
|
25
|
+
export declare function base64ToBytes(b64: string): Uint8Array;
|
|
26
|
+
export declare function bytesToBase64(data: Uint8Array): string;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export function colIndexToLetter(n) {
|
|
2
|
+
let s = '';
|
|
3
|
+
while (n > 0) {
|
|
4
|
+
const r = (n - 1) % 26;
|
|
5
|
+
s = String.fromCharCode(65 + r) + s;
|
|
6
|
+
n = Math.floor((n - 1) / 26);
|
|
7
|
+
}
|
|
8
|
+
return s;
|
|
9
|
+
}
|
|
10
|
+
export function colLetterToIndex(col) {
|
|
11
|
+
let n = 0;
|
|
12
|
+
for (let i = 0; i < col.length; i++) {
|
|
13
|
+
n = n * 26 + (col.charCodeAt(i) - 64);
|
|
14
|
+
}
|
|
15
|
+
return n;
|
|
16
|
+
}
|
|
17
|
+
export function cellRefToIndices(ref) {
|
|
18
|
+
const m = ref.match(/^(\$?)([A-Z]+)(\$?)(\d+)$/);
|
|
19
|
+
if (!m)
|
|
20
|
+
throw new Error(`Invalid cell ref: ${ref}`);
|
|
21
|
+
return { col: colLetterToIndex(m[2]), row: parseInt(m[4], 10) };
|
|
22
|
+
}
|
|
23
|
+
export function indicesToCellRef(row, col, abs = false) {
|
|
24
|
+
const a = abs ? '$' : '';
|
|
25
|
+
return `${a}${colIndexToLetter(col)}${a}${row}`;
|
|
26
|
+
}
|
|
27
|
+
export function parseRange(range) {
|
|
28
|
+
const [start, end] = range.split(':');
|
|
29
|
+
const s = cellRefToIndices(start.replace(/\$/g, ''));
|
|
30
|
+
const e = end ? cellRefToIndices(end.replace(/\$/g, '')) : s;
|
|
31
|
+
return { startRow: s.row, startCol: s.col, endRow: e.row, endCol: e.col };
|
|
32
|
+
}
|
|
33
|
+
export function escapeXml(s) {
|
|
34
|
+
return s
|
|
35
|
+
.replace(/&/g, '&')
|
|
36
|
+
.replace(/</g, '<')
|
|
37
|
+
.replace(/>/g, '>')
|
|
38
|
+
.replace(/"/g, '"')
|
|
39
|
+
.replace(/'/g, ''');
|
|
40
|
+
}
|
|
41
|
+
export function xmlAttrs(attrs) {
|
|
42
|
+
return Object.entries(attrs)
|
|
43
|
+
.filter(([, v]) => v !== undefined && v !== null)
|
|
44
|
+
.map(([k, v]) => `${k}="${escapeXml(String(v))}"`)
|
|
45
|
+
.join(' ');
|
|
46
|
+
}
|
|
47
|
+
export function xmlTag(tag, attrs, content) {
|
|
48
|
+
const a = xmlAttrs(attrs);
|
|
49
|
+
const open = a ? `<${tag} ${a}` : `<${tag}`;
|
|
50
|
+
if (content === undefined)
|
|
51
|
+
return `${open}/>`;
|
|
52
|
+
return `${open}>${content}</${tag}>`;
|
|
53
|
+
}
|
|
54
|
+
const enc = new TextEncoder();
|
|
55
|
+
export function strToBytes(s) { return enc.encode(s); }
|
|
56
|
+
export function dateToSerial(d, date1904 = false) {
|
|
57
|
+
const epoch = date1904 ? Date.UTC(1904, 0, 1) : Date.UTC(1899, 11, 30);
|
|
58
|
+
const serial = (d.getTime() - epoch) / 86400000;
|
|
59
|
+
return date1904 ? serial : serial >= 60 ? serial : serial;
|
|
60
|
+
}
|
|
61
|
+
export function deepClone(v) { return JSON.parse(JSON.stringify(v)); }
|
|
62
|
+
let _id = 1;
|
|
63
|
+
export function uid() { return `ef_${_id++}`; }
|
|
64
|
+
export function emuToPx(emu) { return emu / 914400 * 96; }
|
|
65
|
+
export function pxToEmu(px) { return Math.round(px * 914400 / 96); }
|
|
66
|
+
export function colWidthToEmu(w, charWidth = 7) {
|
|
67
|
+
return pxToEmu(Math.round(w * charWidth));
|
|
68
|
+
}
|
|
69
|
+
export function rowHeightToEmu(h) {
|
|
70
|
+
return pxToEmu(Math.round(h * 4 / 3));
|
|
71
|
+
}
|
|
72
|
+
export function base64ToBytes(b64) {
|
|
73
|
+
const bin = atob(b64);
|
|
74
|
+
const out = new Uint8Array(bin.length);
|
|
75
|
+
for (let i = 0; i < bin.length; i++)
|
|
76
|
+
out[i] = bin.charCodeAt(i);
|
|
77
|
+
return out;
|
|
78
|
+
}
|
|
79
|
+
export function bytesToBase64(data) {
|
|
80
|
+
let bin = '';
|
|
81
|
+
for (let i = 0; i < data.length; i++)
|
|
82
|
+
bin += String.fromCharCode(data[i]);
|
|
83
|
+
return btoa(bin);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface XmlNode {
|
|
2
|
+
tag: string;
|
|
3
|
+
attrs: Record<string, string>;
|
|
4
|
+
children: XmlNode[];
|
|
5
|
+
text?: string;
|
|
6
|
+
_raw?: string;
|
|
7
|
+
_ns?: Record<string, string>;
|
|
8
|
+
}
|
|
9
|
+
export declare function nodeToXml(node: XmlNode): string;
|
|
10
|
+
export declare function parseXml(xml: string): XmlNode;
|
|
11
|
+
export declare function child(node: XmlNode, localTag: string): XmlNode | undefined;
|
|
12
|
+
export declare function children(node: XmlNode, localTag: string): XmlNode[];
|
|
13
|
+
export declare function attr(node: XmlNode, name: string): string | undefined;
|
|
14
|
+
export declare function localName(tag: string): string;
|
|
15
|
+
export declare function walk(node: XmlNode, fn: (n: XmlNode) => void): void;
|
|
16
|
+
export declare function find(node: XmlNode, pred: (n: XmlNode) => boolean): XmlNode | undefined;
|
|
17
|
+
export declare function findAll(node: XmlNode, pred: (n: XmlNode) => boolean): XmlNode[];
|