{ "version": 3, "sources": ["../../../../../src/lib/tools/LaserTool/children/Lasering.ts"], "sourcesContent": ["import { StateNode, TLEventHandlers, TLScribble } from '@tldraw/editor'\nimport { ScribbleManager } from '../../../shapes/shared/ScribbleManager'\n\nexport class Lasering extends StateNode {\n\tstatic override id = 'lasering'\n\n\tscribble = {} as ScribbleManager\n\n\toverride onEnter = () => {\n\t\tthis.startScribble()\n\t\tthis.pushPointToScribble()\n\t}\n\n\toverride onExit = () => {\n\t\tthis.scribble.stop()\n\t}\n\n\toverride onPointerMove = () => {\n\t\tthis.pushPointToScribble()\n\t}\n\n\toverride onPointerUp = () => {\n\t\tthis.complete()\n\t}\n\n\tprivate startScribble = () => {\n\t\tif (this.scribble.tick) {\n\t\t\tthis.editor.off('tick', this.scribble?.tick)\n\t\t}\n\n\t\tthis.scribble = new ScribbleManager({\n\t\t\tonUpdate: this.onScribbleUpdate,\n\t\t\tonComplete: this.onScribbleComplete,\n\t\t\tcolor: 'laser',\n\t\t\topacity: 0.7,\n\t\t\tsize: 4,\n\t\t\tdelay: 1200,\n\t\t})\n\n\t\tthis.editor.on('tick', this.scribble.tick)\n\t}\n\n\tprivate pushPointToScribble = () => {\n\t\tconst { x, y } = this.editor.inputs.currentPagePoint\n\t\tthis.scribble.addPoint(x, y)\n\t}\n\n\tprivate onScribbleUpdate = (scribble: TLScribble) => {\n\t\tthis.editor.updateInstanceState({ scribble })\n\t}\n\n\tprivate onScribbleComplete = () => {\n\t\tthis.editor.off('tick', this.scribble.tick)\n\t\tthis.editor.updateInstanceState({ scribble: null })\n\t}\n\n\toverride onCancel: TLEventHandlers['onCancel'] = () => {\n\t\tthis.cancel()\n\t}\n\n\toverride onComplete: TLEventHandlers['onComplete'] = () => {\n\t\tthis.complete()\n\t}\n\n\tprivate complete() {\n\t\tthis.parent.transition('idle', {})\n\t}\n\n\tprivate cancel() {\n\t\tthis.parent.transition('idle', {})\n\t}\n}\n"], "mappings": "AAAA,SAAS,iBAA8C;AACvD,SAAS,uBAAuB;AAEzB,MAAM,iBAAiB,UAAU;AAAA,EACvC,OAAgB,KAAK;AAAA,EAErB,WAAW,CAAC;AAAA,EAEH,UAAU,MAAM;AACxB,SAAK,cAAc;AACnB,SAAK,oBAAoB;AAAA,EAC1B;AAAA,EAES,SAAS,MAAM;AACvB,SAAK,SAAS,KAAK;AAAA,EACpB;AAAA,EAES,gBAAgB,MAAM;AAC9B,SAAK,oBAAoB;AAAA,EAC1B;AAAA,EAES,cAAc,MAAM;AAC5B,SAAK,SAAS;AAAA,EACf;AAAA,EAEQ,gBAAgB,MAAM;AAC7B,QAAI,KAAK,SAAS,MAAM;AACvB,WAAK,OAAO,IAAI,QAAQ,KAAK,UAAU,IAAI;AAAA,IAC5C;AAEA,SAAK,WAAW,IAAI,gBAAgB;AAAA,MACnC,UAAU,KAAK;AAAA,MACf,YAAY,KAAK;AAAA,MACjB,OAAO;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,OAAO;AAAA,IACR,CAAC;AAED,SAAK,OAAO,GAAG,QAAQ,KAAK,SAAS,IAAI;AAAA,EAC1C;AAAA,EAEQ,sBAAsB,MAAM;AACnC,UAAM,EAAE,GAAG,EAAE,IAAI,KAAK,OAAO,OAAO;AACpC,SAAK,SAAS,SAAS,GAAG,CAAC;AAAA,EAC5B;AAAA,EAEQ,mBAAmB,CAAC,aAAyB;AACpD,SAAK,OAAO,oBAAoB,EAAE,SAAS,CAAC;AAAA,EAC7C;AAAA,EAEQ,qBAAqB,MAAM;AAClC,SAAK,OAAO,IAAI,QAAQ,KAAK,SAAS,IAAI;AAC1C,SAAK,OAAO,oBAAoB,EAAE,UAAU,KAAK,CAAC;AAAA,EACnD;AAAA,EAES,WAAwC,MAAM;AACtD,SAAK,OAAO;AAAA,EACb;AAAA,EAES,aAA4C,MAAM;AAC1D,SAAK,SAAS;AAAA,EACf;AAAA,EAEQ,WAAW;AAClB,SAAK,OAAO,WAAW,QAAQ,CAAC,CAAC;AAAA,EAClC;AAAA,EAEQ,SAAS;AAChB,SAAK,OAAO,WAAW,QAAQ,CAAC,CAAC;AAAA,EAClC;AACD;", "names": [] }