{
  "version": 3,
  "sources": ["../../../../../../../src/lib/tools/SelectTool/childStates/Crop/children/crop_helpers.ts"],
  "sourcesContent": ["import {\n\tEditor,\n\tTLBaseShape,\n\tTLImageShapeCrop,\n\tTLShapePartial,\n\tVec2d,\n\tdeepCopy,\n} from '@bigbluebutton/editor'\n\nexport type ShapeWithCrop = TLBaseShape<string, { w: number; h: number; crop: TLImageShapeCrop }>\n\nexport function getTranslateCroppedImageChange(\n\teditor: Editor,\n\tshape: TLBaseShape<string, { w: number; h: number; crop: TLImageShapeCrop }>,\n\tdelta: Vec2d\n) {\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.shiftKey\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\t// original (uncropped) width and height of shape\n\tconst w = (1 / (oldCrop.bottomRight.x - oldCrop.topLeft.x)) * shape.props.w\n\tconst h = (1 / (oldCrop.bottomRight.y - oldCrop.topLeft.y)) * shape.props.h\n\n\tconst yCrop = oldCrop.bottomRight.y - oldCrop.topLeft.y\n\tconst xCrop = oldCrop.bottomRight.x - oldCrop.topLeft.x\n\tconst newCrop = deepCopy(oldCrop)\n\n\tnewCrop.topLeft.x = Math.min(1 - xCrop, Math.max(0, newCrop.topLeft.x - delta.x / w))\n\tnewCrop.topLeft.y = Math.min(1 - yCrop, Math.max(0, newCrop.topLeft.y - delta.y / h))\n\n\tnewCrop.bottomRight.x = newCrop.topLeft.x + xCrop\n\tnewCrop.bottomRight.y = newCrop.topLeft.y + yCrop\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;AAAA,EAMC;AAAA,OACM;AAIA,SAAS,+BACf,QACA,OACA,OACC;AACD,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,WAC7C,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;AAGzB,QAAM,IAAK,KAAK,QAAQ,YAAY,IAAI,QAAQ,QAAQ,KAAM,MAAM,MAAM;AAC1E,QAAM,IAAK,KAAK,QAAQ,YAAY,IAAI,QAAQ,QAAQ,KAAM,MAAM,MAAM;AAE1E,QAAM,QAAQ,QAAQ,YAAY,IAAI,QAAQ,QAAQ;AACtD,QAAM,QAAQ,QAAQ,YAAY,IAAI,QAAQ,QAAQ;AACtD,QAAM,UAAU,SAAS,OAAO;AAEhC,UAAQ,QAAQ,IAAI,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,GAAG,QAAQ,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC;AACpF,UAAQ,QAAQ,IAAI,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,GAAG,QAAQ,QAAQ,IAAI,MAAM,IAAI,CAAC,CAAC;AAEpF,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": []
}
