{ "version": 3, "sources": ["../../../../../src/lib/tools/SelectTool/children/PointingRotateHandle.ts"], "sourcesContent": ["import { RotateCorner, StateNode, TLEventHandlers, TLPointerEventInfo } from '@tldraw/editor'\nimport { CursorTypeMap } from './PointingResizeHandle'\n\ntype PointingRotateHandleInfo = Extract & {\n\tonInteractionEnd?: string\n}\n\nexport class PointingRotateHandle extends StateNode {\n\tstatic override id = 'pointing_rotate_handle'\n\n\tprivate info = {} as PointingRotateHandleInfo\n\n\tprivate updateCursor() {\n\t\tconst { selectionRotation } = this.editor\n\t\tthis.editor.updateInstanceState({\n\t\t\tcursor: {\n\t\t\t\ttype: CursorTypeMap[this.info.handle as RotateCorner],\n\t\t\t\trotation: selectionRotation,\n\t\t\t},\n\t\t})\n\t}\n\n\toverride onEnter = (info: PointingRotateHandleInfo) => {\n\t\tthis.parent.currentToolIdMask = info.onInteractionEnd\n\t\tthis.info = info\n\t\tthis.updateCursor()\n\t}\n\n\toverride onExit = () => {\n\t\tthis.parent.currentToolIdMask = undefined\n\t\tthis.editor.updateInstanceState(\n\t\t\t{ cursor: { type: 'default', rotation: 0 } },\n\t\t\t{ ephemeral: true }\n\t\t)\n\t}\n\n\toverride onPointerMove = () => {\n\t\tconst { isDragging } = this.editor.inputs\n\n\t\tif (isDragging) {\n\t\t\tthis.parent.transition('rotating', this.info)\n\t\t}\n\t}\n\n\toverride onPointerUp = () => {\n\t\tthis.complete()\n\t}\n\n\toverride onCancel: TLEventHandlers['onCancel'] = () => {\n\t\tthis.cancel()\n\t}\n\n\toverride onComplete: TLEventHandlers['onComplete'] = () => {\n\t\tthis.cancel()\n\t}\n\n\toverride onInterrupt = () => {\n\t\tthis.cancel()\n\t}\n\n\tprivate complete() {\n\t\tif (this.info.onInteractionEnd) {\n\t\t\tthis.editor.setCurrentTool(this.info.onInteractionEnd, {})\n\t\t} else {\n\t\t\tthis.parent.transition('idle', {})\n\t\t}\n\t}\n\n\tprivate cancel() {\n\t\tif (this.info.onInteractionEnd) {\n\t\t\tthis.editor.setCurrentTool(this.info.onInteractionEnd, {})\n\t\t} else {\n\t\t\tthis.parent.transition('idle', {})\n\t\t}\n\t}\n}\n"], "mappings": "AAAA,SAAuB,iBAAsD;AAC7E,SAAS,qBAAqB;AAMvB,MAAM,6BAA6B,UAAU;AAAA,EACnD,OAAgB,KAAK;AAAA,EAEb,OAAO,CAAC;AAAA,EAER,eAAe;AACtB,UAAM,EAAE,kBAAkB,IAAI,KAAK;AACnC,SAAK,OAAO,oBAAoB;AAAA,MAC/B,QAAQ;AAAA,QACP,MAAM,cAAc,KAAK,KAAK,MAAsB;AAAA,QACpD,UAAU;AAAA,MACX;AAAA,IACD,CAAC;AAAA,EACF;AAAA,EAES,UAAU,CAAC,SAAmC;AACtD,SAAK,OAAO,oBAAoB,KAAK;AACrC,SAAK,OAAO;AACZ,SAAK,aAAa;AAAA,EACnB;AAAA,EAES,SAAS,MAAM;AACvB,SAAK,OAAO,oBAAoB;AAChC,SAAK,OAAO;AAAA,MACX,EAAE,QAAQ,EAAE,MAAM,WAAW,UAAU,EAAE,EAAE;AAAA,MAC3C,EAAE,WAAW,KAAK;AAAA,IACnB;AAAA,EACD;AAAA,EAES,gBAAgB,MAAM;AAC9B,UAAM,EAAE,WAAW,IAAI,KAAK,OAAO;AAEnC,QAAI,YAAY;AACf,WAAK,OAAO,WAAW,YAAY,KAAK,IAAI;AAAA,IAC7C;AAAA,EACD;AAAA,EAES,cAAc,MAAM;AAC5B,SAAK,SAAS;AAAA,EACf;AAAA,EAES,WAAwC,MAAM;AACtD,SAAK,OAAO;AAAA,EACb;AAAA,EAES,aAA4C,MAAM;AAC1D,SAAK,OAAO;AAAA,EACb;AAAA,EAES,cAAc,MAAM;AAC5B,SAAK,OAAO;AAAA,EACb;AAAA,EAEQ,WAAW;AAClB,QAAI,KAAK,KAAK,kBAAkB;AAC/B,WAAK,OAAO,eAAe,KAAK,KAAK,kBAAkB,CAAC,CAAC;AAAA,IAC1D,OAAO;AACN,WAAK,OAAO,WAAW,QAAQ,CAAC,CAAC;AAAA,IAClC;AAAA,EACD;AAAA,EAEQ,SAAS;AAChB,QAAI,KAAK,KAAK,kBAAkB;AAC/B,WAAK,OAAO,eAAe,KAAK,KAAK,kBAAkB,CAAC,CAAC;AAAA,IAC1D,OAAO;AACN,WAAK,OAAO,WAAW,QAAQ,CAAC,CAAC;AAAA,IAClC;AAAA,EACD;AACD;", "names": [] }