{ "version": 3, "sources": ["../../../../../src/lib/shapes/geo/toolStates/Pointing.ts"], "sourcesContent": ["import {\n\tBox2d,\n\tGeoShapeGeoStyle,\n\tStateNode,\n\tTLEventHandlers,\n\tTLGeoShape,\n\tcreateShapeId,\n\tgetStarBounds,\n} from '@tldraw/editor'\n\nexport class Pointing extends StateNode {\n\tstatic override id = 'pointing'\n\n\tmarkId = ''\n\n\toverride onPointerUp: TLEventHandlers['onPointerUp'] = () => {\n\t\tthis.complete()\n\t}\n\n\toverride onPointerMove: TLEventHandlers['onPointerMove'] = (info) => {\n\t\tif (this.editor.inputs.isDragging) {\n\t\t\tconst { originPagePoint } = this.editor.inputs\n\n\t\t\tconst id = createShapeId()\n\n\t\t\tthis.markId = `creating:${id}`\n\n\t\t\tthis.editor.mark(this.markId)\n\n\t\t\tthis.editor\n\t\t\t\t.createShapes([\n\t\t\t\t\t{\n\t\t\t\t\t\tid,\n\t\t\t\t\t\ttype: 'geo',\n\t\t\t\t\t\tx: originPagePoint.x,\n\t\t\t\t\t\ty: originPagePoint.y,\n\t\t\t\t\t\tprops: {\n\t\t\t\t\t\t\tw: 1,\n\t\t\t\t\t\t\th: 1,\n\t\t\t\t\t\t\tgeo: this.editor.getStyleForNextShape(GeoShapeGeoStyle),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t])\n\t\t\t\t.select(id)\n\t\t\t\t.setCurrentTool('select.resizing', {\n\t\t\t\t\t...info,\n\t\t\t\t\ttarget: 'selection',\n\t\t\t\t\thandle: 'bottom_right',\n\t\t\t\t\tisCreating: true,\n\t\t\t\t\tcreationCursorOffset: { x: 1, y: 1 },\n\t\t\t\t\tonInteractionEnd: 'geo',\n\t\t\t\t})\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.complete()\n\t}\n\n\toverride onInterrupt: TLEventHandlers['onInterrupt'] = () => {\n\t\tthis.cancel()\n\t}\n\n\tprivate complete() {\n\t\tconst { originPagePoint } = this.editor.inputs\n\n\t\tconst id = createShapeId()\n\n\t\tthis.markId = `creating:${id}`\n\n\t\tthis.editor.mark(this.markId)\n\n\t\tthis.editor.createShapes([\n\t\t\t{\n\t\t\t\tid,\n\t\t\t\ttype: 'geo',\n\t\t\t\tx: originPagePoint.x,\n\t\t\t\ty: originPagePoint.y,\n\t\t\t\tprops: {\n\t\t\t\t\tgeo: this.editor.getStyleForNextShape(GeoShapeGeoStyle),\n\t\t\t\t\tw: 1,\n\t\t\t\t\th: 1,\n\t\t\t\t},\n\t\t\t},\n\t\t])\n\n\t\tconst shape = this.editor.getShape(id)!\n\t\tif (!shape) return\n\n\t\tconst bounds =\n\t\t\tshape.props.geo === 'star'\n\t\t\t\t? getStarBounds(5, 200, 200)\n\t\t\t\t: shape.props.geo === 'cloud'\n\t\t\t\t? new Box2d(0, 0, 300, 180)\n\t\t\t\t: new Box2d(0, 0, 200, 200)\n\n\t\tconst delta = bounds.center\n\t\tconst parentTransform = this.editor.getShapeParentTransform(shape)\n\t\tif (parentTransform) delta.rot(-parentTransform.rotation())\n\n\t\tthis.editor.select(id)\n\t\tthis.editor.updateShapes([\n\t\t\t{\n\t\t\t\tid: shape.id,\n\t\t\t\ttype: 'geo',\n\t\t\t\tx: shape.x - delta.x,\n\t\t\t\ty: shape.y - delta.y,\n\t\t\t\tprops: {\n\t\t\t\t\tgeo: this.editor.getStyleForNextShape(GeoShapeGeoStyle),\n\t\t\t\t\tw: bounds.width,\n\t\t\t\t\th: bounds.height,\n\t\t\t\t},\n\t\t\t},\n\t\t])\n\n\t\tif (this.editor.instanceState.isToolLocked) {\n\t\t\tthis.parent.transition('idle', {})\n\t\t} else {\n\t\t\tthis.editor.setCurrentTool('select', {})\n\t\t}\n\t}\n\n\tprivate cancel() {\n\t\t// we should not have created any shapes yet, so no need to bail\n\t\tthis.parent.transition('idle', {})\n\t}\n}\n"], "mappings": "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", "names": [] }