@omegagrid/grid-core 0.10.2 → 0.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__generated/functions.d.ts +4 -0
- package/dist/__generated/functions.d.ts.map +1 -0
- package/dist/__generated/functions.js +45 -0
- package/dist/__generated/functions.js.map +1 -0
- package/dist/calculations/autofill.d.ts +7 -0
- package/dist/calculations/autofill.d.ts.map +1 -0
- package/dist/calculations/autofill.js +84 -0
- package/dist/calculations/autofill.js.map +1 -0
- package/dist/calculations/conditions.d.ts +4 -0
- package/dist/calculations/conditions.d.ts.map +1 -0
- package/dist/calculations/conditions.js +41 -0
- package/dist/calculations/conditions.js.map +1 -0
- package/dist/calculations/context.d.ts +53 -0
- package/dist/calculations/context.d.ts.map +1 -0
- package/dist/calculations/context.js +85 -0
- package/dist/calculations/context.js.map +1 -0
- package/dist/calculations/formula.d.ts +89 -0
- package/dist/calculations/formula.d.ts.map +1 -0
- package/dist/calculations/formula.js +443 -0
- package/dist/calculations/formula.js.map +1 -0
- package/dist/calculations/functions/dates.d.ts +13 -0
- package/dist/calculations/functions/dates.d.ts.map +1 -0
- package/dist/calculations/functions/dates.js +58 -0
- package/dist/calculations/functions/dates.js.map +1 -0
- package/dist/calculations/functions/index.d.ts +11 -0
- package/dist/calculations/functions/index.d.ts.map +1 -0
- package/dist/calculations/functions/index.js +21 -0
- package/dist/calculations/functions/index.js.map +1 -0
- package/dist/calculations/functions/logical.d.ts +11 -0
- package/dist/calculations/functions/logical.d.ts.map +1 -0
- package/dist/calculations/functions/logical.js +50 -0
- package/dist/calculations/functions/logical.js.map +1 -0
- package/dist/calculations/functions/lookup.d.ts +18 -0
- package/dist/calculations/functions/lookup.d.ts.map +1 -0
- package/dist/calculations/functions/lookup.js +169 -0
- package/dist/calculations/functions/lookup.js.map +1 -0
- package/dist/calculations/functions/math.d.ts +72 -0
- package/dist/calculations/functions/math.d.ts.map +1 -0
- package/dist/calculations/functions/math.js +182 -0
- package/dist/calculations/functions/math.js.map +1 -0
- package/dist/calculations/functions/special.d.ts +2 -0
- package/dist/calculations/functions/special.d.ts.map +1 -0
- package/dist/calculations/functions/special.js +51 -0
- package/dist/calculations/functions/special.js.map +1 -0
- package/dist/calculations/functions/statistical.d.ts +7 -0
- package/dist/calculations/functions/statistical.d.ts.map +1 -0
- package/dist/calculations/functions/statistical.js +47 -0
- package/dist/calculations/functions/statistical.js.map +1 -0
- package/dist/calculations/functions/text.d.ts +29 -0
- package/dist/calculations/functions/text.d.ts.map +1 -0
- package/dist/calculations/functions/text.js +58 -0
- package/dist/calculations/functions/text.js.map +1 -0
- package/dist/calculations/helpers.d.ts +13 -0
- package/dist/calculations/helpers.d.ts.map +1 -0
- package/dist/calculations/helpers.js +32 -0
- package/dist/calculations/helpers.js.map +1 -0
- package/dist/calculations/index.d.ts +7 -0
- package/dist/calculations/index.d.ts.map +1 -0
- package/dist/calculations/index.js +7 -0
- package/dist/calculations/index.js.map +1 -0
- package/dist/calculations/operators.d.ts +19 -0
- package/dist/calculations/operators.d.ts.map +1 -0
- package/dist/calculations/operators.js +58 -0
- package/dist/calculations/operators.js.map +1 -0
- package/dist/calculations/tokenization.d.ts +36 -0
- package/dist/calculations/tokenization.d.ts.map +1 -0
- package/dist/calculations/tokenization.js +203 -0
- package/dist/calculations/tokenization.js.map +1 -0
- package/dist/common/index.d.ts +2 -0
- package/dist/common/index.d.ts.map +1 -0
- package/dist/common/index.js +2 -0
- package/dist/common/index.js.map +1 -0
- package/dist/common/range.d.ts +66 -0
- package/dist/common/range.d.ts.map +1 -0
- package/dist/common/range.js +222 -0
- package/dist/common/range.js.map +1 -0
- package/dist/constants.d.ts +68 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +127 -0
- package/dist/constants.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/model/calculationModel.d.ts +30 -0
- package/dist/model/calculationModel.d.ts.map +1 -0
- package/dist/model/calculationModel.js +206 -0
- package/dist/model/calculationModel.js.map +1 -0
- package/dist/model/cellModel.d.ts +134 -0
- package/dist/model/cellModel.d.ts.map +1 -0
- package/dist/model/cellModel.js +371 -0
- package/dist/model/cellModel.js.map +1 -0
- package/dist/model/columnModel.d.ts +160 -0
- package/dist/model/columnModel.d.ts.map +1 -0
- package/dist/model/columnModel.js +159 -0
- package/dist/model/columnModel.js.map +1 -0
- package/dist/model/commentModel.d.ts +58 -0
- package/dist/model/commentModel.d.ts.map +1 -0
- package/dist/model/commentModel.js +81 -0
- package/dist/model/commentModel.js.map +1 -0
- package/dist/model/conditionalFormats.d.ts +104 -0
- package/dist/model/conditionalFormats.d.ts.map +1 -0
- package/dist/model/conditionalFormats.js +414 -0
- package/dist/model/conditionalFormats.js.map +1 -0
- package/dist/model/cssStyle.d.ts +20 -0
- package/dist/model/cssStyle.d.ts.map +1 -0
- package/dist/model/cssStyle.js +301 -0
- package/dist/model/cssStyle.js.map +1 -0
- package/dist/model/dependencies.d.ts +30 -0
- package/dist/model/dependencies.d.ts.map +1 -0
- package/dist/model/dependencies.js +139 -0
- package/dist/model/dependencies.js.map +1 -0
- package/dist/model/dependencyModel.d.ts +9 -0
- package/dist/model/dependencyModel.d.ts.map +1 -0
- package/dist/model/dependencyModel.js +9 -0
- package/dist/model/dependencyModel.js.map +1 -0
- package/dist/model/elementModel.d.ts +103 -0
- package/dist/model/elementModel.d.ts.map +1 -0
- package/dist/model/elementModel.js +181 -0
- package/dist/model/elementModel.js.map +1 -0
- package/dist/model/filterModel.d.ts +35 -0
- package/dist/model/filterModel.d.ts.map +1 -0
- package/dist/model/filterModel.js +153 -0
- package/dist/model/filterModel.js.map +1 -0
- package/dist/model/gridModel.d.ts +181 -0
- package/dist/model/gridModel.d.ts.map +1 -0
- package/dist/model/gridModel.js +797 -0
- package/dist/model/gridModel.js.map +1 -0
- package/dist/model/groupModel.d.ts +26 -0
- package/dist/model/groupModel.d.ts.map +1 -0
- package/dist/model/groupModel.js +112 -0
- package/dist/model/groupModel.js.map +1 -0
- package/dist/model/history.d.ts +24 -0
- package/dist/model/history.d.ts.map +1 -0
- package/dist/model/history.js +35 -0
- package/dist/model/history.js.map +1 -0
- package/dist/model/index.d.ts +23 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/index.js +23 -0
- package/dist/model/index.js.map +1 -0
- package/dist/model/iterableRange.d.ts +49 -0
- package/dist/model/iterableRange.d.ts.map +1 -0
- package/dist/model/iterableRange.js +108 -0
- package/dist/model/iterableRange.js.map +1 -0
- package/dist/model/merges.d.ts +34 -0
- package/dist/model/merges.d.ts.map +1 -0
- package/dist/model/merges.js +123 -0
- package/dist/model/merges.js.map +1 -0
- package/dist/model/namingModel.d.ts +25 -0
- package/dist/model/namingModel.d.ts.map +1 -0
- package/dist/model/namingModel.js +77 -0
- package/dist/model/namingModel.js.map +1 -0
- package/dist/model/options.d.ts +257 -0
- package/dist/model/options.d.ts.map +1 -0
- package/dist/model/options.js +35 -0
- package/dist/model/options.js.map +1 -0
- package/dist/model/rowModel.d.ts +104 -0
- package/dist/model/rowModel.d.ts.map +1 -0
- package/dist/model/rowModel.js +155 -0
- package/dist/model/rowModel.js.map +1 -0
- package/dist/model/selectionModel.d.ts +19 -0
- package/dist/model/selectionModel.d.ts.map +1 -0
- package/dist/model/selectionModel.js +40 -0
- package/dist/model/selectionModel.js.map +1 -0
- package/dist/model/sortingModel.d.ts +46 -0
- package/dist/model/sortingModel.d.ts.map +1 -0
- package/dist/model/sortingModel.js +157 -0
- package/dist/model/sortingModel.js.map +1 -0
- package/dist/model/style.d.ts +90 -0
- package/dist/model/style.d.ts.map +1 -0
- package/dist/model/style.js +34 -0
- package/dist/model/style.js.map +1 -0
- package/dist/model/styleModel.d.ts +22 -0
- package/dist/model/styleModel.d.ts.map +1 -0
- package/dist/model/styleModel.js +91 -0
- package/dist/model/styleModel.js.map +1 -0
- package/dist/model/tableTheme.d.ts +46 -0
- package/dist/model/tableTheme.d.ts.map +1 -0
- package/dist/model/tableTheme.js +93 -0
- package/dist/model/tableTheme.js.map +1 -0
- package/dist/model/validations.d.ts +5 -0
- package/dist/model/validations.d.ts.map +1 -0
- package/dist/model/validations.js +24 -0
- package/dist/model/validations.js.map +1 -0
- package/dist/sparklines/index.d.ts +2 -0
- package/dist/sparklines/index.d.ts.map +1 -0
- package/dist/sparklines/index.js +2 -0
- package/dist/sparklines/index.js.map +1 -0
- package/dist/sparklines/sparklines.d.ts +59 -0
- package/dist/sparklines/sparklines.d.ts.map +1 -0
- package/dist/sparklines/sparklines.js +176 -0
- package/dist/sparklines/sparklines.js.map +1 -0
- package/dist/types.d.ts +103 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +4 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +11 -0
- package/dist/utils.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import { dates, numbers, utils } from "@omegagrid/core";
|
|
2
|
+
import { isFormula, prefixFormula } from "../calculations/formula";
|
|
3
|
+
import { CellRange } from "../common";
|
|
4
|
+
import { ElementModel } from "./elementModel";
|
|
5
|
+
import { styleToCSStyle } from "./cssStyle";
|
|
6
|
+
import { validateValue } from "./validations";
|
|
7
|
+
const cellValueHandler = {
|
|
8
|
+
['n']: (v) => {
|
|
9
|
+
const value = utils.isString(v) ? parseFloat(v.replace(',', '.')) : v;
|
|
10
|
+
return Number.isNaN(value) ? v : value;
|
|
11
|
+
},
|
|
12
|
+
['t']: (v) => v,
|
|
13
|
+
['d']: (v, cell) => {
|
|
14
|
+
if (v == null || v === '')
|
|
15
|
+
return null;
|
|
16
|
+
if (utils.isString(v)) {
|
|
17
|
+
try {
|
|
18
|
+
return utils.isNumericString(v)
|
|
19
|
+
? utils.strToNum(v)
|
|
20
|
+
: dates.dateToSerialDate(dates.parse(v, cell.model.options.formatLocale));
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
cell.model.logger.error(`Invalid date value in cell ${cell.address}: ${v}`);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (v instanceof Date)
|
|
28
|
+
return dates.dateToSerialDate(v);
|
|
29
|
+
return v;
|
|
30
|
+
},
|
|
31
|
+
// TODO: unfinnished implementation of time and datetime
|
|
32
|
+
['tm']: (v) => utils.isString(v) ? new Date(v) : v,
|
|
33
|
+
['dt']: (v) => utils.isString(v) ? new Date(v) : v,
|
|
34
|
+
['b']: (v) => !!v && v !== '0' && v.toString().toLowerCase() !== 'false',
|
|
35
|
+
['s']: (v) => v,
|
|
36
|
+
['m']: (v) => v,
|
|
37
|
+
['g']: (v) => {
|
|
38
|
+
if (v == null || v === '')
|
|
39
|
+
return null;
|
|
40
|
+
const f = parseFloat(v.toString().replace(',', '.'));
|
|
41
|
+
return isNaN(f) ? v : f;
|
|
42
|
+
},
|
|
43
|
+
['a']: (v) => utils.isString(v) && v !== '' ? JSON.parse(v) : v,
|
|
44
|
+
['h']: (v) => v,
|
|
45
|
+
};
|
|
46
|
+
const dropdownFormatters = new Map();
|
|
47
|
+
const getDropdownFormatter = (content) => {
|
|
48
|
+
content = content || null;
|
|
49
|
+
if (!dropdownFormatters.has(content)) {
|
|
50
|
+
if (content) {
|
|
51
|
+
const items = content.reduce((map, e) => map.set(e.k, e.v), new Map());
|
|
52
|
+
dropdownFormatters.set(content, (k) => items.has(k) ? items.get(k) : k);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
dropdownFormatters.set(content, (k) => k);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return dropdownFormatters.get(content);
|
|
59
|
+
};
|
|
60
|
+
export class CellModel extends ElementModel {
|
|
61
|
+
get tooltip() { return this._tooltip; }
|
|
62
|
+
set tooltip(v) { this._tooltip = v; }
|
|
63
|
+
get hasTooltip() { return this._tooltip != null; }
|
|
64
|
+
get merge() { return this.model.merges.mergedCells.get(this.address); }
|
|
65
|
+
get row() { return this._row; }
|
|
66
|
+
set row(v) { this._row = v; }
|
|
67
|
+
get r() { return this._row.index; }
|
|
68
|
+
get column() { return this._column; }
|
|
69
|
+
set column(v) { this._column = v; }
|
|
70
|
+
get c() { return this._column.index; }
|
|
71
|
+
get hasValue() { return this._value != null; }
|
|
72
|
+
get value() {
|
|
73
|
+
if (!this._evaluated)
|
|
74
|
+
this.evaluate();
|
|
75
|
+
return this._value;
|
|
76
|
+
}
|
|
77
|
+
set value(v) {
|
|
78
|
+
if (v && isFormula(v.toString())) {
|
|
79
|
+
this._value = undefined;
|
|
80
|
+
this.formula = v;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
let value = cellValueHandler[this.type](v, this);
|
|
84
|
+
if (!validateValue(this, value))
|
|
85
|
+
value = undefined;
|
|
86
|
+
if (value !== this._value) {
|
|
87
|
+
this._value = value;
|
|
88
|
+
this._displayValue = undefined;
|
|
89
|
+
}
|
|
90
|
+
if (this.row.data && this.column.data) {
|
|
91
|
+
this.row.data[this.column.data] = this._value;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
evaluate() {
|
|
96
|
+
this._value = cellValueHandler[this.type](this.model.calculations.evaluate(this), this);
|
|
97
|
+
this._evaluated = true;
|
|
98
|
+
return this._value;
|
|
99
|
+
}
|
|
100
|
+
get value2() { return this.hasFormula ? prefixFormula(this.formula) : this.value; }
|
|
101
|
+
get hasDisplayValue() { return this._displayValue != null; }
|
|
102
|
+
get displayValue() { return this._displayValue; }
|
|
103
|
+
set displayValue(v) { this._displayValue = v; }
|
|
104
|
+
/* tells if cell has type that prefers usage of display value */
|
|
105
|
+
get prefersDisplayValue() { return ['s', 'm'].includes(this.type); }
|
|
106
|
+
get error() { return this._error; }
|
|
107
|
+
set error(v) { this._error = v; }
|
|
108
|
+
get hasError() { return !!this._error; }
|
|
109
|
+
clearError() { this._error = undefined; }
|
|
110
|
+
get spillRange() { return this._spillRange; }
|
|
111
|
+
get prevSpillRange() { return this._prevSpillRange; }
|
|
112
|
+
set spillRange(v) {
|
|
113
|
+
if (this._spillRange && (!v || !this._spillRange.equals(v))) {
|
|
114
|
+
this._prevSpillRange = this._spillRange;
|
|
115
|
+
}
|
|
116
|
+
this._spillRange = v;
|
|
117
|
+
}
|
|
118
|
+
get isSpillSource() { return this._spillRange != null; }
|
|
119
|
+
get spillSource() { return this._spillSource; }
|
|
120
|
+
get isSpilled() { return this._spillSource != null; }
|
|
121
|
+
spillValue(v, source) {
|
|
122
|
+
this.value = v;
|
|
123
|
+
this._spillSource = source;
|
|
124
|
+
}
|
|
125
|
+
clearSpilledValue() {
|
|
126
|
+
this._spillSource = undefined;
|
|
127
|
+
this._value = undefined;
|
|
128
|
+
}
|
|
129
|
+
get hasSparkline() {
|
|
130
|
+
return this._sparkline === null ? (this._sparkline = this.model.sparklines.has(this.address)) : this._sparkline;
|
|
131
|
+
}
|
|
132
|
+
get hasComment() {
|
|
133
|
+
return this._hasComment === null ? (this._hasComment = (this.model.comments.get(this.address) ?? []).length > 0) : this._hasComment;
|
|
134
|
+
}
|
|
135
|
+
get comments() { return this.model.comments.get(this.address); }
|
|
136
|
+
get valueFormatter() {
|
|
137
|
+
const formatter = super.valueFormatter ?? this.row.valueFormatter ?? this.column.valueFormatter;
|
|
138
|
+
if (formatter)
|
|
139
|
+
return formatter;
|
|
140
|
+
const type = this.type;
|
|
141
|
+
const format = this.format;
|
|
142
|
+
const { formatLocale, fixNumberFormat } = this.model.options;
|
|
143
|
+
const v = this.value;
|
|
144
|
+
if (v == null || v === '') {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
else if (type == 'n') {
|
|
148
|
+
if (format != null)
|
|
149
|
+
return numbers.getNumberFormatter(formatLocale, format, fixNumberFormat);
|
|
150
|
+
else
|
|
151
|
+
return this.model.options.numberFormatter;
|
|
152
|
+
}
|
|
153
|
+
else if (type == 'g') {
|
|
154
|
+
if (format != null)
|
|
155
|
+
return numbers.getNumberFormatter(formatLocale, format, fixNumberFormat);
|
|
156
|
+
else if (utils.isNumber(v))
|
|
157
|
+
return this.model.options.numberFormatter;
|
|
158
|
+
}
|
|
159
|
+
else if (type == 't') {
|
|
160
|
+
return format == null ? null : numbers.getNumberFormatter(formatLocale, format, false);
|
|
161
|
+
}
|
|
162
|
+
else if (type == 'd') {
|
|
163
|
+
return format ? dates.getDateFormatter(formatLocale, format) : this.model.options.dateFormatter;
|
|
164
|
+
}
|
|
165
|
+
else if (type == 's' && this.editorContent) {
|
|
166
|
+
return getDropdownFormatter(this.editorContent);
|
|
167
|
+
}
|
|
168
|
+
return null;
|
|
169
|
+
}
|
|
170
|
+
get formattedValue() {
|
|
171
|
+
if (this.value == null)
|
|
172
|
+
return '';
|
|
173
|
+
if (this.hasDisplayValue)
|
|
174
|
+
return this.displayValue;
|
|
175
|
+
return this.valueFormatter ? this.valueFormatter(this.value) : this.value.toString();
|
|
176
|
+
}
|
|
177
|
+
get elm1() { return this.row.priority >= this.column.priority ? this.row : this.column; }
|
|
178
|
+
get elm2() { return this.row.priority < this.column.priority ? this.row : this.column; }
|
|
179
|
+
get clickable() { return super.clickable ?? this.elm1.clickable ?? this.elm2.clickable; }
|
|
180
|
+
get type() { return super.type ?? this.elm1.type ?? this.elm2.type ?? 'g'; }
|
|
181
|
+
set type(value) { this._type = value; }
|
|
182
|
+
get editorContent() { return super.editorContent ?? this.elm1.editorContent ?? this.elm2.editorContent ?? null; }
|
|
183
|
+
get adapter() { return super.adapter ?? this.elm1.adapter ?? this.elm2.adapter; }
|
|
184
|
+
set adapter(value) { this._adapter = value; }
|
|
185
|
+
get address() { return this.column.address + this.row.address; }
|
|
186
|
+
get range() { return CellRange.fromA1(this.address); }
|
|
187
|
+
get validation() { return super.validation ?? this.elm1.validation ?? this.elm2.validation ?? this.model.options.cellValidation; }
|
|
188
|
+
get editable() { return super.editable ?? this.elm1.editable ?? this.elm2.editable ?? this.model.options.editable; }
|
|
189
|
+
set editable(v) { this._editable = v; }
|
|
190
|
+
get commentable() { return super.commentable ?? this.elm1.commentable ?? this.elm2.commentable ?? this.model.options.commentable; }
|
|
191
|
+
get renderer() { return super.renderer ?? this.elm1.renderer ?? this.elm2.renderer; }
|
|
192
|
+
get afterRenderer() { return super.afterRenderer ?? this.elm1.afterRenderer ?? this.elm2.afterRenderer ?? this.model.options.afterRenderer; }
|
|
193
|
+
get commentRenderer() { return super.commentRenderer ?? this.elm1.commentRenderer ?? this.elm2.commentRenderer ?? this.model.options.comments.renderer; }
|
|
194
|
+
get format() { return super.format ?? this.elm1.format ?? this.elm2.format; }
|
|
195
|
+
set format(v) { super.format = v; }
|
|
196
|
+
get hyperlink() { return this._hyperlink; }
|
|
197
|
+
set hyperlink(v) { this._hyperlink = v; }
|
|
198
|
+
get hasOwnFormula() { return !!this._formula; }
|
|
199
|
+
get hasFormula() {
|
|
200
|
+
if (this._hasFormula == null)
|
|
201
|
+
this._hasFormula = !!this.formula;
|
|
202
|
+
return this._hasFormula;
|
|
203
|
+
}
|
|
204
|
+
get formula() { return this._formula ?? this.elm1.formula ?? this.elm2.formula; }
|
|
205
|
+
set formula(v) {
|
|
206
|
+
super.formula = v;
|
|
207
|
+
this.refreshFormula();
|
|
208
|
+
}
|
|
209
|
+
invalidateValue() {
|
|
210
|
+
if (this.hasFormula) {
|
|
211
|
+
this._value = undefined;
|
|
212
|
+
this._evaluated = false;
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
this._evaluated = true;
|
|
216
|
+
}
|
|
217
|
+
this.clearError();
|
|
218
|
+
}
|
|
219
|
+
refreshFormula() {
|
|
220
|
+
this.invalidateValue();
|
|
221
|
+
this._hasFormula = null;
|
|
222
|
+
}
|
|
223
|
+
clearFormula() {
|
|
224
|
+
this._formula = null;
|
|
225
|
+
this._hasFormula = false;
|
|
226
|
+
this._evaluated = true;
|
|
227
|
+
}
|
|
228
|
+
constructor(model, source) {
|
|
229
|
+
super(model);
|
|
230
|
+
this._evaluated = true;
|
|
231
|
+
this._sparkline = null;
|
|
232
|
+
this._hasComment = null;
|
|
233
|
+
this._hasStyle = null;
|
|
234
|
+
this.row = model.rows[source.r];
|
|
235
|
+
this.column = model.columns[source.c];
|
|
236
|
+
this.populate(source);
|
|
237
|
+
}
|
|
238
|
+
populate(source) {
|
|
239
|
+
super.populate(source);
|
|
240
|
+
this._tooltip = source.tooltip;
|
|
241
|
+
this._hyperlink = source.hl;
|
|
242
|
+
if (source.f != null && source.f !== '')
|
|
243
|
+
this._evaluated = false;
|
|
244
|
+
else if (source.v != null)
|
|
245
|
+
this.value = source.v; // load static value only if no formula is present
|
|
246
|
+
this._displayValue = source.dv; // display value must be set after value
|
|
247
|
+
}
|
|
248
|
+
update(source) {
|
|
249
|
+
const updatedProps = super.update(source);
|
|
250
|
+
if ('tooltip' in source) {
|
|
251
|
+
updatedProps.tooltip = this._tooltip;
|
|
252
|
+
this._tooltip = source.tooltip;
|
|
253
|
+
}
|
|
254
|
+
if ('hl' in source) {
|
|
255
|
+
updatedProps.hl = this._hyperlink;
|
|
256
|
+
this._hyperlink = source.hl;
|
|
257
|
+
}
|
|
258
|
+
if ('f' in source) {
|
|
259
|
+
this._evaluated = false;
|
|
260
|
+
}
|
|
261
|
+
else if ('v' in source) {
|
|
262
|
+
updatedProps.v = this.value;
|
|
263
|
+
this.value = source.v;
|
|
264
|
+
}
|
|
265
|
+
if ('dv' in source) {
|
|
266
|
+
updatedProps.dv = this._displayValue;
|
|
267
|
+
this._displayValue = source.dv;
|
|
268
|
+
}
|
|
269
|
+
return updatedProps;
|
|
270
|
+
}
|
|
271
|
+
getSourceData(options) {
|
|
272
|
+
const data = super.getSourceData();
|
|
273
|
+
if (this.merge) {
|
|
274
|
+
data.cs = this.merge.cs;
|
|
275
|
+
data.rs = this.merge.rs;
|
|
276
|
+
}
|
|
277
|
+
if (this.value != null)
|
|
278
|
+
data.v = this.value;
|
|
279
|
+
if (this.hasTooltip)
|
|
280
|
+
data.tooltip = this._tooltip;
|
|
281
|
+
if (this._hyperlink)
|
|
282
|
+
data.hl = this._hyperlink;
|
|
283
|
+
if (options) {
|
|
284
|
+
if (options.displayValue && this.hasDisplayValue)
|
|
285
|
+
data.dv = this._displayValue;
|
|
286
|
+
}
|
|
287
|
+
return data;
|
|
288
|
+
}
|
|
289
|
+
createComposedStyle(columnStyle, rowStyle, extraStyle) {
|
|
290
|
+
const styles = [];
|
|
291
|
+
columnStyle = columnStyle || this.column.style;
|
|
292
|
+
rowStyle = rowStyle || this.row.style;
|
|
293
|
+
if (columnStyle != null && rowStyle != null) {
|
|
294
|
+
if (this.column.priority > this.row.priority) {
|
|
295
|
+
styles.push(rowStyle, columnStyle);
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
styles.push(columnStyle, rowStyle);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
else if (columnStyle != null)
|
|
302
|
+
styles.push(columnStyle);
|
|
303
|
+
else if (rowStyle != null)
|
|
304
|
+
styles.push(rowStyle);
|
|
305
|
+
if (this.style != null)
|
|
306
|
+
styles.push(this.style);
|
|
307
|
+
if (extraStyle != null)
|
|
308
|
+
styles.push(extraStyle);
|
|
309
|
+
return styles.length > 0 ? this.model.styles.merge(...styles) : null;
|
|
310
|
+
}
|
|
311
|
+
get composedStyle() {
|
|
312
|
+
if (this._hasStyle === null) {
|
|
313
|
+
const s = this.createComposedStyle(null, null, this.model.conditionalFormats.evaluate(this));
|
|
314
|
+
this._hasStyle = s != null;
|
|
315
|
+
this._composedStyle = s;
|
|
316
|
+
}
|
|
317
|
+
return this._composedStyle;
|
|
318
|
+
}
|
|
319
|
+
get calculatedIndent() {
|
|
320
|
+
const s = this.composedStyle;
|
|
321
|
+
if (s?.alignment?.indent)
|
|
322
|
+
return s.alignment.indent;
|
|
323
|
+
// calculates cell text indent based on row level
|
|
324
|
+
if (this.column.levelIndent && this.row.level > 0) {
|
|
325
|
+
return this.row.level * this.model.options.levelIndentFactor;
|
|
326
|
+
}
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
get cssStyle() {
|
|
330
|
+
if (this._hasStyle === false)
|
|
331
|
+
return null;
|
|
332
|
+
if (!this._cssStyle) {
|
|
333
|
+
const composedStyle = this.composedStyle;
|
|
334
|
+
if (composedStyle) {
|
|
335
|
+
this._cssStyle = styleToCSStyle(composedStyle);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
return this._cssStyle;
|
|
339
|
+
}
|
|
340
|
+
invalidateStyle() {
|
|
341
|
+
this._hasComment = null;
|
|
342
|
+
this._hasStyle = null;
|
|
343
|
+
this._composedStyle = null;
|
|
344
|
+
this._cssStyle = null;
|
|
345
|
+
this._sparkline = null;
|
|
346
|
+
}
|
|
347
|
+
setStyleProperties(props) {
|
|
348
|
+
super.setStyleProperties(props);
|
|
349
|
+
this.invalidateStyle();
|
|
350
|
+
}
|
|
351
|
+
removeStyleProperties(props) {
|
|
352
|
+
super.removeStyleProperties(props);
|
|
353
|
+
this.invalidateStyle();
|
|
354
|
+
}
|
|
355
|
+
previewStyleProperties(props, type = 'cell') {
|
|
356
|
+
const composedStyle = Object.assign({}, this.createComposedStyle(type == 'column' ? props : null, type == 'row' ? props : null) ?? {});
|
|
357
|
+
if (type == 'cell') {
|
|
358
|
+
for (const k in props)
|
|
359
|
+
composedStyle[k] = props[k];
|
|
360
|
+
}
|
|
361
|
+
this._hasStyle = true;
|
|
362
|
+
this._cssStyle = styleToCSStyle(composedStyle);
|
|
363
|
+
}
|
|
364
|
+
validate() {
|
|
365
|
+
if (!this.validation)
|
|
366
|
+
return true;
|
|
367
|
+
return validateValue(this, this.value);
|
|
368
|
+
}
|
|
369
|
+
toString() { return this.address; }
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=cellModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cellModel.js","sourceRoot":"","sources":["../../src/model/cellModel.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentAdapter, dates, numbers, utils, ValueFormatter } from \"@omegagrid/core\";\nimport { isFormula, prefixFormula } from \"../calculations/formula\";\nimport { CellRange } from \"../common\";\n// import { cellTypeRendererMap } from \"../renderers\";\nimport { ColumnModel } from \"./columnModel\";\nimport { ElementModel, ElementSource } from \"./elementModel\";\nimport { GridModel } from \"./gridModel\";\nimport { RowModel } from \"./rowModel\";\nimport { Style, StylePropertyKey } from \"./style\";\nimport { CSSStyle, styleToCSStyle } from \"./cssStyle\";\nimport { CellSerializationOptions, CellType } from \"../types\";\nimport { CommentSource } from \"./commentModel\";\nimport { validateValue } from \"./validations\";\n\n/** Source object type for grid cell */\nexport type CellSource = {\n\t/** row index */\n\tr: number;\n\t/** col index */\n\tc: number;\n\t/** cell value */\n\tv?: unknown;\n\t/** cell display value */\n\tdv?: string;\n\t/** cell column span */\n\tcs?: number;\n\t/** cell row span */\n\trs?: number;\n\t/** hyperlink */\n\thl?: string;\n\t/** cell tooltip content */\n\ttooltip?: string|unknown;\n\t/** comment */\n\tcomment?: CommentSource;\n} & ElementSource;\n\nconst cellValueHandler: Record<string, (v: unknown, cell: CellModel) => unknown> = {\n\t['n']: (v) => {\n\t\tconst value = utils.isString(v) ? parseFloat((v as string).replace(',', '.')) : v;\n\t\treturn Number.isNaN(value) ? v : value;\n\t},\n\t['t']: (v) => v,\n\t['d']: (v, cell) => {\n\t\tif (v == null || v === '') return null;\n\t\tif (utils.isString(v)) {\n\t\t\ttry {\n\t\t\t\treturn utils.isNumericString(v as string) \n\t\t\t\t\t? utils.strToNum(v as string)\n\t\t\t\t\t: dates.dateToSerialDate(dates.parse(v as string, cell.model.options.formatLocale));\n\t\t\t} catch (error) {\n\t\t\t\tcell.model.logger.error(`Invalid date value in cell ${cell.address}: ${v}`);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t} \n\t\tif (v instanceof Date) return dates.dateToSerialDate(v);\n\t\treturn v;\n\t},\n\t// TODO: unfinnished implementation of time and datetime\n\t['tm']: (v) => utils.isString(v) ? new Date(v as string) : v,\n\t['dt']: (v) => utils.isString(v) ? new Date(v as string) : v,\n\t['b']: (v) => !!v && v !== '0' && v.toString().toLowerCase() !== 'false',\n\t['s']: (v) => v,\n\t['m']: (v) => v,\n\t['g']: (v) => {\n\t\tif (v == null || v === '') return null;\n\t\tconst f = parseFloat((v as string).toString().replace(',', '.'));\n\t\treturn isNaN(f) ? v : f;\n\t},\n\t['a']: (v) => utils.isString(v) && v !== '' ? JSON.parse(v as string) : v,\n\t['h']: (v) => v,\n};\n\nconst dropdownFormatters = new Map<{k: string, v: string}[], ValueFormatter<string>>();\nconst getDropdownFormatter = (content?: {k: string, v: string}[]) => {\n\tcontent = content || null;\n\tif (!dropdownFormatters.has(content)) {\n\t\tif (content) {\n\t\t\tconst items = content.reduce((map, e) => map.set(e.k, e.v), new Map<string, string>());\n\t\t\tdropdownFormatters.set(content, (k: string) => items.has(k) ? items.get(k) : k);\n\t\t} else {\n\t\t\tdropdownFormatters.set(content, (k: string) => k);\n\t\t}\n\t}\n\treturn dropdownFormatters.get(content);\n};\n\nexport type CellError = {\n\tmessage: string;\n\thandled?: boolean;\n}\n\nexport class CellModel extends ElementModel {\n\t\n\tpublic _content: HTMLDivElement;\n\t\n\tprivate _tooltip: string|unknown;\n\tget tooltip() { return this._tooltip }\n\tset tooltip(v: string|unknown) { this._tooltip = v }\n\tget hasTooltip() { return this._tooltip != null }\n\t\n\tget merge() { return this.model.merges.mergedCells.get(this.address) }\n\t\n\tprivate _row: RowModel;\n\tget row() { return this._row }\n\tset row(v: RowModel) { this._row = v }\n\tget r() { return this._row.index}\n\t\n\tprivate _column: ColumnModel;\n\tget column() { return this._column }\n\tset column(v: ColumnModel) { this._column = v }\n\tget c() { return this._column.index }\n\n\tprivate _value: unknown;\n\tprivate _evaluated = true;\n\tget hasValue() { return this._value != null }\n\tget value() { \n\t\tif (!this._evaluated) this.evaluate();\n\t\treturn this._value \n\t}\n\tset value(v: unknown) {\n\t\tif (v && isFormula(v.toString())) {\n\t\t\tthis._value = undefined;\n\t\t\tthis.formula = v as string;\n\t\t} else {\n\t\t\tlet value = cellValueHandler[this.type](v, this);\n\t\t\t\n\t\t\tif (!validateValue(this, value)) value = undefined;\n\t\t\t\n\t\t\tif (value !== this._value) {\n\t\t\t\tthis._value = value;\n\t\t\t\tthis._displayValue = undefined;\n\t\t\t}\n\t\t\t\n\t\t\tif (this.row.data && this.column.data) {\n\t\t\t\tthis.row.data[this.column.data] = this._value;\n\t\t\t}\n\t\t}\n\t}\n\tevaluate() {\n\t\tthis._value = cellValueHandler[this.type](this.model.calculations.evaluate(this), this);\n\t\tthis._evaluated = true;\n\t\treturn this._value;\n\t}\n\t\n\tget value2() { return this.hasFormula ? prefixFormula(this.formula) : this.value }\n\n\tprivate _displayValue: string;\n\tget hasDisplayValue() { return this._displayValue != null }\n\tget displayValue() { return this._displayValue }\n\tset displayValue(v: string) { this._displayValue = v }\n\t\n\t/* tells if cell has type that prefers usage of display value */\n\tget prefersDisplayValue() { return ['s', 'm'].includes(this.type) }\n\n\tprivate _error: CellError;\n\tget error() { return this._error }\n\tset error(v: CellError) { this._error = v }\n\tget hasError() { return !!this._error }\n\tclearError() { this._error = undefined }\n\n\tprivate _spillRange: CellRange;\n\tprivate _prevSpillRange: CellRange;\n\tget spillRange() { return this._spillRange }\n\tget prevSpillRange() { return this._prevSpillRange }\n\tset spillRange(v: CellRange) {\n\t\tif (this._spillRange && (!v || !this._spillRange.equals(v))) {\n\t\t\tthis._prevSpillRange = this._spillRange;\n\t\t}\n\t\tthis._spillRange = v;\n\t}\n\tget isSpillSource() { return this._spillRange != null }\n\n\tprivate _spillSource: CellModel;\n\tget spillSource() { return this._spillSource }\n\tget isSpilled() { return this._spillSource != null }\n\tspillValue(v: unknown, source?: CellModel) {\n\t\tthis.value = v;\n\t\tthis._spillSource = source;\n\t}\n\tclearSpilledValue() {\n\t\tthis._spillSource = undefined;\n\t\tthis._value = undefined;\n\t}\n\n\tprivate _sparkline: boolean = null;\n\tget hasSparkline() {\n\t\treturn this._sparkline === null ? (this._sparkline = this.model.sparklines.has(this.address)) : this._sparkline;\n\t}\n\t\n\tprivate _hasComment?: boolean = null;\n\tget hasComment() {\n\t\treturn this._hasComment === null ? (\n\t\t\tthis._hasComment = (this.model.comments.get(this.address) ?? []).length > 0\n\t\t) : this._hasComment;\n\t}\n\tget comments() { return this.model.comments.get(this.address) }\n\n\tprivate _composedStyle: Style;\n\tprivate _cssStyle: CSSStyle;\n\tprivate _hasStyle?: boolean = null;\n\n\tget valueFormatter(): ValueFormatter<unknown> {\n\t\tconst formatter = super.valueFormatter ?? this.row.valueFormatter ?? this.column.valueFormatter;\n\t\tif (formatter) return formatter;\n\n\t\tconst type = this.type;\n\t\tconst format = this.format;\n\t\tconst { formatLocale, fixNumberFormat } = this.model.options;\n\t\tconst v = this.value;\n\n\t\tif (v == null || v === '') {\n\t\t\treturn null;\n\t\t} else if (type == 'n') {\n\t\t\tif (format != null) return numbers.getNumberFormatter(formatLocale, format, fixNumberFormat);\n\t\t\telse return this.model.options.numberFormatter;\n\t\t} else if (type == 'g') {\n\t\t\tif (format != null) return numbers.getNumberFormatter(formatLocale, format, fixNumberFormat);\n\t\t\telse if (utils.isNumber(v)) return this.model.options.numberFormatter;\n\t\t} else if (type == 't') {\n\t\t\treturn format == null ? null : numbers.getNumberFormatter(formatLocale, format, false);\n\t\t} else if (type == 'd') {\n\t\t\treturn format ? dates.getDateFormatter(formatLocale, format) : this.model.options.dateFormatter;\n\t\t} else if (type == 's' && this.editorContent) {\n\t\t\treturn getDropdownFormatter(this.editorContent as {k: string, v: string}[]);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tget formattedValue(): string {\n\t\tif (this.value == null) return '';\n\t\tif (this.hasDisplayValue) return this.displayValue;\n\t\treturn this.valueFormatter ? this.valueFormatter(this.value) : this.value.toString();\n\t}\n\t\n\tprivate get elm1() { return this.row.priority >= this.column.priority ? this.row : this.column }\n\tprivate get elm2() { return this.row.priority < this.column.priority ? this.row : this.column }\n\n\tget clickable() { return super.clickable ?? this.elm1.clickable ?? this.elm2.clickable }\n\tget type() { return super.type ?? this.elm1.type ?? this.elm2.type ?? 'g' }\n\tset type(value: CellType) { this._type = value }\n\tget editorContent() { return super.editorContent ?? this.elm1.editorContent ?? this.elm2.editorContent ?? null }\n\tget adapter() { return super.adapter ?? this.elm1.adapter ?? this.elm2.adapter }\n\tset adapter(value: ComponentAdapter) { this._adapter = value }\n\n\tget address() { return this.column.address + this.row.address }\n\tget range() { return CellRange.fromA1(this.address) }\n\tget validation() { return super.validation ?? this.elm1.validation ?? this.elm2.validation ?? this.model.options.cellValidation }\n\tget editable() { return super.editable ?? this.elm1.editable ?? this.elm2.editable ?? this.model.options.editable }\n\tset editable(v: boolean) { this._editable = v }\n\tget commentable() { return super.commentable ?? this.elm1.commentable ?? this.elm2.commentable ?? this.model.options.commentable }\n\tget renderer() { return super.renderer ?? this.elm1.renderer ?? this.elm2.renderer }\n\tget afterRenderer() { return super.afterRenderer ?? this.elm1.afterRenderer ?? this.elm2.afterRenderer ?? this.model.options.afterRenderer }\n\tget commentRenderer() { return super.commentRenderer ?? this.elm1.commentRenderer ?? this.elm2.commentRenderer ?? this.model.options.comments.renderer }\n\tget format() { return super.format ?? this.elm1.format ?? this.elm2.format }\n\tset format(v: numbers.NumberFormatString) { super.format = v }\n\n\tprivate _hyperlink : string;\n\tget hyperlink() { return this._hyperlink }\n\tset hyperlink(v: string) { this._hyperlink = v }\n\n\tprivate _hasFormula: boolean;\n\n\tget hasOwnFormula() { return !!this._formula }\n\tget hasFormula() {\n\t\tif (this._hasFormula == null) this._hasFormula = !!this.formula;\n\t\treturn this._hasFormula;\n\t}\n\tget formula() { return this._formula ?? this.elm1.formula ?? this.elm2.formula }\n\tset formula(v: string) {\n\t\tsuper.formula = v;\n\t\tthis.refreshFormula();\n\t}\n\n\tinvalidateValue() {\n\t\tif (this.hasFormula) {\n\t\t\tthis._value = undefined;\n\t\t\tthis._evaluated = false;\n\t\t} else {\n\t\t\tthis._evaluated = true;\n\t\t}\n\t\tthis.clearError();\n\t}\n\n\trefreshFormula() { \n\t\tthis.invalidateValue();\n\t\tthis._hasFormula = null;\n\t}\n\n\tclearFormula() {\n\t\tthis._formula = null;\n\t\tthis._hasFormula = false;\n\t\tthis._evaluated = true;\n\t}\n\n\tconstructor(model: GridModel, source: CellSource) {\n\t\tsuper(model);\n\t\tthis.row = model.rows[source.r];\n\t\tthis.column = model.columns[source.c];\n\t\tthis.populate(source);\n\t}\n\n\tpopulate(source: CellSource) {\n\t\tsuper.populate(source);\n\t\tthis._tooltip = source.tooltip;\n\t\tthis._hyperlink = source.hl;\n\t\tif (source.f != null && source.f !== '') this._evaluated = false;\n\t\telse if (source.v != null) this.value = source.v; // load static value only if no formula is present\n\t\tthis._displayValue = source.dv; // display value must be set after value\n\t}\n\n\tupdate(source: Partial<CellSource>) {\n\t\tconst updatedProps = super.update(source) as CellSource;\n\t\tif ('tooltip' in source) { updatedProps.tooltip = this._tooltip; this._tooltip = source.tooltip; }\n\t\tif ('hl' in source) { updatedProps.hl = this._hyperlink; this._hyperlink = source.hl; }\n\t\tif ('f' in source) { this._evaluated = false; }\n\t\telse if ('v' in source) { updatedProps.v = this.value; this.value = source.v; }\n\t\tif ('dv' in source) { updatedProps.dv = this._displayValue; this._displayValue = source.dv; }\n\t\treturn updatedProps;\n\t}\n\n\tgetSourceData(options?: CellSerializationOptions) : CellSource {\n\t\tconst data = super.getSourceData() as CellSource;\n\t\t\n\t\tif (this.merge) {\n\t\t\tdata.cs = this.merge.cs;\n\t\t\tdata.rs = this.merge.rs;\n\t\t}\n\n\t\tif (this.value != null) data.v = this.value;\n\t\tif (this.hasTooltip) data.tooltip = this._tooltip;\n\t\tif (this._hyperlink) data.hl = this._hyperlink;\n\n\t\tif (options) {\n\t\t\tif (options.displayValue && this.hasDisplayValue) data.dv = this._displayValue;\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tprivate createComposedStyle(columnStyle?: Style|number, rowStyle?: Style|number, extraStyle?: Style) {\n\t\tconst styles: (number|Style)[] = [];\n\t\t\n\t\tcolumnStyle = columnStyle || this.column.style;\n\t\trowStyle = rowStyle || this.row.style;\n\t\tif (columnStyle != null && rowStyle != null) {\n\t\t\tif (this.column.priority > this.row.priority) {\n\t\t\t\tstyles.push(rowStyle, columnStyle);\n\t\t\t} else {\n\t\t\t\tstyles.push(columnStyle, rowStyle);\n\t\t\t}\n\t\t} \n\t\telse if (columnStyle != null) styles.push(columnStyle);\n\t\telse if (rowStyle != null) styles.push(rowStyle); \n\n\t\tif (this.style != null) styles.push(this.style);\n\t\tif (extraStyle != null) styles.push(extraStyle);\n\n\t\treturn styles.length > 0 ? this.model.styles.merge(...styles) : null;\n\t}\n\n\tget composedStyle() : Style {\n\t\tif (this._hasStyle === null) {\n\t\t\tconst s = this.createComposedStyle(null, null, this.model.conditionalFormats.evaluate(this));\n\t\t\tthis._hasStyle = s != null;\n\t\t\tthis._composedStyle = s;\n\t\t}\n\t\treturn this._composedStyle;\n\t}\n\n\tget calculatedIndent(): number|null {\n\t\tconst s = this.composedStyle;\n\t\tif (s?.alignment?.indent) return s.alignment.indent;\n\n\t\t// calculates cell text indent based on row level\n\t\tif (this.column.levelIndent && this.row.level > 0) {\n\t\t\treturn this.row.level * this.model.options.levelIndentFactor;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tget cssStyle() : CSSStyle {\n\t\tif (this._hasStyle === false) return null;\n\t\tif (!this._cssStyle) {\n\t\t\tconst composedStyle = this.composedStyle;\n\t\t\tif (composedStyle) {\n\t\t\t\tthis._cssStyle = styleToCSStyle(composedStyle);\n\t\t\t}\n\t\t}\n\t\treturn this._cssStyle;\n\t}\n\n\tinvalidateStyle() {\n\t\tthis._hasComment = null;\n\t\tthis._hasStyle = null;\n\t\tthis._composedStyle = null;\n\t\tthis._cssStyle = null;\n\t\tthis._sparkline = null;\n\t}\n\n\tsetStyleProperties(props: Record<StylePropertyKey, unknown>) {\n\t\tsuper.setStyleProperties(props);\n\t\tthis.invalidateStyle();\n\t}\n\n\tremoveStyleProperties(props: string[]) {\n\t\tsuper.removeStyleProperties(props);\n\t\tthis.invalidateStyle();\n\t}\n\n\tpreviewStyleProperties(\n\t\tprops: Record<StylePropertyKey, unknown>,\n\t\ttype: 'cell'|'column'|'row' = 'cell'\n\t) {\n\t\tconst composedStyle = Object.assign({}, this.createComposedStyle(type == 'column' ? props : null, type == 'row' ? props : null) ?? {});\n\t\t\n\t\tif (type == 'cell') {\n\t\t\tfor (const k in props) composedStyle[k] = props[k];\n\t\t}\n\t\tthis._hasStyle = true;\n\t\tthis._cssStyle = styleToCSStyle(composedStyle);\n\t}\n\n\tvalidate() {\n\t\tif (!this.validation) return true;\n\t\treturn validateValue(this, this.value);\n\t}\n\n\ttoString() { return this.address }\n\n}"]}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { tree } from "@omegagrid/core";
|
|
2
|
+
import { CellRange } from "../common/range";
|
|
3
|
+
import { ElementModel, ElementSource } from "./elementModel";
|
|
4
|
+
import { GridModel } from "./gridModel";
|
|
5
|
+
import { Comparer, StyleSource } from "../types";
|
|
6
|
+
import { CellModel } from "./cellModel";
|
|
7
|
+
/** Source object type for column header item */
|
|
8
|
+
export type ColumnHeaderModel = {
|
|
9
|
+
/** row index (readonly) */
|
|
10
|
+
r?: number;
|
|
11
|
+
/** header label */
|
|
12
|
+
label?: string;
|
|
13
|
+
/** enable html in header label */
|
|
14
|
+
html?: boolean;
|
|
15
|
+
/** column span */
|
|
16
|
+
cs?: number;
|
|
17
|
+
/** row span */
|
|
18
|
+
rs?: number;
|
|
19
|
+
/** header height */
|
|
20
|
+
h?: number;
|
|
21
|
+
/** header height alias */
|
|
22
|
+
height?: number;
|
|
23
|
+
/** visibility (readonly) */
|
|
24
|
+
hidden?: boolean;
|
|
25
|
+
/** header cell style */
|
|
26
|
+
s?: StyleSource;
|
|
27
|
+
/** header cell style alias */
|
|
28
|
+
style?: StyleSource;
|
|
29
|
+
/** style index */
|
|
30
|
+
_style?: number;
|
|
31
|
+
/** header cell tooltip content */
|
|
32
|
+
tooltip?: string | unknown;
|
|
33
|
+
};
|
|
34
|
+
export type FilterColumnOptions = {
|
|
35
|
+
/** property by which to filter */
|
|
36
|
+
property?: keyof CellModel;
|
|
37
|
+
/** enable filter */
|
|
38
|
+
enabled: boolean;
|
|
39
|
+
};
|
|
40
|
+
/** Source object type for grid column */
|
|
41
|
+
export type ColumnSource = {
|
|
42
|
+
/** column width */
|
|
43
|
+
w?: number | 'auto';
|
|
44
|
+
/** name of data property/index in row.data */
|
|
45
|
+
data?: number | string;
|
|
46
|
+
/** column header array */
|
|
47
|
+
header?: string | ColumnHeaderModel[];
|
|
48
|
+
/** enable column sorting */
|
|
49
|
+
sorting?: boolean;
|
|
50
|
+
/** enable column filtering */
|
|
51
|
+
filter?: boolean | FilterColumnOptions;
|
|
52
|
+
/** indent cell content by row level */
|
|
53
|
+
levelIndent?: boolean;
|
|
54
|
+
/** show expand buttons inside cell */
|
|
55
|
+
levelButtons?: boolean;
|
|
56
|
+
/** custom camparison function for column sorting */
|
|
57
|
+
comparer?: Comparer;
|
|
58
|
+
/** if column priority is higher then row priority, column properties has precedence over row properties */
|
|
59
|
+
priority?: number;
|
|
60
|
+
} & tree.TreeNodeSource & ElementSource;
|
|
61
|
+
declare const ColumnModel_base: (new (...input: any[]) => {
|
|
62
|
+
index: number;
|
|
63
|
+
parentIndex: number;
|
|
64
|
+
level: number;
|
|
65
|
+
visibleIndex: number;
|
|
66
|
+
_children: any[];
|
|
67
|
+
_count: number;
|
|
68
|
+
_parent: any;
|
|
69
|
+
_collapsed: boolean;
|
|
70
|
+
_hidden: boolean;
|
|
71
|
+
_filterState: tree.FilterState;
|
|
72
|
+
_filterable: boolean;
|
|
73
|
+
_sortable: boolean;
|
|
74
|
+
populate(source: tree.TreeNodeSource): void;
|
|
75
|
+
getSourceData(): tree.TreeNodeSource;
|
|
76
|
+
get filterable(): boolean;
|
|
77
|
+
get sortable(): boolean;
|
|
78
|
+
get filterState(): tree.FilterState;
|
|
79
|
+
set filterState(v: tree.FilterState): any;
|
|
80
|
+
get hidden(): boolean;
|
|
81
|
+
set hidden(value: boolean): any;
|
|
82
|
+
get visible(): boolean;
|
|
83
|
+
get collapsed(): boolean;
|
|
84
|
+
set collapsed(value: boolean): any;
|
|
85
|
+
get parent(): any;
|
|
86
|
+
set parent(parent: any): any;
|
|
87
|
+
get children(): any[];
|
|
88
|
+
set children(value: any[]): any;
|
|
89
|
+
get hasChildren(): boolean;
|
|
90
|
+
set count(value: number): any;
|
|
91
|
+
get isLoaded(): boolean;
|
|
92
|
+
get isPartialyLoaded(): boolean;
|
|
93
|
+
get hasParent(): boolean;
|
|
94
|
+
get firstChild(): any;
|
|
95
|
+
get lastChild(): any;
|
|
96
|
+
addChild(child: any): void;
|
|
97
|
+
insertChildren(children: any[], index: number): void;
|
|
98
|
+
deleteChildren(index: number | any[], count?: number): void;
|
|
99
|
+
expand(unhide?: boolean): void;
|
|
100
|
+
collapse(): void;
|
|
101
|
+
toggleCollapse(recursive?: boolean, unhide?: boolean): void;
|
|
102
|
+
clearChildren(): void;
|
|
103
|
+
walk(cb: (m: any) => unknown | void): void;
|
|
104
|
+
walkVisible(cb: (m: any) => unknown | void): void;
|
|
105
|
+
walkUp(cb: (m: any) => unknown | void): void;
|
|
106
|
+
_sort(comparer: (a: any, b: any) => number): void;
|
|
107
|
+
sort(comparer: (a: any, b: any) => number): void;
|
|
108
|
+
}) & typeof ElementModel;
|
|
109
|
+
export declare class ColumnModel extends ColumnModel_base {
|
|
110
|
+
data?: number | string;
|
|
111
|
+
private _comparer?;
|
|
112
|
+
get comparer(): Comparer;
|
|
113
|
+
set comparer(v: Comparer);
|
|
114
|
+
private _filter;
|
|
115
|
+
get filter(): FilterColumnOptions;
|
|
116
|
+
set filter(v: FilterColumnOptions);
|
|
117
|
+
get hasFilter(): boolean;
|
|
118
|
+
private _sorting;
|
|
119
|
+
get sorting(): boolean;
|
|
120
|
+
set sorting(v: boolean);
|
|
121
|
+
private _width;
|
|
122
|
+
get width(): number;
|
|
123
|
+
set width(value: number);
|
|
124
|
+
private _levelIndent;
|
|
125
|
+
get levelIndent(): boolean;
|
|
126
|
+
set levelIndent(value: boolean);
|
|
127
|
+
private _levelButtons;
|
|
128
|
+
get levelButtons(): boolean;
|
|
129
|
+
set levelButtons(value: boolean);
|
|
130
|
+
private _priority;
|
|
131
|
+
get priority(): number;
|
|
132
|
+
set priority(value: number);
|
|
133
|
+
get address(): string;
|
|
134
|
+
get range(): CellRange;
|
|
135
|
+
get hasFormula(): boolean;
|
|
136
|
+
get formula(): string;
|
|
137
|
+
set formula(v: string);
|
|
138
|
+
constructor(model: GridModel, source?: ColumnSource);
|
|
139
|
+
_header?: ColumnHeaderModel[];
|
|
140
|
+
private _mergedHeaders;
|
|
141
|
+
get mergedHeaders(): ColumnHeaderModel[];
|
|
142
|
+
updateMergedHeaders(): void;
|
|
143
|
+
set header(header: ColumnHeaderModel[]);
|
|
144
|
+
get header(): ColumnHeaderModel[];
|
|
145
|
+
hasHeaderTooltip(index: number): boolean;
|
|
146
|
+
convertSourceHeader(header: string | ColumnHeaderModel[]): ColumnHeaderModel[];
|
|
147
|
+
populate(source: ColumnSource): void;
|
|
148
|
+
getSourceData(): ColumnSource;
|
|
149
|
+
expand(unhide?: boolean): void;
|
|
150
|
+
collapse(): void;
|
|
151
|
+
get prev(): ColumnModel;
|
|
152
|
+
get next(): ColumnModel;
|
|
153
|
+
get prevVisible(): ColumnModel;
|
|
154
|
+
get nextVisible(): ColumnModel;
|
|
155
|
+
calculateRealColspan(colspan: number): number;
|
|
156
|
+
cell(r: number): CellModel;
|
|
157
|
+
clearCalculatedValues(): void;
|
|
158
|
+
}
|
|
159
|
+
export {};
|
|
160
|
+
//# sourceMappingURL=columnModel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"columnModel.d.ts","sourceRoot":"","sources":["../../src/model/columnModel.ts"],"names":[],"mappings":"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"}
|