{"version":3,"file":"TextEditingManager.min.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":"0LAQA,IAAa,EAAb,KAAA,CAKE,YAAY,EAAA,CAAA,EAAA,KAJJ,UAA2B,EAAA,CAAA,CAAA,EAAA,KAE3B,aAAA,IAAA,GAAA,CAGN,IAAM,MAAA,CACJ,GAAA,CAAM,eAAE,GACL,EAAO,iBAAA,EAAuC,EAAA,CACjD,GAAkB,EAAe,OAAA,EAE7B,EAAK,EAAO,cAClB,EAAG,iBAAiB,QAAS,EAAA,CAC7B,KAAK,eAAmB,EAAG,oBAAoB,QAAS,EAAA,CAG1D,iBAAA,CACE,KAAK,OAAA,IAAS,GACd,KAAK,QAAQ,QAAS,GAAA,CAChB,EAAO,WACT,EAAO,aAAA,EAAA,CAKb,IAAI,EAAA,CACF,KAAK,QAAQ,KAAK,EAAA,CAGpB,OAAO,EAAA,CACL,KAAK,WAAW,EAAA,CAChB,EAAgB,KAAK,QAAS,EAAA,CAGhC,SAAS,EAAA,CACP,KAAK,OAAS,EAGhB,WAAW,EAAA,CACL,IAAW,KAAK,SAClB,KAAK,OAAA,IAAS,IAIlB,YAAY,EAAA,CAAA,IAAA,GACV,EAAA,KAAK,SAAA,MAAA,EAAQ,WAAa,KAAK,OAAO,2BAA2B,EAAA,CAGnE,OAAA,CACE,KAAK,QAAU,EAAA,CACf,KAAK,OAAA,IAAS,GAGhB,SAAA,CACE,KAAK,OAAA,CACL,KAAK,YAAA,CAAA,OAEE,KAAK,aAAA,OAAA,KAAA"}