@omegagrid/grid-core 0.10.0 → 0.10.2
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/package.json +3 -3
- package/dist/__generated/functions.d.ts +0 -4
- package/dist/__generated/functions.d.ts.map +0 -1
- package/dist/__generated/functions.js +0 -45
- package/dist/__generated/functions.js.map +0 -1
- package/dist/calculations/autofill.d.ts +0 -7
- package/dist/calculations/autofill.d.ts.map +0 -1
- package/dist/calculations/autofill.js +0 -84
- package/dist/calculations/autofill.js.map +0 -1
- package/dist/calculations/conditions.d.ts +0 -4
- package/dist/calculations/conditions.d.ts.map +0 -1
- package/dist/calculations/conditions.js +0 -41
- package/dist/calculations/conditions.js.map +0 -1
- package/dist/calculations/context.d.ts +0 -53
- package/dist/calculations/context.d.ts.map +0 -1
- package/dist/calculations/context.js +0 -85
- package/dist/calculations/context.js.map +0 -1
- package/dist/calculations/formula.d.ts +0 -89
- package/dist/calculations/formula.d.ts.map +0 -1
- package/dist/calculations/formula.js +0 -443
- package/dist/calculations/formula.js.map +0 -1
- package/dist/calculations/functions/dates.d.ts +0 -13
- package/dist/calculations/functions/dates.d.ts.map +0 -1
- package/dist/calculations/functions/dates.js +0 -58
- package/dist/calculations/functions/dates.js.map +0 -1
- package/dist/calculations/functions/index.d.ts +0 -11
- package/dist/calculations/functions/index.d.ts.map +0 -1
- package/dist/calculations/functions/index.js +0 -21
- package/dist/calculations/functions/index.js.map +0 -1
- package/dist/calculations/functions/logical.d.ts +0 -11
- package/dist/calculations/functions/logical.d.ts.map +0 -1
- package/dist/calculations/functions/logical.js +0 -50
- package/dist/calculations/functions/logical.js.map +0 -1
- package/dist/calculations/functions/lookup.d.ts +0 -18
- package/dist/calculations/functions/lookup.d.ts.map +0 -1
- package/dist/calculations/functions/lookup.js +0 -169
- package/dist/calculations/functions/lookup.js.map +0 -1
- package/dist/calculations/functions/math.d.ts +0 -72
- package/dist/calculations/functions/math.d.ts.map +0 -1
- package/dist/calculations/functions/math.js +0 -182
- package/dist/calculations/functions/math.js.map +0 -1
- package/dist/calculations/functions/special.d.ts +0 -2
- package/dist/calculations/functions/special.d.ts.map +0 -1
- package/dist/calculations/functions/special.js +0 -51
- package/dist/calculations/functions/special.js.map +0 -1
- package/dist/calculations/functions/statistical.d.ts +0 -7
- package/dist/calculations/functions/statistical.d.ts.map +0 -1
- package/dist/calculations/functions/statistical.js +0 -47
- package/dist/calculations/functions/statistical.js.map +0 -1
- package/dist/calculations/functions/text.d.ts +0 -29
- package/dist/calculations/functions/text.d.ts.map +0 -1
- package/dist/calculations/functions/text.js +0 -58
- package/dist/calculations/functions/text.js.map +0 -1
- package/dist/calculations/helpers.d.ts +0 -13
- package/dist/calculations/helpers.d.ts.map +0 -1
- package/dist/calculations/helpers.js +0 -32
- package/dist/calculations/helpers.js.map +0 -1
- package/dist/calculations/index.d.ts +0 -7
- package/dist/calculations/index.d.ts.map +0 -1
- package/dist/calculations/index.js +0 -7
- package/dist/calculations/index.js.map +0 -1
- package/dist/calculations/operators.d.ts +0 -19
- package/dist/calculations/operators.d.ts.map +0 -1
- package/dist/calculations/operators.js +0 -58
- package/dist/calculations/operators.js.map +0 -1
- package/dist/calculations/tokenization.d.ts +0 -36
- package/dist/calculations/tokenization.d.ts.map +0 -1
- package/dist/calculations/tokenization.js +0 -203
- package/dist/calculations/tokenization.js.map +0 -1
- package/dist/common/index.d.ts +0 -2
- package/dist/common/index.d.ts.map +0 -1
- package/dist/common/index.js +0 -2
- package/dist/common/index.js.map +0 -1
- package/dist/common/range.d.ts +0 -66
- package/dist/common/range.d.ts.map +0 -1
- package/dist/common/range.js +0 -222
- package/dist/common/range.js.map +0 -1
- package/dist/constants.d.ts +0 -68
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -127
- package/dist/constants.js.map +0 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +0 -1
- package/dist/model/calculationModel.d.ts +0 -30
- package/dist/model/calculationModel.d.ts.map +0 -1
- package/dist/model/calculationModel.js +0 -206
- package/dist/model/calculationModel.js.map +0 -1
- package/dist/model/cellModel.d.ts +0 -134
- package/dist/model/cellModel.d.ts.map +0 -1
- package/dist/model/cellModel.js +0 -371
- package/dist/model/cellModel.js.map +0 -1
- package/dist/model/columnModel.d.ts +0 -160
- package/dist/model/columnModel.d.ts.map +0 -1
- package/dist/model/columnModel.js +0 -159
- package/dist/model/columnModel.js.map +0 -1
- package/dist/model/commentModel.d.ts +0 -58
- package/dist/model/commentModel.d.ts.map +0 -1
- package/dist/model/commentModel.js +0 -81
- package/dist/model/commentModel.js.map +0 -1
- package/dist/model/conditionalFormats.d.ts +0 -104
- package/dist/model/conditionalFormats.d.ts.map +0 -1
- package/dist/model/conditionalFormats.js +0 -414
- package/dist/model/conditionalFormats.js.map +0 -1
- package/dist/model/cssStyle.d.ts +0 -20
- package/dist/model/cssStyle.d.ts.map +0 -1
- package/dist/model/cssStyle.js +0 -301
- package/dist/model/cssStyle.js.map +0 -1
- package/dist/model/dependencies.d.ts +0 -30
- package/dist/model/dependencies.d.ts.map +0 -1
- package/dist/model/dependencies.js +0 -139
- package/dist/model/dependencies.js.map +0 -1
- package/dist/model/dependencyModel.d.ts +0 -9
- package/dist/model/dependencyModel.d.ts.map +0 -1
- package/dist/model/dependencyModel.js +0 -9
- package/dist/model/dependencyModel.js.map +0 -1
- package/dist/model/elementModel.d.ts +0 -103
- package/dist/model/elementModel.d.ts.map +0 -1
- package/dist/model/elementModel.js +0 -181
- package/dist/model/elementModel.js.map +0 -1
- package/dist/model/filterModel.d.ts +0 -35
- package/dist/model/filterModel.d.ts.map +0 -1
- package/dist/model/filterModel.js +0 -153
- package/dist/model/filterModel.js.map +0 -1
- package/dist/model/gridModel.d.ts +0 -181
- package/dist/model/gridModel.d.ts.map +0 -1
- package/dist/model/gridModel.js +0 -797
- package/dist/model/gridModel.js.map +0 -1
- package/dist/model/groupModel.d.ts +0 -26
- package/dist/model/groupModel.d.ts.map +0 -1
- package/dist/model/groupModel.js +0 -112
- package/dist/model/groupModel.js.map +0 -1
- package/dist/model/history.d.ts +0 -24
- package/dist/model/history.d.ts.map +0 -1
- package/dist/model/history.js +0 -35
- package/dist/model/history.js.map +0 -1
- package/dist/model/index.d.ts +0 -23
- package/dist/model/index.d.ts.map +0 -1
- package/dist/model/index.js +0 -23
- package/dist/model/index.js.map +0 -1
- package/dist/model/iterableRange.d.ts +0 -49
- package/dist/model/iterableRange.d.ts.map +0 -1
- package/dist/model/iterableRange.js +0 -108
- package/dist/model/iterableRange.js.map +0 -1
- package/dist/model/merges.d.ts +0 -34
- package/dist/model/merges.d.ts.map +0 -1
- package/dist/model/merges.js +0 -123
- package/dist/model/merges.js.map +0 -1
- package/dist/model/namingModel.d.ts +0 -25
- package/dist/model/namingModel.d.ts.map +0 -1
- package/dist/model/namingModel.js +0 -77
- package/dist/model/namingModel.js.map +0 -1
- package/dist/model/options.d.ts +0 -257
- package/dist/model/options.d.ts.map +0 -1
- package/dist/model/options.js +0 -35
- package/dist/model/options.js.map +0 -1
- package/dist/model/rowModel.d.ts +0 -104
- package/dist/model/rowModel.d.ts.map +0 -1
- package/dist/model/rowModel.js +0 -155
- package/dist/model/rowModel.js.map +0 -1
- package/dist/model/selectionModel.d.ts +0 -19
- package/dist/model/selectionModel.d.ts.map +0 -1
- package/dist/model/selectionModel.js +0 -40
- package/dist/model/selectionModel.js.map +0 -1
- package/dist/model/sortingModel.d.ts +0 -46
- package/dist/model/sortingModel.d.ts.map +0 -1
- package/dist/model/sortingModel.js +0 -157
- package/dist/model/sortingModel.js.map +0 -1
- package/dist/model/style.d.ts +0 -90
- package/dist/model/style.d.ts.map +0 -1
- package/dist/model/style.js +0 -34
- package/dist/model/style.js.map +0 -1
- package/dist/model/styleModel.d.ts +0 -22
- package/dist/model/styleModel.d.ts.map +0 -1
- package/dist/model/styleModel.js +0 -91
- package/dist/model/styleModel.js.map +0 -1
- package/dist/model/tableTheme.d.ts +0 -46
- package/dist/model/tableTheme.d.ts.map +0 -1
- package/dist/model/tableTheme.js +0 -93
- package/dist/model/tableTheme.js.map +0 -1
- package/dist/model/validations.d.ts +0 -5
- package/dist/model/validations.d.ts.map +0 -1
- package/dist/model/validations.js +0 -24
- package/dist/model/validations.js.map +0 -1
- package/dist/sparklines/index.d.ts +0 -2
- package/dist/sparklines/index.d.ts.map +0 -1
- package/dist/sparklines/index.js +0 -2
- package/dist/sparklines/index.js.map +0 -1
- package/dist/sparklines/sparklines.d.ts +0 -59
- package/dist/sparklines/sparklines.d.ts.map +0 -1
- package/dist/sparklines/sparklines.js +0 -176
- package/dist/sparklines/sparklines.js.map +0 -1
- package/dist/types.d.ts +0 -103
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/utils.d.ts +0 -4
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js +0 -11
- package/dist/utils.js.map +0 -1
package/dist/model/cssStyle.js
DELETED
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
import { colors, dom, utils } from "@omegagrid/core";
|
|
2
|
-
const DEFAULT_BORDER_COLOR = 'CCCCCC';
|
|
3
|
-
export function cssStyleFromString(strStyle) {
|
|
4
|
-
const style = {};
|
|
5
|
-
strStyle.split(';').forEach(item => {
|
|
6
|
-
const [key, value] = item.split(':');
|
|
7
|
-
style[key] = value.trim();
|
|
8
|
-
});
|
|
9
|
-
return style;
|
|
10
|
-
}
|
|
11
|
-
export const borderStyleCSSMap = new Map([
|
|
12
|
-
['thin', { width: 1.5, style: 'solid' }],
|
|
13
|
-
['medium', { width: 2, style: 'solid' }],
|
|
14
|
-
['thick', { width: 3, style: 'solid' }],
|
|
15
|
-
['double', { width: 3, style: 'double' }],
|
|
16
|
-
['dotted', { width: 1.5, style: 'dotted' }],
|
|
17
|
-
['hair', { width: 1, style: 'solid' }],
|
|
18
|
-
['dashed', { width: 1.5, style: 'dashed' }],
|
|
19
|
-
['mediumDashed', { width: 2, style: 'dashed' }],
|
|
20
|
-
['dashDot', { width: 1.5, style: 'dashed' }],
|
|
21
|
-
['mediumDashDot', { width: 2, style: 'dashed' }],
|
|
22
|
-
['dashDotDot', { width: 1.5, style: 'dotted' }],
|
|
23
|
-
['mediumDashDotDot', { width: 2, style: 'dotted' }],
|
|
24
|
-
['slantDashDot', { width: 1.5, style: 'dashed' }],
|
|
25
|
-
['none', { width: 1.5, style: 'solid' }],
|
|
26
|
-
]);
|
|
27
|
-
export const borderCSSStyleMap = (() => {
|
|
28
|
-
const map = new Map();
|
|
29
|
-
borderStyleCSSMap.forEach((value, key) => {
|
|
30
|
-
let widthMap = map.get(value.style);
|
|
31
|
-
if (!widthMap)
|
|
32
|
-
widthMap = map.set(value.style, new Map()).get(value.style);
|
|
33
|
-
widthMap.set(value.width, key);
|
|
34
|
-
});
|
|
35
|
-
return map;
|
|
36
|
-
})();
|
|
37
|
-
export function convertCSSVerticalAlignment(align) {
|
|
38
|
-
return (align == 'middle' ? 'center' : align);
|
|
39
|
-
}
|
|
40
|
-
export function convertCSSColor(color) {
|
|
41
|
-
color = color.charAt(0) == '#' ? color.substring(1) : color;
|
|
42
|
-
return color.length == 3
|
|
43
|
-
? color[0] + color[0] + color[1] + color[1] + color[2] + color[2]
|
|
44
|
-
: color;
|
|
45
|
-
}
|
|
46
|
-
export const convertCSSBorder = (border) => {
|
|
47
|
-
if (border == 'none')
|
|
48
|
-
return null;
|
|
49
|
-
const chunks = border.split(' ');
|
|
50
|
-
const width = parseInt(chunks[0].charAt(0)) || 1;
|
|
51
|
-
const borderStyle = chunks.length > 1 ? chunks[1] : 'solid';
|
|
52
|
-
const widthMap = borderCSSStyleMap.get(borderStyle);
|
|
53
|
-
return {
|
|
54
|
-
style: (widthMap ? widthMap.get(width) : null) ?? 'thin',
|
|
55
|
-
color: chunks.length > 2 ? convertCSSColor(chunks[2]) : DEFAULT_BORDER_COLOR
|
|
56
|
-
};
|
|
57
|
-
};
|
|
58
|
-
export const convertToCSSBorder = (b) => {
|
|
59
|
-
const borderStyle = borderStyleCSSMap.get(b.style || 'none');
|
|
60
|
-
if (!borderStyle)
|
|
61
|
-
return 'none';
|
|
62
|
-
return [
|
|
63
|
-
dom.px(borderStyle.width),
|
|
64
|
-
borderStyle.style,
|
|
65
|
-
b.style == 'none' ? 'var(--og-cell-background)' : (b.color ? `#${b.color}` : 'var(--og-border-color)'),
|
|
66
|
-
].join(' ');
|
|
67
|
-
};
|
|
68
|
-
export const addPattern = (css, s) => {
|
|
69
|
-
// background-image: radial-gradient(rgb(255, 255, 255) 10%, transparent 10%), radial-gradient(rgb(255, 255, 255) 10%, transparent 10%);
|
|
70
|
-
// background-position: 0px 0px, 4px 4px;
|
|
71
|
-
// background-size: 8px 8px;
|
|
72
|
-
// background-color: rgb(255, 51, 51);
|
|
73
|
-
// console.log('addPattern', s.patternType, fgColor, bgColor);
|
|
74
|
-
const fg = '#' + (s.fgColor || '000000');
|
|
75
|
-
const bg = '#' + (s.bgColor || 'FFFFFF');
|
|
76
|
-
switch (s.patternType) {
|
|
77
|
-
case 'solid':
|
|
78
|
-
css.backgroundColor = fg || bg;
|
|
79
|
-
break;
|
|
80
|
-
case 'darkGray':
|
|
81
|
-
css.backgroundColor = colors.darken(bg, 0.75);
|
|
82
|
-
break;
|
|
83
|
-
case 'mediumGray':
|
|
84
|
-
css.backgroundColor = colors.darken(bg, 0.50);
|
|
85
|
-
break;
|
|
86
|
-
case 'lightGray':
|
|
87
|
-
css.backgroundColor = colors.darken(bg, 0.25);
|
|
88
|
-
break;
|
|
89
|
-
case 'gray125':
|
|
90
|
-
css.backgroundColor = colors.darken(bg, 0.125);
|
|
91
|
-
break;
|
|
92
|
-
case 'gray0625':
|
|
93
|
-
css.backgroundColor = colors.darken(bg, 0.0625);
|
|
94
|
-
break;
|
|
95
|
-
case 'darkHorizontal':
|
|
96
|
-
css.backgroundImage = `linear-gradient(0deg, ${fg} 33.33%, ${bg} 33.33%, ${bg} 50%, ${fg} 50%, ${fg} 83.33%, ${bg} 83.33%, ${bg} 100%)`;
|
|
97
|
-
css.backgroundSize = '6px 6px';
|
|
98
|
-
break;
|
|
99
|
-
case 'darkVertical':
|
|
100
|
-
css.backgroundImage = `linear-gradient(90deg, ${fg} 33.33%, ${bg} 33.33%, ${bg} 50%, ${fg} 50%, ${fg} 83.33%, ${bg} 83.33%, ${bg} 100%)`;
|
|
101
|
-
css.backgroundSize = '6px 6px';
|
|
102
|
-
break;
|
|
103
|
-
case 'darkDown':
|
|
104
|
-
css.backgroundImage = `linear-gradient(45deg, ${fg} 33.33%, ${bg} 33.33%, ${bg} 50%, ${fg} 50%, ${fg} 83.33%, ${bg} 83.33%, ${bg} 100%)`;
|
|
105
|
-
css.backgroundSize = '6px 6px';
|
|
106
|
-
break;
|
|
107
|
-
case 'darkUp':
|
|
108
|
-
css.backgroundImage = `linear-gradient(-45deg, ${fg} 33.33%, ${bg} 33.33%, ${bg} 50%, ${fg} 50%, ${fg} 83.33%, ${bg} 83.33%, ${bg} 100%)`;
|
|
109
|
-
css.backgroundSize = '6px 6px';
|
|
110
|
-
break;
|
|
111
|
-
case 'lightHorizontal':
|
|
112
|
-
css.backgroundImage = `linear-gradient(0deg, ${bg} 25%, ${fg} 25%, ${fg} 50%, ${bg} 50%, ${bg} 75%, ${fg} 75%, ${fg} 100%)`;
|
|
113
|
-
css.backgroundSize = '4px 4px';
|
|
114
|
-
break;
|
|
115
|
-
case 'lightVertical':
|
|
116
|
-
css.backgroundImage = `linear-gradient(90deg, ${bg} 25%, ${fg} 25%, ${fg} 50%, ${bg} 50%, ${bg} 75%, ${fg} 75%, ${fg} 100%)`;
|
|
117
|
-
css.backgroundSize = '4px 4px';
|
|
118
|
-
break;
|
|
119
|
-
case 'lightDown':
|
|
120
|
-
css.backgroundImage = `linear-gradient(45deg, ${bg} 25%, ${fg} 25%, ${fg} 50%, ${bg} 50%, ${bg} 75%, ${fg} 75%, ${fg} 100%)`;
|
|
121
|
-
css.backgroundSize = '4px 4px';
|
|
122
|
-
break;
|
|
123
|
-
case 'lightUp':
|
|
124
|
-
css.backgroundImage = `linear-gradient(-45deg, ${bg} 25%, ${fg} 25%, ${fg} 50%, ${bg} 50%, ${bg} 75%, ${fg} 75%, ${fg} 100%)`;
|
|
125
|
-
css.backgroundSize = '4px 4px';
|
|
126
|
-
break;
|
|
127
|
-
case 'darkGrid':
|
|
128
|
-
css.backgroundImage = `linear-gradient(${bg} 0.5px, transparent 0.5px), linear-gradient(90deg, ${bg} 0.5px, transparent 0.5px)`;
|
|
129
|
-
css.backgroundSize = '2px 2px';
|
|
130
|
-
break;
|
|
131
|
-
case 'lightGrid':
|
|
132
|
-
css.backgroundImage = `linear-gradient(${bg} 0.5px, transparent 0.5px), linear-gradient(90deg, ${bg} 0.5px, transparent 0.5px)`;
|
|
133
|
-
css.backgroundSize = '1px 1px';
|
|
134
|
-
break;
|
|
135
|
-
case 'darkTrellis':
|
|
136
|
-
css.backgroundImage = `linear-gradient(45deg, ${bg} 0.5px, transparent 0.5px), linear-gradient(90deg, ${bg} 0.5px, transparent 0.5px)`;
|
|
137
|
-
css.backgroundSize = '2px 2px';
|
|
138
|
-
break;
|
|
139
|
-
case 'lightTrellis':
|
|
140
|
-
css.backgroundImage = `linear-gradient(45deg, ${bg} 0.5px, transparent 0.5px), linear-gradient(90deg, ${bg} 0.5px, transparent 0.5px)`;
|
|
141
|
-
css.backgroundSize = '1px 1px';
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
144
|
-
return css;
|
|
145
|
-
};
|
|
146
|
-
export const addGradient = (css, s) => {
|
|
147
|
-
css.backgroundImage = `linear-gradient(${(s.angle ?? 0) + 90}deg,${s.stops.map(stop => `#${stop.rgb} ${stop.v * 100}%`).join(',')})`;
|
|
148
|
-
return css;
|
|
149
|
-
};
|
|
150
|
-
export const styleToCSStyle = (s) => {
|
|
151
|
-
const style = s.cssStyle ? { ...s.cssStyle } : {};
|
|
152
|
-
if (s.bold != null)
|
|
153
|
-
style.fontWeight = s.bold ? 'bold' : 'normal';
|
|
154
|
-
if (s.italic)
|
|
155
|
-
style.fontStyle = 'italic';
|
|
156
|
-
if (s.underline)
|
|
157
|
-
style.textDecoration = 'underline';
|
|
158
|
-
else if (s.strike)
|
|
159
|
-
style.textDecoration = 'line-through';
|
|
160
|
-
if (s.sz)
|
|
161
|
-
style.fontSize = dom.numToPixels(s.sz); // (s.sz * 0.75).toString() + 'px';
|
|
162
|
-
if (s.color)
|
|
163
|
-
style.color = '#' + s.color;
|
|
164
|
-
if (s.top)
|
|
165
|
-
style.borderTop = convertToCSSBorder(s.top);
|
|
166
|
-
if (s.right)
|
|
167
|
-
style.borderRight = convertToCSSBorder(s.right);
|
|
168
|
-
if (s.bottom)
|
|
169
|
-
style.borderBottom = convertToCSSBorder(s.bottom);
|
|
170
|
-
if (s.left)
|
|
171
|
-
style.borderLeft = convertToCSSBorder(s.left);
|
|
172
|
-
if (s.top || s.right || s.bottom || s.left)
|
|
173
|
-
style.zIndex = '1';
|
|
174
|
-
if (s.alignment && s.alignment.vertical) {
|
|
175
|
-
style.display = 'flex';
|
|
176
|
-
style.justifyContent = s.alignment.horizontal;
|
|
177
|
-
style.alignItems = s.alignment.vertical == 'top' ? 'start' : (s.alignment.vertical == 'bottom' ? 'end' : 'center');
|
|
178
|
-
}
|
|
179
|
-
if (s.alignment && s.alignment.horizontal) {
|
|
180
|
-
style.textAlign = s.alignment.horizontal;
|
|
181
|
-
}
|
|
182
|
-
if (s.alignment && s.alignment.wrapText) {
|
|
183
|
-
style.display = 'flex';
|
|
184
|
-
style.justifyContent = style.justifyContent ?? style.textAlign ?? 'left';
|
|
185
|
-
style.alignItems = style.alignItems ?? 'center';
|
|
186
|
-
style.whiteSpace = 'pre-wrap';
|
|
187
|
-
}
|
|
188
|
-
if (s.patternType)
|
|
189
|
-
addPattern(style, s);
|
|
190
|
-
else if (s.stops && s.stops.length)
|
|
191
|
-
addGradient(style, s);
|
|
192
|
-
else if (s.fgColor)
|
|
193
|
-
style.backgroundColor = '#' + s.fgColor;
|
|
194
|
-
else if (s.bgColor)
|
|
195
|
-
style.backgroundColor = '#' + s.bgColor;
|
|
196
|
-
///TODO - rotation
|
|
197
|
-
return style;
|
|
198
|
-
};
|
|
199
|
-
export const cssStyleToStyle = (s) => {
|
|
200
|
-
const cssStyle = utils.isObject(s) ? s : cssStyleFromString(s);
|
|
201
|
-
const style = {};
|
|
202
|
-
let border;
|
|
203
|
-
for (const k in cssStyle) {
|
|
204
|
-
const value = cssStyle[k];
|
|
205
|
-
if (value == null)
|
|
206
|
-
continue;
|
|
207
|
-
switch (k) {
|
|
208
|
-
case 'borderTop':
|
|
209
|
-
case 'border-top':
|
|
210
|
-
style.top = convertCSSBorder(value);
|
|
211
|
-
break;
|
|
212
|
-
case 'borderTopColor':
|
|
213
|
-
case 'border-top-color':
|
|
214
|
-
if (style.top)
|
|
215
|
-
style.top.color = convertCSSColor(value);
|
|
216
|
-
else
|
|
217
|
-
style.top = { style: 'thin', color: convertCSSColor(value) };
|
|
218
|
-
break;
|
|
219
|
-
case 'borderRight':
|
|
220
|
-
case 'border-right':
|
|
221
|
-
style.right = convertCSSBorder(value);
|
|
222
|
-
break;
|
|
223
|
-
case 'borderRightColor':
|
|
224
|
-
case 'border-right-color':
|
|
225
|
-
if (style.right)
|
|
226
|
-
style.right.color = convertCSSColor(value);
|
|
227
|
-
else
|
|
228
|
-
style.right = { style: 'thin', color: convertCSSColor(value) };
|
|
229
|
-
break;
|
|
230
|
-
case 'borderBottom':
|
|
231
|
-
case 'border-bottom':
|
|
232
|
-
style.bottom = convertCSSBorder(value);
|
|
233
|
-
break;
|
|
234
|
-
case 'borderBottomColor':
|
|
235
|
-
case 'border-bottom-color':
|
|
236
|
-
if (style.bottom)
|
|
237
|
-
style.bottom.color = convertCSSColor(value);
|
|
238
|
-
else
|
|
239
|
-
style.bottom = { style: 'thin', color: convertCSSColor(value) };
|
|
240
|
-
break;
|
|
241
|
-
case 'borderLeft':
|
|
242
|
-
case 'border-left':
|
|
243
|
-
style.left = convertCSSBorder(value);
|
|
244
|
-
break;
|
|
245
|
-
case 'borderLeftColor':
|
|
246
|
-
case 'border-left-color':
|
|
247
|
-
if (style.left)
|
|
248
|
-
style.left.color = convertCSSColor(value);
|
|
249
|
-
else
|
|
250
|
-
style.left = { style: 'thin', color: convertCSSColor(value) };
|
|
251
|
-
break;
|
|
252
|
-
case 'border':
|
|
253
|
-
border = convertCSSBorder(value);
|
|
254
|
-
style.top = style.top || border;
|
|
255
|
-
style.right = style.right || border;
|
|
256
|
-
style.bottom = style.bottom || border;
|
|
257
|
-
style.left = style.left || border;
|
|
258
|
-
break;
|
|
259
|
-
case 'textAlign':
|
|
260
|
-
case 'text-align':
|
|
261
|
-
style.alignment = style.alignment || {};
|
|
262
|
-
style.alignment.horizontal = value;
|
|
263
|
-
break;
|
|
264
|
-
case 'verticalAlign':
|
|
265
|
-
case 'vertical-align':
|
|
266
|
-
style.alignment = style.alignment || {};
|
|
267
|
-
style.alignment.vertical = convertCSSVerticalAlignment(value);
|
|
268
|
-
break;
|
|
269
|
-
case 'whiteSpace':
|
|
270
|
-
case 'white-space':
|
|
271
|
-
style.alignment = style.alignment || {};
|
|
272
|
-
style.alignment.wrapText = value && value != 'nowrap';
|
|
273
|
-
break;
|
|
274
|
-
case 'color':
|
|
275
|
-
style.color = convertCSSColor(value);
|
|
276
|
-
break;
|
|
277
|
-
case 'background':
|
|
278
|
-
case 'backgroundColor':
|
|
279
|
-
case 'background-color':
|
|
280
|
-
style.fgColor = convertCSSColor(value);
|
|
281
|
-
break;
|
|
282
|
-
case 'fontSize':
|
|
283
|
-
case 'font-size':
|
|
284
|
-
style.sz = parseFloat(value);
|
|
285
|
-
break;
|
|
286
|
-
case 'fontWeight':
|
|
287
|
-
case 'font-weight':
|
|
288
|
-
style.bold = value == 'bold';
|
|
289
|
-
break;
|
|
290
|
-
case 'fontStyle':
|
|
291
|
-
case 'font-style':
|
|
292
|
-
style.italic = value == 'italic';
|
|
293
|
-
break;
|
|
294
|
-
default:
|
|
295
|
-
style[k] = value;
|
|
296
|
-
break;
|
|
297
|
-
}
|
|
298
|
-
}
|
|
299
|
-
return style;
|
|
300
|
-
};
|
|
301
|
-
//# sourceMappingURL=cssStyle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cssStyle.js","sourceRoot":"","sources":["../../src/model/cssStyle.ts"],"names":[],"mappings":"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","sourcesContent":["import { colors, dom, utils } from \"@omegagrid/core\";\nimport { Border, BorderStyle, HorizontalAlignment, Style, VerticalAlignment } from \"./style\";\n\nexport type CSSStyle = Partial<CSSStyleDeclaration> & { [propName: string]: string };\n\nconst DEFAULT_BORDER_COLOR = 'CCCCCC';\n\nexport function cssStyleFromString(strStyle: string): CSSStyle {\n\tconst style: CSSStyle = {};\n\tstrStyle.split(';').forEach(item => {\n\t\tconst [key, value] = item.split(':');\n\t\tstyle[key] = value.trim();\n\t});\n\treturn style;\n}\n\nexport type CSSBorderStyle = 'none'|'solid'|'double'|'dotted'|'dashed';\nexport const borderStyleCSSMap = new Map<BorderStyle, {\n\twidth: number, \n\tstyle: CSSBorderStyle,\n}>([\n\t['thin', {width: 1.5, style: 'solid'}],\n\t['medium', {width: 2, style: 'solid'}],\n\t['thick', {width: 3, style: 'solid'}],\n\t['double', {width: 3, style: 'double'}],\n\t['dotted', {width: 1.5, style: 'dotted'}],\n\t['hair', {width: 1, style: 'solid'}],\n\t['dashed', {width: 1.5, style: 'dashed'}],\n\t['mediumDashed', {width: 2, style: 'dashed'}],\n\t['dashDot', {width: 1.5, style: 'dashed'}],\n\t['mediumDashDot', {width: 2, style: 'dashed'}],\n\t['dashDotDot', {width: 1.5, style: 'dotted'}],\n\t['mediumDashDotDot', {width: 2, style: 'dotted'}],\n\t['slantDashDot', {width: 1.5, style: 'dashed'}],\n\t['none', {width: 1.5, style: 'solid'}],\n]);\n\nexport const borderCSSStyleMap = (() => {\n\tconst map = new Map<CSSBorderStyle, Map<number, BorderStyle>>();\n\tborderStyleCSSMap.forEach((value, key) => {\n\t\tlet widthMap: Map<number, BorderStyle> = map.get(value.style);\n\t\tif (!widthMap) widthMap = map.set(value.style, new Map()).get(value.style);\n\t\twidthMap.set(value.width, key);\n\t});\n\treturn map;\n})();\n\nexport function convertCSSVerticalAlignment(align: string) {\n\treturn (align == 'middle' ? 'center' : align) as VerticalAlignment;\n}\n\nexport function convertCSSColor(color: string) {\n\tcolor = color.charAt(0) == '#' ? color.substring(1) : color;\n\treturn color.length == 3\n\t\t? color[0] + color[0] + color[1] + color[1] + color[2] + color[2]\n\t\t: color;\n}\n\nexport const convertCSSBorder = (border: string): Border => {\n\tif (border == 'none') return null;\n\t\n\tconst chunks = border.split(' ');\n\tconst width = parseInt(chunks[0].charAt(0)) || 1;\n\tconst borderStyle = chunks.length > 1 ? (chunks[1] as CSSBorderStyle) : 'solid';\n\n\tconst widthMap = borderCSSStyleMap.get(borderStyle);\n\treturn {\n\t\tstyle: (widthMap ? widthMap.get(width) : null) ?? 'thin',\n\t\tcolor: chunks.length > 2 ? convertCSSColor(chunks[2]) : DEFAULT_BORDER_COLOR\n\t};\n}\n\nexport const convertToCSSBorder = (b: Border) => {\n\tconst borderStyle = borderStyleCSSMap.get(b.style || 'none');\n\tif (!borderStyle) return 'none';\n\treturn [\n\t\tdom.px(borderStyle.width),\n\t\tborderStyle.style,\n\t\tb.style == 'none' ? 'var(--og-cell-background)' : (b.color ? `#${b.color}` : 'var(--og-border-color)'),\n\t].join(' ');\n}\n\nexport const addPattern = (css: CSSStyle, s: Style) : CSSStyle => {\n\t// background-image: radial-gradient(rgb(255, 255, 255) 10%, transparent 10%), radial-gradient(rgb(255, 255, 255) 10%, transparent 10%);\n\t// background-position: 0px 0px, 4px 4px;\n\t// background-size: 8px 8px;\n\t// background-color: rgb(255, 51, 51);\n\n\t// console.log('addPattern', s.patternType, fgColor, bgColor);\n\n\tconst fg = '#' + (s.fgColor || '000000');\n\tconst bg = '#' + (s.bgColor || 'FFFFFF');\n\n\tswitch (s.patternType) {\n\t\tcase 'solid':\n\t\t\tcss.backgroundColor = fg || bg;\n\t\t\tbreak;\n\t\tcase 'darkGray':\n\t\t\tcss.backgroundColor = colors.darken(bg, 0.75);\n\t\t\tbreak;\n\t\tcase 'mediumGray':\n\t\t\tcss.backgroundColor = colors.darken(bg, 0.50);\n\t\t\tbreak;\n\t\tcase 'lightGray':\n\t\t\tcss.backgroundColor = colors.darken(bg, 0.25);\n\t\t\tbreak;\n\t\tcase 'gray125':\n\t\t\tcss.backgroundColor = colors.darken(bg, 0.125);\n\t\t\tbreak;\n\t\tcase 'gray0625':\n\t\t\tcss.backgroundColor = colors.darken(bg, 0.0625);\n\t\t\tbreak;\n\t\tcase 'darkHorizontal':\n\t\t\tcss.backgroundImage = `linear-gradient(0deg, ${fg} 33.33%, ${bg} 33.33%, ${bg} 50%, ${fg} 50%, ${fg} 83.33%, ${bg} 83.33%, ${bg} 100%)`;\n\t\t\tcss.backgroundSize = '6px 6px';\n\t\t\tbreak;\n\t\tcase 'darkVertical':\n\t\t\tcss.backgroundImage = `linear-gradient(90deg, ${fg} 33.33%, ${bg} 33.33%, ${bg} 50%, ${fg} 50%, ${fg} 83.33%, ${bg} 83.33%, ${bg} 100%)`;\n\t\t\tcss.backgroundSize = '6px 6px';\n\t\t\tbreak;\n\t\tcase 'darkDown':\n\t\t\tcss.backgroundImage = `linear-gradient(45deg, ${fg} 33.33%, ${bg} 33.33%, ${bg} 50%, ${fg} 50%, ${fg} 83.33%, ${bg} 83.33%, ${bg} 100%)`;\n\t\t\tcss.backgroundSize = '6px 6px';\n\t\t\tbreak;\n\t\tcase 'darkUp':\n\t\t\tcss.backgroundImage = `linear-gradient(-45deg, ${fg} 33.33%, ${bg} 33.33%, ${bg} 50%, ${fg} 50%, ${fg} 83.33%, ${bg} 83.33%, ${bg} 100%)`;\n\t\t\tcss.backgroundSize = '6px 6px';\n\t\t\tbreak;\n\t\tcase 'lightHorizontal':\n\t\t\tcss.backgroundImage = `linear-gradient(0deg, ${bg} 25%, ${fg} 25%, ${fg} 50%, ${bg} 50%, ${bg} 75%, ${fg} 75%, ${fg} 100%)`;\n\t\t\tcss.backgroundSize = '4px 4px';\n\t\t\tbreak;\n\t\tcase 'lightVertical':\n\t\t\tcss.backgroundImage = `linear-gradient(90deg, ${bg} 25%, ${fg} 25%, ${fg} 50%, ${bg} 50%, ${bg} 75%, ${fg} 75%, ${fg} 100%)`;\n\t\t\tcss.backgroundSize = '4px 4px';\n\t\t\tbreak;\n\t\tcase 'lightDown':\n\t\t\tcss.backgroundImage = `linear-gradient(45deg, ${bg} 25%, ${fg} 25%, ${fg} 50%, ${bg} 50%, ${bg} 75%, ${fg} 75%, ${fg} 100%)`;\n\t\t\tcss.backgroundSize = '4px 4px';\n\t\t\tbreak;\n\t\tcase 'lightUp':\n\t\t\tcss.backgroundImage = `linear-gradient(-45deg, ${bg} 25%, ${fg} 25%, ${fg} 50%, ${bg} 50%, ${bg} 75%, ${fg} 75%, ${fg} 100%)`;\n\t\t\tcss.backgroundSize = '4px 4px';\n\t\t\tbreak;\n\t\tcase 'darkGrid':\n\t\t\tcss.backgroundImage = `linear-gradient(${bg} 0.5px, transparent 0.5px), linear-gradient(90deg, ${bg} 0.5px, transparent 0.5px)`;\n\t\t\tcss.backgroundSize = '2px 2px';\n\t\t\tbreak;\n\t\tcase 'lightGrid':\n\t\t\tcss.backgroundImage = `linear-gradient(${bg} 0.5px, transparent 0.5px), linear-gradient(90deg, ${bg} 0.5px, transparent 0.5px)`;\n\t\t\tcss.backgroundSize = '1px 1px';\n\t\t\tbreak;\n\t\tcase 'darkTrellis':\n\t\t\tcss.backgroundImage = `linear-gradient(45deg, ${bg} 0.5px, transparent 0.5px), linear-gradient(90deg, ${bg} 0.5px, transparent 0.5px)`;\n\t\t\tcss.backgroundSize = '2px 2px';\n\t\t\tbreak;\n\t\tcase 'lightTrellis':\n\t\t\tcss.backgroundImage = `linear-gradient(45deg, ${bg} 0.5px, transparent 0.5px), linear-gradient(90deg, ${bg} 0.5px, transparent 0.5px)`;\n\t\t\tcss.backgroundSize = '1px 1px';\n\t\t\tbreak;\n\t}\n\n\treturn css;\n}\n\nexport const addGradient = (css: CSSStyle, s: Style) : CSSStyle => {\n\tcss.backgroundImage = `linear-gradient(${(s.angle ?? 0) + 90}deg,${s.stops.map(stop => `#${stop.rgb} ${stop.v * 100}%`).join(',')})`;\n\treturn css;\n}\n\nexport const styleToCSStyle = (s: Style): CSSStyle => {\n\tconst style: CSSStyle = s.cssStyle ? {...s.cssStyle} : {};\n\tif (s.bold != null) style.fontWeight = s.bold ? 'bold' : 'normal';\n\tif (s.italic) style.fontStyle = 'italic';\n\tif (s.underline) style.textDecoration = 'underline';\n\telse if (s.strike) style.textDecoration = 'line-through';\n\tif (s.sz) style.fontSize = dom.numToPixels(s.sz); // (s.sz * 0.75).toString() + 'px';\n\tif (s.color) style.color = '#' + s.color;\n\tif (s.top) style.borderTop = convertToCSSBorder(s.top);\n\tif (s.right) style.borderRight = convertToCSSBorder(s.right);\n\tif (s.bottom) style.borderBottom = convertToCSSBorder(s.bottom);\n\tif (s.left) style.borderLeft = convertToCSSBorder(s.left);\n\tif (s.top || s.right || s.bottom || s.left) style.zIndex = '1';\n\tif (s.alignment && s.alignment.vertical) {\n\t\tstyle.display = 'flex';\n\t\tstyle.justifyContent = s.alignment.horizontal;\n\t\tstyle.alignItems = s.alignment.vertical == 'top' ? 'start' : (s.alignment.vertical == 'bottom' ? 'end' : 'center');\n\t}\n\tif (s.alignment && s.alignment.horizontal) {\n\t\tstyle.textAlign = s.alignment.horizontal;\n\t}\n\tif (s.alignment && s.alignment.wrapText) {\n\t\tstyle.display = 'flex';\n\t\tstyle.justifyContent = style.justifyContent ?? style.textAlign ?? 'left';\n\t\tstyle.alignItems = style.alignItems ?? 'center';\n\t\tstyle.whiteSpace = 'pre-wrap';\n\t}\n\tif (s.patternType) addPattern(style, s);\n\telse if (s.stops && s.stops.length) addGradient(style, s);\n\telse if (s.fgColor) style.backgroundColor = '#' + s.fgColor;\n\telse if (s.bgColor) style.backgroundColor = '#' + s.bgColor;\n\t\n\t///TODO - rotation\n\t\n\treturn style;\n}\n\nexport const cssStyleToStyle = (s: CSSStyle|string): Style => {\n\tconst cssStyle: CSSStyle = utils.isObject(s) ? s as CSSStyle : cssStyleFromString(s as string);\n\tconst style: Style = {};\n\tlet border: Border;\n\tfor (const k in cssStyle) {\n\t\tconst value = cssStyle[k];\n\t\tif (value == null) continue;\n\t\tswitch(k) {\n\t\t\tcase 'borderTop':\n\t\t\tcase 'border-top':\n\t\t\t\tstyle.top = convertCSSBorder(value as string);\n\t\t\t\tbreak;\n\t\t\tcase 'borderTopColor':\n\t\t\tcase 'border-top-color':\n\t\t\t\tif (style.top) style.top.color = convertCSSColor(value as string);\n\t\t\t\telse style.top = {style: 'thin', color: convertCSSColor(value as string)};\n\t\t\t\tbreak;\n\t\t\tcase 'borderRight':\n\t\t\tcase 'border-right':\n\t\t\t\tstyle.right = convertCSSBorder(value as string);\n\t\t\t\tbreak;\n\t\t\tcase 'borderRightColor':\n\t\t\tcase 'border-right-color':\n\t\t\t\tif (style.right) style.right.color = convertCSSColor(value as string);\n\t\t\t\telse style.right = {style: 'thin', color: convertCSSColor(value as string)};\n\t\t\t\tbreak;\n\t\t\tcase 'borderBottom':\n\t\t\tcase 'border-bottom':\n\t\t\t\tstyle.bottom = convertCSSBorder(value as string);\n\t\t\t\tbreak;\n\t\t\tcase 'borderBottomColor':\n\t\t\tcase 'border-bottom-color':\n\t\t\t\tif (style.bottom) style.bottom.color = convertCSSColor(value as string);\n\t\t\t\telse style.bottom = {style: 'thin', color: convertCSSColor(value as string)};\n\t\t\t\tbreak;\n\t\t\tcase 'borderLeft':\n\t\t\tcase 'border-left':\n\t\t\t\tstyle.left = convertCSSBorder(value as string);\n\t\t\t\tbreak;\n\t\t\tcase 'borderLeftColor':\n\t\t\tcase 'border-left-color':\n\t\t\t\tif (style.left) style.left.color = convertCSSColor(value as string);\n\t\t\t\telse style.left = {style: 'thin', color: convertCSSColor(value as string)};\n\t\t\t\tbreak;\t\t\n\t\t\tcase 'border':\n\t\t\t\tborder = convertCSSBorder(value as string);\n\t\t\t\tstyle.top = style.top || border;\n\t\t\t\tstyle.right = style.right || border;\n\t\t\t\tstyle.bottom = style.bottom || border;\n\t\t\t\tstyle.left = style.left || border;\n\t\t\t\tbreak;\n\t\t\tcase 'textAlign':\n\t\t\tcase 'text-align':\n\t\t\t\tstyle.alignment = style.alignment || {};\n\t\t\t\tstyle.alignment.horizontal = value as HorizontalAlignment;\n\t\t\t\tbreak;\n\t\t\tcase 'verticalAlign':\n\t\t\tcase 'vertical-align':\n\t\t\t\tstyle.alignment = style.alignment || {};\n\t\t\t\tstyle.alignment.vertical = convertCSSVerticalAlignment(value);\n\t\t\t\tbreak;\n\t\t\tcase 'whiteSpace':\n\t\t\tcase 'white-space':\n\t\t\t\tstyle.alignment = style.alignment || {};\n\t\t\t\tstyle.alignment.wrapText = value && value != 'nowrap';\n\t\t\t\tbreak;\n\t\t\tcase 'color':\n\t\t\t\tstyle.color = convertCSSColor(value);\n\t\t\t\tbreak;\n\t\t\tcase 'background':\n\t\t\tcase 'backgroundColor':\n\t\t\tcase 'background-color':\n\t\t\t\tstyle.fgColor = convertCSSColor(value);\n\t\t\t\tbreak;\n\t\t\tcase 'fontSize':\n\t\t\tcase 'font-size':\n\t\t\t\tstyle.sz = parseFloat(value);\n\t\t\t\tbreak;\n\t\t\tcase 'fontWeight':\n\t\t\tcase 'font-weight':\n\t\t\t\tstyle.bold = value == 'bold';\n\t\t\t\tbreak;\n\t\t\tcase 'fontStyle':\n\t\t\tcase 'font-style':\n\t\t\t\tstyle.italic = value == 'italic';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tstyle[k as keyof Style] = value;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\treturn style;\n}\n"]}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { CellModel } from ".";
|
|
2
|
-
import type { CellAddress, RangeAddress } from "../common";
|
|
3
|
-
import { CellRange } from "../common";
|
|
4
|
-
import type { GridModel } from "./gridModel";
|
|
5
|
-
export type DependencyMap = Map<string, Map<string, [CellRange, string?]>>;
|
|
6
|
-
export type SheetDependencyMap = Map<string, string>;
|
|
7
|
-
export declare class Dependencies {
|
|
8
|
-
readonly model: GridModel;
|
|
9
|
-
readonly modelPart: keyof GridModel;
|
|
10
|
-
private _cellDependencies;
|
|
11
|
-
get cellDependencies(): DependencyMap;
|
|
12
|
-
private _cellDependants;
|
|
13
|
-
get cellDependants(): DependencyMap;
|
|
14
|
-
private _rangeDependencies;
|
|
15
|
-
get rangeDependencies(): DependencyMap;
|
|
16
|
-
private _rangeDependants;
|
|
17
|
-
get rangeDependants(): DependencyMap;
|
|
18
|
-
private _sheetDependencies;
|
|
19
|
-
get sheetDependencies(): SheetDependencyMap;
|
|
20
|
-
private _sheetDependants;
|
|
21
|
-
get sheetDependants(): SheetDependencyMap;
|
|
22
|
-
constructor(model: GridModel, modelPart?: keyof GridModel);
|
|
23
|
-
clear(): void;
|
|
24
|
-
clearCellDependecies(addr: RangeAddress): this;
|
|
25
|
-
has(cellAddr: CellAddress): boolean;
|
|
26
|
-
add(cellAddr: CellAddress, dependentRangeAddr: RangeAddress, sheet?: string): void;
|
|
27
|
-
getDependants(range: CellRange, map?: Map<CellRange, [CellModel, string?]>): Map<CellRange, [CellModel, string?]>;
|
|
28
|
-
renameSheet(oldName: string, newName: string): void;
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=dependencies.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/model/dependencies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,GAAG,CAAC;AACnC,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3E,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAQrD,qBAAa,YAAY;aAsBP,KAAK,EAAE,SAAS;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,SAAS;IApBpC,OAAO,CAAC,iBAAiB,CAA4B;IACrD,IAAI,gBAAgB,kBAAoC;IAExD,OAAO,CAAC,eAAe,CAA4B;IACnD,IAAI,cAAc,kBAAkC;IAEpD,OAAO,CAAC,kBAAkB,CAA4B;IACtD,IAAI,iBAAiB,kBAAqC;IAE1D,OAAO,CAAC,gBAAgB,CAA4B;IACpD,IAAI,eAAe,kBAAmC;IAEtD,OAAO,CAAC,kBAAkB,CAAiC;IAC3D,IAAI,iBAAiB,uBAAqC;IAE1D,OAAO,CAAC,gBAAgB,CAAiC;IACzD,IAAI,eAAe,uBAAmC;gBAGrC,KAAK,EAAE,SAAS,EACvB,SAAS,GAAE,MAAM,SAA0B;IAGrD,KAAK;IAOL,oBAAoB,CAAC,IAAI,EAAE,YAAY;IAsBvC,GAAG,CAAC,QAAQ,EAAE,WAAW;IAIzB,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM;IAgC3E,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,GAAE,GAAG,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAQ;IAoChF,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAiB5C"}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import { CellRange } from "../common";
|
|
2
|
-
function renameDependencyMapSheet(map, oldName, newName) {
|
|
3
|
-
map.forEach(submap => submap.forEach(item => {
|
|
4
|
-
if (item[1] == oldName)
|
|
5
|
-
item[1] = newName;
|
|
6
|
-
}));
|
|
7
|
-
}
|
|
8
|
-
export class Dependencies {
|
|
9
|
-
get cellDependencies() { return this._cellDependencies; }
|
|
10
|
-
get cellDependants() { return this._cellDependants; }
|
|
11
|
-
get rangeDependencies() { return this._rangeDependencies; }
|
|
12
|
-
get rangeDependants() { return this._rangeDependants; }
|
|
13
|
-
get sheetDependencies() { return this._sheetDependencies; }
|
|
14
|
-
get sheetDependants() { return this._sheetDependants; }
|
|
15
|
-
constructor(model, modelPart = 'calculations') {
|
|
16
|
-
this.model = model;
|
|
17
|
-
this.modelPart = modelPart;
|
|
18
|
-
// cells dependent on the key cell
|
|
19
|
-
this._cellDependencies = new Map();
|
|
20
|
-
this._cellDependants = new Map();
|
|
21
|
-
this._rangeDependencies = new Map();
|
|
22
|
-
this._rangeDependants = new Map();
|
|
23
|
-
this._sheetDependencies = new Map();
|
|
24
|
-
this._sheetDependants = new Map();
|
|
25
|
-
}
|
|
26
|
-
clear() {
|
|
27
|
-
this._cellDependants.clear();
|
|
28
|
-
this._cellDependencies.clear();
|
|
29
|
-
this._rangeDependencies.clear();
|
|
30
|
-
this._rangeDependants.clear();
|
|
31
|
-
}
|
|
32
|
-
clearCellDependecies(addr) {
|
|
33
|
-
if (this._cellDependencies.has(addr)) {
|
|
34
|
-
// this._cellDependencies.get(addr).forEach(([r, sheet]) => {
|
|
35
|
-
// const dependants = sheet
|
|
36
|
-
// ? this.model.getConnectedModel(sheet)?.calculations.dependencies.cellDependants
|
|
37
|
-
// : this.cellDependants;
|
|
38
|
-
// if (dependants.has(r.A1)) dependants.get(r.A1).delete(addr);
|
|
39
|
-
// });
|
|
40
|
-
this._cellDependencies.delete(addr);
|
|
41
|
-
}
|
|
42
|
-
if (this._rangeDependencies.has(addr)) {
|
|
43
|
-
// this._rangeDependencies.get(addr).forEach(([r, sheet]) => {
|
|
44
|
-
// const dependants = sheet
|
|
45
|
-
// ? this.model.getConnectedModel(sheet)?.calculations.dependencies.rangeDependants
|
|
46
|
-
// : this.rangeDependants;
|
|
47
|
-
// if (dependants.has(r.A1)) dependants.get(r.A1).delete(addr);
|
|
48
|
-
// });
|
|
49
|
-
this._rangeDependants.delete(addr);
|
|
50
|
-
}
|
|
51
|
-
return this;
|
|
52
|
-
}
|
|
53
|
-
has(cellAddr) {
|
|
54
|
-
return this._cellDependencies.has(cellAddr) || this._rangeDependencies.has(cellAddr);
|
|
55
|
-
}
|
|
56
|
-
add(cellAddr, dependentRangeAddr, sheet) {
|
|
57
|
-
const range = CellRange.fromA1(cellAddr).removeAnchors();
|
|
58
|
-
const depRange = CellRange.fromA1(dependentRangeAddr).removeAnchors();
|
|
59
|
-
dependentRangeAddr = depRange.A1;
|
|
60
|
-
const isRange = depRange.isRange;
|
|
61
|
-
const dependencies = isRange ? this._rangeDependencies : this._cellDependencies;
|
|
62
|
-
const dependecyMap = dependencies.has(cellAddr)
|
|
63
|
-
? dependencies.get(cellAddr) : dependencies.set(cellAddr, new Map()).get(cellAddr);
|
|
64
|
-
let dependants = null;
|
|
65
|
-
dependecyMap.set(dependentRangeAddr, [depRange, sheet]);
|
|
66
|
-
if (sheet) {
|
|
67
|
-
const connectedModel = this.model.getConnectedModel(sheet);
|
|
68
|
-
if (connectedModel) {
|
|
69
|
-
connectedModel.calculations.dependencies.sheetDependants.set(this.model.name, this.model.name);
|
|
70
|
-
this.sheetDependencies.set(sheet, sheet);
|
|
71
|
-
dependants = isRange
|
|
72
|
-
? connectedModel.calculations.dependencies.rangeDependants
|
|
73
|
-
: connectedModel.calculations.dependencies.cellDependants;
|
|
74
|
-
}
|
|
75
|
-
sheet = this.model.name;
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
dependants = isRange ? this._rangeDependants : this._cellDependants;
|
|
79
|
-
}
|
|
80
|
-
if (dependants) {
|
|
81
|
-
if (!dependants.has(dependentRangeAddr))
|
|
82
|
-
dependants.set(dependentRangeAddr, new Map());
|
|
83
|
-
dependants.get(dependentRangeAddr).set(cellAddr, [range, sheet]);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
getDependants(range, map = null) {
|
|
87
|
-
let model;
|
|
88
|
-
let connectedModel;
|
|
89
|
-
const ra1 = range.A1;
|
|
90
|
-
map = map ?? new Map();
|
|
91
|
-
if (this._cellDependants.has(ra1)) {
|
|
92
|
-
this._cellDependants.get(ra1).forEach(([r, sheet]) => {
|
|
93
|
-
if (map.has(r))
|
|
94
|
-
return; //map.delete(r);
|
|
95
|
-
if (sheet)
|
|
96
|
-
connectedModel = this.model.getConnectedModel(sheet);
|
|
97
|
-
model = connectedModel || this.model;
|
|
98
|
-
map.set(r, [model.getCellByRange(r), sheet]);
|
|
99
|
-
if (connectedModel) {
|
|
100
|
-
connectedModel[this.modelPart].dependencies.getDependants(r).forEach((item, r2) => {
|
|
101
|
-
map.set(r2, [item[0], item[1] ?? sheet]);
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
else if (r.A1 != ra1 || connectedModel) {
|
|
105
|
-
model.calculations.dependencies.getDependants(r, map);
|
|
106
|
-
}
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
this._rangeDependants.forEach((map2, a1) => {
|
|
110
|
-
const r = CellRange.fromA1(a1);
|
|
111
|
-
if (r.contains(range)) {
|
|
112
|
-
map2.forEach(([r2, sheet]) => {
|
|
113
|
-
if (map.has(r2))
|
|
114
|
-
return;
|
|
115
|
-
map.delete(r2);
|
|
116
|
-
this.getDependants(r2, map.set(r2, [
|
|
117
|
-
(sheet ? this.model.getConnectedModel(sheet) : this.model).getCellByRange(r2), sheet
|
|
118
|
-
]));
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
return map;
|
|
123
|
-
}
|
|
124
|
-
renameSheet(oldName, newName) {
|
|
125
|
-
if (this._sheetDependants.has(oldName)) {
|
|
126
|
-
this._sheetDependants.delete(oldName);
|
|
127
|
-
this._sheetDependants.set(newName, newName);
|
|
128
|
-
}
|
|
129
|
-
if (this._sheetDependencies.has(oldName)) {
|
|
130
|
-
this._sheetDependencies.delete(oldName);
|
|
131
|
-
this._sheetDependencies.set(newName, newName);
|
|
132
|
-
}
|
|
133
|
-
renameDependencyMapSheet(this._cellDependants, oldName, newName);
|
|
134
|
-
renameDependencyMapSheet(this._cellDependencies, oldName, newName);
|
|
135
|
-
renameDependencyMapSheet(this._rangeDependants, oldName, newName);
|
|
136
|
-
renameDependencyMapSheet(this._rangeDependencies, oldName, newName);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
//# sourceMappingURL=dependencies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/model/dependencies.ts"],"names":[],"mappings":"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","sourcesContent":["import type { CellModel } from \".\";\nimport type { CellAddress, RangeAddress } from \"../common\";\nimport { CellRange } from \"../common\";\nimport { DependencyModel } from \"./dependencyModel\";\nimport type { GridModel } from \"./gridModel\";\n\nexport type DependencyMap = Map<string, Map<string, [CellRange, string?]>>;\nexport type SheetDependencyMap = Map<string, string>;\n\nfunction renameDependencyMapSheet(map: DependencyMap, oldName: string, newName: string) {\n\tmap.forEach(submap => submap.forEach(item => {\n\t\tif (item[1] == oldName) item[1] = newName;\n\t}));\n}\n\nexport class Dependencies {\n\n\t// cells dependent on the key cell\n\tprivate _cellDependencies: DependencyMap = new Map();\n\tget cellDependencies() { return this._cellDependencies }\n\n\tprivate _cellDependants: DependencyMap = new Map();\n\tget cellDependants() { return this._cellDependants }\n\n\tprivate _rangeDependencies: DependencyMap = new Map();\n\tget rangeDependencies() { return this._rangeDependencies }\n\n\tprivate _rangeDependants: DependencyMap = new Map();\n\tget rangeDependants() { return this._rangeDependants }\n\n\tprivate _sheetDependencies: SheetDependencyMap = new Map();\n\tget sheetDependencies() { return this._sheetDependencies }\n\n\tprivate _sheetDependants: SheetDependencyMap = new Map();\n\tget sheetDependants() { return this._sheetDependants }\n\n\tconstructor(\n\t\tpublic readonly model: GridModel,\n\t\treadonly modelPart: keyof GridModel = 'calculations'\n\t) { }\n\n\tclear() {\n\t\tthis._cellDependants.clear();\n\t\tthis._cellDependencies.clear();\n\t\tthis._rangeDependencies.clear();\n\t\tthis._rangeDependants.clear();\n\t}\n\n\tclearCellDependecies(addr: RangeAddress) {\n\t\tif (this._cellDependencies.has(addr)) {\n\t\t\t// this._cellDependencies.get(addr).forEach(([r, sheet]) => {\n\t\t\t// \tconst dependants = sheet \n\t\t\t// \t\t? this.model.getConnectedModel(sheet)?.calculations.dependencies.cellDependants\n\t\t\t// \t\t: this.cellDependants;\n\t\t\t// \tif (dependants.has(r.A1)) dependants.get(r.A1).delete(addr);\n\t\t\t// });\n\t\t\tthis._cellDependencies.delete(addr);\n\t\t}\n\t\tif (this._rangeDependencies.has(addr)) {\n\t\t\t// this._rangeDependencies.get(addr).forEach(([r, sheet]) => {\n\t\t\t// \tconst dependants = sheet \n\t\t\t// \t\t? this.model.getConnectedModel(sheet)?.calculations.dependencies.rangeDependants\n\t\t\t// \t\t: this.rangeDependants;\n\t\t\t// \tif (dependants.has(r.A1)) dependants.get(r.A1).delete(addr);\n\t\t\t// });\n\t\t\tthis._rangeDependants.delete(addr);\n\t\t}\n\t\treturn this;\n\t}\n\n\thas(cellAddr: CellAddress) {\n\t\treturn this._cellDependencies.has(cellAddr) || this._rangeDependencies.has(cellAddr);\n\t}\n\n\tadd(cellAddr: CellAddress, dependentRangeAddr: RangeAddress, sheet?: string) {\n\t\tconst range = CellRange.fromA1(cellAddr).removeAnchors();\n\t\tconst depRange = CellRange.fromA1(dependentRangeAddr).removeAnchors();\n\t\tdependentRangeAddr = depRange.A1;\n\t\tconst isRange = depRange.isRange;\t\t\n\t\tconst dependencies = isRange ? this._rangeDependencies : this._cellDependencies;\n\t\tconst dependecyMap = dependencies.has(cellAddr) \n\t\t\t? dependencies.get(cellAddr) : dependencies.set(cellAddr, new Map()).get(cellAddr);\n\n\t\tlet dependants: DependencyMap = null;\n\t\tdependecyMap.set(dependentRangeAddr, [depRange, sheet]);\n\t\t\n\t\tif (sheet) {\n\t\t\tconst connectedModel = this.model.getConnectedModel(sheet);\n\t\t\tif (connectedModel) {\n\t\t\t\tconnectedModel.calculations.dependencies.sheetDependants.set(this.model.name, this.model.name);\n\t\t\t\tthis.sheetDependencies.set(sheet, sheet);\n\t\t\t\tdependants = isRange \n\t\t\t\t\t? connectedModel.calculations.dependencies.rangeDependants\n\t\t\t\t\t: connectedModel.calculations.dependencies.cellDependants;\n\t\t\t}\n\t\t\tsheet = this.model.name;\n\t\t} else {\n\t\t\tdependants = isRange ? this._rangeDependants : this._cellDependants;\n\t\t}\n\t\t\n\t\tif (dependants) {\n\t\t\tif (!dependants.has(dependentRangeAddr)) dependants.set(dependentRangeAddr, new Map());\n\t\t\tdependants.get(dependentRangeAddr).set(cellAddr, [range, sheet]);\n\t\t}\n\t}\n\n\tgetDependants(range: CellRange, map: Map<CellRange, [CellModel, string?]> = null) {\n\t\tlet model: GridModel;\n\t\tlet connectedModel: GridModel;\n\t\tconst ra1 = range.A1;\n\t\tmap = map ?? new Map();\n\t\tif (this._cellDependants.has(ra1)) {\n\t\t\tthis._cellDependants.get(ra1).forEach(([r, sheet]) => {\n\t\t\t\tif (map.has(r)) return; //map.delete(r);\n\t\t\t\tif (sheet) connectedModel = this.model.getConnectedModel(sheet);\n\t\t\t\tmodel = connectedModel || this.model;\n\t\t\t\tmap.set(r, [model.getCellByRange(r), sheet]);\n\t\t\t\tif (connectedModel) {\n\t\t\t\t\t(connectedModel[this.modelPart] as DependencyModel).dependencies.getDependants(r).forEach((item, r2) => {\n\t\t\t\t\t\tmap.set(r2, [item[0], item[1] ?? sheet]);\n\t\t\t\t\t});\n\t\t\t\t} else if (r.A1 != ra1 || connectedModel) {\n\t\t\t\t\tmodel.calculations.dependencies.getDependants(r, map);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._rangeDependants.forEach((map2, a1) => {\n\t\t\tconst r = CellRange.fromA1(a1);\n\t\t\tif (r.contains(range)) {\n\t\t\t\tmap2.forEach(([r2, sheet]) => {\n\t\t\t\t\tif (map.has(r2)) return; map.delete(r2);\n\t\t\t\t\tthis.getDependants(r2, map.set(r2, [\n\t\t\t\t\t\t(sheet ? this.model.getConnectedModel(sheet) : this.model).getCellByRange(r2), sheet\n\t\t\t\t\t]));\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn map;\n\t}\n\n\trenameSheet(oldName: string, newName: string) {\n\t\tif (this._sheetDependants.has(oldName)) {\n\t\t\tthis._sheetDependants.delete(oldName);\n\t\t\tthis._sheetDependants.set(newName, newName);\n\t\t}\n\n\t\tif (this._sheetDependencies.has(oldName)) {\n\t\t\tthis._sheetDependencies.delete(oldName);\n\t\t\tthis._sheetDependencies.set(newName, newName);\n\t\t}\n\n\t\trenameDependencyMapSheet(this._cellDependants, oldName, newName);\n\t\trenameDependencyMapSheet(this._cellDependencies, oldName, newName);\n\t\trenameDependencyMapSheet(this._rangeDependants, oldName, newName);\n\t\trenameDependencyMapSheet(this._rangeDependencies, oldName, newName);\n\t}\n\n}"]}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Dependencies } from "./dependencies";
|
|
2
|
-
import { GridModel } from "./gridModel";
|
|
3
|
-
export declare abstract class DependencyModel {
|
|
4
|
-
readonly model: GridModel;
|
|
5
|
-
protected _dependencies: Dependencies;
|
|
6
|
-
get dependencies(): Dependencies;
|
|
7
|
-
constructor(model: GridModel, modelPart?: keyof GridModel);
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=dependencyModel.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependencyModel.d.ts","sourceRoot":"","sources":["../../src/model/dependencyModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,8BAAsB,eAAe;aAKR,KAAK,EAAE,SAAS;IAH5C,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC;IACtC,IAAI,YAAY,iBAAgC;gBAEpB,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,SAAS;CAIzE"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Dependencies } from "./dependencies";
|
|
2
|
-
export class DependencyModel {
|
|
3
|
-
get dependencies() { return this._dependencies; }
|
|
4
|
-
constructor(model, modelPart) {
|
|
5
|
-
this.model = model;
|
|
6
|
-
this._dependencies = new Dependencies(model, modelPart);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=dependencyModel.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dependencyModel.js","sourceRoot":"","sources":["../../src/model/dependencyModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,OAAgB,eAAe;IAGpC,IAAI,YAAY,KAAK,OAAO,IAAI,CAAC,aAAa,CAAA,CAAC,CAAC;IAEhD,YAA4B,KAAgB,EAAE,SAA2B;QAA7C,UAAK,GAAL,KAAK,CAAW;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;CAED","sourcesContent":["import { Dependencies } from \"./dependencies\";\nimport { GridModel } from \"./gridModel\";\n\nexport abstract class DependencyModel {\n\n\tprotected _dependencies: Dependencies;\n\tget dependencies() { return this._dependencies }\n\n\tconstructor(public readonly model: GridModel, modelPart?: keyof GridModel) {\n\t\tthis._dependencies = new Dependencies(model, modelPart);\n\t}\n\n}\n"]}
|