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
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 | 1×
1×
1×
1×
1146×
1146×
1×
328×
328×
328×
328×
37×
37×
37×
138×
133×
133×
132×
8×
124×
120×
120×
119×
119×
119×
3×
3×
3×
116×
119×
119×
119×
3×
120×
120×
2×
2×
120×
4×
1×
1×
138×
153×
146×
146×
146×
8×
138×
134×
134×
133×
133×
3×
133×
133×
133×
133×
3×
134×
134×
1×
1×
134×
4×
153×
328×
328×
116×
116×
116×
212×
105×
105×
1×
328×
37×
291×
291×
291×
5324×
5324×
4215×
50442×
50442×
33295×
3×
33295×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1×
1146×
1×
1146×
1146×
1×
1146×
25×
1×
163870×
1×
1×
| define(["require", "exports", "../common/index", "../../workbook/index", "../../workbook/index", "../../workbook/index"], function (require, exports, index_1, index_2, index_3, index_4) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var Insert = (function () {
function Insert(parent) {
this.parent = parent;
this.addEventListener();
}
Insert.prototype.insert = function (actionArgs) {
var args = actionArgs.eventArgs;
this.parent.notify(index_2.beforeInsert, args);
var sheet = index_3.getSheet(this.parent, args.activeSheetIndex);
switch (args.modelType) {
case 'Sheet':
this.parent.notify(index_1.insertSheetTab, { startIdx: args.index, endIdx: args.index + (args.model.length - 1), preventUpdate: !args.isAction });
this.parent.renderModule.refreshSheet();
break;
case 'Row':
if (args.activeSheetIndex === this.parent.activeSheetIndex) {
var frozenRow = this.parent.frozenRowCount(sheet);
if (!this.parent.scrollSettings.enableVirtualization ||
args.index <= this.parent.viewport.bottomIndex) {
if (args.freezePane) {
this.parent.renderModule.refreshSheet(false, false, true);
}
else if (this.parent.scrollSettings.enableVirtualization) {
var frozenCol = this.parent.frozenColCount(sheet);
if (args.index >= this.parent.viewport.topIndex + frozenRow) {
var frozenIndexes = [];
var colIndex = void 0;
if (frozenCol) {
colIndex = index_3.getCellIndexes(sheet.topLeftCell)[1];
frozenIndexes.push(frozenRow);
frozenIndexes.push(this.parent.viewport.leftIndex + frozenCol);
}
else {
colIndex = this.parent.viewport.leftIndex;
}
var prevColIdx = this.parent.viewport.leftIndex;
this.parent.renderModule.refreshUI({
rowIndex: this.parent.viewport.topIndex, colIndex: colIndex, refresh: 'Row',
frozenIndexes: frozenIndexes, skipUpdateOnFirst: this.parent.viewport.topIndex +
frozenRow === index_4.skipHiddenIdx(sheet, frozenRow, true)
});
if (frozenCol) {
this.parent.viewport.leftIndex = prevColIdx;
}
}
var topIdx = index_3.getCellIndexes(sheet.paneTopLeftCell)[0];
if (args.index < topIdx) {
this.parent.notify(index_1.updateScrollValue, { scrollTop: index_2.getRowsHeight(sheet, frozenRow, topIdx - 1, true) });
this.parent.goTo(index_3.getCellAddress(args.index, index_4.skipHiddenIdx(sheet, frozenCol, true, 'columns')));
}
this.parent.selectRange(sheet.selectedRange);
}
else {
this.parent.renderModule.refreshSheet(false, false, true);
}
}
else Eif (this.parent.scrollSettings.isFinite && (this.parent.viewport.topIndex + frozenRow ===
index_4.skipHiddenIdx(sheet, 0, true) || this.parent.viewport.bottomIndex === index_4.skipHiddenIdx(sheet, sheet.rowCount - args.model.length - 1, false))) {
this.parent.renderModule.refreshSheet(false, false, true);
}
}
break;
case 'Column':
if (args.activeSheetIndex === this.parent.activeSheetIndex) {
var frozenCol = this.parent.frozenColCount(sheet);
Eif (!this.parent.scrollSettings.enableVirtualization || args.index <= this.parent.viewport.rightIndex) {
if (args.freezePane) {
this.parent.renderModule.refreshSheet(false, false, true);
}
else if (this.parent.scrollSettings.enableVirtualization) {
var frozenRow = this.parent.frozenRowCount(sheet);
if (args.index >= this.parent.viewport.leftIndex + frozenCol) {
var frozenIndexes = [];
if (frozenRow) {
frozenIndexes = [frozenRow + this.parent.viewport.topIndex, frozenCol];
}
var rowIndex = frozenRow ? index_3.getCellIndexes(sheet.topLeftCell)[0] : this.parent.viewport.topIndex;
var prevRowIdx = this.parent.viewport.topIndex;
this.parent.renderModule.refreshUI({ skipUpdateOnFirst: this.parent.viewport.leftIndex + frozenCol === index_4.skipHiddenIdx(sheet, frozenCol, true, 'columns'), rowIndex: rowIndex, colIndex: this.parent.viewport.leftIndex,
refresh: 'Column', frozenIndexes: frozenIndexes });
if (frozenRow) {
this.parent.viewport.topIndex = prevRowIdx;
}
}
var leftIdx = index_3.getCellIndexes(sheet.paneTopLeftCell)[1];
if (args.index < leftIdx) {
this.parent.notify(index_1.updateScrollValue, { scrollLeft: index_3.getColumnsWidth(sheet, 0, leftIdx - 1, true) });
this.parent.goTo(index_3.getCellAddress(index_4.skipHiddenIdx(sheet, frozenRow, true), args.index));
}
this.parent.selectRange(sheet.selectedRange);
}
else {
this.parent.renderModule.refreshSheet(false, false, true);
}
}
else if (this.parent.scrollSettings.isFinite && (this.parent.viewport.leftIndex + frozenCol ===
index_4.skipHiddenIdx(sheet, 0, true, 'columns') || this.parent.viewport.rightIndex === index_4.skipHiddenIdx(sheet, sheet.colCount - args.model.length - 1, false, 'columns'))) {
this.parent.renderModule.refreshSheet(false, false, true);
}
}
break;
}
this.refreshImgChartElement(args.model.length, this.parent.activeSheetIndex, args.modelType, args.index);
if (args.isAction) {
delete args.isAction;
this.parent.notify(index_1.completeAction, actionArgs);
index_1.focus(this.parent.element);
}
else if (!args.isUndoRedo) {
args.isMethod = true;
this.parent.notify(index_2.triggerDataChange, actionArgs);
}
};
Insert.prototype.refreshImgChartElement = function (count, sheetIdx, modelType, index) {
if (modelType === 'Sheet') {
return;
}
var sheet = this.parent.sheets[sheetIdx];
var rows = sheet.rows;
for (var i = 0, rowLen = rows.length; i < rowLen; i++) {
var cells = rows[i] && rows[i].cells;
if (cells && cells.length) {
for (var j = 0; j < cells.length; j++) {
var cellObj = index_3.getCell(i, j, sheet);
if ((modelType === 'Row' && i >= index) || (modelType === 'Column' && j >= index)) {
if (cellObj && cellObj.image && cellObj.image.length > 0) {
this.parent.notify(index_1.refreshImagePosition, {
rowIdx: i, colIdx: j, sheetIdx: sheetIdx, type: modelType, count: count, status: 'insert'
});
}
if (cellObj && cellObj.chart && cellObj.chart.length > 0) {
for (var k = 0; k < cellObj.chart.length; k++) {
var chartModel = cellObj.chart[k];
var chartRowIdx = {
clientY: Number(index_2.addDPRValue(chartModel.top).toFixed(2)), isImage: true
};
var chartColIdx = {
clientX: Number(index_2.addDPRValue(chartModel.left).toFixed(2)), isImage: true
};
this.parent.notify(index_2.getChartRowIdxFromClientY, chartRowIdx);
this.parent.notify(index_2.getChartColIdxFromClientX, chartColIdx);
Eif (i !== chartRowIdx.clientY || j !== chartColIdx.clientX) {
var eventArgs = {
prevTop: chartModel.top, prevLeft: chartModel.left, prevRowIdx: i, prevColIdx: j,
prevHeight: chartModel.height, prevWidth: chartModel.width, currentTop: chartModel.top,
currentLeft: chartModel.left, currentRowIdx: chartRowIdx.clientY,
currentColIdx: chartColIdx.clientX, currentHeight: chartModel.height,
currentWidth: chartModel.width, id: chartModel.id, requestType: 'chartRefreshOnInit'
};
this.parent.notify(index_2.refreshChartCellOnInit, eventArgs);
}
}
}
}
}
}
}
};
Insert.prototype.addEventListener = function () {
this.parent.on(index_2.insert, this.insert, this);
};
Insert.prototype.destroy = function () {
this.removeEventListener();
this.parent = null;
};
Insert.prototype.removeEventListener = function () {
if (!this.parent.isDestroyed) {
this.parent.off(index_2.insert, this.insert);
}
};
Insert.prototype.getModuleName = function () {
return 'insert';
};
return Insert;
}());
exports.Insert = Insert;
});
|