{ "version": 3, "sources": ["../../../../../src/lib/tools/SelectTool/children/PointingSelection.ts"], "sourcesContent": ["import {\n\tStateNode,\n\tTLClickEvent,\n\tTLEventHandlers,\n\tTLGroupShape,\n\tTLPointerEventInfo,\n} from '@tldraw/editor'\nimport { selectOnCanvasPointerUp } from '../../selection-logic/selectOnCanvasPointerUp'\n\nexport class PointingSelection extends StateNode {\n\tstatic override id = 'pointing_selection'\n\n\tinfo = {} as TLPointerEventInfo & {\n\t\ttarget: 'selection'\n\t}\n\n\toverride onEnter = (info: TLPointerEventInfo & { target: 'selection' }) => {\n\t\tthis.info = info\n\t}\n\n\toverride onPointerUp: TLEventHandlers['onPointerUp'] = (info) => {\n\t\tselectOnCanvasPointerUp(this.editor)\n\t\tthis.parent.transition('idle', info)\n\t}\n\n\toverride onPointerMove: TLEventHandlers['onPointerMove'] = (info) => {\n\t\tif (this.editor.inputs.isDragging) {\n\t\t\tif (this.editor.instanceState.isReadonly) return\n\t\t\tthis.parent.transition('translating', info)\n\t\t}\n\t}\n\n\toverride onDoubleClick?: TLClickEvent | undefined = (info) => {\n\t\tconst { hoveredShape } = this.editor\n\t\tconst hitShape =\n\t\t\thoveredShape && !this.editor.isShapeOfType(hoveredShape, 'group')\n\t\t\t\t? hoveredShape\n\t\t\t\t: this.editor.getShapeAtPoint(this.editor.inputs.currentPagePoint, {\n\t\t\t\t\t\thitInside: true,\n\t\t\t\t\t\tmargin: 0,\n\t\t\t\t\t\trenderingOnly: true,\n\t\t\t\t })\n\n\t\tif (hitShape) {\n\t\t\t// todo: extract the double click shape logic from idle so that we can share it here\n\t\t\tthis.parent.transition('idle', {})\n\t\t\tthis.parent.onDoubleClick?.({\n\t\t\t\t...info,\n\t\t\t\ttarget: 'shape',\n\t\t\t\tshape: this.editor.getShape(hitShape)!,\n\t\t\t})\n\t\t\treturn\n\t\t}\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 cancel() {\n\t\tthis.parent.transition('idle', {})\n\t}\n}\n"], "mappings": "AAAA;AAAA,EACC;AAAA,OAKM;AACP,SAAS,+BAA+B;AAEjC,MAAM,0BAA0B,UAAU;AAAA,EAChD,OAAgB,KAAK;AAAA,EAErB,OAAO,CAAC;AAAA,EAIC,UAAU,CAAC,SAAuD;AAC1E,SAAK,OAAO;AAAA,EACb;AAAA,EAES,cAA8C,CAAC,SAAS;AAChE,4BAAwB,KAAK,MAAM;AACnC,SAAK,OAAO,WAAW,QAAQ,IAAI;AAAA,EACpC;AAAA,EAES,gBAAkD,CAAC,SAAS;AACpE,QAAI,KAAK,OAAO,OAAO,YAAY;AAClC,UAAI,KAAK,OAAO,cAAc;AAAY;AAC1C,WAAK,OAAO,WAAW,eAAe,IAAI;AAAA,IAC3C;AAAA,EACD;AAAA,EAES,gBAA2C,CAAC,SAAS;AAC7D,UAAM,EAAE,aAAa,IAAI,KAAK;AAC9B,UAAM,WACL,gBAAgB,CAAC,KAAK,OAAO,cAA4B,cAAc,OAAO,IAC3E,eACA,KAAK,OAAO,gBAAgB,KAAK,OAAO,OAAO,kBAAkB;AAAA,MACjE,WAAW;AAAA,MACX,QAAQ;AAAA,MACR,eAAe;AAAA,IACf,CAAC;AAEL,QAAI,UAAU;AAEb,WAAK,OAAO,WAAW,QAAQ,CAAC,CAAC;AACjC,WAAK,OAAO,gBAAgB;AAAA,QAC3B,GAAG;AAAA,QACH,QAAQ;AAAA,QACR,OAAO,KAAK,OAAO,SAAS,QAAQ;AAAA,MACrC,CAAC;AACD;AAAA,IACD;AAAA,EACD;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,SAAS;AAChB,SAAK,OAAO,WAAW,QAAQ,CAAC,CAAC;AAAA,EAClC;AACD;", "names": [] }