{"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"}