@visactor/vtable
Version:
canvas table width high performance
57 lines (53 loc) • 2.98 kB
JavaScript
var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
return new (P || (P = Promise))((function(resolve, reject) {
function fulfilled(value) {
try {
step(generator.next(value));
} catch (e) {
reject(e);
}
}
function rejected(value) {
try {
step(generator.throw(value));
} catch (e) {
reject(e);
}
}
function step(result) {
var value;
result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
resolve(value);
}))).then(fulfilled, rejected);
}
step((generator = generator.apply(thisArg, _arguments || [])).next());
}));
};
import { computeColsWidth } from "../../../layout/compute-col-width";
import { updateColContent } from "./dynamic-set-x";
export function sortHorizontal(proxy) {
return __awaiter(this, void 0, void 0, (function*() {
proxy.table.scenegraph.bodyGroup.forEachChildren(((colGroup, index) => {
"group" === colGroup.type && (colGroup.needUpdate = !0, null == colGroup || colGroup.forEachChildren((cellGroup => {
cellGroup.needUpdate = !0;
})));
}));
const syncLeftCol = Math.max(proxy.bodyLeftCol, proxy.screenLeftCol - 1 * proxy.screenColCount), syncRightCol = Math.min(proxy.bodyRightCol, proxy.screenLeftCol + 2 * proxy.screenColCount);
computeColsWidth(proxy.table, syncLeftCol, syncRightCol);
for (let col = proxy.colStart; col <= proxy.colEnd; col++) {
const columnGroup = proxy.table.scenegraph.getColGroup(col);
null == columnGroup || columnGroup.setAttribute("chartInstance", void 0);
for (let row = proxy.table.rowCount - proxy.table.bottomFrozenRowCount; row < proxy.table.rowCount; row++) proxy.table.scenegraph.updateCellContent(col, row);
}
for (let col = proxy.table.colCount - proxy.table.rightFrozenColCount; col < proxy.table.colCount; col++) {
const columnGroup = proxy.table.scenegraph.getColGroup(col);
null == columnGroup || columnGroup.setAttribute("chartInstance", void 0);
for (let row = proxy.rowStart; row <= proxy.rowEnd; row++) proxy.table.scenegraph.updateCellContent(col, row);
for (let row = proxy.table.rowCount - proxy.table.bottomFrozenRowCount; row < proxy.table.rowCount; row++) proxy.table.scenegraph.updateCellContent(col, row);
}
updateColContent(syncLeftCol, syncRightCol, proxy), proxy.colUpdatePos = proxy.colStart,
proxy.colUpdateDirection = proxy.colEnd > proxy.bodyRightCol - (proxy.colEnd - proxy.colStart + 1) ? "right" : "left",
proxy.table.scenegraph.updateNextFrame(), yield proxy.progress();
}));
}
//# sourceMappingURL=sort-horizontal.js.map