{
  "version": 3,
  "sources": ["../../../../src/lib/tools/ZoomTool/ZoomTool.ts"],
  "sourcesContent": ["import {\n\tStateNode,\n\tTLInterruptEvent,\n\tTLKeyboardEvent,\n\tTLPointerEventInfo,\n} from '@bigbluebutton/editor'\nimport { Idle } from './childStates/Idle'\nimport { Pointing } from './childStates/Pointing'\nimport { ZoomBrushing } from './childStates/ZoomBrushing'\n\n/** @public */\nexport class ZoomTool extends StateNode {\n\tstatic override id = 'zoom'\n\tstatic override initial = 'idle'\n\tstatic override children = () => [Idle, ZoomBrushing, Pointing]\n\n\tinfo = {} as TLPointerEventInfo & { onInteractionEnd?: string }\n\n\toverride onEnter = (info: TLPointerEventInfo & { onInteractionEnd: string }) => {\n\t\tthis.info = info\n\t\tthis.parent.setCurrentToolIdMask(info.onInteractionEnd)\n\t\tthis.updateCursor()\n\t}\n\n\toverride onExit = () => {\n\t\tthis.parent.setCurrentToolIdMask(undefined)\n\t\tthis.editor.updateInstanceState(\n\t\t\t{ zoomBrush: null, cursor: { type: 'default', rotation: 0 } },\n\t\t\t{ ephemeral: true }\n\t\t)\n\t\tthis.parent.setCurrentToolIdMask(undefined)\n\t}\n\n\toverride onKeyDown: TLKeyboardEvent | undefined = () => {\n\t\tthis.updateCursor()\n\t}\n\n\toverride onKeyUp: TLKeyboardEvent = (info) => {\n\t\tthis.updateCursor()\n\n\t\tif (info.code === 'KeyZ') {\n\t\t\tthis.complete()\n\t\t}\n\t}\n\n\toverride onInterrupt: TLInterruptEvent = () => {\n\t\tthis.complete()\n\t}\n\n\tprivate complete() {\n\t\t// Go back to the previous tool. If we are already in select we want to transition to idle\n\t\tif (this.info.onInteractionEnd && this.info.onInteractionEnd !== 'select') {\n\t\t\tthis.editor.setCurrentTool(this.info.onInteractionEnd, this.info)\n\t\t} else {\n\t\t\tthis.parent.transition('select')\n\t\t}\n\t}\n\n\tprivate updateCursor() {\n\t\tif (this.editor.inputs.altKey) {\n\t\t\tthis.editor.updateInstanceState(\n\t\t\t\t{ cursor: { type: 'zoom-out', rotation: 0 } },\n\t\t\t\t{ ephemeral: true }\n\t\t\t)\n\t\t} else {\n\t\t\tthis.editor.updateInstanceState(\n\t\t\t\t{ cursor: { type: 'zoom-in', rotation: 0 } },\n\t\t\t\t{ ephemeral: true }\n\t\t\t)\n\t\t}\n\t}\n}\n"],
  "mappings": "AAAA;AAAA,EACC;AAAA,OAIM;AACP,SAAS,YAAY;AACrB,SAAS,gBAAgB;AACzB,SAAS,oBAAoB;AAGtB,MAAM,iBAAiB,UAAU;AAAA,EACvC,OAAgB,KAAK;AAAA,EACrB,OAAgB,UAAU;AAAA,EAC1B,OAAgB,WAAW,MAAM,CAAC,MAAM,cAAc,QAAQ;AAAA,EAE9D,OAAO,CAAC;AAAA,EAEC,UAAU,CAAC,SAA4D;AAC/E,SAAK,OAAO;AACZ,SAAK,OAAO,qBAAqB,KAAK,gBAAgB;AACtD,SAAK,aAAa;AAAA,EACnB;AAAA,EAES,SAAS,MAAM;AACvB,SAAK,OAAO,qBAAqB,MAAS;AAC1C,SAAK,OAAO;AAAA,MACX,EAAE,WAAW,MAAM,QAAQ,EAAE,MAAM,WAAW,UAAU,EAAE,EAAE;AAAA,MAC5D,EAAE,WAAW,KAAK;AAAA,IACnB;AACA,SAAK,OAAO,qBAAqB,MAAS;AAAA,EAC3C;AAAA,EAES,YAAyC,MAAM;AACvD,SAAK,aAAa;AAAA,EACnB;AAAA,EAES,UAA2B,CAAC,SAAS;AAC7C,SAAK,aAAa;AAElB,QAAI,KAAK,SAAS,QAAQ;AACzB,WAAK,SAAS;AAAA,IACf;AAAA,EACD;AAAA,EAES,cAAgC,MAAM;AAC9C,SAAK,SAAS;AAAA,EACf;AAAA,EAEQ,WAAW;AAElB,QAAI,KAAK,KAAK,oBAAoB,KAAK,KAAK,qBAAqB,UAAU;AAC1E,WAAK,OAAO,eAAe,KAAK,KAAK,kBAAkB,KAAK,IAAI;AAAA,IACjE,OAAO;AACN,WAAK,OAAO,WAAW,QAAQ;AAAA,IAChC;AAAA,EACD;AAAA,EAEQ,eAAe;AACtB,QAAI,KAAK,OAAO,OAAO,QAAQ;AAC9B,WAAK,OAAO;AAAA,QACX,EAAE,QAAQ,EAAE,MAAM,YAAY,UAAU,EAAE,EAAE;AAAA,QAC5C,EAAE,WAAW,KAAK;AAAA,MACnB;AAAA,IACD,OAAO;AACN,WAAK,OAAO;AAAA,QACX,EAAE,QAAQ,EAAE,MAAM,WAAW,UAAU,EAAE,EAAE;AAAA,QAC3C,EAAE,WAAW,KAAK;AAAA,MACnB;AAAA,IACD;AAAA,EACD;AACD;",
  "names": []
}
