mirror of
https://github.com/ONLYOFFICE/sdkjs.git
synced 2026-04-07 14:09:12 +08:00
[SE] fixed TypedMapCache methods for updating data
This commit is contained in:
@ -2982,15 +2982,18 @@ function (window, undefined) {
|
||||
fullRange._foreachNoEmpty(function (cell, r, c) {
|
||||
const value = checkTypeCell(cell, true);
|
||||
const index = bHor ? c : r;
|
||||
if (!axisData[rowCol].data[value.type]) {
|
||||
axisData[rowCol].data[value.type] = new Map();
|
||||
if (index > axisData[rowCol].end) {
|
||||
if (!axisData[rowCol].data[value.type]) {
|
||||
axisData[rowCol].data[value.type] = new Map();
|
||||
}
|
||||
const map = axisData[rowCol].data[value.type];
|
||||
if (!map.has(value.value)) {
|
||||
map.set(value.value, []);
|
||||
}
|
||||
const arr = axisData[rowCol].data[value.type].get(value.value);
|
||||
arr.push(index);
|
||||
axisData[rowCol].end = index;
|
||||
}
|
||||
const map = axisData[rowCol].data[value.type];
|
||||
if (!map.has(value.value)) {
|
||||
map.set(value.value, []);
|
||||
}
|
||||
const arr = axisData[rowCol].data[value.type].get(value.value);
|
||||
arr.push(index);
|
||||
});
|
||||
axisData[rowCol].end = endIndex;
|
||||
}
|
||||
@ -3016,7 +3019,7 @@ function (window, undefined) {
|
||||
newArr.push(arr[i]);
|
||||
}
|
||||
}
|
||||
mapOldType.set(newArr);
|
||||
mapOldType.set(oldValue, newArr);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3026,21 +3029,19 @@ function (window, undefined) {
|
||||
if (mapNewType) {
|
||||
if (mapNewType.has(newValue)) {
|
||||
const arr = mapNewType.get(newValue);
|
||||
const newArr = [];
|
||||
let newArr = [];
|
||||
if (arr.length === 1) {
|
||||
newArr.push(arr[0]);
|
||||
changedIndex > arr[0] ? newArr.push(changedIndex) : newArr.unshift(changedIndex);
|
||||
newArr = changedIndex > arr[0] ? [arr[0], changedIndex] :[changedIndex, arr[0]];
|
||||
} else {
|
||||
if (arr[0] < changedIndex) {
|
||||
newArr.push(changedIndex);
|
||||
}
|
||||
for(let i = 1; i < arr.length; i += 1) {
|
||||
if (arr[i] < changedIndex && arr[i - 1] > changedIndex) {
|
||||
let isAdded = false;
|
||||
for (let i = 0; i < arr.length; i += 1) {
|
||||
if (changedIndex < arr[i] && !isAdded) {
|
||||
isAdded = true;
|
||||
newArr.push(changedIndex);
|
||||
}
|
||||
newArr.push(arr[i]);
|
||||
}
|
||||
if (arr[arr.length - 1] < changedIndex) {
|
||||
if (changedIndex > arr[arr.length - 1]) {
|
||||
newArr.push(changedIndex);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user