UNPKG

@wcardinal/wcardinal-geditor

Version:

WebGL-based graphic editor, tester and viewer for supervisory systems

128 lines 4.69 kB
import { UtilShapeSearch } from "./util-shape-search"; var UtilShapeDeleter = /** @class */ (function () { function UtilShapeDeleter() { } UtilShapeDeleter.addAll = function (shapes, result) { for (var i = 0, imax = shapes.length; i < imax; ++i) { var shape = shapes[i]; result.add(shape); this.addAll(shape.children, result); } return result; }; UtilShapeDeleter.delete = function (parent, shapes, generateDeletedShapeList, deletedShapeSet) { var _a; var children = parent.children; var length = children.length; // Update indices deletedShapeSet !== null && deletedShapeSet !== void 0 ? deletedShapeSet : (deletedShapeSet = (_a = UtilShapeDeleter.EXCEPTIONS) !== null && _a !== void 0 ? _a : (UtilShapeDeleter.EXCEPTIONS = new Set())); for (var i = 0; i < length; ++i) { var child = children[i]; if (child.selected) { child.index = length + i; deletedShapeSet.add(child); this.addAll(child.children, deletedShapeSet); } else { child.index = i; } } // Sort children.sort(UtilShapeSearch.COMPARATOR_INDEX); // Detach if (generateDeletedShapeList === true) { for (var i = length - 1; 0 <= i; --i) { var child = children[i]; if (child.selected) { child.index -= length; child.parent = null; child.selected = false; child.uploaded = undefined; child.onDetach(deletedShapeSet); } else { if (UtilShapeDeleter.EXCEPTIONS === deletedShapeSet) { deletedShapeSet.clear(); } var size = children.length - (i + 1); if (0 < size) { var result = children.splice(i + 1, size); if (shapes != null) { shapes.length = 0; } parent.onChildTransformChange(); parent.toDirty(); return result; } else { if (shapes != null) { shapes.length = 0; } return null; } } } if (UtilShapeDeleter.EXCEPTIONS === deletedShapeSet) { deletedShapeSet.clear(); } if (0 < children.length) { var result = children.splice(0, children.length); if (shapes != null) { shapes.length = 0; } parent.onChildTransformChange(); parent.toDirty(); return result; } else { if (shapes != null) { shapes.length = 0; } return null; } } else { for (var i = length - 1; 0 <= i; --i) { var child = children[i]; if (child.selected) { child.parent = null; child.selected = false; child.uploaded = undefined; child.onDetach(deletedShapeSet); } else { if (UtilShapeDeleter.EXCEPTIONS === deletedShapeSet) { deletedShapeSet.clear(); } children.length = i + 1; if (shapes != null) { shapes.length = 0; } parent.onChildTransformChange(); parent.toDirty(); return null; } } if (UtilShapeDeleter.EXCEPTIONS === deletedShapeSet) { deletedShapeSet.clear(); } if (0 < children.length) { children.length = 0; if (shapes != null) { shapes.length = 0; } parent.onChildTransformChange(); parent.toDirty(); } else { if (shapes != null) { shapes.length = 0; } } return null; } }; return UtilShapeDeleter; }()); export { UtilShapeDeleter }; //# sourceMappingURL=util-shape-deleter.js.map