exceljs-lts 4.5.4 → 4.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -11
- package/README_zh.md +18 -10
- package/dist/es5/doc/cell.js +37 -12
- package/dist/es5/doc/cell.js.map +1 -1
- package/dist/es5/doc/data-validations.js +94 -1
- package/dist/es5/doc/data-validations.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-reader.js +2 -1
- package/dist/es5/stream/xlsx/workbook-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/workbook-writer.js +21 -1
- package/dist/es5/stream/xlsx/workbook-writer.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-reader.js +1 -1
- package/dist/es5/stream/xlsx/worksheet-reader.js.map +1 -1
- package/dist/es5/stream/xlsx/worksheet-writer.js +87 -1
- package/dist/es5/stream/xlsx/worksheet-writer.js.map +1 -1
- package/dist/es5/xlsx/rel-type.js +1 -0
- package/dist/es5/xlsx/rel-type.js.map +1 -1
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js +14 -3
- package/dist/es5/xlsx/xform/sheet/data-validations-xform.js.map +1 -1
- package/dist/exceljs.bare.js +148 -18
- package/dist/exceljs.bare.js.map +5 -5
- package/dist/exceljs.bare.min.js +1 -1
- package/dist/exceljs.bare.min.js.map +1 -1
- package/dist/exceljs.js +148 -18
- package/dist/exceljs.js.map +5 -5
- package/dist/exceljs.min.js +4 -4
- package/dist/exceljs.min.js.map +1 -1
- package/index.d.ts +36 -3
- package/lib/doc/cell.js +37 -12
- package/lib/doc/data-validations.js +83 -1
- package/lib/stream/xlsx/workbook-reader.js +6 -1
- package/lib/stream/xlsx/workbook-writer.js +19 -0
- package/lib/stream/xlsx/worksheet-reader.js +1 -1
- package/lib/stream/xlsx/worksheet-writer.js +71 -1
- package/lib/xlsx/rel-type.js +1 -0
- package/lib/xlsx/xform/sheet/data-validations-xform.js +14 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -326,7 +326,7 @@ const sheet = workbook.addWorksheet('My Sheet', {views:[{state: 'frozen', xSplit
|
|
|
326
326
|
|
|
327
327
|
// Create worksheets with headers and footers
|
|
328
328
|
const sheet = workbook.addWorksheet('My Sheet', {
|
|
329
|
-
headerFooter:{firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
329
|
+
headerFooter:{differentFirst: true, firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
330
330
|
});
|
|
331
331
|
|
|
332
332
|
// create new sheet with pageSetup settings for A4 - landscape
|
|
@@ -518,11 +518,11 @@ Note: Images are not currently supported.
|
|
|
518
518
|
|
|
519
519
|
// Create worksheets with headers and footers
|
|
520
520
|
var sheet = workbook.addWorksheet('sheet', {
|
|
521
|
-
headerFooter:{firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
521
|
+
headerFooter:{differentFirst: true, firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
522
522
|
});
|
|
523
523
|
// Create worksheets with headers and footers
|
|
524
524
|
var worksheetWriter = workbookWriter.addWorksheet('sheet', {
|
|
525
|
-
headerFooter:{firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
525
|
+
headerFooter:{differentFirst: true, firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
526
526
|
});
|
|
527
527
|
// Set footer (default centered), result: "Page 2 of 16"
|
|
528
528
|
worksheet.headerFooter.oddFooter = "Page &P of &N";
|
|
@@ -543,8 +543,17 @@ worksheet.headerFooter.oddFooter = "&Lexceljs&C&F&RPage &P";
|
|
|
543
543
|
worksheet.headerFooter.differentFirst = true;
|
|
544
544
|
worksheet.headerFooter.firstHeader = "Hello Exceljs";
|
|
545
545
|
worksheet.headerFooter.firstFooter = "Hello World"
|
|
546
|
+
|
|
547
|
+
// Add different header & footer for even pages (odd pages use oddHeader/oddFooter)
|
|
548
|
+
worksheet.headerFooter.differentOddEven = true;
|
|
549
|
+
worksheet.headerFooter.evenHeader = "Even page header";
|
|
550
|
+
worksheet.headerFooter.evenFooter = "Page &P (even)";
|
|
546
551
|
```
|
|
547
552
|
|
|
553
|
+
Note: `firstHeader`/`firstFooter` only take effect when `differentFirst` is `true`, and
|
|
554
|
+
`evenHeader`/`evenFooter` only take effect when `differentOddEven` is `true`. Without these flags
|
|
555
|
+
Excel ignores them and uses `oddHeader`/`oddFooter` on every page.
|
|
556
|
+
|
|
548
557
|
**Supported headerFooter settings**
|
|
549
558
|
|
|
550
559
|
| Name | Default | Description |
|
|
@@ -553,10 +562,10 @@ worksheet.headerFooter.firstFooter = "Hello World"
|
|
|
553
562
|
| differentOddEven | false | Set the value of differentOddEven as true, which indicates that headers/footers for odd and even pages are different |
|
|
554
563
|
| oddHeader | null | Set header string for odd(default) pages, could format the string |
|
|
555
564
|
| oddFooter | null | Set footer string for odd(default) pages, could format the string |
|
|
556
|
-
| evenHeader | null | Set header string for even pages, could format the string |
|
|
557
|
-
| evenFooter | null | Set footer string for even pages, could format the string |
|
|
558
|
-
| firstHeader | null | Set header string for the first page, could format the string |
|
|
559
|
-
| firstFooter | null | Set footer string for the first page, could format the string |
|
|
565
|
+
| evenHeader | null | Set header string for even pages, could format the string. Requires `differentOddEven: true` |
|
|
566
|
+
| evenFooter | null | Set footer string for even pages, could format the string. Requires `differentOddEven: true` |
|
|
567
|
+
| firstHeader | null | Set header string for the first page, could format the string. Requires `differentFirst: true` |
|
|
568
|
+
| firstFooter | null | Set footer string for the first page, could format the string. Requires `differentFirst: true` |
|
|
560
569
|
|
|
561
570
|
**Script Commands**
|
|
562
571
|
|
|
@@ -1065,6 +1074,12 @@ expect(worksheet.getCell('A1').names).to.have.members(['thing2']);
|
|
|
1065
1074
|
|
|
1066
1075
|
Cells can define what values are valid or not and provide prompting to the user to help guide them.
|
|
1067
1076
|
|
|
1077
|
+
When a file is loaded, a validation that applies to a large range (more than 1000 cells, for example
|
|
1078
|
+
a whole column such as `A2:A1048576`) is kept as one range-keyed entry in
|
|
1079
|
+
`worksheet.dataValidations.model` instead of one entry per cell. `cell.dataValidation` still returns it
|
|
1080
|
+
for every cell in the range, and setting `cell.dataValidation` on one of those cells overrides just
|
|
1081
|
+
that cell.
|
|
1082
|
+
|
|
1068
1083
|
Validation types can be one of the following:
|
|
1069
1084
|
|
|
1070
1085
|
| Type | Description |
|
|
@@ -2036,7 +2051,8 @@ Adding images to a worksheet is a two-step process.
|
|
|
2036
2051
|
First, the image is added to the workbook via the addImage() function which will also return an imageId value.
|
|
2037
2052
|
Then, using the imageId, the image can be added to the worksheet either as a tiled background or covering a cell range.
|
|
2038
2053
|
|
|
2039
|
-
Note: As of this version, adjusting or transforming the image is not supported
|
|
2054
|
+
Note: As of this version, adjusting or transforming the image is not supported.
|
|
2055
|
+
The streaming WorkbookWriter supports `addImage()` and `addBackgroundImage()` too; add images to a streamed worksheet before you commit it.
|
|
2040
2056
|
|
|
2041
2057
|
### Add Image to Workbook[⬆](#contents)<!-- Link generated with jump2header -->
|
|
2042
2058
|
|
|
@@ -2409,6 +2425,7 @@ The interface to the streaming workbook and worksheet is almost the same as the
|
|
|
2409
2425
|
* Once a worksheet is added to a workbook, it cannot be removed.
|
|
2410
2426
|
* Once a row is committed, it is no longer accessible since it will have been dropped from the worksheet.
|
|
2411
2427
|
* unMergeCells() is not supported.
|
|
2428
|
+
* Images (`worksheet.addImage()`, `worksheet.addBackgroundImage()`) must be added before the worksheet is committed.
|
|
2412
2429
|
|
|
2413
2430
|
Note that it is possible to build the entire workbook without committing any rows.
|
|
2414
2431
|
When the workbook is committed, all added worksheets (including all uncommitted rows) will be automatically committed.
|
|
@@ -2503,10 +2520,10 @@ The constructor takes a required input argument and an optional options argument
|
|
|
2503
2520
|
| --------------------- | ----------- |
|
|
2504
2521
|
| input (required) | Specifies the name of the file or the readable stream from which to read the XLSX workbook. |
|
|
2505
2522
|
| options (optional) | Specifies how to handle the event types occuring during the read parsing. |
|
|
2506
|
-
| options.entries | Specifies whether to emit entries (`'emit'`) or not (`'ignore'`). Default is `'
|
|
2523
|
+
| options.entries | Specifies whether to emit entries (`'emit'`) or not (`'ignore'`). Default is `'ignore'`. |
|
|
2507
2524
|
| options.sharedStrings | Specifies whether to cache shared strings (`'cache'`), which inserts them into the respective cell values, or whether to emit them (`'emit'`) or ignore them (`'ignore'`), in both of which case the cell value will be a reference to the shared string's index. Default is `'cache'`. |
|
|
2508
|
-
| options.hyperlinks | Specifies whether to cache hyperlinks (`'cache'`), which inserts them into their respective cells, whether to emit them (`'emit'`) or whether to ignore them (`'ignore'`). Default is `'
|
|
2509
|
-
| options.styles | Specifies whether to cache styles (`'cache'`), which inserts them into their respective rows and cells, or whether to ignore them (`'ignore'`). Default is `'
|
|
2525
|
+
| options.hyperlinks | Specifies whether to cache hyperlinks (`'cache'`), which inserts them into their respective cells, whether to emit them (`'emit'`) or whether to ignore them (`'ignore'`). Default is `'ignore'`. |
|
|
2526
|
+
| options.styles | Specifies whether to cache styles (`'cache'`), which inserts them into their respective rows and cells, or whether to ignore them (`'ignore'`). Default is `'ignore'`. Use `'cache'` to get number formats and `Date` cell values; with `'ignore'`, dates are read as plain numbers. |
|
|
2510
2527
|
| options.worksheets | Specifies whether to emit worksheets (`'emit'`) or not (`'ignore'`). Default is `'emit'`. |
|
|
2511
2528
|
|
|
2512
2529
|
```js
|
package/README_zh.md
CHANGED
|
@@ -307,7 +307,7 @@ const worksheet = workbook.addWorksheet('My Sheet', {
|
|
|
307
307
|
|
|
308
308
|
// 创建一个具有页眉页脚的工作表
|
|
309
309
|
const sheet = workbook.addWorksheet('My Sheet', {
|
|
310
|
-
headerFooter:{firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
310
|
+
headerFooter:{differentFirst: true, firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
311
311
|
});
|
|
312
312
|
|
|
313
313
|
// 创建一个冻结了第一行和第一列的工作表
|
|
@@ -485,12 +485,12 @@ worksheet.pageSetup.printTitlesColumn = 'A:C';
|
|
|
485
485
|
```javascript
|
|
486
486
|
// 创建一个带有页眉和页脚的工作表
|
|
487
487
|
var sheet = workbook.addWorksheet('My Sheet', {
|
|
488
|
-
headerFooter:{firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
488
|
+
headerFooter:{differentFirst: true, firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
489
489
|
});
|
|
490
490
|
|
|
491
491
|
// 创建一个带有页眉和页脚可写的工作表
|
|
492
492
|
var worksheetWriter = workbookWriter.addWorksheet('sheet', {
|
|
493
|
-
headerFooter:{firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
493
|
+
headerFooter:{differentFirst: true, firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
|
|
494
494
|
});
|
|
495
495
|
// 代码中出现的&开头字符对应变量,相关信息可查阅下文的变量表
|
|
496
496
|
// 设置页脚(默认居中),结果:“第 2 页,共 16 页”
|
|
@@ -512,8 +512,15 @@ worksheet.headerFooter.oddFooter = "&Lexceljs&C&F&RPage &P";
|
|
|
512
512
|
worksheet.headerFooter.differentFirst = true;
|
|
513
513
|
worksheet.headerFooter.firstHeader = "Hello Exceljs";
|
|
514
514
|
worksheet.headerFooter.firstFooter = "Hello World"
|
|
515
|
+
|
|
516
|
+
// 为偶数页添加不同的页眉和页脚(奇数页使用 oddHeader/oddFooter)
|
|
517
|
+
worksheet.headerFooter.differentOddEven = true;
|
|
518
|
+
worksheet.headerFooter.evenHeader = "Even page header";
|
|
519
|
+
worksheet.headerFooter.evenFooter = "Page &P (even)";
|
|
515
520
|
```
|
|
516
521
|
|
|
522
|
+
注意:只有当 `differentFirst` 为 `true` 时,`firstHeader`/`firstFooter` 才会生效;只有当 `differentOddEven` 为 `true` 时,`evenHeader`/`evenFooter` 才会生效。否则 Excel 会忽略它们,并在所有页面上使用 `oddHeader`/`oddFooter`。
|
|
523
|
+
|
|
517
524
|
**支持的 headerFooter 设置**
|
|
518
525
|
|
|
519
526
|
| 属性名 | 默认值 | 描述 |
|
|
@@ -522,10 +529,10 @@ worksheet.headerFooter.firstFooter = "Hello World"
|
|
|
522
529
|
| differentOddEven | `false` | 将 `differentOddEven` 的值设置为 `true`,表示奇数页和偶数页的页眉/页脚不同 |
|
|
523
530
|
| oddHeader | `null` | 设置奇数(默认)页面的标题字符串,可以设置格式化字符串 |
|
|
524
531
|
| oddFooter | `null` | 设置奇数(默认)页面的页脚字符串,可以设置格式化字符串 |
|
|
525
|
-
| evenHeader | `null` |
|
|
526
|
-
| evenFooter | `null` |
|
|
527
|
-
| firstHeader | `null` |
|
|
528
|
-
| firstFooter | `null` |
|
|
532
|
+
| evenHeader | `null` | 设置偶数页的标题字符串,可以设置格式化字符串。需要 `differentOddEven: true` |
|
|
533
|
+
| evenFooter | `null` | 为偶数页设置页脚字符串,可以设置格式化字符串。需要 `differentOddEven: true` |
|
|
534
|
+
| firstHeader | `null` | 设置首页的标题字符串,可以设置格式化字符串。需要 `differentFirst: true` |
|
|
535
|
+
| firstFooter | `null` | 设置首页的页脚字符串,可以设置格式化字符串。需要 `differentFirst: true` |
|
|
529
536
|
|
|
530
537
|
**脚本命令**
|
|
531
538
|
|
|
@@ -2271,6 +2278,7 @@ CSV 解析器使用 [fast-csv](https://www.npmjs.com/package/fast-csv) 编写 CS
|
|
|
2271
2278
|
* 将工作表添加到工作簿后,将无法将其删除。
|
|
2272
2279
|
* 提交行后,将无法再访问该行,因为该行将从工作表中删除。
|
|
2273
2280
|
* 不支持 `unMergeCells()`。
|
|
2281
|
+
* 图片(`worksheet.addImage()`、`worksheet.addBackgroundImage()`)必须在提交工作表之前添加。
|
|
2274
2282
|
|
|
2275
2283
|
请注意,可以在不提交任何行的情况下构建整个工作簿。提交工作簿后,所有添加的工作表(包括所有未提交的行)将自动提交。但是,在这种情况下,与文档版本相比收效甚微。
|
|
2276
2284
|
|
|
@@ -2356,10 +2364,10 @@ await workbook.commit();
|
|
|
2356
2364
|
| --------------------- | ----------- |
|
|
2357
2365
|
| input (必需的) | 指定从中读取XLSX工作簿的文件或可读流的名称|
|
|
2358
2366
|
| options (可选的) | 指定如何处理读取解析期间发生的事件类型 |
|
|
2359
|
-
| options.entries | 指定是否去触发事件(`'emit'`)或者不发出事件(`'ignore'`),默认值是`'
|
|
2367
|
+
| options.entries | 指定是否去触发事件(`'emit'`)或者不发出事件(`'ignore'`),默认值是`'ignore'` |
|
|
2360
2368
|
| options.sharedStrings | 指定是否去缓存(`'cache'`)共享字符串,将其插入到相应的单元格值中,或者是否去触发(`'emit'`)或忽略(`'ignore'`)它们,在这两种情况下,单元格值都将是对共享字符串索引的引用。默认值是`'cache'` |
|
|
2361
|
-
| options.hyperlinks | 指定是否去缓存超链接(`'cache'`),将其插入到相应的单元格值中,是否去触发(`'emit'`)或忽略(`'ignore'`)它们。默认值是`'
|
|
2362
|
-
| options.styles | 指定是否去缓存样式(`'cache'`),将其插入到相应的行或单元格值中,或是否忽略(`'
|
|
2369
|
+
| options.hyperlinks | 指定是否去缓存超链接(`'cache'`),将其插入到相应的单元格值中,是否去触发(`'emit'`)或忽略(`'ignore'`)它们。默认值是`'ignore'` |
|
|
2370
|
+
| options.styles | 指定是否去缓存样式(`'cache'`),将其插入到相应的行或单元格值中,或是否忽略(`'ignore'`)它们。默认值是`'ignore'`。需要设置为`'cache'`才能得到数字格式和`Date`类型的单元格值;设置为`'ignore'`时,日期会被读取为普通数字。 |
|
|
2363
2371
|
| options.worksheets |指定是否去触发(`'emit'`)或忽略(`'ignore'`)工作表。默认值是`'emit'` |
|
|
2364
2372
|
|
|
2365
2373
|
```js
|
package/dist/es5/doc/cell.js
CHANGED
|
@@ -8,6 +8,9 @@ const {
|
|
|
8
8
|
slideFormula
|
|
9
9
|
} = require('../utils/shared-formula');
|
|
10
10
|
const Note = require('./note');
|
|
11
|
+
const {
|
|
12
|
+
copyStyle
|
|
13
|
+
} = require('../utils/copy-style');
|
|
11
14
|
// Cell requirements
|
|
12
15
|
// Operate inside a worksheet
|
|
13
16
|
// Store and retrieve a value with a range of types: text, number, date, hyperlink, reference, formula, etc.
|
|
@@ -37,7 +40,8 @@ class Cell {
|
|
|
37
40
|
|
|
38
41
|
// help GC by removing cyclic (and other) references
|
|
39
42
|
destroy() {
|
|
40
|
-
delete this.
|
|
43
|
+
delete this._style;
|
|
44
|
+
delete this._styleShared;
|
|
41
45
|
delete this._value;
|
|
42
46
|
delete this._row;
|
|
43
47
|
delete this._column;
|
|
@@ -46,38 +50,59 @@ class Cell {
|
|
|
46
50
|
|
|
47
51
|
// =========================================================================
|
|
48
52
|
// Styles stuff
|
|
53
|
+
|
|
54
|
+
// Cells loaded from a file share one style object per xf. The object is only
|
|
55
|
+
// copied when the style is handed out (cell.style), so code that mutates it
|
|
56
|
+
// in place (cell.style.fill = ...) changes this cell alone.
|
|
57
|
+
get style() {
|
|
58
|
+
if (this._styleShared) {
|
|
59
|
+
this._style = copyStyle(this._style);
|
|
60
|
+
this._styleShared = false;
|
|
61
|
+
}
|
|
62
|
+
return this._style;
|
|
63
|
+
}
|
|
64
|
+
set style(value) {
|
|
65
|
+
this._style = value;
|
|
66
|
+
this._styleShared = false;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// use a style object that other cells may share (e.g. a cached xf style)
|
|
70
|
+
_setSharedStyle(style) {
|
|
71
|
+
this._style = style;
|
|
72
|
+
this._styleShared = true;
|
|
73
|
+
}
|
|
49
74
|
get numFmt() {
|
|
50
|
-
return this.
|
|
75
|
+
return this._style.numFmt;
|
|
51
76
|
}
|
|
52
77
|
set numFmt(value) {
|
|
53
78
|
this._setStyle('numFmt', value);
|
|
54
79
|
}
|
|
55
80
|
get font() {
|
|
56
|
-
return this.
|
|
81
|
+
return this._style.font;
|
|
57
82
|
}
|
|
58
83
|
set font(value) {
|
|
59
84
|
this._setStyle('font', value);
|
|
60
85
|
}
|
|
61
86
|
get alignment() {
|
|
62
|
-
return this.
|
|
87
|
+
return this._style.alignment;
|
|
63
88
|
}
|
|
64
89
|
set alignment(value) {
|
|
65
90
|
this._setStyle('alignment', value);
|
|
66
91
|
}
|
|
67
92
|
get border() {
|
|
68
|
-
return this.
|
|
93
|
+
return this._style.border;
|
|
69
94
|
}
|
|
70
95
|
set border(value) {
|
|
71
96
|
this._setStyle('border', value);
|
|
72
97
|
}
|
|
73
98
|
get fill() {
|
|
74
|
-
return this.
|
|
99
|
+
return this._style.fill;
|
|
75
100
|
}
|
|
76
101
|
set fill(value) {
|
|
77
102
|
this._setStyle('fill', value);
|
|
78
103
|
}
|
|
79
104
|
get protection() {
|
|
80
|
-
return this.
|
|
105
|
+
return this._style.protection;
|
|
81
106
|
}
|
|
82
107
|
set protection(value) {
|
|
83
108
|
this._setStyle('protection', value);
|
|
@@ -85,7 +110,7 @@ class Cell {
|
|
|
85
110
|
_setStyle(name, value) {
|
|
86
111
|
// style objects can be shared (e.g. by every cell loaded with the same xf),
|
|
87
112
|
// so never mutate one in place; give this cell a new object instead
|
|
88
|
-
const oldStyle = this.
|
|
113
|
+
const oldStyle = this._style;
|
|
89
114
|
const style = {
|
|
90
115
|
...oldStyle,
|
|
91
116
|
[name]: value
|
|
@@ -97,12 +122,12 @@ class Cell {
|
|
|
97
122
|
const merges = master._mergeCount > 0 && this.worksheet._merges;
|
|
98
123
|
// the streaming WorksheetWriter keeps its merges in an array
|
|
99
124
|
const range = merges && (Array.isArray(merges) ? merges.find(merge => merge.top === master.row && merge.left === master.col) : merges[master.address]);
|
|
100
|
-
if (range && (master === this || master.
|
|
125
|
+
if (range && (master === this || master._style === oldStyle)) {
|
|
101
126
|
for (let r = range.top; r <= range.bottom; r++) {
|
|
102
127
|
const row = this.worksheet.findRow(r);
|
|
103
128
|
for (let c = range.left; row && c <= range.right; c++) {
|
|
104
129
|
const cell = row.findCell(c);
|
|
105
|
-
if (cell && cell.
|
|
130
|
+
if (cell && cell._style === oldStyle) {
|
|
106
131
|
cell.style = style;
|
|
107
132
|
}
|
|
108
133
|
}
|
|
@@ -310,7 +335,7 @@ class Cell {
|
|
|
310
335
|
const {
|
|
311
336
|
model
|
|
312
337
|
} = this._value;
|
|
313
|
-
model.style = this.
|
|
338
|
+
model.style = this._style;
|
|
314
339
|
if (this._comment) {
|
|
315
340
|
model.comment = this._comment.model;
|
|
316
341
|
}
|
|
@@ -328,7 +353,7 @@ class Cell {
|
|
|
328
353
|
}
|
|
329
354
|
}
|
|
330
355
|
if (value.style) {
|
|
331
|
-
this.
|
|
356
|
+
this._setSharedStyle(value.style);
|
|
332
357
|
} else {
|
|
333
358
|
this.style = {};
|
|
334
359
|
}
|
package/dist/es5/doc/cell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell.js","names":["colCache","require","_","Enums","slideFormula","Note","Cell","constructor","row","column","address","Error","_row","_column","validateAddress","_address","_value","Value","create","Types","Null","style","_mergeStyle","_mergeCount","worksheet","workbook","destroy","numFmt","value","_setStyle","font","alignment","border","fill","protection","name","oldStyle","master","type","Merge","merges","_merges","range","Array","isArray","find","merge","top","left","col","r","bottom","findRow","c","right","cell","findCell","rowStyle","colStyle","number","$col$row","letter","effectiveType","toCsvString","addMergeRef","releaseMergeRef","isMerged","ignoreStyle","release","unmerge","isMergedTo","isHyperlink","Hyperlink","hyperlink","v","getType","note","_comment","text","toString","html","escapeHtml","_upgradeToHyperlink","String","formula","result","formulaType","fullAddress","sheetName","names","definedNames","getNamesEx","removeAllNames","forEach","addEx","addName","removeName","removeEx","_dataValidations","dataValidations","dataValidation","add","model","comment","fromModel","ValueType","NullValue","NumberValue","Number","StringValue","replace","RichTextValue","richText","map","t","join","RichText","DateValue","Date","toISOString","HyperlinkValue","undefined","tooltip","MergeValue","_master","FormulaValue","Formula","shareType","ref","sharedFormula","_copyModel","copy","cp","validate","dependencies","ranges","match","cells","_getTranslatedFormula","FormulaType","Master","Shared","None","_translatedFormula","SharedStringValue","SharedString","BooleanValue","Boolean","ErrorValue","error","JSONValue","JSON","stringify","rawValue","sharedString","types","f","reduce","p","T","module","exports"],"sources":["../../../lib/doc/cell.js"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nconst colCache = require('../utils/col-cache');\nconst _ = require('../utils/under-dash');\nconst Enums = require('./enums');\nconst {slideFormula} = require('../utils/shared-formula');\nconst Note = require('./note');\n// Cell requirements\n// Operate inside a worksheet\n// Store and retrieve a value with a range of types: text, number, date, hyperlink, reference, formula, etc.\n// Manage/use and manipulate cell format either as local to cell or inherited from column or row.\n\nclass Cell {\n constructor(row, column, address) {\n if (!row || !column) {\n throw new Error('A Cell needs a Row');\n }\n\n this._row = row;\n this._column = column;\n\n colCache.validateAddress(address);\n this._address = address;\n\n // TODO: lazy evaluation of this._value\n this._value = Value.create(Cell.Types.Null, this);\n\n this.style = this._mergeStyle(row.style, column.style, {});\n\n this._mergeCount = 0;\n }\n\n get worksheet() {\n return this._row.worksheet;\n }\n\n get workbook() {\n return this._row.worksheet.workbook;\n }\n\n // help GC by removing cyclic (and other) references\n destroy() {\n delete this.style;\n delete this._value;\n delete this._row;\n delete this._column;\n delete this._address;\n }\n\n // =========================================================================\n // Styles stuff\n get numFmt() {\n return this.style.numFmt;\n }\n\n set numFmt(value) {\n this._setStyle('numFmt', value);\n }\n\n get font() {\n return this.style.font;\n }\n\n set font(value) {\n this._setStyle('font', value);\n }\n\n get alignment() {\n return this.style.alignment;\n }\n\n set alignment(value) {\n this._setStyle('alignment', value);\n }\n\n get border() {\n return this.style.border;\n }\n\n set border(value) {\n this._setStyle('border', value);\n }\n\n get fill() {\n return this.style.fill;\n }\n\n set fill(value) {\n this._setStyle('fill', value);\n }\n\n get protection() {\n return this.style.protection;\n }\n\n set protection(value) {\n this._setStyle('protection', value);\n }\n\n _setStyle(name, value) {\n // style objects can be shared (e.g. by every cell loaded with the same xf),\n // so never mutate one in place; give this cell a new object instead\n const oldStyle = this.style;\n const style = {...oldStyle, [name]: value};\n this.style = style;\n\n // merged cells share their master's style object, keep it that way\n const master = this.type === Cell.Types.Merge ? this.master : this;\n const merges = master._mergeCount > 0 && this.worksheet._merges;\n // the streaming WorksheetWriter keeps its merges in an array\n const range =\n merges &&\n (Array.isArray(merges)\n ? merges.find(merge => merge.top === master.row && merge.left === master.col)\n : merges[master.address]);\n if (range && (master === this || master.style === oldStyle)) {\n for (let r = range.top; r <= range.bottom; r++) {\n const row = this.worksheet.findRow(r);\n for (let c = range.left; row && c <= range.right; c++) {\n const cell = row.findCell(c);\n if (cell && cell.style === oldStyle) {\n cell.style = style;\n }\n }\n }\n }\n }\n\n _mergeStyle(rowStyle, colStyle, style) {\n const numFmt = (rowStyle && rowStyle.numFmt) || (colStyle && colStyle.numFmt);\n if (numFmt) style.numFmt = numFmt;\n\n const font = (rowStyle && rowStyle.font) || (colStyle && colStyle.font);\n if (font) style.font = font;\n\n const alignment = (rowStyle && rowStyle.alignment) || (colStyle && colStyle.alignment);\n if (alignment) style.alignment = alignment;\n\n const border = (rowStyle && rowStyle.border) || (colStyle && colStyle.border);\n if (border) style.border = border;\n\n const fill = (rowStyle && rowStyle.fill) || (colStyle && colStyle.fill);\n if (fill) style.fill = fill;\n\n const protection = (rowStyle && rowStyle.protection) || (colStyle && colStyle.protection);\n if (protection) style.protection = protection;\n\n return style;\n }\n\n // =========================================================================\n // return the address for this cell\n get address() {\n return this._address;\n }\n\n get row() {\n return this._row.number;\n }\n\n get col() {\n return this._column.number;\n }\n\n get $col$row() {\n return `$${this._column.letter}$${this.row}`;\n }\n\n // =========================================================================\n // Value stuff\n\n get type() {\n return this._value.type;\n }\n\n get effectiveType() {\n return this._value.effectiveType;\n }\n\n toCsvString() {\n return this._value.toCsvString();\n }\n\n // =========================================================================\n // Merge stuff\n\n addMergeRef() {\n this._mergeCount++;\n }\n\n releaseMergeRef() {\n this._mergeCount--;\n }\n\n get isMerged() {\n return this._mergeCount > 0 || this.type === Cell.Types.Merge;\n }\n\n merge(master, ignoreStyle) {\n this._value.release();\n this._value = Value.create(Cell.Types.Merge, this, master);\n if (!ignoreStyle) {\n this.style = master.style;\n }\n }\n\n unmerge() {\n if (this.type === Cell.Types.Merge) {\n this._value.release();\n this._value = Value.create(Cell.Types.Null, this);\n this.style = this._mergeStyle(this._row.style, this._column.style, {});\n }\n }\n\n isMergedTo(master) {\n if (this._value.type !== Cell.Types.Merge) return false;\n return this._value.isMergedTo(master);\n }\n\n get master() {\n if (this.type === Cell.Types.Merge) {\n return this._value.master;\n }\n return this; // an unmerged cell is its own master\n }\n\n get isHyperlink() {\n return this._value.type === Cell.Types.Hyperlink;\n }\n\n get hyperlink() {\n return this._value.hyperlink;\n }\n\n // return the value\n get value() {\n return this._value.value;\n }\n\n // set the value - can be number, string or raw\n set value(v) {\n // special case - merge cells set their master's value\n if (this.type === Cell.Types.Merge) {\n this._value.master.value = v;\n return;\n }\n\n this._value.release();\n\n // assign value\n this._value = Value.create(Value.getType(v), this, v);\n }\n\n get note() {\n return this._comment && this._comment.note;\n }\n\n set note(note) {\n this._comment = new Note(note);\n }\n\n get text() {\n return this._value.toString();\n }\n\n get html() {\n return _.escapeHtml(this.text);\n }\n\n toString() {\n return this.text;\n }\n\n _upgradeToHyperlink(hyperlink) {\n // if this cell is a string, turn it into a Hyperlink\n if (this.type === Cell.Types.String) {\n this._value = Value.create(Cell.Types.Hyperlink, this, {\n text: this._value.value,\n hyperlink,\n });\n }\n }\n\n // =========================================================================\n // Formula stuff\n get formula() {\n return this._value.formula;\n }\n\n get result() {\n return this._value.result;\n }\n\n get formulaType() {\n return this._value.formulaType;\n }\n\n // =========================================================================\n // Name stuff\n get fullAddress() {\n const {worksheet} = this._row;\n return {\n sheetName: worksheet.name,\n address: this.address,\n row: this.row,\n col: this.col,\n };\n }\n\n get name() {\n return this.names[0];\n }\n\n set name(value) {\n this.names = [value];\n }\n\n get names() {\n return this.workbook.definedNames.getNamesEx(this.fullAddress);\n }\n\n set names(value) {\n const {definedNames} = this.workbook;\n definedNames.removeAllNames(this.fullAddress);\n value.forEach(name => {\n definedNames.addEx(this.fullAddress, name);\n });\n }\n\n addName(name) {\n this.workbook.definedNames.addEx(this.fullAddress, name);\n }\n\n removeName(name) {\n this.workbook.definedNames.removeEx(this.fullAddress, name);\n }\n\n removeAllNames() {\n this.workbook.definedNames.removeAllNames(this.fullAddress);\n }\n\n // =========================================================================\n // Data Validation stuff\n get _dataValidations() {\n return this.worksheet.dataValidations;\n }\n\n get dataValidation() {\n return this._dataValidations.find(this.address);\n }\n\n set dataValidation(value) {\n this._dataValidations.add(this.address, value);\n }\n\n // =========================================================================\n // Model stuff\n\n get model() {\n const {model} = this._value;\n model.style = this.style;\n if (this._comment) {\n model.comment = this._comment.model;\n }\n return model;\n }\n\n set model(value) {\n this._value.release();\n this._value = Value.create(value.type, this);\n this._value.model = value;\n\n if (value.comment) {\n switch (value.comment.type) {\n case 'note':\n this._comment = Note.fromModel(value.comment);\n break;\n }\n }\n\n if (value.style) {\n this.style = value.style;\n } else {\n this.style = {};\n }\n }\n}\nCell.Types = Enums.ValueType;\n\n// =============================================================================\n// Internal Value Types\n\nclass NullValue {\n constructor(cell) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Null,\n };\n }\n\n get value() {\n return null;\n }\n\n set value(value) {\n // nothing to do\n }\n\n get type() {\n return Cell.Types.Null;\n }\n\n get effectiveType() {\n return Cell.Types.Null;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return '';\n }\n\n release() {}\n\n toString() {\n return '';\n }\n}\n\nclass NumberValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Number,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Number;\n }\n\n get effectiveType() {\n return Cell.Types.Number;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value.toString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass StringValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.String,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.String;\n }\n\n get effectiveType() {\n return Cell.Types.String;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return `\"${this.model.value.replace(/\"/g, '\"\"')}\"`;\n }\n\n release() {}\n\n toString() {\n return this.model.value;\n }\n}\n\nclass RichTextValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.String,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n toString() {\n return this.model.value.richText.map(t => t.text).join('');\n }\n\n get type() {\n return Cell.Types.RichText;\n }\n\n get effectiveType() {\n return Cell.Types.RichText;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return `\"${this.text.replace(/\"/g, '\"\"')}\"`;\n }\n\n release() {}\n}\n\nclass DateValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Date,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Date;\n }\n\n get effectiveType() {\n return Cell.Types.Date;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value.toISOString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass HyperlinkValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Hyperlink,\n text: value ? value.text : undefined,\n hyperlink: value ? value.hyperlink : undefined,\n };\n if (value && value.tooltip) {\n this.model.tooltip = value.tooltip;\n }\n }\n\n get value() {\n const v = {\n text: this.model.text,\n hyperlink: this.model.hyperlink,\n };\n if (this.model.tooltip) {\n v.tooltip = this.model.tooltip;\n }\n return v;\n }\n\n set value(value) {\n this.model = {\n text: value.text,\n hyperlink: value.hyperlink,\n };\n if (value.tooltip) {\n this.model.tooltip = value.tooltip;\n }\n }\n\n get text() {\n return this.model.text;\n }\n\n set text(value) {\n this.model.text = value;\n }\n\n /*\n get tooltip() {\n return this.model.tooltip;\n }\n\n set tooltip(value) {\n this.model.tooltip = value;\n } */\n\n get hyperlink() {\n return this.model.hyperlink;\n }\n\n set hyperlink(value) {\n this.model.hyperlink = value;\n }\n\n get type() {\n return Cell.Types.Hyperlink;\n }\n\n get effectiveType() {\n return Cell.Types.Hyperlink;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.hyperlink;\n }\n\n release() {}\n\n toString() {\n return this.model.text;\n }\n}\n\nclass MergeValue {\n constructor(cell, master) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Merge,\n master: master ? master.address : undefined,\n };\n this._master = master;\n if (master) {\n master.addMergeRef();\n }\n }\n\n get value() {\n return this._master.value;\n }\n\n set value(value) {\n if (value instanceof Cell) {\n if (this._master) {\n this._master.releaseMergeRef();\n }\n value.addMergeRef();\n this._master = value;\n } else {\n this._master.value = value;\n }\n }\n\n isMergedTo(master) {\n return master === this._master;\n }\n\n get master() {\n return this._master;\n }\n\n get type() {\n return Cell.Types.Merge;\n }\n\n get effectiveType() {\n return this._master.effectiveType;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return '';\n }\n\n release() {\n this._master.releaseMergeRef();\n }\n\n toString() {\n return this.value.toString();\n }\n}\n\nclass FormulaValue {\n constructor(cell, value) {\n this.cell = cell;\n\n this.model = {\n address: cell.address,\n type: Cell.Types.Formula,\n shareType: value ? value.shareType : undefined,\n ref: value ? value.ref : undefined,\n formula: value ? value.formula : undefined,\n sharedFormula: value ? value.sharedFormula : undefined,\n result: value ? value.result : undefined,\n };\n }\n\n _copyModel(model) {\n const copy = {};\n const cp = name => {\n const value = model[name];\n if (value !== undefined && value !== null) {\n copy[name] = value;\n }\n };\n cp('formula');\n cp('result');\n cp('ref');\n cp('shareType');\n cp('sharedFormula');\n return copy;\n }\n\n get value() {\n return this._copyModel(this.model);\n }\n\n set value(value) {\n this.model = this._copyModel(value);\n }\n\n validate(value) {\n switch (Value.getType(value)) {\n case Cell.Types.Null:\n case Cell.Types.String:\n case Cell.Types.Number:\n case Cell.Types.Date:\n break;\n case Cell.Types.Hyperlink:\n case Cell.Types.Formula:\n default:\n throw new Error('Cannot process that type of result value');\n }\n }\n\n get dependencies() {\n // find all the ranges and cells mentioned in the formula\n const ranges = this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g);\n const cells = this.formula\n .replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g, '')\n .match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}/g);\n return {\n ranges,\n cells,\n };\n }\n\n get formula() {\n return this.model.formula || this._getTranslatedFormula();\n }\n\n set formula(value) {\n this.model.formula = value;\n }\n\n get formulaType() {\n if (this.model.formula) {\n return Enums.FormulaType.Master;\n }\n if (this.model.sharedFormula) {\n return Enums.FormulaType.Shared;\n }\n return Enums.FormulaType.None;\n }\n\n get result() {\n return this.model.result;\n }\n\n set result(value) {\n this.model.result = value;\n }\n\n get type() {\n return Cell.Types.Formula;\n }\n\n get effectiveType() {\n const v = this.model.result;\n if (v === null || v === undefined) {\n return Enums.ValueType.Null;\n }\n if (v instanceof String || typeof v === 'string') {\n return Enums.ValueType.String;\n }\n if (typeof v === 'number') {\n return Enums.ValueType.Number;\n }\n if (v instanceof Date) {\n return Enums.ValueType.Date;\n }\n if (v.text && v.hyperlink) {\n return Enums.ValueType.Hyperlink;\n }\n if (v.formula) {\n return Enums.ValueType.Formula;\n }\n\n return Enums.ValueType.Null;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n _getTranslatedFormula() {\n if (!this._translatedFormula && this.model.sharedFormula) {\n const {worksheet} = this.cell;\n const master = worksheet.findCell(this.model.sharedFormula);\n this._translatedFormula =\n master && slideFormula(master.formula, master.address, this.model.address);\n }\n return this._translatedFormula;\n }\n\n toCsvString() {\n return `${this.model.result || ''}`;\n }\n\n release() {}\n\n toString() {\n return this.model.result ? this.model.result.toString() : '';\n }\n}\n\nclass SharedStringValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.SharedString,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.SharedString;\n }\n\n get effectiveType() {\n return Cell.Types.SharedString;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value.toString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass BooleanValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Boolean,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Boolean;\n }\n\n get effectiveType() {\n return Cell.Types.Boolean;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value ? 1 : 0;\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass ErrorValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Error,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Error;\n }\n\n get effectiveType() {\n return Cell.Types.Error;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.toString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.error.toString();\n }\n}\n\nclass JSONValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.String,\n value: JSON.stringify(value),\n rawValue: value,\n };\n }\n\n get value() {\n return this.model.rawValue;\n }\n\n set value(value) {\n this.model.rawValue = value;\n this.model.value = JSON.stringify(value);\n }\n\n get type() {\n return Cell.Types.String;\n }\n\n get effectiveType() {\n return Cell.Types.String;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value;\n }\n\n release() {}\n\n toString() {\n return this.model.value;\n }\n}\n\n// Value is a place to hold common static Value type functions\nconst Value = {\n getType(value) {\n if (value === null || value === undefined) {\n return Cell.Types.Null;\n }\n if (value instanceof String || typeof value === 'string') {\n return Cell.Types.String;\n }\n if (typeof value === 'number') {\n return Cell.Types.Number;\n }\n if (typeof value === 'boolean') {\n return Cell.Types.Boolean;\n }\n if (value instanceof Date) {\n return Cell.Types.Date;\n }\n if (value.text && value.hyperlink) {\n return Cell.Types.Hyperlink;\n }\n if (value.formula || value.sharedFormula) {\n return Cell.Types.Formula;\n }\n if (value.richText) {\n return Cell.Types.RichText;\n }\n if (value.sharedString) {\n return Cell.Types.SharedString;\n }\n if (value.error) {\n return Cell.Types.Error;\n }\n return Cell.Types.JSON;\n },\n\n // map valueType to constructor\n types: [\n {t: Cell.Types.Null, f: NullValue},\n {t: Cell.Types.Number, f: NumberValue},\n {t: Cell.Types.String, f: StringValue},\n {t: Cell.Types.Date, f: DateValue},\n {t: Cell.Types.Hyperlink, f: HyperlinkValue},\n {t: Cell.Types.Formula, f: FormulaValue},\n {t: Cell.Types.Merge, f: MergeValue},\n {t: Cell.Types.JSON, f: JSONValue},\n {t: Cell.Types.SharedString, f: SharedStringValue},\n {t: Cell.Types.RichText, f: RichTextValue},\n {t: Cell.Types.Boolean, f: BooleanValue},\n {t: Cell.Types.Error, f: ErrorValue},\n ].reduce((p, t) => {\n p[t.t] = t.f;\n return p;\n }, []),\n\n create(type, cell, value) {\n const T = this.types[type];\n if (!T) {\n throw new Error(`Could not create Value of type ${type}`);\n }\n return new T(cell, value);\n },\n};\n\nmodule.exports = Cell;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"cell.js","names":["colCache","require","_","Enums","slideFormula","Note","copyStyle","Cell","constructor","row","column","address","Error","_row","_column","validateAddress","_address","_value","Value","create","Types","Null","style","_mergeStyle","_mergeCount","worksheet","workbook","destroy","_style","_styleShared","value","_setSharedStyle","numFmt","_setStyle","font","alignment","border","fill","protection","name","oldStyle","master","type","Merge","merges","_merges","range","Array","isArray","find","merge","top","left","col","r","bottom","findRow","c","right","cell","findCell","rowStyle","colStyle","number","$col$row","letter","effectiveType","toCsvString","addMergeRef","releaseMergeRef","isMerged","ignoreStyle","release","unmerge","isMergedTo","isHyperlink","Hyperlink","hyperlink","v","getType","note","_comment","text","toString","html","escapeHtml","_upgradeToHyperlink","String","formula","result","formulaType","fullAddress","sheetName","names","definedNames","getNamesEx","removeAllNames","forEach","addEx","addName","removeName","removeEx","_dataValidations","dataValidations","dataValidation","add","model","comment","fromModel","ValueType","NullValue","NumberValue","Number","StringValue","replace","RichTextValue","richText","map","t","join","RichText","DateValue","Date","toISOString","HyperlinkValue","undefined","tooltip","MergeValue","_master","FormulaValue","Formula","shareType","ref","sharedFormula","_copyModel","copy","cp","validate","dependencies","ranges","match","cells","_getTranslatedFormula","FormulaType","Master","Shared","None","_translatedFormula","SharedStringValue","SharedString","BooleanValue","Boolean","ErrorValue","error","JSONValue","JSON","stringify","rawValue","sharedString","types","f","reduce","p","T","module","exports"],"sources":["../../../lib/doc/cell.js"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nconst colCache = require('../utils/col-cache');\nconst _ = require('../utils/under-dash');\nconst Enums = require('./enums');\nconst {slideFormula} = require('../utils/shared-formula');\nconst Note = require('./note');\nconst {copyStyle} = require('../utils/copy-style');\n// Cell requirements\n// Operate inside a worksheet\n// Store and retrieve a value with a range of types: text, number, date, hyperlink, reference, formula, etc.\n// Manage/use and manipulate cell format either as local to cell or inherited from column or row.\n\nclass Cell {\n constructor(row, column, address) {\n if (!row || !column) {\n throw new Error('A Cell needs a Row');\n }\n\n this._row = row;\n this._column = column;\n\n colCache.validateAddress(address);\n this._address = address;\n\n // TODO: lazy evaluation of this._value\n this._value = Value.create(Cell.Types.Null, this);\n\n this.style = this._mergeStyle(row.style, column.style, {});\n\n this._mergeCount = 0;\n }\n\n get worksheet() {\n return this._row.worksheet;\n }\n\n get workbook() {\n return this._row.worksheet.workbook;\n }\n\n // help GC by removing cyclic (and other) references\n destroy() {\n delete this._style;\n delete this._styleShared;\n delete this._value;\n delete this._row;\n delete this._column;\n delete this._address;\n }\n\n // =========================================================================\n // Styles stuff\n\n // Cells loaded from a file share one style object per xf. The object is only\n // copied when the style is handed out (cell.style), so code that mutates it\n // in place (cell.style.fill = ...) changes this cell alone.\n get style() {\n if (this._styleShared) {\n this._style = copyStyle(this._style);\n this._styleShared = false;\n }\n return this._style;\n }\n\n set style(value) {\n this._style = value;\n this._styleShared = false;\n }\n\n // use a style object that other cells may share (e.g. a cached xf style)\n _setSharedStyle(style) {\n this._style = style;\n this._styleShared = true;\n }\n\n get numFmt() {\n return this._style.numFmt;\n }\n\n set numFmt(value) {\n this._setStyle('numFmt', value);\n }\n\n get font() {\n return this._style.font;\n }\n\n set font(value) {\n this._setStyle('font', value);\n }\n\n get alignment() {\n return this._style.alignment;\n }\n\n set alignment(value) {\n this._setStyle('alignment', value);\n }\n\n get border() {\n return this._style.border;\n }\n\n set border(value) {\n this._setStyle('border', value);\n }\n\n get fill() {\n return this._style.fill;\n }\n\n set fill(value) {\n this._setStyle('fill', value);\n }\n\n get protection() {\n return this._style.protection;\n }\n\n set protection(value) {\n this._setStyle('protection', value);\n }\n\n _setStyle(name, value) {\n // style objects can be shared (e.g. by every cell loaded with the same xf),\n // so never mutate one in place; give this cell a new object instead\n const oldStyle = this._style;\n const style = {...oldStyle, [name]: value};\n this.style = style;\n\n // merged cells share their master's style object, keep it that way\n const master = this.type === Cell.Types.Merge ? this.master : this;\n const merges = master._mergeCount > 0 && this.worksheet._merges;\n // the streaming WorksheetWriter keeps its merges in an array\n const range =\n merges &&\n (Array.isArray(merges)\n ? merges.find(merge => merge.top === master.row && merge.left === master.col)\n : merges[master.address]);\n if (range && (master === this || master._style === oldStyle)) {\n for (let r = range.top; r <= range.bottom; r++) {\n const row = this.worksheet.findRow(r);\n for (let c = range.left; row && c <= range.right; c++) {\n const cell = row.findCell(c);\n if (cell && cell._style === oldStyle) {\n cell.style = style;\n }\n }\n }\n }\n }\n\n _mergeStyle(rowStyle, colStyle, style) {\n const numFmt = (rowStyle && rowStyle.numFmt) || (colStyle && colStyle.numFmt);\n if (numFmt) style.numFmt = numFmt;\n\n const font = (rowStyle && rowStyle.font) || (colStyle && colStyle.font);\n if (font) style.font = font;\n\n const alignment = (rowStyle && rowStyle.alignment) || (colStyle && colStyle.alignment);\n if (alignment) style.alignment = alignment;\n\n const border = (rowStyle && rowStyle.border) || (colStyle && colStyle.border);\n if (border) style.border = border;\n\n const fill = (rowStyle && rowStyle.fill) || (colStyle && colStyle.fill);\n if (fill) style.fill = fill;\n\n const protection = (rowStyle && rowStyle.protection) || (colStyle && colStyle.protection);\n if (protection) style.protection = protection;\n\n return style;\n }\n\n // =========================================================================\n // return the address for this cell\n get address() {\n return this._address;\n }\n\n get row() {\n return this._row.number;\n }\n\n get col() {\n return this._column.number;\n }\n\n get $col$row() {\n return `$${this._column.letter}$${this.row}`;\n }\n\n // =========================================================================\n // Value stuff\n\n get type() {\n return this._value.type;\n }\n\n get effectiveType() {\n return this._value.effectiveType;\n }\n\n toCsvString() {\n return this._value.toCsvString();\n }\n\n // =========================================================================\n // Merge stuff\n\n addMergeRef() {\n this._mergeCount++;\n }\n\n releaseMergeRef() {\n this._mergeCount--;\n }\n\n get isMerged() {\n return this._mergeCount > 0 || this.type === Cell.Types.Merge;\n }\n\n merge(master, ignoreStyle) {\n this._value.release();\n this._value = Value.create(Cell.Types.Merge, this, master);\n if (!ignoreStyle) {\n this.style = master.style;\n }\n }\n\n unmerge() {\n if (this.type === Cell.Types.Merge) {\n this._value.release();\n this._value = Value.create(Cell.Types.Null, this);\n this.style = this._mergeStyle(this._row.style, this._column.style, {});\n }\n }\n\n isMergedTo(master) {\n if (this._value.type !== Cell.Types.Merge) return false;\n return this._value.isMergedTo(master);\n }\n\n get master() {\n if (this.type === Cell.Types.Merge) {\n return this._value.master;\n }\n return this; // an unmerged cell is its own master\n }\n\n get isHyperlink() {\n return this._value.type === Cell.Types.Hyperlink;\n }\n\n get hyperlink() {\n return this._value.hyperlink;\n }\n\n // return the value\n get value() {\n return this._value.value;\n }\n\n // set the value - can be number, string or raw\n set value(v) {\n // special case - merge cells set their master's value\n if (this.type === Cell.Types.Merge) {\n this._value.master.value = v;\n return;\n }\n\n this._value.release();\n\n // assign value\n this._value = Value.create(Value.getType(v), this, v);\n }\n\n get note() {\n return this._comment && this._comment.note;\n }\n\n set note(note) {\n this._comment = new Note(note);\n }\n\n get text() {\n return this._value.toString();\n }\n\n get html() {\n return _.escapeHtml(this.text);\n }\n\n toString() {\n return this.text;\n }\n\n _upgradeToHyperlink(hyperlink) {\n // if this cell is a string, turn it into a Hyperlink\n if (this.type === Cell.Types.String) {\n this._value = Value.create(Cell.Types.Hyperlink, this, {\n text: this._value.value,\n hyperlink,\n });\n }\n }\n\n // =========================================================================\n // Formula stuff\n get formula() {\n return this._value.formula;\n }\n\n get result() {\n return this._value.result;\n }\n\n get formulaType() {\n return this._value.formulaType;\n }\n\n // =========================================================================\n // Name stuff\n get fullAddress() {\n const {worksheet} = this._row;\n return {\n sheetName: worksheet.name,\n address: this.address,\n row: this.row,\n col: this.col,\n };\n }\n\n get name() {\n return this.names[0];\n }\n\n set name(value) {\n this.names = [value];\n }\n\n get names() {\n return this.workbook.definedNames.getNamesEx(this.fullAddress);\n }\n\n set names(value) {\n const {definedNames} = this.workbook;\n definedNames.removeAllNames(this.fullAddress);\n value.forEach(name => {\n definedNames.addEx(this.fullAddress, name);\n });\n }\n\n addName(name) {\n this.workbook.definedNames.addEx(this.fullAddress, name);\n }\n\n removeName(name) {\n this.workbook.definedNames.removeEx(this.fullAddress, name);\n }\n\n removeAllNames() {\n this.workbook.definedNames.removeAllNames(this.fullAddress);\n }\n\n // =========================================================================\n // Data Validation stuff\n get _dataValidations() {\n return this.worksheet.dataValidations;\n }\n\n get dataValidation() {\n return this._dataValidations.find(this.address);\n }\n\n set dataValidation(value) {\n this._dataValidations.add(this.address, value);\n }\n\n // =========================================================================\n // Model stuff\n\n get model() {\n const {model} = this._value;\n model.style = this._style;\n if (this._comment) {\n model.comment = this._comment.model;\n }\n return model;\n }\n\n set model(value) {\n this._value.release();\n this._value = Value.create(value.type, this);\n this._value.model = value;\n\n if (value.comment) {\n switch (value.comment.type) {\n case 'note':\n this._comment = Note.fromModel(value.comment);\n break;\n }\n }\n\n if (value.style) {\n this._setSharedStyle(value.style);\n } else {\n this.style = {};\n }\n }\n}\nCell.Types = Enums.ValueType;\n\n// =============================================================================\n// Internal Value Types\n\nclass NullValue {\n constructor(cell) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Null,\n };\n }\n\n get value() {\n return null;\n }\n\n set value(value) {\n // nothing to do\n }\n\n get type() {\n return Cell.Types.Null;\n }\n\n get effectiveType() {\n return Cell.Types.Null;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return '';\n }\n\n release() {}\n\n toString() {\n return '';\n }\n}\n\nclass NumberValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Number,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Number;\n }\n\n get effectiveType() {\n return Cell.Types.Number;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value.toString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass StringValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.String,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.String;\n }\n\n get effectiveType() {\n return Cell.Types.String;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return `\"${this.model.value.replace(/\"/g, '\"\"')}\"`;\n }\n\n release() {}\n\n toString() {\n return this.model.value;\n }\n}\n\nclass RichTextValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.String,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n toString() {\n return this.model.value.richText.map(t => t.text).join('');\n }\n\n get type() {\n return Cell.Types.RichText;\n }\n\n get effectiveType() {\n return Cell.Types.RichText;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return `\"${this.text.replace(/\"/g, '\"\"')}\"`;\n }\n\n release() {}\n}\n\nclass DateValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Date,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Date;\n }\n\n get effectiveType() {\n return Cell.Types.Date;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value.toISOString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass HyperlinkValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Hyperlink,\n text: value ? value.text : undefined,\n hyperlink: value ? value.hyperlink : undefined,\n };\n if (value && value.tooltip) {\n this.model.tooltip = value.tooltip;\n }\n }\n\n get value() {\n const v = {\n text: this.model.text,\n hyperlink: this.model.hyperlink,\n };\n if (this.model.tooltip) {\n v.tooltip = this.model.tooltip;\n }\n return v;\n }\n\n set value(value) {\n this.model = {\n text: value.text,\n hyperlink: value.hyperlink,\n };\n if (value.tooltip) {\n this.model.tooltip = value.tooltip;\n }\n }\n\n get text() {\n return this.model.text;\n }\n\n set text(value) {\n this.model.text = value;\n }\n\n /*\n get tooltip() {\n return this.model.tooltip;\n }\n\n set tooltip(value) {\n this.model.tooltip = value;\n } */\n\n get hyperlink() {\n return this.model.hyperlink;\n }\n\n set hyperlink(value) {\n this.model.hyperlink = value;\n }\n\n get type() {\n return Cell.Types.Hyperlink;\n }\n\n get effectiveType() {\n return Cell.Types.Hyperlink;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.hyperlink;\n }\n\n release() {}\n\n toString() {\n return this.model.text;\n }\n}\n\nclass MergeValue {\n constructor(cell, master) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Merge,\n master: master ? master.address : undefined,\n };\n this._master = master;\n if (master) {\n master.addMergeRef();\n }\n }\n\n get value() {\n return this._master.value;\n }\n\n set value(value) {\n if (value instanceof Cell) {\n if (this._master) {\n this._master.releaseMergeRef();\n }\n value.addMergeRef();\n this._master = value;\n } else {\n this._master.value = value;\n }\n }\n\n isMergedTo(master) {\n return master === this._master;\n }\n\n get master() {\n return this._master;\n }\n\n get type() {\n return Cell.Types.Merge;\n }\n\n get effectiveType() {\n return this._master.effectiveType;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return '';\n }\n\n release() {\n this._master.releaseMergeRef();\n }\n\n toString() {\n return this.value.toString();\n }\n}\n\nclass FormulaValue {\n constructor(cell, value) {\n this.cell = cell;\n\n this.model = {\n address: cell.address,\n type: Cell.Types.Formula,\n shareType: value ? value.shareType : undefined,\n ref: value ? value.ref : undefined,\n formula: value ? value.formula : undefined,\n sharedFormula: value ? value.sharedFormula : undefined,\n result: value ? value.result : undefined,\n };\n }\n\n _copyModel(model) {\n const copy = {};\n const cp = name => {\n const value = model[name];\n if (value !== undefined && value !== null) {\n copy[name] = value;\n }\n };\n cp('formula');\n cp('result');\n cp('ref');\n cp('shareType');\n cp('sharedFormula');\n return copy;\n }\n\n get value() {\n return this._copyModel(this.model);\n }\n\n set value(value) {\n this.model = this._copyModel(value);\n }\n\n validate(value) {\n switch (Value.getType(value)) {\n case Cell.Types.Null:\n case Cell.Types.String:\n case Cell.Types.Number:\n case Cell.Types.Date:\n break;\n case Cell.Types.Hyperlink:\n case Cell.Types.Formula:\n default:\n throw new Error('Cannot process that type of result value');\n }\n }\n\n get dependencies() {\n // find all the ranges and cells mentioned in the formula\n const ranges = this.formula.match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g);\n const cells = this.formula\n .replace(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}:[A-Z]{1,3}\\d{1,4}/g, '')\n .match(/([a-zA-Z0-9]+!)?[A-Z]{1,3}\\d{1,4}/g);\n return {\n ranges,\n cells,\n };\n }\n\n get formula() {\n return this.model.formula || this._getTranslatedFormula();\n }\n\n set formula(value) {\n this.model.formula = value;\n }\n\n get formulaType() {\n if (this.model.formula) {\n return Enums.FormulaType.Master;\n }\n if (this.model.sharedFormula) {\n return Enums.FormulaType.Shared;\n }\n return Enums.FormulaType.None;\n }\n\n get result() {\n return this.model.result;\n }\n\n set result(value) {\n this.model.result = value;\n }\n\n get type() {\n return Cell.Types.Formula;\n }\n\n get effectiveType() {\n const v = this.model.result;\n if (v === null || v === undefined) {\n return Enums.ValueType.Null;\n }\n if (v instanceof String || typeof v === 'string') {\n return Enums.ValueType.String;\n }\n if (typeof v === 'number') {\n return Enums.ValueType.Number;\n }\n if (v instanceof Date) {\n return Enums.ValueType.Date;\n }\n if (v.text && v.hyperlink) {\n return Enums.ValueType.Hyperlink;\n }\n if (v.formula) {\n return Enums.ValueType.Formula;\n }\n\n return Enums.ValueType.Null;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n _getTranslatedFormula() {\n if (!this._translatedFormula && this.model.sharedFormula) {\n const {worksheet} = this.cell;\n const master = worksheet.findCell(this.model.sharedFormula);\n this._translatedFormula =\n master && slideFormula(master.formula, master.address, this.model.address);\n }\n return this._translatedFormula;\n }\n\n toCsvString() {\n return `${this.model.result || ''}`;\n }\n\n release() {}\n\n toString() {\n return this.model.result ? this.model.result.toString() : '';\n }\n}\n\nclass SharedStringValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.SharedString,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.SharedString;\n }\n\n get effectiveType() {\n return Cell.Types.SharedString;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value.toString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass BooleanValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Boolean,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Boolean;\n }\n\n get effectiveType() {\n return Cell.Types.Boolean;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value ? 1 : 0;\n }\n\n release() {}\n\n toString() {\n return this.model.value.toString();\n }\n}\n\nclass ErrorValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.Error,\n value,\n };\n }\n\n get value() {\n return this.model.value;\n }\n\n set value(value) {\n this.model.value = value;\n }\n\n get type() {\n return Cell.Types.Error;\n }\n\n get effectiveType() {\n return Cell.Types.Error;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.toString();\n }\n\n release() {}\n\n toString() {\n return this.model.value.error.toString();\n }\n}\n\nclass JSONValue {\n constructor(cell, value) {\n this.model = {\n address: cell.address,\n type: Cell.Types.String,\n value: JSON.stringify(value),\n rawValue: value,\n };\n }\n\n get value() {\n return this.model.rawValue;\n }\n\n set value(value) {\n this.model.rawValue = value;\n this.model.value = JSON.stringify(value);\n }\n\n get type() {\n return Cell.Types.String;\n }\n\n get effectiveType() {\n return Cell.Types.String;\n }\n\n get address() {\n return this.model.address;\n }\n\n set address(value) {\n this.model.address = value;\n }\n\n toCsvString() {\n return this.model.value;\n }\n\n release() {}\n\n toString() {\n return this.model.value;\n }\n}\n\n// Value is a place to hold common static Value type functions\nconst Value = {\n getType(value) {\n if (value === null || value === undefined) {\n return Cell.Types.Null;\n }\n if (value instanceof String || typeof value === 'string') {\n return Cell.Types.String;\n }\n if (typeof value === 'number') {\n return Cell.Types.Number;\n }\n if (typeof value === 'boolean') {\n return Cell.Types.Boolean;\n }\n if (value instanceof Date) {\n return Cell.Types.Date;\n }\n if (value.text && value.hyperlink) {\n return Cell.Types.Hyperlink;\n }\n if (value.formula || value.sharedFormula) {\n return Cell.Types.Formula;\n }\n if (value.richText) {\n return Cell.Types.RichText;\n }\n if (value.sharedString) {\n return Cell.Types.SharedString;\n }\n if (value.error) {\n return Cell.Types.Error;\n }\n return Cell.Types.JSON;\n },\n\n // map valueType to constructor\n types: [\n {t: Cell.Types.Null, f: NullValue},\n {t: Cell.Types.Number, f: NumberValue},\n {t: Cell.Types.String, f: StringValue},\n {t: Cell.Types.Date, f: DateValue},\n {t: Cell.Types.Hyperlink, f: HyperlinkValue},\n {t: Cell.Types.Formula, f: FormulaValue},\n {t: Cell.Types.Merge, f: MergeValue},\n {t: Cell.Types.JSON, f: JSONValue},\n {t: Cell.Types.SharedString, f: SharedStringValue},\n {t: Cell.Types.RichText, f: RichTextValue},\n {t: Cell.Types.Boolean, f: BooleanValue},\n {t: Cell.Types.Error, f: ErrorValue},\n ].reduce((p, t) => {\n p[t.t] = t.f;\n return p;\n }, []),\n\n create(type, cell, value) {\n const T = this.types[type];\n if (!T) {\n throw new Error(`Could not create Value of type ${type}`);\n }\n return new T(cell, value);\n },\n};\n\nmodule.exports = Cell;\n"],"mappings":"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","ignoreList":[]}
|