@gridsheet/react-core 0.12.4-rc.1 → 0.12.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Cell.js +185 -197
- package/dist/components/Cell.js.map +1 -1
- package/dist/components/ContextMenu.js +198 -208
- package/dist/components/ContextMenu.js.map +1 -1
- package/dist/components/Editor.d.ts.map +1 -1
- package/dist/components/Editor.js +262 -275
- package/dist/components/Editor.js.map +1 -1
- package/dist/components/Emitter.js +29 -39
- package/dist/components/Emitter.js.map +1 -1
- package/dist/components/GridSheet.js +109 -119
- package/dist/components/GridSheet.js.map +1 -1
- package/dist/components/HeaderLeftCell.js +61 -72
- package/dist/components/HeaderLeftCell.js.map +1 -1
- package/dist/components/HeaderTopCell.js +62 -73
- package/dist/components/HeaderTopCell.js.map +1 -1
- package/dist/components/Resizer.js +79 -90
- package/dist/components/Resizer.js.map +1 -1
- package/dist/components/SearchBox.d.ts.map +1 -1
- package/dist/components/SearchBox.js +54 -64
- package/dist/components/SearchBox.js.map +1 -1
- package/dist/components/StoreInitializer.js +71 -81
- package/dist/components/StoreInitializer.js.map +1 -1
- package/dist/components/Tabular.d.ts +2 -2
- package/dist/components/Tabular.d.ts.map +1 -1
- package/dist/components/Tabular.js +85 -95
- package/dist/components/Tabular.js.map +1 -1
- package/dist/constants.js +26 -36
- package/dist/constants.js.map +1 -1
- package/dist/formula/evaluator.d.ts +1 -1
- package/dist/formula/evaluator.js +490 -500
- package/dist/formula/evaluator.js.map +1 -1
- package/dist/formula/functions/__base.js +17 -27
- package/dist/formula/functions/__base.js.map +1 -1
- package/dist/formula/functions/__utils.js +103 -113
- package/dist/formula/functions/__utils.js.map +1 -1
- package/dist/formula/functions/abs.js +21 -31
- package/dist/formula/functions/abs.js.map +1 -1
- package/dist/formula/functions/abs.spec.js +25 -35
- package/dist/formula/functions/abs.spec.js.map +1 -1
- package/dist/formula/functions/acos.js +28 -38
- package/dist/formula/functions/acos.js.map +1 -1
- package/dist/formula/functions/add.js +47 -57
- package/dist/formula/functions/add.js.map +1 -1
- package/dist/formula/functions/and.js +28 -38
- package/dist/formula/functions/and.js.map +1 -1
- package/dist/formula/functions/asin.js +28 -38
- package/dist/formula/functions/asin.js.map +1 -1
- package/dist/formula/functions/atan.js +26 -36
- package/dist/formula/functions/atan.js.map +1 -1
- package/dist/formula/functions/atan2.js +32 -42
- package/dist/formula/functions/atan2.js.map +1 -1
- package/dist/formula/functions/average.js +40 -50
- package/dist/formula/functions/average.js.map +1 -1
- package/dist/formula/functions/col.js +28 -38
- package/dist/formula/functions/col.js.map +1 -1
- package/dist/formula/functions/concat.js +27 -37
- package/dist/formula/functions/concat.js.map +1 -1
- package/dist/formula/functions/concatenate.js +25 -35
- package/dist/formula/functions/concatenate.js.map +1 -1
- package/dist/formula/functions/cos.js +26 -36
- package/dist/formula/functions/cos.js.map +1 -1
- package/dist/formula/functions/count.js +35 -45
- package/dist/formula/functions/count.js.map +1 -1
- package/dist/formula/functions/counta.js +35 -45
- package/dist/formula/functions/counta.js.map +1 -1
- package/dist/formula/functions/countif.js +30 -40
- package/dist/formula/functions/countif.js.map +1 -1
- package/dist/formula/functions/divide.js +32 -42
- package/dist/formula/functions/divide.js.map +1 -1
- package/dist/formula/functions/eq.js +25 -35
- package/dist/formula/functions/eq.js.map +1 -1
- package/dist/formula/functions/exp.js +28 -38
- package/dist/formula/functions/exp.js.map +1 -1
- package/dist/formula/functions/gt.js +27 -37
- package/dist/formula/functions/gt.js.map +1 -1
- package/dist/formula/functions/gte.js +27 -37
- package/dist/formula/functions/gte.js.map +1 -1
- package/dist/formula/functions/hlookup.js +67 -77
- package/dist/formula/functions/hlookup.js.map +1 -1
- package/dist/formula/functions/if.js +36 -46
- package/dist/formula/functions/if.js.map +1 -1
- package/dist/formula/functions/iferror.js +38 -48
- package/dist/formula/functions/iferror.js.map +1 -1
- package/dist/formula/functions/iferror.spec.js +53 -63
- package/dist/formula/functions/iferror.spec.js.map +1 -1
- package/dist/formula/functions/len.js +26 -36
- package/dist/formula/functions/len.js.map +1 -1
- package/dist/formula/functions/lenb.js +26 -36
- package/dist/formula/functions/lenb.js.map +1 -1
- package/dist/formula/functions/ln.js +28 -38
- package/dist/formula/functions/ln.js.map +1 -1
- package/dist/formula/functions/log.js +33 -43
- package/dist/formula/functions/log.js.map +1 -1
- package/dist/formula/functions/log10.js +28 -38
- package/dist/formula/functions/log10.js.map +1 -1
- package/dist/formula/functions/lt.js +27 -37
- package/dist/formula/functions/lt.js.map +1 -1
- package/dist/formula/functions/lte.js +27 -37
- package/dist/formula/functions/lte.js.map +1 -1
- package/dist/formula/functions/max.js +42 -52
- package/dist/formula/functions/max.js.map +1 -1
- package/dist/formula/functions/min.js +42 -52
- package/dist/formula/functions/min.js.map +1 -1
- package/dist/formula/functions/minus.js +47 -57
- package/dist/formula/functions/minus.js.map +1 -1
- package/dist/formula/functions/mod.js +30 -40
- package/dist/formula/functions/mod.js.map +1 -1
- package/dist/formula/functions/mod.spec.js +47 -57
- package/dist/formula/functions/mod.spec.js.map +1 -1
- package/dist/formula/functions/multiply.js +27 -37
- package/dist/formula/functions/multiply.js.map +1 -1
- package/dist/formula/functions/ne.js +25 -35
- package/dist/formula/functions/ne.js.map +1 -1
- package/dist/formula/functions/not.js +30 -40
- package/dist/formula/functions/not.js.map +1 -1
- package/dist/formula/functions/now.js +21 -31
- package/dist/formula/functions/now.js.map +1 -1
- package/dist/formula/functions/or.js +28 -38
- package/dist/formula/functions/or.js.map +1 -1
- package/dist/formula/functions/pi.js +19 -29
- package/dist/formula/functions/pi.js.map +1 -1
- package/dist/formula/functions/power.js +24 -34
- package/dist/formula/functions/power.js.map +1 -1
- package/dist/formula/functions/product.js +37 -47
- package/dist/formula/functions/product.js.map +1 -1
- package/dist/formula/functions/radians.js +26 -36
- package/dist/formula/functions/radians.js.map +1 -1
- package/dist/formula/functions/rand.js +19 -29
- package/dist/formula/functions/rand.js.map +1 -1
- package/dist/formula/functions/round.js +34 -44
- package/dist/formula/functions/round.js.map +1 -1
- package/dist/formula/functions/rounddown.js +34 -44
- package/dist/formula/functions/rounddown.js.map +1 -1
- package/dist/formula/functions/roundup.js +34 -44
- package/dist/formula/functions/roundup.js.map +1 -1
- package/dist/formula/functions/row.js +28 -38
- package/dist/formula/functions/row.js.map +1 -1
- package/dist/formula/functions/sin.js +26 -36
- package/dist/formula/functions/sin.js.map +1 -1
- package/dist/formula/functions/sqrt.js +28 -38
- package/dist/formula/functions/sqrt.js.map +1 -1
- package/dist/formula/functions/sum.js +42 -52
- package/dist/formula/functions/sum.js.map +1 -1
- package/dist/formula/functions/sum.spec.js +35 -45
- package/dist/formula/functions/sum.spec.js.map +1 -1
- package/dist/formula/functions/sumif.js +56 -66
- package/dist/formula/functions/sumif.js.map +1 -1
- package/dist/formula/functions/tan.js +26 -36
- package/dist/formula/functions/tan.js.map +1 -1
- package/dist/formula/functions/uminus.js +23 -33
- package/dist/formula/functions/uminus.js.map +1 -1
- package/dist/formula/functions/vlookup.js +67 -77
- package/dist/formula/functions/vlookup.js.map +1 -1
- package/dist/formula/mapping.js +116 -126
- package/dist/formula/mapping.js.map +1 -1
- package/dist/formula/solver.js +61 -71
- package/dist/formula/solver.js.map +1 -1
- package/dist/index.js +31 -41
- package/dist/index.js.map +1 -1
- package/dist/lib/autofill.js +334 -344
- package/dist/lib/autofill.js.map +1 -1
- package/dist/lib/clipboard.js +45 -55
- package/dist/lib/clipboard.js.map +1 -1
- package/dist/lib/converters.js +130 -140
- package/dist/lib/converters.js.map +1 -1
- package/dist/lib/hooks.d.ts +1 -0
- package/dist/lib/hooks.d.ts.map +1 -0
- package/dist/lib/hooks.js +2 -0
- package/dist/lib/hooks.js.map +1 -0
- package/dist/lib/structs.d.ts +1 -1
- package/dist/lib/structs.d.ts.map +1 -1
- package/dist/lib/structs.js +254 -264
- package/dist/lib/structs.js.map +1 -1
- package/dist/lib/table.d.ts +1 -3
- package/dist/lib/table.d.ts.map +1 -1
- package/dist/lib/table.js +897 -911
- package/dist/lib/table.js.map +1 -1
- package/dist/lib/time.d.ts.map +1 -1
- package/dist/lib/time.js +59 -69
- package/dist/lib/time.js.map +1 -1
- package/dist/lib/virtualization.d.ts +3 -21
- package/dist/lib/virtualization.d.ts.map +1 -1
- package/dist/lib/virtualization.js +115 -125
- package/dist/lib/virtualization.js.map +1 -1
- package/dist/parsers/core.js +109 -119
- package/dist/parsers/core.js.map +1 -1
- package/dist/renderers/checkbox.js +11 -21
- package/dist/renderers/checkbox.js.map +1 -1
- package/dist/renderers/core.d.ts +1 -1
- package/dist/renderers/core.d.ts.map +1 -1
- package/dist/renderers/core.js +129 -139
- package/dist/renderers/core.js.map +1 -1
- package/dist/renderers/thousand_separator.js +15 -25
- package/dist/renderers/thousand_separator.js.map +1 -1
- package/dist/store/actions.d.ts.map +1 -1
- package/dist/store/actions.js +484 -498
- package/dist/store/actions.js.map +1 -1
- package/dist/store/helpers.js +78 -88
- package/dist/store/helpers.js.map +1 -1
- package/dist/store/index.js +5 -15
- package/dist/store/index.js.map +1 -1
- package/dist/styles/embedder.js +17 -27
- package/dist/styles/embedder.js.map +1 -1
- package/dist/styles/minified.js +6 -16
- package/dist/styles/minified.js.map +1 -1
- package/dist/types.d.ts +6 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -12
- package/dist/utils.js +9 -19
- package/dist/utils.js.map +1 -1
- package/package.json +9 -2
package/dist/store/actions.js
CHANGED
|
@@ -1,538 +1,524 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
call(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
if (cutting) {
|
|
182
|
-
const src = copyingArea;
|
|
183
|
-
const { height: h, width: w } = (0, structs_1.areaShape)(copyingArea);
|
|
184
|
-
const dst = selectingArea.top !== -1
|
|
185
|
-
? {
|
|
186
|
-
top: selectingArea.top,
|
|
187
|
-
left: selectingArea.left,
|
|
188
|
-
bottom: selectingArea.top + h,
|
|
189
|
-
right: selectingArea.left + w,
|
|
190
|
-
}
|
|
191
|
-
: {
|
|
192
|
-
top: choosing.y,
|
|
193
|
-
left: choosing.x,
|
|
194
|
-
bottom: choosing.y + h,
|
|
195
|
-
right: choosing.x + w,
|
|
196
|
-
};
|
|
197
|
-
const newTable = table.move({
|
|
198
|
-
src,
|
|
199
|
-
dst,
|
|
200
|
-
reflection: {
|
|
201
|
-
selectingZone: (0, structs_1.areaToZone)(dst),
|
|
202
|
-
copyingZone,
|
|
203
|
-
cutting,
|
|
204
|
-
},
|
|
205
|
-
});
|
|
206
|
-
return Object.assign(Object.assign(Object.assign({}, store), (0, helpers_1.initSearchStatement)(newTable, store)), { cutting: false, table: newTable, selectingZone: (0, structs_1.areaToZone)(dst), copyingZone: { startY: -1, startX: -1, endY: -1, endX: -1 } });
|
|
207
|
-
}
|
|
208
|
-
let newTable;
|
|
209
|
-
let { y, x } = choosing;
|
|
210
|
-
const { text } = payload;
|
|
211
|
-
if (copyingArea.top === -1) {
|
|
212
|
-
const matrixFrom = (0, converters_1.tsv2matrix)(text);
|
|
213
|
-
let { height, width } = (0, structs_1.matrixShape)({ matrix: matrixFrom, base: -1 });
|
|
214
|
-
selectingArea = {
|
|
215
|
-
top: y,
|
|
216
|
-
left: x,
|
|
217
|
-
bottom: y + height,
|
|
218
|
-
right: x + width,
|
|
219
|
-
};
|
|
220
|
-
newTable = table.writeMatrix({
|
|
221
|
-
point: { y, x },
|
|
222
|
-
matrix: matrixFrom,
|
|
223
|
-
reflection: {
|
|
224
|
-
selectingZone: (0, structs_1.areaToZone)(selectingArea),
|
|
225
|
-
},
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
let { height, width } = (0, structs_1.areaShape)(copyingArea);
|
|
230
|
-
if (selectingArea.top !== -1) {
|
|
231
|
-
y = selectingArea.top;
|
|
232
|
-
x = selectingArea.left;
|
|
233
|
-
const superposed = (0, structs_1.superposeArea)(selectingArea, copyingArea);
|
|
234
|
-
height = superposed.height;
|
|
235
|
-
width = superposed.width;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.walk = exports.arrow = exports.redo = exports.undo = exports.clear = exports.write = exports.search = exports.drag = exports.selectCols = exports.selectRows = exports.select = exports.choose = exports.escape = exports.paste = exports.cut = exports.copy = exports.blur = exports.setResizingRect = exports.setEditorRect = exports.updateTable = exports.initializeTable = exports.setSheetWidth = exports.setSheetHeight = exports.setHeaderWidth = exports.setHeaderHeight = exports.setEntering = exports.setOnSave = exports.setResizingPositionX = exports.setResizingPositionY = exports.setContextMenuPosition = exports.setShowAddress = exports.setAutofillDraggingTo = exports.setEditingOnEnter = exports.setEditingCell = exports.setSearchQuery = exports.CoreAction = exports.reducer = void 0;
|
|
4
|
+
const structs_1 = require("../lib/structs");
|
|
5
|
+
const converters_1 = require("../lib/converters");
|
|
6
|
+
const constants_1 = require("../constants");
|
|
7
|
+
const helpers_1 = require("./helpers");
|
|
8
|
+
const virtualization_1 = require("../lib/virtualization");
|
|
9
|
+
const actions = {};
|
|
10
|
+
const reducer = (store, action) => {
|
|
11
|
+
const act = actions[action.type];
|
|
12
|
+
if (act == null) {
|
|
13
|
+
return store;
|
|
14
|
+
}
|
|
15
|
+
return Object.assign(Object.assign({}, store), act.reduce(store, action.value));
|
|
16
|
+
};
|
|
17
|
+
exports.reducer = reducer;
|
|
18
|
+
class CoreAction {
|
|
19
|
+
constructor() {
|
|
20
|
+
this.actionId = 1;
|
|
21
|
+
}
|
|
22
|
+
reduce(store, payload) {
|
|
23
|
+
return store;
|
|
24
|
+
}
|
|
25
|
+
call(payload) {
|
|
26
|
+
return {
|
|
27
|
+
type: this.actionId,
|
|
28
|
+
value: payload,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
bind() {
|
|
32
|
+
this.actionId = CoreAction.head++;
|
|
33
|
+
actions[this.actionId] = this;
|
|
34
|
+
return this.call.bind(this);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.CoreAction = CoreAction;
|
|
38
|
+
CoreAction.head = 1;
|
|
39
|
+
class SetSearchQueryAction extends CoreAction {
|
|
40
|
+
reduce(store, payload) {
|
|
41
|
+
const searchQuery = payload;
|
|
42
|
+
const { table } = store;
|
|
43
|
+
return Object.assign(Object.assign(Object.assign({}, store), (0, helpers_1.initSearchStatement)(table, Object.assign(Object.assign({}, store), { searchQuery }))), { searchQuery });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.setSearchQuery = new SetSearchQueryAction().bind();
|
|
47
|
+
class SetEditingCellAction extends CoreAction {
|
|
48
|
+
reduce(store, payload) {
|
|
49
|
+
return Object.assign(Object.assign({}, store), { editingCell: payload });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.setEditingCell = new SetEditingCellAction().bind();
|
|
53
|
+
class SetEditingOnEnterAction extends CoreAction {
|
|
54
|
+
reduce(store, payload) {
|
|
55
|
+
return Object.assign(Object.assign({}, store), { editingOnEnter: payload });
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
exports.setEditingOnEnter = new SetEditingOnEnterAction().bind();
|
|
59
|
+
class SetAutofillDraggingToAction extends CoreAction {
|
|
60
|
+
reduce(store, payload) {
|
|
61
|
+
return Object.assign(Object.assign({}, store), { autofillDraggingTo: payload });
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.setAutofillDraggingTo = new SetAutofillDraggingToAction().bind();
|
|
65
|
+
class SetShowAddressAction extends CoreAction {
|
|
66
|
+
reduce(store, payload) {
|
|
67
|
+
return Object.assign(Object.assign({}, store), { showAddress: payload });
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.setShowAddress = new SetShowAddressAction().bind();
|
|
71
|
+
class SetContextMenuPositionAction extends CoreAction {
|
|
72
|
+
reduce(store, payload) {
|
|
73
|
+
return Object.assign(Object.assign({}, store), { contextMenuPosition: payload });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.setContextMenuPosition = new SetContextMenuPositionAction().bind();
|
|
77
|
+
class SetResizingPositionYAction extends CoreAction {
|
|
78
|
+
reduce(store, payload) {
|
|
79
|
+
return Object.assign(Object.assign({}, store), { resizingPositionY: payload });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.setResizingPositionY = new SetResizingPositionYAction().bind();
|
|
83
|
+
class SetResizingPositionXAction extends CoreAction {
|
|
84
|
+
reduce(store, payload) {
|
|
85
|
+
return Object.assign(Object.assign({}, store), { resizingPositionX: payload });
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.setResizingPositionX = new SetResizingPositionXAction().bind();
|
|
89
|
+
class SetOnSaveAction extends CoreAction {
|
|
90
|
+
reduce(store, payload) {
|
|
91
|
+
return Object.assign(Object.assign({}, store), { onSave: payload });
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.setOnSave = new SetOnSaveAction().bind();
|
|
95
|
+
class SetEnteringAction extends CoreAction {
|
|
96
|
+
reduce(store, payload) {
|
|
97
|
+
return Object.assign(Object.assign({}, store), { entering: payload });
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
exports.setEntering = new SetEnteringAction().bind();
|
|
101
|
+
class SetHeaderHeightAction extends CoreAction {
|
|
102
|
+
reduce(store, payload) {
|
|
103
|
+
return Object.assign(Object.assign({}, store), { headerHeight: payload });
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
exports.setHeaderHeight = new SetHeaderHeightAction().bind();
|
|
107
|
+
class SetHeaderWidthAction extends CoreAction {
|
|
108
|
+
reduce(store, payload) {
|
|
109
|
+
return Object.assign(Object.assign({}, store), { headerWidth: payload });
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
exports.setHeaderWidth = new SetHeaderWidthAction().bind();
|
|
113
|
+
class SetSheetHeightAction extends CoreAction {
|
|
114
|
+
reduce(store, payload) {
|
|
115
|
+
return Object.assign(Object.assign({}, store), { sheetHeight: payload });
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
exports.setSheetHeight = new SetSheetHeightAction().bind();
|
|
119
|
+
class SetSheetWidthAction extends CoreAction {
|
|
120
|
+
reduce(store, payload) {
|
|
121
|
+
return Object.assign(Object.assign({}, store), { sheetWidth: payload });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
exports.setSheetWidth = new SetSheetWidthAction().bind();
|
|
125
|
+
class InitializeTableAction extends CoreAction {
|
|
126
|
+
reduce(store, payload) {
|
|
127
|
+
return Object.assign(Object.assign({}, store), { table: payload, tableInitialized: true });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.initializeTable = new InitializeTableAction().bind();
|
|
131
|
+
class UpdateTableAction extends CoreAction {
|
|
132
|
+
reduce(store, payload) {
|
|
133
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({}, store), { table: payload }), (0, helpers_1.initSearchStatement)(payload, store)), (0, helpers_1.restrictPoints)(store, payload));
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
exports.updateTable = new UpdateTableAction().bind();
|
|
137
|
+
class SetEditorRectAction extends CoreAction {
|
|
138
|
+
reduce(store, payload) {
|
|
139
|
+
return Object.assign(Object.assign({}, store), { editorRect: payload });
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.setEditorRect = new SetEditorRectAction().bind();
|
|
143
|
+
class SetResizingRectAction extends CoreAction {
|
|
144
|
+
reduce(store, payload) {
|
|
145
|
+
return Object.assign(Object.assign({}, store), { resizingRect: payload });
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
exports.setResizingRect = new SetResizingRectAction().bind();
|
|
149
|
+
class BlurAction extends CoreAction {
|
|
150
|
+
reduce(store, payload) {
|
|
151
|
+
return Object.assign(Object.assign({}, store), { editingCell: "" });
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
exports.blur = new BlurAction().bind();
|
|
155
|
+
class CopyAction extends CoreAction {
|
|
156
|
+
reduce(store, payload) {
|
|
157
|
+
return Object.assign(Object.assign({}, store), { copyingZone: payload, cutting: false });
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
exports.copy = new CopyAction().bind();
|
|
161
|
+
class CutAction extends CoreAction {
|
|
162
|
+
reduce(store, payload) {
|
|
163
|
+
return Object.assign(Object.assign({}, store), { copyingZone: payload, cutting: true });
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.cut = new CutAction().bind();
|
|
167
|
+
class PasteAction extends CoreAction {
|
|
168
|
+
reduce(store, payload) {
|
|
169
|
+
const { choosing, copyingZone, selectingZone, cutting, table } = store;
|
|
170
|
+
let selectingArea = (0, structs_1.zoneToArea)(selectingZone);
|
|
171
|
+
const copyingArea = (0, structs_1.zoneToArea)(copyingZone);
|
|
172
|
+
if (cutting) {
|
|
173
|
+
const src = copyingArea;
|
|
174
|
+
const { height: h, width: w } = (0, structs_1.areaShape)(copyingArea);
|
|
175
|
+
const dst = selectingArea.top !== -1
|
|
176
|
+
? {
|
|
177
|
+
top: selectingArea.top,
|
|
178
|
+
left: selectingArea.left,
|
|
179
|
+
bottom: selectingArea.top + h,
|
|
180
|
+
right: selectingArea.left + w,
|
|
236
181
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
return Object.assign(Object.assign({}, store), { selectingZone: payload, headerTopSelecting: false, headerLeftSelecting: false });
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
exports.select = new SelectAction().bind();
|
|
269
|
-
class SelectRowsAction extends CoreAction {
|
|
270
|
-
reduce(store, payload) {
|
|
271
|
-
const { range, numCols } = payload;
|
|
272
|
-
const { start, end } = range;
|
|
273
|
-
const selectingZone = {
|
|
274
|
-
startY: start,
|
|
275
|
-
startX: 1,
|
|
276
|
-
endY: end,
|
|
277
|
-
endX: numCols,
|
|
278
|
-
};
|
|
279
|
-
return Object.assign(Object.assign({}, store), { selectingZone, choosing: { y: start, x: 0 }, headerLeftSelecting: true, headerTopSelecting: false });
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
exports.selectRows = new SelectRowsAction().bind();
|
|
283
|
-
class SelectColsAction extends CoreAction {
|
|
284
|
-
reduce(store, payload) {
|
|
285
|
-
const { range, numRows } = payload;
|
|
286
|
-
const { start, end } = range;
|
|
287
|
-
const selectingZone = {
|
|
288
|
-
startY: 1,
|
|
289
|
-
startX: start,
|
|
290
|
-
endY: numRows,
|
|
291
|
-
endX: end,
|
|
292
|
-
};
|
|
293
|
-
return Object.assign(Object.assign({}, store), { selectingZone, choosing: { y: 0, x: start }, headerLeftSelecting: false, headerTopSelecting: true });
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
exports.selectCols = new SelectColsAction().bind();
|
|
297
|
-
class DragAction extends CoreAction {
|
|
298
|
-
reduce(store, payload) {
|
|
299
|
-
const { y, x } = store.choosing;
|
|
300
|
-
const selectingZone = {
|
|
301
|
-
startY: y,
|
|
302
|
-
startX: x,
|
|
303
|
-
endY: payload.y,
|
|
304
|
-
endX: payload.x,
|
|
182
|
+
: {
|
|
183
|
+
top: choosing.y,
|
|
184
|
+
left: choosing.x,
|
|
185
|
+
bottom: choosing.y + h,
|
|
186
|
+
right: choosing.x + w,
|
|
187
|
+
};
|
|
188
|
+
const newTable = table.move({
|
|
189
|
+
src,
|
|
190
|
+
dst,
|
|
191
|
+
reflection: {
|
|
192
|
+
selectingZone: (0, structs_1.areaToZone)(dst),
|
|
193
|
+
copyingZone,
|
|
194
|
+
cutting,
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
return Object.assign(Object.assign(Object.assign({}, store), (0, helpers_1.initSearchStatement)(newTable, store)), { cutting: false, table: newTable, selectingZone: (0, structs_1.areaToZone)(dst), copyingZone: { startY: -1, startX: -1, endY: -1, endX: -1 } });
|
|
198
|
+
}
|
|
199
|
+
let newTable;
|
|
200
|
+
let { y, x } = choosing;
|
|
201
|
+
const { text } = payload;
|
|
202
|
+
if (copyingArea.top === -1) {
|
|
203
|
+
const matrixFrom = (0, converters_1.tsv2matrix)(text);
|
|
204
|
+
let { height, width } = (0, structs_1.matrixShape)({ matrix: matrixFrom, base: -1 });
|
|
205
|
+
selectingArea = {
|
|
206
|
+
top: y,
|
|
207
|
+
left: x,
|
|
208
|
+
bottom: y + height,
|
|
209
|
+
right: x + width,
|
|
305
210
|
};
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
exports.drag = new DragAction().bind();
|
|
310
|
-
class SearchAction extends CoreAction {
|
|
311
|
-
reduce(store, payload) {
|
|
312
|
-
let { matchingCells, matchingCellIndex } = store;
|
|
313
|
-
matchingCellIndex += payload;
|
|
314
|
-
if (matchingCellIndex >= matchingCells.length) {
|
|
315
|
-
matchingCellIndex = 0;
|
|
316
|
-
}
|
|
317
|
-
else if (matchingCellIndex < 0) {
|
|
318
|
-
matchingCellIndex = matchingCells.length - 1;
|
|
319
|
-
}
|
|
320
|
-
return Object.assign(Object.assign({}, store), { matchingCells, matchingCellIndex });
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
exports.search = new SearchAction().bind();
|
|
324
|
-
class WriteAction extends CoreAction {
|
|
325
|
-
reduce(store, payload) {
|
|
326
|
-
const { choosing, selectingZone, table } = store;
|
|
327
|
-
const newTable = table.write({
|
|
328
|
-
point: choosing,
|
|
329
|
-
value: payload,
|
|
211
|
+
newTable = table.writeMatrix({
|
|
212
|
+
point: { y, x },
|
|
213
|
+
matrix: matrixFrom,
|
|
330
214
|
reflection: {
|
|
331
|
-
selectingZone,
|
|
332
|
-
choosing,
|
|
215
|
+
selectingZone: (0, structs_1.areaToZone)(selectingArea),
|
|
333
216
|
},
|
|
334
217
|
});
|
|
335
|
-
return Object.assign(Object.assign(Object.assign({}, store), (0, helpers_1.initSearchStatement)(newTable, store)), { table: newTable, copyingZone: { startY: -1, startX: -1, endY: -1, endX: -1 } });
|
|
336
218
|
}
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
selectingArea = { top: y, left: x, bottom: y, right: x };
|
|
219
|
+
else {
|
|
220
|
+
let { height, width } = (0, structs_1.areaShape)(copyingArea);
|
|
221
|
+
if (selectingArea.top !== -1) {
|
|
222
|
+
y = selectingArea.top;
|
|
223
|
+
x = selectingArea.left;
|
|
224
|
+
const superposed = (0, structs_1.superposeArea)(selectingArea, copyingArea);
|
|
225
|
+
height = superposed.height;
|
|
226
|
+
width = superposed.width;
|
|
346
227
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
diff[(0, converters_1.p2a)({ y, x })] = { value: null };
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
const newTable = table.update({
|
|
355
|
-
diff,
|
|
356
|
-
partial: true,
|
|
228
|
+
selectingArea = { top: y, left: x, bottom: y + height, right: x + width };
|
|
229
|
+
newTable = table.copy({
|
|
230
|
+
src: copyingArea,
|
|
231
|
+
dst: selectingArea,
|
|
357
232
|
reflection: {
|
|
233
|
+
copyingZone,
|
|
358
234
|
selectingZone,
|
|
359
|
-
choosing,
|
|
360
235
|
},
|
|
361
236
|
});
|
|
362
|
-
return Object.assign(Object.assign(Object.assign({}, store), (0, helpers_1.initSearchStatement)(newTable, store)), { table: newTable });
|
|
363
237
|
}
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
238
|
+
return Object.assign(Object.assign(Object.assign({}, store), { table: newTable, selectingZone: (0, structs_1.areaToZone)(selectingArea), copyingZone: { startY: -1, startX: -1, endY: -1, endX: -1 } }), (0, helpers_1.initSearchStatement)(newTable, store));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
exports.paste = new PasteAction().bind();
|
|
242
|
+
class EscapeAction extends CoreAction {
|
|
243
|
+
reduce(store, payload) {
|
|
244
|
+
return Object.assign(Object.assign({}, store), { copyingZone: { startY: -1, startX: -1, endY: -1, endX: -1 }, cutting: false, editingCell: "", headerTopSelecting: false, headerLeftSelecting: false });
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
exports.escape = new EscapeAction().bind();
|
|
248
|
+
class ChooseAction extends CoreAction {
|
|
249
|
+
reduce(store, payload) {
|
|
250
|
+
return Object.assign(Object.assign({}, store), { choosing: payload, entering: true });
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
exports.choose = new ChooseAction().bind();
|
|
254
|
+
class SelectAction extends CoreAction {
|
|
255
|
+
reduce(store, payload) {
|
|
256
|
+
return Object.assign(Object.assign({}, store), { selectingZone: payload, headerTopSelecting: false, headerLeftSelecting: false });
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
exports.select = new SelectAction().bind();
|
|
260
|
+
class SelectRowsAction extends CoreAction {
|
|
261
|
+
reduce(store, payload) {
|
|
262
|
+
const { range, numCols } = payload;
|
|
263
|
+
const { start, end } = range;
|
|
264
|
+
const selectingZone = {
|
|
265
|
+
startY: start,
|
|
266
|
+
startX: 1,
|
|
267
|
+
endY: end,
|
|
268
|
+
endX: numCols,
|
|
269
|
+
};
|
|
270
|
+
return Object.assign(Object.assign({}, store), { selectingZone, choosing: { y: start, x: 0 }, headerLeftSelecting: true, headerTopSelecting: false });
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
exports.selectRows = new SelectRowsAction().bind();
|
|
274
|
+
class SelectColsAction extends CoreAction {
|
|
275
|
+
reduce(store, payload) {
|
|
276
|
+
const { range, numRows } = payload;
|
|
277
|
+
const { start, end } = range;
|
|
278
|
+
const selectingZone = {
|
|
279
|
+
startY: 1,
|
|
280
|
+
startX: start,
|
|
281
|
+
endY: numRows,
|
|
282
|
+
endX: end,
|
|
283
|
+
};
|
|
284
|
+
return Object.assign(Object.assign({}, store), { selectingZone, choosing: { y: 0, x: start }, headerLeftSelecting: false, headerTopSelecting: true });
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
exports.selectCols = new SelectColsAction().bind();
|
|
288
|
+
class DragAction extends CoreAction {
|
|
289
|
+
reduce(store, payload) {
|
|
290
|
+
const { y, x } = store.choosing;
|
|
291
|
+
const selectingZone = {
|
|
292
|
+
startY: y,
|
|
293
|
+
startX: x,
|
|
294
|
+
endY: payload.y,
|
|
295
|
+
endX: payload.x,
|
|
296
|
+
};
|
|
297
|
+
return Object.assign(Object.assign({}, store), { selectingZone });
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
exports.drag = new DragAction().bind();
|
|
301
|
+
class SearchAction extends CoreAction {
|
|
302
|
+
reduce(store, payload) {
|
|
303
|
+
let { matchingCells, matchingCellIndex } = store;
|
|
304
|
+
matchingCellIndex += payload;
|
|
305
|
+
if (matchingCellIndex >= matchingCells.length) {
|
|
306
|
+
matchingCellIndex = 0;
|
|
307
|
+
}
|
|
308
|
+
else if (matchingCellIndex < 0) {
|
|
309
|
+
matchingCellIndex = matchingCells.length - 1;
|
|
310
|
+
}
|
|
311
|
+
return Object.assign(Object.assign({}, store), { matchingCells, matchingCellIndex });
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
exports.search = new SearchAction().bind();
|
|
315
|
+
class WriteAction extends CoreAction {
|
|
316
|
+
reduce(store, payload) {
|
|
317
|
+
const { choosing, selectingZone, table } = store;
|
|
318
|
+
const newTable = table.write({
|
|
319
|
+
point: choosing,
|
|
320
|
+
value: payload,
|
|
321
|
+
reflection: {
|
|
322
|
+
selectingZone,
|
|
323
|
+
choosing,
|
|
324
|
+
},
|
|
325
|
+
});
|
|
326
|
+
return Object.assign(Object.assign(Object.assign({}, store), (0, helpers_1.initSearchStatement)(newTable, store)), { table: newTable, copyingZone: { startY: -1, startX: -1, endY: -1, endX: -1 } });
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
exports.write = new WriteAction().bind();
|
|
330
|
+
class ClearAction extends CoreAction {
|
|
331
|
+
reduce(store, payload) {
|
|
332
|
+
const { choosing, selectingZone, table } = store;
|
|
333
|
+
let selectingArea = (0, structs_1.zoneToArea)(selectingZone);
|
|
334
|
+
if (selectingArea.top === -1) {
|
|
335
|
+
const { y, x } = choosing;
|
|
336
|
+
selectingArea = { top: y, left: x, bottom: y, right: x };
|
|
375
337
|
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
const { history, newTable } = table.redo();
|
|
382
|
-
if (history == null) {
|
|
383
|
-
return store;
|
|
338
|
+
const { top, left, bottom, right } = selectingArea;
|
|
339
|
+
const diff = {};
|
|
340
|
+
for (let y = top; y <= bottom; y++) {
|
|
341
|
+
for (let x = left; x <= right; x++) {
|
|
342
|
+
diff[(0, converters_1.p2a)({ y, x })] = { value: null };
|
|
384
343
|
}
|
|
385
|
-
const { reflection, operation } = history;
|
|
386
|
-
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, store), reflection), (0, helpers_1.restrictPoints)(store, table)), (0, helpers_1.initSearchStatement)(newTable, store)), { table: newTable });
|
|
387
344
|
}
|
|
345
|
+
const newTable = table.update({
|
|
346
|
+
diff,
|
|
347
|
+
partial: true,
|
|
348
|
+
reflection: {
|
|
349
|
+
selectingZone,
|
|
350
|
+
choosing,
|
|
351
|
+
},
|
|
352
|
+
});
|
|
353
|
+
return Object.assign(Object.assign(Object.assign({}, store), (0, helpers_1.initSearchStatement)(newTable, store)), { table: newTable });
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
exports.clear = new ClearAction().bind();
|
|
357
|
+
class UndoAction extends CoreAction {
|
|
358
|
+
reduce(store, payload) {
|
|
359
|
+
const { table } = store;
|
|
360
|
+
const { history, newTable } = table.undo();
|
|
361
|
+
if (history == null) {
|
|
362
|
+
return store;
|
|
363
|
+
}
|
|
364
|
+
const { reflection, operation } = history;
|
|
365
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, store), (0, helpers_1.restrictPoints)(store, table)), reflection), (0, helpers_1.initSearchStatement)(newTable, store)), { table: newTable });
|
|
388
366
|
}
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
367
|
+
}
|
|
368
|
+
exports.undo = new UndoAction().bind();
|
|
369
|
+
class RedoAction extends CoreAction {
|
|
370
|
+
reduce(store, payload) {
|
|
371
|
+
const { table } = store;
|
|
372
|
+
const { history, newTable } = table.redo();
|
|
373
|
+
if (history == null) {
|
|
374
|
+
return store;
|
|
375
|
+
}
|
|
376
|
+
const { reflection, operation } = history;
|
|
377
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, store), reflection), (0, helpers_1.restrictPoints)(store, table)), (0, helpers_1.initSearchStatement)(newTable, store)), { table: newTable });
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
exports.redo = new RedoAction().bind();
|
|
381
|
+
class ArrowAction extends CoreAction {
|
|
382
|
+
reduce(store, payload) {
|
|
383
|
+
var _a, _b, _c, _d;
|
|
384
|
+
const { shiftKey, deltaY, deltaX, numRows, numCols } = payload;
|
|
385
|
+
let { choosing, selectingZone, table, gridOuterRef } = store;
|
|
386
|
+
const { y, x } = choosing;
|
|
387
|
+
if (shiftKey) {
|
|
388
|
+
let [dragEndY, dragEndX] = [
|
|
389
|
+
selectingZone.endY === -1 ? y : selectingZone.endY,
|
|
390
|
+
selectingZone.endX === -1 ? x : selectingZone.endX,
|
|
391
|
+
];
|
|
392
|
+
const [nextY, nextX] = [dragEndY + deltaY, dragEndX + deltaX];
|
|
412
393
|
if (nextY < 1 || numRows < nextY || nextX < 1 || numCols < nextX) {
|
|
413
394
|
return store;
|
|
414
395
|
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
}
|
|
396
|
+
selectingZone =
|
|
397
|
+
y === nextY && x === nextX
|
|
398
|
+
? { startY: -1, startX: -1, endY: -1, endX: -1 }
|
|
399
|
+
: { startY: y, startX: x, endY: nextY, endX: nextX };
|
|
400
|
+
return Object.assign(Object.assign({}, store), { selectingZone });
|
|
401
|
+
}
|
|
402
|
+
const [nextY, nextX] = [y + deltaY, x + deltaX];
|
|
403
|
+
if (nextY < 1 || numRows < nextY || nextX < 1 || numCols < nextX) {
|
|
404
|
+
return store;
|
|
405
|
+
}
|
|
406
|
+
let { y: editorTop, x: editorLeft, height, width } = store.editorRect;
|
|
407
|
+
if (deltaY > 0) {
|
|
408
|
+
for (let i = y; i < nextY; i++) {
|
|
409
|
+
editorTop += ((_a = table.getByPoint({ y: i, x: 0 })) === null || _a === void 0 ? void 0 : _a.height) || constants_1.DEFAULT_HEIGHT;
|
|
430
410
|
}
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
}
|
|
411
|
+
}
|
|
412
|
+
else if (deltaY < 0) {
|
|
413
|
+
for (let i = y - 1; i >= nextY; i--) {
|
|
414
|
+
editorTop -= ((_b = table.getByPoint({ y: i, x: 0 })) === null || _b === void 0 ? void 0 : _b.height) || constants_1.DEFAULT_HEIGHT;
|
|
435
415
|
}
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
(0, virtualization_1.smartScroll)(table, gridOuterRef.current, { y: nextY, x: nextX });
|
|
416
|
+
}
|
|
417
|
+
if (deltaX > 0) {
|
|
418
|
+
for (let i = x; i < nextX; i++) {
|
|
419
|
+
editorLeft += ((_c = table.getByPoint({ y: 0, x: i })) === null || _c === void 0 ? void 0 : _c.width) || constants_1.DEFAULT_WIDTH;
|
|
441
420
|
}
|
|
442
|
-
return Object.assign(Object.assign({}, store), { selectingZone: { startY: -1, startX: -1, endY: -1, endX: -1 }, choosing: { y: nextY, x: nextX }, editorRect: { y: editorTop, x: editorLeft, height, width } });
|
|
443
421
|
}
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
reduce(store, payload) {
|
|
448
|
-
var _a, _b, _c, _d;
|
|
449
|
-
let { deltaY, deltaX, numRows, numCols } = payload;
|
|
450
|
-
let { choosing, selectingZone, table, gridOuterRef } = store;
|
|
451
|
-
let { y: editorTop, x: editorLeft, height, width } = store.editorRect;
|
|
452
|
-
const { y, x } = choosing;
|
|
453
|
-
const selectingArea = (0, structs_1.zoneToArea)(selectingZone);
|
|
454
|
-
const { top, left, bottom, right } = selectingArea;
|
|
455
|
-
let [nextY, nextX] = [y + deltaY, x + deltaX];
|
|
456
|
-
if (nextY < top && top !== -1) {
|
|
457
|
-
deltaY = bottom - nextY;
|
|
458
|
-
nextY = bottom;
|
|
459
|
-
if (nextX > left) {
|
|
460
|
-
nextX--;
|
|
461
|
-
deltaX--;
|
|
462
|
-
}
|
|
463
|
-
else {
|
|
464
|
-
deltaX = right - nextX;
|
|
465
|
-
nextX = right;
|
|
466
|
-
}
|
|
422
|
+
else if (deltaX < 0) {
|
|
423
|
+
for (let i = x - 1; i >= nextX; i--) {
|
|
424
|
+
editorLeft -= ((_d = table.getByPoint({ y: 0, x: i })) === null || _d === void 0 ? void 0 : _d.width) || constants_1.DEFAULT_WIDTH;
|
|
467
425
|
}
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
426
|
+
}
|
|
427
|
+
const cell = table.getByPoint({ y: nextY, x: nextX });
|
|
428
|
+
height = (cell === null || cell === void 0 ? void 0 : cell.height) || constants_1.DEFAULT_HEIGHT;
|
|
429
|
+
width = (cell === null || cell === void 0 ? void 0 : cell.width) || constants_1.DEFAULT_WIDTH;
|
|
430
|
+
(0, virtualization_1.smartScroll)(table, gridOuterRef.current, { y: nextY, x: nextX });
|
|
431
|
+
return Object.assign(Object.assign({}, store), { selectingZone: { startY: -1, startX: -1, endY: -1, endX: -1 }, choosing: { y: nextY, x: nextX }, editorRect: { y: editorTop, x: editorLeft, height, width } });
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
exports.arrow = new ArrowAction().bind();
|
|
435
|
+
class WalkAction extends CoreAction {
|
|
436
|
+
reduce(store, payload) {
|
|
437
|
+
var _a, _b, _c, _d;
|
|
438
|
+
let { deltaY, deltaX, numRows, numCols } = payload;
|
|
439
|
+
let { choosing, selectingZone, table, gridOuterRef } = store;
|
|
440
|
+
let { y: editorTop, x: editorLeft, height, width } = store.editorRect;
|
|
441
|
+
const { y, x } = choosing;
|
|
442
|
+
const selectingArea = (0, structs_1.zoneToArea)(selectingZone);
|
|
443
|
+
const { top, left, bottom, right } = selectingArea;
|
|
444
|
+
let [nextY, nextX] = [y + deltaY, x + deltaX];
|
|
445
|
+
if (nextY < top && top !== -1) {
|
|
446
|
+
deltaY = bottom - nextY;
|
|
447
|
+
nextY = bottom;
|
|
448
|
+
if (nextX > left) {
|
|
449
|
+
nextX--;
|
|
450
|
+
deltaX--;
|
|
479
451
|
}
|
|
480
|
-
|
|
452
|
+
else {
|
|
481
453
|
deltaX = right - nextX;
|
|
482
454
|
nextX = right;
|
|
483
|
-
if (nextY > top) {
|
|
484
|
-
nextY--;
|
|
485
|
-
deltaY--;
|
|
486
|
-
}
|
|
487
|
-
else {
|
|
488
|
-
deltaY = bottom - nextY;
|
|
489
|
-
nextY = bottom;
|
|
490
|
-
}
|
|
491
455
|
}
|
|
492
|
-
|
|
456
|
+
}
|
|
457
|
+
if (nextY > bottom && bottom !== -1) {
|
|
458
|
+
deltaY = top - nextY;
|
|
459
|
+
nextY = top;
|
|
460
|
+
if (nextX < right) {
|
|
461
|
+
nextX++;
|
|
462
|
+
deltaX++;
|
|
463
|
+
}
|
|
464
|
+
else {
|
|
493
465
|
deltaX = left - nextX;
|
|
494
466
|
nextX = left;
|
|
495
|
-
if (nextY < bottom) {
|
|
496
|
-
nextY++;
|
|
497
|
-
deltaY++;
|
|
498
|
-
}
|
|
499
|
-
else {
|
|
500
|
-
deltaY = top - nextY;
|
|
501
|
-
nextY = top;
|
|
502
|
-
}
|
|
503
467
|
}
|
|
504
|
-
|
|
505
|
-
|
|
468
|
+
}
|
|
469
|
+
if (nextX < left && left !== -1) {
|
|
470
|
+
deltaX = right - nextX;
|
|
471
|
+
nextX = right;
|
|
472
|
+
if (nextY > top) {
|
|
473
|
+
nextY--;
|
|
474
|
+
deltaY--;
|
|
506
475
|
}
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
}
|
|
476
|
+
else {
|
|
477
|
+
deltaY = bottom - nextY;
|
|
478
|
+
nextY = bottom;
|
|
511
479
|
}
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
480
|
+
}
|
|
481
|
+
if (nextX > right && right !== -1) {
|
|
482
|
+
deltaX = left - nextX;
|
|
483
|
+
nextX = left;
|
|
484
|
+
if (nextY < bottom) {
|
|
485
|
+
nextY++;
|
|
486
|
+
deltaY++;
|
|
516
487
|
}
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
}
|
|
488
|
+
else {
|
|
489
|
+
deltaY = top - nextY;
|
|
490
|
+
nextY = top;
|
|
521
491
|
}
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
492
|
+
}
|
|
493
|
+
if (nextY < 1 || numRows < nextY || nextX < 1 || numCols < nextX) {
|
|
494
|
+
return store;
|
|
495
|
+
}
|
|
496
|
+
if (deltaY > 0) {
|
|
497
|
+
for (let i = y; i < nextY; i++) {
|
|
498
|
+
editorTop += ((_a = table.getByPoint({ y: i, x: 0 })) === null || _a === void 0 ? void 0 : _a.height) || constants_1.DEFAULT_HEIGHT;
|
|
526
499
|
}
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
500
|
+
}
|
|
501
|
+
else if (deltaY < 0) {
|
|
502
|
+
for (let i = y - 1; i >= nextY; i--) {
|
|
503
|
+
editorTop -= ((_b = table.getByPoint({ y: i, x: 0 })) === null || _b === void 0 ? void 0 : _b.height) || constants_1.DEFAULT_HEIGHT;
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
if (deltaX > 0) {
|
|
507
|
+
for (let i = x; i < nextX; i++) {
|
|
508
|
+
editorLeft += ((_c = table.getByPoint({ y: 0, x: i })) === null || _c === void 0 ? void 0 : _c.width) || constants_1.DEFAULT_WIDTH;
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
else if (deltaX < 0) {
|
|
512
|
+
for (let i = x - 1; i >= nextX; i--) {
|
|
513
|
+
editorLeft -= ((_d = table.getByPoint({ y: 0, x: i })) === null || _d === void 0 ? void 0 : _d.width) || constants_1.DEFAULT_WIDTH;
|
|
532
514
|
}
|
|
533
|
-
return Object.assign(Object.assign({}, store), { choosing: { y: nextY, x: nextX }, editorRect: { y: editorTop, x: editorLeft, height, width } });
|
|
534
515
|
}
|
|
516
|
+
const cell = table.getByPoint({ y: nextY, x: nextX });
|
|
517
|
+
height = (cell === null || cell === void 0 ? void 0 : cell.height) || constants_1.DEFAULT_HEIGHT;
|
|
518
|
+
width = (cell === null || cell === void 0 ? void 0 : cell.width) || constants_1.DEFAULT_WIDTH;
|
|
519
|
+
(0, virtualization_1.smartScroll)(table, gridOuterRef.current, { y: nextY, x: nextX });
|
|
520
|
+
return Object.assign(Object.assign({}, store), { choosing: { y: nextY, x: nextX }, editorRect: { y: editorTop, x: editorLeft, height, width } });
|
|
535
521
|
}
|
|
536
|
-
|
|
537
|
-
|
|
522
|
+
}
|
|
523
|
+
exports.walk = new WalkAction().bind();
|
|
538
524
|
//# sourceMappingURL=actions.js.map
|