UNPKG

fabric

Version:

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

1 lines 2.64 kB
{"version":3,"file":"TextEditingManager.mjs","names":[],"sources":["../../../src/canvas/TextEditingManager.ts"],"sourcesContent":["import type { TPointerEvent } from '../EventTypeDefs';\nimport type { ITextBehavior } from '../shapes/IText/ITextBehavior';\nimport { removeFromArray } from '../util/internals/removeFromArray';\nimport type { Canvas } from './Canvas';\n\n/**\n * In charge of synchronizing all interactive text instances of a canvas\n */\nexport class TextEditingManager {\n private targets: ITextBehavior[] = [];\n declare private target?: ITextBehavior;\n private __disposer: VoidFunction;\n\n constructor(canvas: Canvas) {\n const cb = () => {\n const { hiddenTextarea } =\n (canvas.getActiveObject() as ITextBehavior) || {};\n hiddenTextarea && hiddenTextarea.focus();\n };\n const el = canvas.upperCanvasEl;\n el.addEventListener('click', cb);\n this.__disposer = () => el.removeEventListener('click', cb);\n }\n\n exitTextEditing() {\n this.target = undefined;\n this.targets.forEach((target) => {\n if (target.isEditing) {\n target.exitEditing();\n }\n });\n }\n\n add(target: ITextBehavior) {\n this.targets.push(target);\n }\n\n remove(target: ITextBehavior) {\n this.unregister(target);\n removeFromArray(this.targets, target);\n }\n\n register(target: ITextBehavior) {\n this.target = target;\n }\n\n unregister(target: ITextBehavior) {\n if (target === this.target) {\n this.target = undefined;\n }\n }\n\n onMouseMove(e: TPointerEvent) {\n this.target?.isEditing && this.target.updateSelectionOnMouseMove(e);\n }\n\n clear() {\n this.targets = [];\n this.target = undefined;\n }\n\n dispose() {\n this.clear();\n this.__disposer();\n // @ts-expect-error disposing\n delete this.__disposer;\n }\n}\n"],"mappings":";;;;;;AAQA,IAAa,qBAAb,MAAgC;CAK9B,YAAY,QAAgB;wBAJpB,WAA2B,EAAE,CAAC;wBAE9B,cAAA,KAAA,EAAyB;EAG/B,MAAM,WAAW;GACf,MAAM,EAAE,mBACL,OAAO,iBAAiB,IAAsB,EAAE;AACnD,qBAAkB,eAAe,OAAO;;EAE1C,MAAM,KAAK,OAAO;AAClB,KAAG,iBAAiB,SAAS,GAAG;AAChC,OAAK,mBAAmB,GAAG,oBAAoB,SAAS,GAAG;;CAG7D,kBAAkB;AAChB,OAAK,SAAS,KAAA;AACd,OAAK,QAAQ,SAAS,WAAW;AAC/B,OAAI,OAAO,UACT,QAAO,aAAa;IAEtB;;CAGJ,IAAI,QAAuB;AACzB,OAAK,QAAQ,KAAK,OAAO;;CAG3B,OAAO,QAAuB;AAC5B,OAAK,WAAW,OAAO;AACvB,kBAAgB,KAAK,SAAS,OAAO;;CAGvC,SAAS,QAAuB;AAC9B,OAAK,SAAS;;CAGhB,WAAW,QAAuB;AAChC,MAAI,WAAW,KAAK,OAClB,MAAK,SAAS,KAAA;;CAIlB,YAAY,GAAkB;;AAC5B,KAAA,eAAA,KAAK,YAAA,QAAA,iBAAA,KAAA,MAAA,aAAQ,aAAa,KAAK,OAAO,2BAA2B,EAAE;;CAGrE,QAAQ;AACN,OAAK,UAAU,EAAE;AACjB,OAAK,SAAS,KAAA;;CAGhB,UAAU;AACR,OAAK,OAAO;AACZ,OAAK,YAAY;AAEjB,SAAO,KAAK"}