{"version":3,"file":"enterCropMode.mjs","sources":["../../extensions/cropping_controls/enterCropMode.ts"],"sourcesContent":["import { type FabricImage, type TPointerEventInfo } from 'fabric';\nimport { createImageCroppingControls } from './croppingControls';\nimport { cropPanMoveHandler, renderGhostImage } from './croppingHandlers';\n/**\n * Coordinates the change to image to enter crop mode and returns\n * a function to exit crop mode\n */\nexport const enterCropMode = function enterCropMode(\n  this: (args: TPointerEventInfo) => void,\n  { target }: TPointerEventInfo,\n) {\n  const fabricImage = target as FabricImage;\n  const { controls, padding } = fabricImage;\n  fabricImage.padding = 0;\n  fabricImage.controls = createImageCroppingControls();\n  fabricImage.on('moving', cropPanMoveHandler);\n  fabricImage.on('before:render', renderGhostImage);\n  fabricImage.setCoords();\n  const exitCropMode = () => {\n    fabricImage.padding = padding;\n    fabricImage.off('moving', cropPanMoveHandler);\n    fabricImage.off('before:render', renderGhostImage);\n    fabricImage.controls = controls;\n    fabricImage.setCoords();\n    fabricImage.once('mousedblclick', enterCropMode);\n    fabricImage.canvas?.requestRenderAll();\n  };\n  fabricImage.once('mousedblclick', exitCropMode);\n  fabricImage.canvas?.requestRenderAll();\n};\n"],"names":["enterCropMode","_ref","_fabricImage$canvas2","target","fabricImage","controls","padding","createImageCroppingControls","on","cropPanMoveHandler","renderGhostImage","setCoords","exitCropMode","_fabricImage$canvas","off","once","canvas","requestRenderAll"],"mappings":";;;AAGA;AACA;AACA;AACA;MACaA,aAAa,GAAG,SAASA,aAAaA,CAAAC,IAAA,EAGjD;AAAA,EAAA,IAAAC,oBAAA;EAAA,IADA;AAAEC,IAAAA;AAA0B,GAAC,GAAAF,IAAA;EAE7B,MAAMG,WAAW,GAAGD,MAAqB;EACzC,MAAM;IAAEE,QAAQ;AAAEC,IAAAA;AAAQ,GAAC,GAAGF,WAAW;EACzCA,WAAW,CAACE,OAAO,GAAG,CAAC;AACvBF,EAAAA,WAAW,CAACC,QAAQ,GAAGE,2BAA2B,EAAE;AACpDH,EAAAA,WAAW,CAACI,EAAE,CAAC,QAAQ,EAAEC,kBAAkB,CAAC;AAC5CL,EAAAA,WAAW,CAACI,EAAE,CAAC,eAAe,EAAEE,gBAAgB,CAAC;EACjDN,WAAW,CAACO,SAAS,EAAE;EACvB,MAAMC,YAAY,GAAGA,MAAM;AAAA,IAAA,IAAAC,mBAAA;IACzBT,WAAW,CAACE,OAAO,GAAGA,OAAO;AAC7BF,IAAAA,WAAW,CAACU,GAAG,CAAC,QAAQ,EAAEL,kBAAkB,CAAC;AAC7CL,IAAAA,WAAW,CAACU,GAAG,CAAC,eAAe,EAAEJ,gBAAgB,CAAC;IAClDN,WAAW,CAACC,QAAQ,GAAGA,QAAQ;IAC/BD,WAAW,CAACO,SAAS,EAAE;AACvBP,IAAAA,WAAW,CAACW,IAAI,CAAC,eAAe,EAAEf,aAAa,CAAC;AAChD,IAAA,CAAAa,mBAAA,GAAAT,WAAW,CAACY,MAAM,MAAA,IAAA,IAAAH,mBAAA,KAAA,MAAA,IAAlBA,mBAAA,CAAoBI,gBAAgB,EAAE;EACxC,CAAC;AACDb,EAAAA,WAAW,CAACW,IAAI,CAAC,eAAe,EAAEH,YAAY,CAAC;AAC/C,EAAA,CAAAV,oBAAA,GAAAE,WAAW,CAACY,MAAM,MAAA,IAAA,IAAAd,oBAAA,KAAA,MAAA,IAAlBA,oBAAA,CAAoBe,gBAAgB,EAAE;AACxC;;;;"}