var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/ImageEditor/cropper/viewerBridge.ts var viewerBridge_exports = {}; __export(viewerBridge_exports, { default: () => viewerBridge_default }); module.exports = __toCommonJS(viewerBridge_exports); var import_func = require("@zhst/func"); var import_constants = require("./constants"); var import_constants2 = require("../viewer/constants"); var viewerBridge_default = { initBridge() { const { container, element, eventHandleList = [], option } = this; if (this.options.viewer) { const viewer = this.options.viewer; const handleWhele = (0, import_func.addEventListenerWrapper)(container, import_constants.EVENT_WHEEL, this.onWheel.bind(this)); eventHandleList.push(handleWhele); this.onTransformChange(viewer); this.limited = true; const handleTransformChange = (0, import_func.addEventListenerWrapper)( viewer.element, import_constants2.EVENT_VIEWER_TRANSFORM_CHANGE, (event) => { this.onTransformChange(viewer); } ); eventHandleList.push(handleTransformChange); } }, onTransformChange(viewer) { if (!viewer.image) return; const { width: imgWidth, height: imgHeight } = viewer.image; const { rotate = 0 } = viewer.targetTransform || {}; let imgLeftTop = { x: 0, y: 0 }; let imgRightBottom = { x: imgWidth, y: imgHeight }; if (rotate % 180 !== 0) { const diffx = (imgWidth - imgHeight) / 2; const diffy = (imgHeight - imgWidth) / 2; imgLeftTop = { x: imgLeftTop.x + diffx, y: imgLeftTop.y + diffy }; imgRightBottom = { x: imgRightBottom.x - diffx, y: imgRightBottom.y - diffy }; } const { x: x1, y: y1 } = viewer.originAxisToCanvasAxis({ x: imgLeftTop.x, y: imgLeftTop.y }); const { x: x2, y: y2 } = viewer.originAxisToCanvasAxis({ x: imgRightBottom.x, y: imgRightBottom.y }); const limitCropBox = { left: x1, top: y1, width: x2 - x1, height: y2 - y1 }; this.options.cropBoxLimited = limitCropBox; this.limitCropBox(true, true); if (this.previewBox) { const canvas = this.previewBox; const ctx = canvas.getContext("2d"); const viewerRender = viewer.renderCanvas.bind(viewer); viewerRender(ctx); } }, onWheel(event) { const viewer = this.options.viewer; const onViewerWheelHandler = viewer.onWheel.bind(viewer); onViewerWheelHandler(event, this.cropped ? this.cropBoxData : null); }, clearBridge() { } };