@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.
Files changed (48) hide show
  1. package/README.md +566 -0
  2. package/dist/core/SharedStrings.d.ts +11 -0
  3. package/dist/core/SharedStrings.js +67 -0
  4. package/dist/core/SharedStrings.js.map +1 -0
  5. package/dist/core/Workbook.d.ts +42 -0
  6. package/dist/core/Workbook.js +459 -0
  7. package/dist/core/Workbook.js.map +1 -0
  8. package/dist/core/WorkbookReader.d.ts +43 -0
  9. package/dist/core/WorkbookReader.js +563 -0
  10. package/dist/core/WorkbookReader.js.map +1 -0
  11. package/dist/core/Worksheet.d.ts +78 -0
  12. package/dist/core/Worksheet.js +568 -0
  13. package/dist/core/Worksheet.js.map +1 -0
  14. package/dist/core/properties.d.ts +91 -0
  15. package/dist/core/properties.js +265 -0
  16. package/dist/core/properties.js.map +1 -0
  17. package/dist/core/types.d.ts +388 -0
  18. package/dist/core/types.js +2 -0
  19. package/dist/core/types.js.map +1 -0
  20. package/dist/features/ChartBuilder.d.ts +2 -0
  21. package/dist/features/ChartBuilder.js +165 -0
  22. package/dist/features/ChartBuilder.js.map +1 -0
  23. package/dist/features/TableBuilder.d.ts +2 -0
  24. package/dist/features/TableBuilder.js +36 -0
  25. package/dist/features/TableBuilder.js.map +1 -0
  26. package/dist/index-min.js +259 -0
  27. package/dist/index.d.ts +7 -0
  28. package/dist/index.js +7 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/styles/StyleRegistry.d.ts +19 -0
  31. package/dist/styles/StyleRegistry.js +215 -0
  32. package/dist/styles/StyleRegistry.js.map +1 -0
  33. package/dist/styles/builders.d.ts +91 -0
  34. package/dist/styles/builders.js +136 -0
  35. package/dist/styles/builders.js.map +1 -0
  36. package/dist/utils/helpers.d.ts +26 -0
  37. package/dist/utils/helpers.js +85 -0
  38. package/dist/utils/helpers.js.map +1 -0
  39. package/dist/utils/xmlParser.d.ts +17 -0
  40. package/dist/utils/xmlParser.js +179 -0
  41. package/dist/utils/xmlParser.js.map +1 -0
  42. package/dist/utils/zip.d.ts +11 -0
  43. package/dist/utils/zip.js +571 -0
  44. package/dist/utils/zip.js.map +1 -0
  45. package/dist/utils/zipReader.d.ts +6 -0
  46. package/dist/utils/zipReader.js +84 -0
  47. package/dist/utils/zipReader.js.map +1 -0
  48. 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":"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"}
@@ -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, '&amp;')
36
+ .replace(/</g, '&lt;')
37
+ .replace(/>/g, '&gt;')
38
+ .replace(/"/g, '&quot;')
39
+ .replace(/'/g, '&apos;');
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[];