UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

55 lines (54 loc) 1.53 kB
import { _defineProperty } from "../../_virtual/_@oxc-project_runtime@0.122.0/helpers/defineProperty.mjs"; import { removeFromArray } from "../util/internals/removeFromArray.mjs"; //#region src/canvas/TextEditingManager.ts /** * In charge of synchronizing all interactive text instances of a canvas */ var TextEditingManager = class { constructor(canvas) { _defineProperty(this, "targets", []); _defineProperty(this, "__disposer", void 0); const cb = () => { const { hiddenTextarea } = canvas.getActiveObject() || {}; hiddenTextarea && hiddenTextarea.focus(); }; const el = canvas.upperCanvasEl; el.addEventListener("click", cb); this.__disposer = () => el.removeEventListener("click", cb); } exitTextEditing() { this.target = void 0; this.targets.forEach((target) => { if (target.isEditing) target.exitEditing(); }); } add(target) { this.targets.push(target); } remove(target) { this.unregister(target); removeFromArray(this.targets, target); } register(target) { this.target = target; } unregister(target) { if (target === this.target) this.target = void 0; } onMouseMove(e) { var _this$target; !((_this$target = this.target) === null || _this$target === void 0) && _this$target.isEditing && this.target.updateSelectionOnMouseMove(e); } clear() { this.targets = []; this.target = void 0; } dispose() { this.clear(); this.__disposer(); delete this.__disposer; } }; //#endregion export { TextEditingManager }; //# sourceMappingURL=TextEditingManager.mjs.map