{
  "version": 3,
  "sources": ["../../../../../../../src/lib/tools/SelectTool/childStates/Crop/children/crop_helpers.ts"],
  "sourcesContent": ["import { Editor, ShapeWithCrop, TLShapePartial, Vec, clamp, structuredClone } from '@tldraw/editor'\nimport { getUncroppedSize } from '../../../../../shapes/shared/crop'\n\nexport function getTranslateCroppedImageChange(editor: Editor, shape: ShapeWithCrop, delta: Vec) {\n\tif (!shape) {\n\t\tthrow Error('Needs to translate a cropped shape!')\n\t}\n\n\tconst { crop: oldCrop } = shape.props\n\tif (!oldCrop) {\n\t\t// can't translate a shape that doesn't have an existing crop\n\t\treturn\n\t}\n\n\tconst flatten: 'x' | 'y' | null = editor.inputs.getShiftKey()\n\t\t? Math.abs(delta.x) < Math.abs(delta.y)\n\t\t\t? 'x'\n\t\t\t: 'y'\n\t\t: null\n\n\tif (flatten === 'x') {\n\t\tdelta.x = 0\n\t} else if (flatten === 'y') {\n\t\tdelta.y = 0\n\t}\n\n\tdelta.rot(-shape.rotation)\n\n\tconst { w, h } = getUncroppedSize(shape.props, oldCrop)\n\tconst xCropSize = oldCrop.bottomRight.x - oldCrop.topLeft.x\n\tconst yCropSize = oldCrop.bottomRight.y - oldCrop.topLeft.y\n\tconst newCrop = structuredClone(oldCrop)\n\n\tconst xMinWithCrop = 1 - xCropSize\n\tconst yMinWithCrop = 1 - yCropSize\n\tnewCrop.topLeft.x = clamp(newCrop.topLeft.x - delta.x / w, 0, xMinWithCrop)\n\tnewCrop.topLeft.y = clamp(newCrop.topLeft.y - delta.y / h, 0, yMinWithCrop)\n\n\tnewCrop.bottomRight.x = newCrop.topLeft.x + xCropSize\n\tnewCrop.bottomRight.y = newCrop.topLeft.y + yCropSize\n\n\tconst partial: TLShapePartial<typeof shape> = {\n\t\tid: shape.id,\n\t\ttype: shape.type,\n\t\tprops: {\n\t\t\tcrop: newCrop,\n\t\t},\n\t}\n\n\treturn partial\n}\n"],
  "mappings": "AAAA,SAAqD,OAAO,uBAAuB;AACnF,SAAS,wBAAwB;AAE1B,SAAS,+BAA+B,QAAgB,OAAsB,OAAY;AAChG,MAAI,CAAC,OAAO;AACX,UAAM,MAAM,qCAAqC;AAAA,EAClD;AAEA,QAAM,EAAE,MAAM,QAAQ,IAAI,MAAM;AAChC,MAAI,CAAC,SAAS;AAEb;AAAA,EACD;AAEA,QAAM,UAA4B,OAAO,OAAO,YAAY,IACzD,KAAK,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,MAAM,CAAC,IACnC,MACA,MACD;AAEH,MAAI,YAAY,KAAK;AACpB,UAAM,IAAI;AAAA,EACX,WAAW,YAAY,KAAK;AAC3B,UAAM,IAAI;AAAA,EACX;AAEA,QAAM,IAAI,CAAC,MAAM,QAAQ;AAEzB,QAAM,EAAE,GAAG,EAAE,IAAI,iBAAiB,MAAM,OAAO,OAAO;AACtD,QAAM,YAAY,QAAQ,YAAY,IAAI,QAAQ,QAAQ;AAC1D,QAAM,YAAY,QAAQ,YAAY,IAAI,QAAQ,QAAQ;AAC1D,QAAM,UAAU,gBAAgB,OAAO;AAEvC,QAAM,eAAe,IAAI;AACzB,QAAM,eAAe,IAAI;AACzB,UAAQ,QAAQ,IAAI,MAAM,QAAQ,QAAQ,IAAI,MAAM,IAAI,GAAG,GAAG,YAAY;AAC1E,UAAQ,QAAQ,IAAI,MAAM,QAAQ,QAAQ,IAAI,MAAM,IAAI,GAAG,GAAG,YAAY;AAE1E,UAAQ,YAAY,IAAI,QAAQ,QAAQ,IAAI;AAC5C,UAAQ,YAAY,IAAI,QAAQ,QAAQ,IAAI;AAE5C,QAAM,UAAwC;AAAA,IAC7C,IAAI,MAAM;AAAA,IACV,MAAM,MAAM;AAAA,IACZ,OAAO;AAAA,MACN,MAAM;AAAA,IACP;AAAA,EACD;AAEA,SAAO;AACR;",
  "names": []
}
