diff --git a/README.md b/README.md index 5035a1e..09beaf1 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ cropper.on('change', function(crop) { | `actions` | Object | {pan, zoomOnDoubleClick, resize } Allowed user interactions. By default they are all set to `true`. | | `showSurroundingImage` | String | {always, never, panning } Shows the uncropped part of the image. By default set to `never`. | | `surroundingImageOpacity` | Number | {0.0 - 1.0} Sets the opacity when showing the uncropped part of the image. By default set to `0.2`. | +| `originalSize` | Object | Original image size, can be used to display a downscaled version of the image in the cropping interface, but use the original size for crop attributes; e.g. `{width: 4000, height: 3000}`. | ### HTML diff --git a/examples/srcissors.js b/examples/srcissors.js index 2fc156c..926e90a 100644 --- a/examples/srcissors.js +++ b/examples/srcissors.js @@ -1,2 +1,2 @@ -!function(i,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?exports.srcissors=t(require("jquery")):i.srcissors=t(i.jQuery)}(window,(function(i){return function(i){var t={};function e(s){if(t[s])return t[s].exports;var n=t[s]={i:s,l:!1,exports:{}};return i[s].call(n.exports,n,n.exports,e),n.l=!0,n.exports}return e.m=i,e.c=t,e.d=function(i,t,s){e.o(i,t)||Object.defineProperty(i,t,{enumerable:!0,get:s})},e.r=function(i){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},e.t=function(i,t){if(1&t&&(i=e(i)),8&t)return i;if(4&t&&"object"==typeof i&&i&&i.__esModule)return i;var s=Object.create(null);if(e.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:i}),2&t&&"string"!=typeof i)for(var n in i)e.d(s,n,function(t){return i[t]}.bind(null,n));return s},e.n=function(i){var t=i&&i.__esModule?function(){return i.default}:function(){return i};return e.d(t,"a",t),t},e.o=function(i,t){return Object.prototype.hasOwnProperty.call(i,t)},e.p="",e(e.s=1)}([function(t,e){t.exports=i},function(i,t,e){var s=e(0),n=e(2);i.exports={new:function(i){var t=i.arena,e=i.url,h=i.fixedWidth,o=i.fixedHeight,a=i.minWidth,r=i.minHeight,u=i.minRatio,c=i.maxRatio,l=i.maxArea,d=i.zoomStep,g=i.crop,v=i.actions,m=i.minResolution,w=i.surroundingImageOpacity,p=i.showSurroundingImage,f=(t=s(t)).find(".crop-view"),y=f.find(".crop-preview"),x=s("");y.append(x);var k=f.find(".crop-outline");k.length||(k=void 0);var R={pan:!0,zoomOnDoubleClick:!0,resize:!0,resizeHorizontal:!h,resizeVertical:!o};return s.extend(R,v),null==d&&(d=1.25),null==a&&(a=50),null==r&&(r=50),new n({url:e,crop:g,arena:t,view:f,img:x,outline:k,showSurroundingImage:p,surroundingImageOpacity:w,fixedWidth:h,fixedHeight:o,minViewWidth:a,minViewHeight:r,minViewRatio:u,maxViewRatio:c,maxArea:l,zoomStep:d,actions:R,minResolution:m})}}},function(i,t,e){function s(i,t){var e;if("undefined"==typeof Symbol||null==i[Symbol.iterator]){if(Array.isArray(i)||(e=function(i,t){if(!i)return;if("string"==typeof i)return n(i,t);var e=Object.prototype.toString.call(i).slice(8,-1);"Object"===e&&i.constructor&&(e=i.constructor.name);if("Map"===e||"Set"===e)return Array.from(i);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return n(i,t)}(i))||t&&i&&"number"==typeof i.length){e&&(i=e);var s=0,h=function(){};return{s:h,n:function(){return s>=i.length?{done:!0}:{done:!1,value:i[s++]}},e:function(i){throw i},f:h}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,r=!1;return{s:function(){e=i[Symbol.iterator]()},n:function(){var i=e.next();return a=i.done,i},e:function(i){r=!0,o=i},f:function(){try{a||null==e.return||e.return()}finally{if(r)throw o}}}}function n(i,t){(null==t||t>i.length)&&(t=i.length);for(var e=0,s=new Array(t);en&&delete this.minResolution,this.minResolution){var h=this.minResolution/(this.imageHeight*this.imageHeight);(!this.minViewRatio||this.minViewRatioo)&&(this.maxViewRatio=o)}this.calcMaxMinDimensions(),this.fixedWidth&&(t="width"),this.fixedHeight&&(t="height"),this.setViewDimensions({width:this.imageWidth,height:this.imageHeight,keepDimension:t}),this.isReady=!0,this.view.removeClass(this.loadingCssClass),this.isInitialized||null==this.initialCrop?(this.zoomAllOut(),this.center()):this.setCrop(this.initialCrop),this.isInitialized=!0,this.readyEvent.fire(),this.loadEvent.fire()}},{key:"setCrop",value:function(i){var t=this,e=i.x,s=i.y,n=i.width,h=i.height;if(this.isReady){this.resize({width:n,height:h});var o=this.viewWidth/n,a=this.imageWidth*o;this.zoom({width:a}),this.pan({x:e*o,y:s*o})}else this.on("ready",(function(){return t.setCrop({x:e,y:s,width:n,height:h})}))}},{key:"getCrop",value:function(){var i=this.preview.width/this.imageWidth,t={x:this.preview.x/i,y:this.preview.y/i,width:this.viewWidth/i,height:this.viewHeight/i};return this.roundCrop(t),this.validateCrop(t),t}},{key:"roundCrop",value:function(i){for(var t in i){var e=i[t];i[t]=Math.round(e)}}},{key:"validateCrop",value:function(i){var t=i.x,e=i.y,s=i.width,n=i.height;return t+s>this.imageWidth?i.width=this.imageWidth-t:e+n>this.imageHeight&&(i.height=this.imageHeight-e),i}},{key:"setRatio",value:function(i,t){var e,s,n=this;if(this.isReady)return i=this.enforceValidRatio(i),"height"===t?s=(e=this.viewHeight)*i:e=(s=this.viewWidth)/i,this.resizeFocusPoint=this.getFocusPoint(),this.resize({width:s,height:e});this.on("ready",(function(){return n.setRatio(i,t)}))}},{key:"onPan",value:function(i){this.isPanning||(this.isPanning=!0,this.arena.addClass(this.panningCssClass),this.outline.addClass(this.outlineCssClass));var t=i.startX-i.dx,e=i.startY-i.dy;this.pan({x:t,y:e})}},{key:"onPanEnd",value:function(){return this.isPanning=!1,this.arena.removeClass(this.panningCssClass),this.outline.removeClass(this.outlineCssClass)}},{key:"onDoubleClick",value:function(i){var t=i.pageX,e=i.pageY,s=this.view[0].getBoundingClientRect(),n=t-s.left,h=e-s.top;this.zoomIn({viewX:n,viewY:h})}},{key:"onResize",value:function(i){var t=i.position,e=i.dx,s=i.dy;this.isResizing||(this.isResizing=!0,this.resizeFocusPoint=this.getFocusPoint()),["top","bottom"].includes(t)?(s*=2,this.resize({width:this.viewWidth,height:this.viewHeight+s,keepDimension:"height"})):["left","right"].includes(t)&&(e*=2,this.resize({width:this.viewWidth+e,height:this.viewHeight,keepDimension:"width"}))}},{key:"onResizeEnd",value:function(){this.isResizing=!1,this.resizeFocusPoint=void 0}},{key:"resize",value:function(i){var t=i.width,e=i.height,s=i.keepDimension;this.setViewDimensions({width:t,height:e,keepDimension:s}),this.resizeFocusPoint&&(this.resizeFocusPoint.viewX=this.viewWidth/2,this.resizeFocusPoint.viewY=this.viewHeight/2),this.zoom({width:this.preview.width,height:this.preview.height,focusPoint:this.resizeFocusPoint})}},{key:"setViewDimensions",value:function(i){var t=i.width,e=i.height,s=i.keepDimension;if(this.maxArea){var n=this.enforceMaxArea({width:t,height:e,keepDimension:s});t=n.width,e=n.height}var h=this.enforceViewDimensions({width:t,height:e,keepDimension:s});if(t=h.width,e=h.height,this.view.css({width:t,height:e}),this.viewWidth=t,this.viewHeight=e,this.viewRatio=t/e,this.minResolution){var o=Math.sqrt(this.minResolution*this.viewRatio),a=Math.sqrt(this.minResolution/this.viewRatio);this.maxImageWidth=this.viewWidth/o*this.imageWidth,this.maxImageHeight=this.viewHeight/a*this.imageHeight}this.fireChange()}},{key:"zoomAllOut",value:function(){this.isWidthRestricting()?this.zoom({width:this.viewWidth}):this.zoom({height:this.viewHeight})}},{key:"zoomIn",value:function(i){null==i&&(i={}),this.isWidthRestricting()?i.width=this.preview.width*this.zoomInStep:i.height=this.preview.height*this.zoomInStep,this.zoom(i)}},{key:"zoomOut",value:function(i){null==i&&(i={}),this.isWidthRestricting()?i.width=this.preview.width*this.zoomOutStep:i.height=this.preview.height*this.zoomOutStep,this.zoom(i)}},{key:"zoom",value:function(i){var t=i.width,e=i.height,s=i.viewX,n=i.viewY,h=i.focusPoint;null==h&&(h=this.getFocusPoint({viewX:s,viewY:n}));var o=this.enforceZoom({width:t,height:e});t=o.width,e=o.height,null!=t?(this.preview.setWidth(t),this.fireChange()):null!=e&&(this.preview.setHeight(e),this.fireChange()),this.focus(h)}},{key:"getFocusPoint",value:function(i){null==i&&(i={});var t=i,e=t.viewX,s=t.viewY;null==e&&(e=this.viewWidth/2),null==s&&(s=this.viewHeight/2);var n=this.preview.x+e,h=this.preview.y+s;return{percentX:n/this.preview.width,percentY:h/this.preview.height,viewX:e,viewY:s}}},{key:"focus",value:function(i){var t=i.percentX,e=i.percentY,s=i.viewX,n=i.viewY,h=this.preview.width*t,o=this.preview.height*e;h-=s,o-=n,this.pan({x:h,y:o})}},{key:"center",value:function(){var i=(this.preview.width-this.viewWidth)/2,t=(this.preview.height-this.viewHeight)/2;this.pan({x:i,y:t})}},{key:"pan",value:function(i){i=this.enforceXy(i),this.preview.pan(i.x,i.y),this.fireChange()}},{key:"enforceXy",value:function(i){var t=i.x,e=i.y;return t<0?t=0:t>this.preview.width-this.viewWidth&&(t=this.preview.width-this.viewWidth),e<0?e=0:e>this.preview.height-this.viewHeight&&(e=this.preview.height-this.viewHeight),{x:t,y:e}}},{key:"enforceZoom",value:function(i){var t=i.width,e=i.height;return null!=t&&this.maxImageWidth&&t>this.maxImageWidth?{width:this.maxImageWidth}:null!=t&&tthis.maxImageHeight?{height:this.maxImageHeight}:null!=e&&ethis.maxWidth||ethis.maxHeight||sthis.maxViewRatio)}},{key:"isValidRatio",value:function(i){return!(ithis.maxViewRatio)}},{key:"enforceValidRatio",value:function(i){return ithis.maxViewRatio?this.maxViewRatio:i}},{key:"enforceViewDimensions",value:function(i){var t,e,s,n=i.width,h=i.height,o=i.keepDimension;if(nthis.maxWidth&&(e=this.maxWidth),hthis.maxHeight&&(t=this.maxHeight),o){if(e&&(n=e),t&&(h=t),s=n/h,!this.isValidRatio(s)){s=this.enforceValidRatio(s);var a=this.getRatioBox({ratio:s,width:n,height:h,keepDimension:o});if(n=a.width,h=a.height,n>this.arenaWidth||h>this.arenaHeight){var r=this.centerAlign(this.maxWidth,this.maxHeight,s);n=r.width,h=r.height}}}else if(e||t){s=this.enforceValidRatio(n/h);var u=this.centerAlign(this.maxWidth,this.maxHeight,s);n=u.width,h=u.height}return{width:n,height:h}}},{key:"enforceMaxArea",value:function(i){var t=i.width,e=i.height,s=i.keepDimension,n=t/e;return"width"===s?n=t/(e=this.maxArea/t):"height"===s?n=(t=this.maxArea/e)/e:e=(t=Math.sqrt(this.maxArea*n))/n,this.isValidRatio(n)||(n=this.enforceValidRatio(n),e=(t=Math.sqrt(this.maxArea*n))/n),{width:t,height:e}}},{key:"isWidthRestricting",value:function(){return this.viewRatio>=this.imageRatio}},{key:"getRatioBox",value:function(i){var t=i.ratio,e=i.width,s=i.height,n=i.keepDimension;return"width"===n||null==s?s=e/t:"height"===n||null==e?e=s*t:s=e/t,{width:e,height:s}}},{key:"centerAlign",value:function(i,t,e){var s,n,h,o;return i/t>e?h=(i-(n=t*e))/2:o=(t-(s=i/e))/2,{x:h||0,y:o||0,width:n||i,height:s||t}}},{key:"min",value:function(i){var t,e=i[0],n=s(i);try{for(n.s();!(t=n.n()).done;){var h=t.value;h0){var e=n("").css({opacity:this.opacity}).attr("src",t);this.outline.append(e)}}},{key:"reset",value:function(){this.url=void 0,this.x=this.y=0,this.width=this.height=0,this.img.attr("src",""),this.img.css({width:"",height:"",transform:""}),this.outline&&this.outline.css({transform:""}).html("")}},{key:"setWidth",value:function(i){this.img.css({width:"".concat(i,"px"),height:"auto"});var t=i/this.ratio;this.updateImageDimensions({width:i,height:t})}},{key:"setHeight",value:function(i){this.img.css({width:"auto",height:"".concat(i,"px")});var t=i*this.ratio;this.updateImageDimensions({width:t,height:i})}},{key:"updateImageDimensions",value:function(i){var t=i.width,e=i.height;this.width=t,this.height=e,this.outline&&this.outline.css({width:"".concat(this.width,"px"),height:"".concat(this.height,"px")})}},{key:"pan",value:function(i,t){this.x=i,this.y=t;var e=Math.round(this.x),s=Math.round(this.y);this.img.css({transform:"translate(-".concat(e,"px, -").concat(s,"px)")}),this.outline&&this.outline.css({transform:"translate(-".concat(e,"px, -").concat(s,"px)")})}}])&&s(t.prototype,e),h&&s(t,h),i}()},function(i,t,e){function s(i,t){for(var e=0;es-t.doubleClickThreshold&&t.parent.onDoubleClick(h(e)),i=s}))}},{key:"preventBrowserDragDrop",value:function(){this.view.on("dragstart.srcissors",(function(){return!1}))}},{key:"resizeView",value:function(i){var t=this,e=i.horizontal,s=i.vertical,h=n("
");h.addClass("resize-handler");var o=[];e&&(o=o.concat(["right","left"])),s&&(o=o.concat(["top","bottom"])),o.forEach((function(i){var e=h.clone();e.addClass("resize-handler-".concat(i)),e.on("mousedown.srcissors touchstart.srcissors",t.getResizeMouseDown(i)),t.view.append(e)}))}},{key:"getResizeMouseDown",value:function(i){var t=this,e=n(document);return function(s){var n=h(s),o=n.pageX,a=n.pageY;s.stopPropagation(),e.on("mousemove.srcissors-resize touchmove.srcissors-resize",(function(e){var s,n,r=h(e),u=r.pageX,c=r.pageY;switch(i){case"top":case"bottom":n=c-a,"top"===i&&(n=-n),a=c;break;case"left":case"right":s=u-o,"left"===i&&(s=-s),o=u}t.parent.onResize({position:i,dx:s,dy:n})})).on("mouseup.srcissors-resize touchend.srcissors-resize",(function(){e.off("mouseup.srcissors-resize touchmove.srcissors-resize"),e.off("mousemove.srcissors-resize touchend.srcissors-resize"),t.parent.onResizeEnd({position:i})}))}}},{key:"responsiveArena",value:function(){}}])&&s(t.prototype,e),o&&s(t,o),i}()}])})); +!function(i,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?exports.srcissors=t(require("jquery")):i.srcissors=t(i.jQuery)}(window,(function(i){return function(i){var t={};function e(s){if(t[s])return t[s].exports;var n=t[s]={i:s,l:!1,exports:{}};return i[s].call(n.exports,n,n.exports,e),n.l=!0,n.exports}return e.m=i,e.c=t,e.d=function(i,t,s){e.o(i,t)||Object.defineProperty(i,t,{enumerable:!0,get:s})},e.r=function(i){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},e.t=function(i,t){if(1&t&&(i=e(i)),8&t)return i;if(4&t&&"object"==typeof i&&i&&i.__esModule)return i;var s=Object.create(null);if(e.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:i}),2&t&&"string"!=typeof i)for(var n in i)e.d(s,n,function(t){return i[t]}.bind(null,n));return s},e.n=function(i){var t=i&&i.__esModule?function(){return i.default}:function(){return i};return e.d(t,"a",t),t},e.o=function(i,t){return Object.prototype.hasOwnProperty.call(i,t)},e.p="",e(e.s=1)}([function(t,e){t.exports=i},function(i,t,e){var s=e(0),n=e(2);i.exports={new:function(i){var t=i.arena,e=i.url,h=i.fixedWidth,o=i.fixedHeight,a=i.minWidth,r=i.minHeight,u=i.minRatio,c=i.maxRatio,l=i.maxArea,g=i.originalSize,d=i.zoomStep,v=i.crop,m=i.actions,w=i.minResolution,p=i.surroundingImageOpacity,f=i.showSurroundingImage,y=(t=s(t)).find(".crop-view"),x=y.find(".crop-preview"),k=s("");x.append(k);var R=y.find(".crop-outline");R.length||(R=void 0);var z={pan:!0,zoomOnDoubleClick:!0,resize:!0,resizeHorizontal:!h,resizeVertical:!o};return s.extend(z,m),null==d&&(d=1.25),null==a&&(a=50),null==r&&(r=50),new n({url:e,crop:v,arena:t,view:y,img:k,outline:R,showSurroundingImage:f,surroundingImageOpacity:p,fixedWidth:h,fixedHeight:o,minViewWidth:a,minViewHeight:r,minViewRatio:u,maxViewRatio:c,maxArea:l,originalSize:g,zoomStep:d,actions:z,minResolution:w})}}},function(i,t,e){function s(i,t){var e;if("undefined"==typeof Symbol||null==i[Symbol.iterator]){if(Array.isArray(i)||(e=function(i,t){if(!i)return;if("string"==typeof i)return n(i,t);var e=Object.prototype.toString.call(i).slice(8,-1);"Object"===e&&i.constructor&&(e=i.constructor.name);if("Map"===e||"Set"===e)return Array.from(i);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return n(i,t)}(i))||t&&i&&"number"==typeof i.length){e&&(i=e);var s=0,h=function(){};return{s:h,n:function(){return s>=i.length?{done:!0}:{done:!1,value:i[s++]}},e:function(i){throw i},f:h}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,r=!1;return{s:function(){e=i[Symbol.iterator]()},n:function(){var i=e.next();return a=i.done,i},e:function(i){r=!0,o=i},f:function(){try{a||null==e.return||e.return()}finally{if(r)throw o}}}}function n(i,t){(null==t||t>i.length)&&(t=i.length);for(var e=0,s=new Array(t);eh&&delete this.minResolution,this.minResolution){var o=this.minResolution/(this.imageHeight*this.imageHeight);(!this.minViewRatio||this.minViewRatioa)&&(this.maxViewRatio=a)}this.calcMaxMinDimensions(),this.fixedWidth&&(t="width"),this.fixedHeight&&(t="height"),this.setViewDimensions({width:this.imageWidth,height:this.imageHeight,keepDimension:t}),this.isReady=!0,this.view.removeClass(this.loadingCssClass),this.isInitialized||null==this.initialCrop?(this.zoomAllOut(),this.center()):this.setCrop(this.initialCrop),this.isInitialized=!0,this.readyEvent.fire(),this.loadEvent.fire()}},{key:"setCrop",value:function(i){var t=this,e=i.x,s=i.y,n=i.width,h=i.height;if(this.isReady){this.resize({width:n,height:h});var o=this.viewWidth/n,a=this.imageWidth*o;this.zoom({width:a}),this.pan({x:e*o,y:s*o})}else this.on("ready",(function(){return t.setCrop({x:e,y:s,width:n,height:h})}))}},{key:"getCrop",value:function(){var i=this.preview.width/this.imageWidth,t={x:this.preview.x/i,y:this.preview.y/i,width:this.viewWidth/i,height:this.viewHeight/i};return this.roundCrop(t),this.validateCrop(t),t}},{key:"roundCrop",value:function(i){for(var t in i){var e=i[t];i[t]=Math.round(e)}}},{key:"validateCrop",value:function(i){var t=i.x,e=i.y,s=i.width,n=i.height;return t+s>this.imageWidth?i.width=this.imageWidth-t:e+n>this.imageHeight&&(i.height=this.imageHeight-e),i}},{key:"setRatio",value:function(i,t){var e,s,n=this;if(this.isReady)return i=this.enforceValidRatio(i),"height"===t?s=(e=this.viewHeight)*i:e=(s=this.viewWidth)/i,this.resizeFocusPoint=this.getFocusPoint(),this.resize({width:s,height:e});this.on("ready",(function(){return n.setRatio(i,t)}))}},{key:"onPan",value:function(i){this.isPanning||(this.isPanning=!0,this.arena.addClass(this.panningCssClass),this.outline.addClass(this.outlineCssClass));var t=i.startX-i.dx,e=i.startY-i.dy;this.pan({x:t,y:e})}},{key:"onPanEnd",value:function(){return this.isPanning=!1,this.arena.removeClass(this.panningCssClass),this.outline.removeClass(this.outlineCssClass)}},{key:"onDoubleClick",value:function(i){var t=i.pageX,e=i.pageY,s=this.view[0].getBoundingClientRect(),n=t-s.left,h=e-s.top;this.zoomIn({viewX:n,viewY:h})}},{key:"onResize",value:function(i){var t=i.position,e=i.dx,s=i.dy;this.isResizing||(this.isResizing=!0,this.resizeFocusPoint=this.getFocusPoint()),["top","bottom"].includes(t)?(s*=2,this.resize({width:this.viewWidth,height:this.viewHeight+s,keepDimension:"height"})):["left","right"].includes(t)&&(e*=2,this.resize({width:this.viewWidth+e,height:this.viewHeight,keepDimension:"width"}))}},{key:"onResizeEnd",value:function(){this.isResizing=!1,this.resizeFocusPoint=void 0}},{key:"resize",value:function(i){var t=i.width,e=i.height,s=i.keepDimension;this.setViewDimensions({width:t,height:e,keepDimension:s}),this.resizeFocusPoint&&(this.resizeFocusPoint.viewX=this.viewWidth/2,this.resizeFocusPoint.viewY=this.viewHeight/2),this.zoom({width:this.preview.width,height:this.preview.height,focusPoint:this.resizeFocusPoint})}},{key:"setViewDimensions",value:function(i){var t=i.width,e=i.height,s=i.keepDimension;if(this.maxArea){var n=this.enforceMaxArea({width:t,height:e,keepDimension:s});t=n.width,e=n.height}var h=this.enforceViewDimensions({width:t,height:e,keepDimension:s});if(t=h.width,e=h.height,this.view.css({width:t,height:e}),this.viewWidth=t,this.viewHeight=e,this.viewRatio=t/e,this.minResolution){var o=Math.sqrt(this.minResolution*this.viewRatio),a=Math.sqrt(this.minResolution/this.viewRatio);this.maxImageWidth=this.viewWidth/o*this.imageWidth,this.maxImageHeight=this.viewHeight/a*this.imageHeight}this.fireChange()}},{key:"zoomAllOut",value:function(){this.isWidthRestricting()?this.zoom({width:this.viewWidth}):this.zoom({height:this.viewHeight})}},{key:"zoomIn",value:function(i){null==i&&(i={}),this.isWidthRestricting()?i.width=this.preview.width*this.zoomInStep:i.height=this.preview.height*this.zoomInStep,this.zoom(i)}},{key:"zoomOut",value:function(i){null==i&&(i={}),this.isWidthRestricting()?i.width=this.preview.width*this.zoomOutStep:i.height=this.preview.height*this.zoomOutStep,this.zoom(i)}},{key:"zoom",value:function(i){var t=i.width,e=i.height,s=i.viewX,n=i.viewY,h=i.focusPoint;null==h&&(h=this.getFocusPoint({viewX:s,viewY:n}));var o=this.enforceZoom({width:t,height:e});t=o.width,e=o.height,null!=t?(this.preview.setWidth(t),this.fireChange()):null!=e&&(this.preview.setHeight(e),this.fireChange()),this.focus(h)}},{key:"getFocusPoint",value:function(i){null==i&&(i={});var t=i,e=t.viewX,s=t.viewY;null==e&&(e=this.viewWidth/2),null==s&&(s=this.viewHeight/2);var n=this.preview.x+e,h=this.preview.y+s;return{percentX:n/this.preview.width,percentY:h/this.preview.height,viewX:e,viewY:s}}},{key:"focus",value:function(i){var t=i.percentX,e=i.percentY,s=i.viewX,n=i.viewY,h=this.preview.width*t,o=this.preview.height*e;h-=s,o-=n,this.pan({x:h,y:o})}},{key:"center",value:function(){var i=(this.preview.width-this.viewWidth)/2,t=(this.preview.height-this.viewHeight)/2;this.pan({x:i,y:t})}},{key:"pan",value:function(i){i=this.enforceXy(i),this.preview.pan(i.x,i.y),this.fireChange()}},{key:"enforceXy",value:function(i){var t=i.x,e=i.y;return t<0?t=0:t>this.preview.width-this.viewWidth&&(t=this.preview.width-this.viewWidth),e<0?e=0:e>this.preview.height-this.viewHeight&&(e=this.preview.height-this.viewHeight),{x:t,y:e}}},{key:"enforceZoom",value:function(i){var t=i.width,e=i.height;return null!=t&&this.maxImageWidth&&t>this.maxImageWidth?{width:this.maxImageWidth}:null!=t&&tthis.maxImageHeight?{height:this.maxImageHeight}:null!=e&&ethis.maxWidth||ethis.maxHeight||sthis.maxViewRatio)}},{key:"isValidRatio",value:function(i){return!(ithis.maxViewRatio)}},{key:"enforceValidRatio",value:function(i){return ithis.maxViewRatio?this.maxViewRatio:i}},{key:"enforceViewDimensions",value:function(i){var t,e,s,n=i.width,h=i.height,o=i.keepDimension;if(nthis.maxWidth&&(e=this.maxWidth),hthis.maxHeight&&(t=this.maxHeight),o){if(e&&(n=e),t&&(h=t),s=n/h,!this.isValidRatio(s)){s=this.enforceValidRatio(s);var a=this.getRatioBox({ratio:s,width:n,height:h,keepDimension:o});if(n=a.width,h=a.height,n>this.arenaWidth||h>this.arenaHeight){var r=this.centerAlign(this.maxWidth,this.maxHeight,s);n=r.width,h=r.height}}}else if(e||t){s=this.enforceValidRatio(n/h);var u=this.centerAlign(this.maxWidth,this.maxHeight,s);n=u.width,h=u.height}return{width:n,height:h}}},{key:"enforceMaxArea",value:function(i){var t=i.width,e=i.height,s=i.keepDimension,n=t/e;return"width"===s?n=t/(e=this.maxArea/t):"height"===s?n=(t=this.maxArea/e)/e:e=(t=Math.sqrt(this.maxArea*n))/n,this.isValidRatio(n)||(n=this.enforceValidRatio(n),e=(t=Math.sqrt(this.maxArea*n))/n),{width:t,height:e}}},{key:"checkRatio",value:function(i){if(this.originalSize){var t=this.originalSize.width/this.originalSize.height,e=i.width/i.height,s=(e-t)/t*100;if(Math.abs(s)>1)throw new Error("srcissors: Displayed image has a different image ratio than the "+"one configured in 'originalRatio': ".concat(t," vs ").concat(e))}}},{key:"isWidthRestricting",value:function(){return this.viewRatio>=this.imageRatio}},{key:"getRatioBox",value:function(i){var t=i.ratio,e=i.width,s=i.height,n=i.keepDimension;return"width"===n||null==s?s=e/t:"height"===n||null==e?e=s*t:s=e/t,{width:e,height:s}}},{key:"centerAlign",value:function(i,t,e){var s,n,h,o;return i/t>e?h=(i-(n=t*e))/2:o=(t-(s=i/e))/2,{x:h||0,y:o||0,width:n||i,height:s||t}}},{key:"min",value:function(i){var t,e=i[0],n=s(i);try{for(n.s();!(t=n.n()).done;){var h=t.value;h0){var e=n("").css({opacity:this.opacity}).attr("src",t);this.outline.append(e)}}},{key:"reset",value:function(){this.url=void 0,this.x=this.y=0,this.width=this.height=0,this.img.attr("src",""),this.img.css({width:"",height:"",transform:""}),this.outline&&this.outline.css({transform:""}).html("")}},{key:"setWidth",value:function(i){this.img.css({width:"".concat(i,"px"),height:"auto"});var t=i/this.ratio;this.updateImageDimensions({width:i,height:t})}},{key:"setHeight",value:function(i){this.img.css({width:"auto",height:"".concat(i,"px")});var t=i*this.ratio;this.updateImageDimensions({width:t,height:i})}},{key:"updateImageDimensions",value:function(i){var t=i.width,e=i.height;this.width=t,this.height=e,this.outline&&this.outline.css({width:"".concat(this.width,"px"),height:"".concat(this.height,"px")})}},{key:"pan",value:function(i,t){this.x=i,this.y=t;var e=Math.round(this.x),s=Math.round(this.y);this.img.css({transform:"translate(-".concat(e,"px, -").concat(s,"px)")}),this.outline&&this.outline.css({transform:"translate(-".concat(e,"px, -").concat(s,"px)")})}}])&&s(t.prototype,e),h&&s(t,h),i}()},function(i,t,e){function s(i,t){for(var e=0;es-t.doubleClickThreshold&&t.parent.onDoubleClick(h(e)),i=s}))}},{key:"preventBrowserDragDrop",value:function(){this.view.on("dragstart.srcissors",(function(){return!1}))}},{key:"resizeView",value:function(i){var t=this,e=i.horizontal,s=i.vertical,h=n("
");h.addClass("resize-handler");var o=[];e&&(o=o.concat(["right","left"])),s&&(o=o.concat(["top","bottom"])),o.forEach((function(i){var e=h.clone();e.addClass("resize-handler-".concat(i)),e.on("mousedown.srcissors touchstart.srcissors",t.getResizeMouseDown(i)),t.view.append(e)}))}},{key:"getResizeMouseDown",value:function(i){var t=this,e=n(document);return function(s){var n=h(s),o=n.pageX,a=n.pageY;s.stopPropagation(),e.on("mousemove.srcissors-resize touchmove.srcissors-resize",(function(e){var s,n,r=h(e),u=r.pageX,c=r.pageY;switch(i){case"top":case"bottom":n=c-a,"top"===i&&(n=-n),a=c;break;case"left":case"right":s=u-o,"left"===i&&(s=-s),o=u}t.parent.onResize({position:i,dx:s,dy:n})})).on("mouseup.srcissors-resize touchend.srcissors-resize",(function(){e.off("mouseup.srcissors-resize touchmove.srcissors-resize"),e.off("mousemove.srcissors-resize touchend.srcissors-resize"),t.parent.onResizeEnd({position:i})}))}}},{key:"responsiveArena",value:function(){}}])&&s(t.prototype,e),o&&s(t,o),i}()}])})); //# sourceMappingURL=srcissors.js.map \ No newline at end of file diff --git a/examples/srcissors.js.map b/examples/srcissors.js.map index 3a8aa14..8e58ae3 100644 --- a/examples/srcissors.js.map +++ b/examples/srcissors.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://srcissors/srcissors.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","Crop","new","_ref","arena","url","fixedWidth","fixedHeight","minWidth","minHeight","minRatio","maxRatio","maxArea","zoomStep","crop","actions","minResolution","surroundingImageOpacity","showSurroundingImage","view","find","preview","img","append","outline","length","undefined","allowedActions","pan","zoomOnDoubleClick","resize","resizeHorizontal","resizeVertical","extend","minViewWidth","minViewHeight","minViewRatio","maxViewRatio","_createForOfIteratorHelper","allowArrayLike","it","iterator","Array","isArray","minLen","_arrayLikeToArray","toString","slice","constructor","from","test","_unsupportedIterableToArray","F","done","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","_defineProperties","target","props","descriptor","configurable","writable","Preview","Events","instance","Constructor","_classCallCheck","this","onPreviewReady","loadingCssClass","panningCssClass","outlineCssClass","isPanning","initialCrop","loadEvent","Callbacks","changeEvent","initializeReadyState","zoomInStep","zoomOutStep","arenaWidth","width","arenaHeight","height","setSurroundingImageVisibility","onReady","opacity","setImage","protoProps","staticProps","isReady","readyEvent","empty","isInitialized","reset","addClass","visibility","parseFloat","css","imageWidth","imageHeight","zoomAllOut","_ref2","keepDimension","events","parent","imageRatio","imageResolution","minRatioForResolution","maxRatioForResolution","calcMaxMinDimensions","setViewDimensions","removeClass","center","setCrop","fire","_ref3","_this","x","y","factor","viewWidth","previewWidth","zoom","on","viewHeight","roundCrop","validateCrop","Math","round","ratio","_this2","enforceValidRatio","resizeFocusPoint","getFocusPoint","setRatio","data","newX","startX","dx","newY","startY","dy","_ref4","pageX","pageY","_this$view$0$getBound","getBoundingClientRect","viewX","left","viewY","top","zoomIn","_ref5","position","isResizing","includes","_ref6","focusPoint","_ref7","_this$enforceMaxArea","enforceMaxArea","_this$enforceViewDime","enforceViewDimensions","viewRatio","minZoomPixelWidth","sqrt","minZoomPixelHeight","maxImageWidth","maxImageHeight","fireChange","isWidthRestricting","params","_ref8","_this$enforceZoom","enforceZoom","setWidth","setHeight","focus","param","_param","percentX","percentY","_ref9","enforceXy","_ref10","_ref11","maxWidth","min","maxHeight","_ref12","_ref13","newHeight","newWidth","isValidRatio","_this$getRatioBox","getRatioBox","_this$centerAlign","centerAlign","_this$centerAlign2","_ref14","_ref15","areaWidth","areaHeight","array","_step","_iterator","number","callback","concat","add","remove","_this3","changeDispatch","setTimeout","getCrop","num","obj","image","previewXy","console","log","updateImageDimensions","show","attr","setBackgroundImage","bgImg","transform","html","x1","y1","getPageCoordinates","event","type","originalEvent","changedTouches","horizontal","vertical","doubleClickThreshold","doubleClick","resizeView","preventBrowserDragDrop","responsiveArena","$doc","document","e1","panData","preventDefault","e2","_getPageCoordinates","_getPageCoordinates2","prevPageX","prevPageY","onPan","off","onPanEnd","lastClick","now","Date","getTime","onDoubleClick","$template","positions","forEach","$handler","clone","getResizeMouseDown","_this4","_getPageCoordinates3","lastX","lastY","stopPropagation","_getPageCoordinates4","onResize","onResizeEnd"],"mappings":"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","file":"./srcissors.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://srcissors/srcissors.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","Crop","new","_ref","arena","url","fixedWidth","fixedHeight","minWidth","minHeight","minRatio","maxRatio","maxArea","originalSize","zoomStep","crop","actions","minResolution","surroundingImageOpacity","showSurroundingImage","view","find","preview","img","append","outline","length","undefined","allowedActions","pan","zoomOnDoubleClick","resize","resizeHorizontal","resizeVertical","extend","minViewWidth","minViewHeight","minViewRatio","maxViewRatio","_createForOfIteratorHelper","allowArrayLike","it","iterator","Array","isArray","minLen","_arrayLikeToArray","toString","slice","constructor","from","test","_unsupportedIterableToArray","F","done","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","_defineProperties","target","props","descriptor","configurable","writable","Preview","Events","instance","Constructor","_classCallCheck","this","onPreviewReady","loadingCssClass","panningCssClass","outlineCssClass","isPanning","initialCrop","loadEvent","Callbacks","changeEvent","initializeReadyState","zoomInStep","zoomOutStep","arenaWidth","width","arenaHeight","height","setSurroundingImageVisibility","onReady","opacity","setImage","protoProps","staticProps","isReady","readyEvent","empty","isInitialized","reset","addClass","visibility","parseFloat","css","imageWidth","imageHeight","zoomAllOut","previewImageSize","checkRatio","keepDimension","_ref2","updateImageDimensions","events","parent","imageRatio","imageResolution","minRatioForResolution","maxRatioForResolution","calcMaxMinDimensions","setViewDimensions","removeClass","center","setCrop","fire","_ref3","_this","x","y","factor","viewWidth","previewWidth","zoom","on","viewHeight","roundCrop","validateCrop","Math","round","ratio","_this2","enforceValidRatio","resizeFocusPoint","getFocusPoint","setRatio","data","newX","startX","dx","newY","startY","dy","_ref4","pageX","pageY","_this$view$0$getBound","getBoundingClientRect","viewX","left","viewY","top","zoomIn","_ref5","position","isResizing","includes","_ref6","focusPoint","_ref7","_this$enforceMaxArea","enforceMaxArea","_this$enforceViewDime","enforceViewDimensions","viewRatio","minZoomPixelWidth","sqrt","minZoomPixelHeight","maxImageWidth","maxImageHeight","fireChange","isWidthRestricting","params","_ref8","_this$enforceZoom","enforceZoom","setWidth","setHeight","focus","param","_param","percentX","percentY","_ref9","enforceXy","_ref10","_ref11","maxWidth","min","maxHeight","_ref12","_ref13","newHeight","newWidth","isValidRatio","_this$getRatioBox","getRatioBox","_this$centerAlign","centerAlign","_this$centerAlign2","_ref14","expectedRatio","actualRatio","percentageChange","abs","Error","concat","_ref15","areaWidth","areaHeight","array","_step","_iterator","number","callback","add","remove","_this3","changeDispatch","setTimeout","getCrop","num","obj","image","previewXy","console","log","show","attr","setBackgroundImage","bgImg","transform","html","x1","y1","getPageCoordinates","event","type","originalEvent","changedTouches","horizontal","vertical","doubleClickThreshold","doubleClick","resizeView","preventBrowserDragDrop","responsiveArena","$doc","document","e1","panData","preventDefault","e2","_getPageCoordinates","_getPageCoordinates2","prevPageX","prevPageY","onPan","off","onPanEnd","lastClick","now","Date","getTime","onDoubleClick","$template","positions","forEach","$handler","clone","getResizeMouseDown","_this4","_getPageCoordinates3","lastX","lastY","stopPropagation","_getPageCoordinates4","onResize","onResizeEnd"],"mappings":"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","file":"./srcissors.js","sourceRoot":""} \ No newline at end of file diff --git a/package.json b/package.json index 70a22c9..8583c14 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "test:ci": "karma start --single-run --browsers ChromeHeadlessNoSandbox", "test:watch": "karma start --no-single-run", "test:browsers": "karma start --browsers Chrome,Firefox,Safari,Electron", - "start": "webpack-dev-server --open --content-base examples", + "start": "webpack-dev-server -d --open --content-base examples", "build": "webpack && cp -R ./srcissors.* ./examples/" }, "files": [ @@ -36,6 +36,7 @@ "babel-loader": "^8.0.2", "chai": "^3.5.0", "electron": "^1.4.15", + "eslint": "^7.18.0", "jquery": "^3.1.1", "karma": "^1.4.1", "karma-chai": "^0.1.0", diff --git a/src/crop.js b/src/crop.js index 47bd9e4..2362694 100644 --- a/src/crop.js +++ b/src/crop.js @@ -5,7 +5,7 @@ const Events = require('./events') module.exports = class Crop { constructor ({ arena, view, img, outline, url, fixedWidth, fixedHeight, - minViewWidth, minViewHeight, minViewRatio, maxViewRatio, crop, + minViewWidth, minViewHeight, minViewRatio, maxViewRatio, originalSize, crop, zoomStep, maxArea, actions, minResolution, surroundingImageOpacity, showSurroundingImage }) { @@ -21,6 +21,7 @@ module.exports = class Crop { this.minViewHeight = minViewHeight this.minViewRatio = minViewRatio this.maxViewRatio = maxViewRatio + this.originalSize = originalSize this.actions = actions this.minResolution = minResolution this.surroundingImageOpacity = surroundingImageOpacity @@ -102,7 +103,13 @@ module.exports = class Crop { this.zoomAllOut() } - onPreviewReady ({width, height}) { + onPreviewReady (previewImageSize) { + this.checkRatio(previewImageSize) + const {width, height} = this.originalSize || previewImageSize + + // console.log(this.originalSize, previewImageSize, {width, height}) + this.preview.updateImageDimensions({width, height}) + let keepDimension if (!this.isInitialized) { this.events = new Events({ @@ -532,6 +539,18 @@ module.exports = class Crop { return {width, height} } + checkRatio (previewImageSize) { + if (this.originalSize) { + const expectedRatio = this.originalSize.width / this.originalSize.height + const actualRatio = previewImageSize.width / previewImageSize.height + const percentageChange = ((actualRatio - expectedRatio) / expectedRatio) * 100 + if (Math.abs(percentageChange) > 1) { + throw new Error(`srcissors: Displayed image has a different image ratio than the ` + + `one configured in 'originalRatio': ${expectedRatio} vs ${actualRatio}`) + } + } + } + // Calculations // ------------ // diff --git a/src/preview.js b/src/preview.js index 517dfb2..c8504a3 100644 --- a/src/preview.js +++ b/src/preview.js @@ -15,8 +15,7 @@ module.exports = class Preview { const height = this.img.height() this.ratio = width / height - this.updateImageDimensions({width, height}) - this.onReady({width: this.width, height: this.height}) + this.onReady({width, height}) this.img.show() }) } diff --git a/src/preview_css_zoom.js b/src/preview_css_zoom.js deleted file mode 100644 index 469e6d5..0000000 --- a/src/preview_css_zoom.js +++ /dev/null @@ -1,72 +0,0 @@ -module.exports = class Preview { - - constructor ({onReady, img, outline}) { - this.onReady = onReady - this.img = img - this.outline = outline - this.x = (this.y = 0) - this.width = (this.height = 0) - - this.img.on('load', () => { - this.updateImageDimensions() - - this.ratio = this.width / this.height - this.originalWidth = this.width - this.originalHeight = this.height - this.scaleFactor = 1 - - this.img.css({transformOrigin: '0 0 0'}) - if (this.outline) { this.outline.css({transformOrigin: '0 0 0'}) } - - this.onReady({width: this.width, height: this.height}) - this.img.show() - }) - } - - setImage ({url}) { - this.img.attr('src', url) - } - - setWidth (width) { - this.scale({width}) - } - - setHeight (height) { - this.scale({height}) - } - - scale ({width, height}) { - if (width) { - height = width / this.ratio - } else { - width = height * this.ratio - } - - this.scaleFactor = width / this.originalWidth - - this.transform(this.img) - this.transform(this.outline) - - this.width = width - this.height = height - } - - transform ($elem) { - if (!$elem) return - $elem.css({transform: `scale(${this.scaleFactor}) translate(-${this.x / this.scaleFactor}px, -${this.y / this.scaleFactor}px)`}) // eslint-disable-line max-len - } - - updateImageDimensions () { - this.width = this.img.width() - this.height = this.img.height() - if (this.outline) this.outline.css({width: `${this.width}px`, height: `${this.height}px`}) - } - - pan (x, y) { - this.x = x - this.y = y - this.transform(this.img) - this.transform(this.outline) - } -} - diff --git a/src/srcissors.js b/src/srcissors.js index 9b35f5e..19fc405 100644 --- a/src/srcissors.js +++ b/src/srcissors.js @@ -4,7 +4,7 @@ const Crop = require('./crop') module.exports = { new ({ arena, url, fixedWidth, fixedHeight, minWidth, minHeight, - minRatio, maxRatio, maxArea, zoomStep, crop, actions, minResolution, + minRatio, maxRatio, maxArea, originalSize, zoomStep, crop, actions, minResolution, surroundingImageOpacity, showSurroundingImage }) { arena = $(arena) @@ -46,6 +46,9 @@ module.exports = { minViewRatio: minRatio, // {Number} e.g. 1.5/2 maxViewRatio: maxRatio, // {Number} e.g. 2/1 maxArea, // {Number} 0.8 -> max 80% of arena area are covered by the preview + originalSize, // {Object} Original image size, can be used to display a downscaled + // version of the image in the cropping interface, but use the original + // size for crop attributes; e.g. {width: 4000, height: 3000} zoomStep, // {Number} e.g. 1.25 -> 125% actions: allowedActions, minResolution diff --git a/srcissors.js b/srcissors.js index 2fc156c..926e90a 100644 --- a/srcissors.js +++ b/srcissors.js @@ -1,2 +1,2 @@ -!function(i,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?exports.srcissors=t(require("jquery")):i.srcissors=t(i.jQuery)}(window,(function(i){return function(i){var t={};function e(s){if(t[s])return t[s].exports;var n=t[s]={i:s,l:!1,exports:{}};return i[s].call(n.exports,n,n.exports,e),n.l=!0,n.exports}return e.m=i,e.c=t,e.d=function(i,t,s){e.o(i,t)||Object.defineProperty(i,t,{enumerable:!0,get:s})},e.r=function(i){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},e.t=function(i,t){if(1&t&&(i=e(i)),8&t)return i;if(4&t&&"object"==typeof i&&i&&i.__esModule)return i;var s=Object.create(null);if(e.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:i}),2&t&&"string"!=typeof i)for(var n in i)e.d(s,n,function(t){return i[t]}.bind(null,n));return s},e.n=function(i){var t=i&&i.__esModule?function(){return i.default}:function(){return i};return e.d(t,"a",t),t},e.o=function(i,t){return Object.prototype.hasOwnProperty.call(i,t)},e.p="",e(e.s=1)}([function(t,e){t.exports=i},function(i,t,e){var s=e(0),n=e(2);i.exports={new:function(i){var t=i.arena,e=i.url,h=i.fixedWidth,o=i.fixedHeight,a=i.minWidth,r=i.minHeight,u=i.minRatio,c=i.maxRatio,l=i.maxArea,d=i.zoomStep,g=i.crop,v=i.actions,m=i.minResolution,w=i.surroundingImageOpacity,p=i.showSurroundingImage,f=(t=s(t)).find(".crop-view"),y=f.find(".crop-preview"),x=s("");y.append(x);var k=f.find(".crop-outline");k.length||(k=void 0);var R={pan:!0,zoomOnDoubleClick:!0,resize:!0,resizeHorizontal:!h,resizeVertical:!o};return s.extend(R,v),null==d&&(d=1.25),null==a&&(a=50),null==r&&(r=50),new n({url:e,crop:g,arena:t,view:f,img:x,outline:k,showSurroundingImage:p,surroundingImageOpacity:w,fixedWidth:h,fixedHeight:o,minViewWidth:a,minViewHeight:r,minViewRatio:u,maxViewRatio:c,maxArea:l,zoomStep:d,actions:R,minResolution:m})}}},function(i,t,e){function s(i,t){var e;if("undefined"==typeof Symbol||null==i[Symbol.iterator]){if(Array.isArray(i)||(e=function(i,t){if(!i)return;if("string"==typeof i)return n(i,t);var e=Object.prototype.toString.call(i).slice(8,-1);"Object"===e&&i.constructor&&(e=i.constructor.name);if("Map"===e||"Set"===e)return Array.from(i);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return n(i,t)}(i))||t&&i&&"number"==typeof i.length){e&&(i=e);var s=0,h=function(){};return{s:h,n:function(){return s>=i.length?{done:!0}:{done:!1,value:i[s++]}},e:function(i){throw i},f:h}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,r=!1;return{s:function(){e=i[Symbol.iterator]()},n:function(){var i=e.next();return a=i.done,i},e:function(i){r=!0,o=i},f:function(){try{a||null==e.return||e.return()}finally{if(r)throw o}}}}function n(i,t){(null==t||t>i.length)&&(t=i.length);for(var e=0,s=new Array(t);en&&delete this.minResolution,this.minResolution){var h=this.minResolution/(this.imageHeight*this.imageHeight);(!this.minViewRatio||this.minViewRatioo)&&(this.maxViewRatio=o)}this.calcMaxMinDimensions(),this.fixedWidth&&(t="width"),this.fixedHeight&&(t="height"),this.setViewDimensions({width:this.imageWidth,height:this.imageHeight,keepDimension:t}),this.isReady=!0,this.view.removeClass(this.loadingCssClass),this.isInitialized||null==this.initialCrop?(this.zoomAllOut(),this.center()):this.setCrop(this.initialCrop),this.isInitialized=!0,this.readyEvent.fire(),this.loadEvent.fire()}},{key:"setCrop",value:function(i){var t=this,e=i.x,s=i.y,n=i.width,h=i.height;if(this.isReady){this.resize({width:n,height:h});var o=this.viewWidth/n,a=this.imageWidth*o;this.zoom({width:a}),this.pan({x:e*o,y:s*o})}else this.on("ready",(function(){return t.setCrop({x:e,y:s,width:n,height:h})}))}},{key:"getCrop",value:function(){var i=this.preview.width/this.imageWidth,t={x:this.preview.x/i,y:this.preview.y/i,width:this.viewWidth/i,height:this.viewHeight/i};return this.roundCrop(t),this.validateCrop(t),t}},{key:"roundCrop",value:function(i){for(var t in i){var e=i[t];i[t]=Math.round(e)}}},{key:"validateCrop",value:function(i){var t=i.x,e=i.y,s=i.width,n=i.height;return t+s>this.imageWidth?i.width=this.imageWidth-t:e+n>this.imageHeight&&(i.height=this.imageHeight-e),i}},{key:"setRatio",value:function(i,t){var e,s,n=this;if(this.isReady)return i=this.enforceValidRatio(i),"height"===t?s=(e=this.viewHeight)*i:e=(s=this.viewWidth)/i,this.resizeFocusPoint=this.getFocusPoint(),this.resize({width:s,height:e});this.on("ready",(function(){return n.setRatio(i,t)}))}},{key:"onPan",value:function(i){this.isPanning||(this.isPanning=!0,this.arena.addClass(this.panningCssClass),this.outline.addClass(this.outlineCssClass));var t=i.startX-i.dx,e=i.startY-i.dy;this.pan({x:t,y:e})}},{key:"onPanEnd",value:function(){return this.isPanning=!1,this.arena.removeClass(this.panningCssClass),this.outline.removeClass(this.outlineCssClass)}},{key:"onDoubleClick",value:function(i){var t=i.pageX,e=i.pageY,s=this.view[0].getBoundingClientRect(),n=t-s.left,h=e-s.top;this.zoomIn({viewX:n,viewY:h})}},{key:"onResize",value:function(i){var t=i.position,e=i.dx,s=i.dy;this.isResizing||(this.isResizing=!0,this.resizeFocusPoint=this.getFocusPoint()),["top","bottom"].includes(t)?(s*=2,this.resize({width:this.viewWidth,height:this.viewHeight+s,keepDimension:"height"})):["left","right"].includes(t)&&(e*=2,this.resize({width:this.viewWidth+e,height:this.viewHeight,keepDimension:"width"}))}},{key:"onResizeEnd",value:function(){this.isResizing=!1,this.resizeFocusPoint=void 0}},{key:"resize",value:function(i){var t=i.width,e=i.height,s=i.keepDimension;this.setViewDimensions({width:t,height:e,keepDimension:s}),this.resizeFocusPoint&&(this.resizeFocusPoint.viewX=this.viewWidth/2,this.resizeFocusPoint.viewY=this.viewHeight/2),this.zoom({width:this.preview.width,height:this.preview.height,focusPoint:this.resizeFocusPoint})}},{key:"setViewDimensions",value:function(i){var t=i.width,e=i.height,s=i.keepDimension;if(this.maxArea){var n=this.enforceMaxArea({width:t,height:e,keepDimension:s});t=n.width,e=n.height}var h=this.enforceViewDimensions({width:t,height:e,keepDimension:s});if(t=h.width,e=h.height,this.view.css({width:t,height:e}),this.viewWidth=t,this.viewHeight=e,this.viewRatio=t/e,this.minResolution){var o=Math.sqrt(this.minResolution*this.viewRatio),a=Math.sqrt(this.minResolution/this.viewRatio);this.maxImageWidth=this.viewWidth/o*this.imageWidth,this.maxImageHeight=this.viewHeight/a*this.imageHeight}this.fireChange()}},{key:"zoomAllOut",value:function(){this.isWidthRestricting()?this.zoom({width:this.viewWidth}):this.zoom({height:this.viewHeight})}},{key:"zoomIn",value:function(i){null==i&&(i={}),this.isWidthRestricting()?i.width=this.preview.width*this.zoomInStep:i.height=this.preview.height*this.zoomInStep,this.zoom(i)}},{key:"zoomOut",value:function(i){null==i&&(i={}),this.isWidthRestricting()?i.width=this.preview.width*this.zoomOutStep:i.height=this.preview.height*this.zoomOutStep,this.zoom(i)}},{key:"zoom",value:function(i){var t=i.width,e=i.height,s=i.viewX,n=i.viewY,h=i.focusPoint;null==h&&(h=this.getFocusPoint({viewX:s,viewY:n}));var o=this.enforceZoom({width:t,height:e});t=o.width,e=o.height,null!=t?(this.preview.setWidth(t),this.fireChange()):null!=e&&(this.preview.setHeight(e),this.fireChange()),this.focus(h)}},{key:"getFocusPoint",value:function(i){null==i&&(i={});var t=i,e=t.viewX,s=t.viewY;null==e&&(e=this.viewWidth/2),null==s&&(s=this.viewHeight/2);var n=this.preview.x+e,h=this.preview.y+s;return{percentX:n/this.preview.width,percentY:h/this.preview.height,viewX:e,viewY:s}}},{key:"focus",value:function(i){var t=i.percentX,e=i.percentY,s=i.viewX,n=i.viewY,h=this.preview.width*t,o=this.preview.height*e;h-=s,o-=n,this.pan({x:h,y:o})}},{key:"center",value:function(){var i=(this.preview.width-this.viewWidth)/2,t=(this.preview.height-this.viewHeight)/2;this.pan({x:i,y:t})}},{key:"pan",value:function(i){i=this.enforceXy(i),this.preview.pan(i.x,i.y),this.fireChange()}},{key:"enforceXy",value:function(i){var t=i.x,e=i.y;return t<0?t=0:t>this.preview.width-this.viewWidth&&(t=this.preview.width-this.viewWidth),e<0?e=0:e>this.preview.height-this.viewHeight&&(e=this.preview.height-this.viewHeight),{x:t,y:e}}},{key:"enforceZoom",value:function(i){var t=i.width,e=i.height;return null!=t&&this.maxImageWidth&&t>this.maxImageWidth?{width:this.maxImageWidth}:null!=t&&tthis.maxImageHeight?{height:this.maxImageHeight}:null!=e&&ethis.maxWidth||ethis.maxHeight||sthis.maxViewRatio)}},{key:"isValidRatio",value:function(i){return!(ithis.maxViewRatio)}},{key:"enforceValidRatio",value:function(i){return ithis.maxViewRatio?this.maxViewRatio:i}},{key:"enforceViewDimensions",value:function(i){var t,e,s,n=i.width,h=i.height,o=i.keepDimension;if(nthis.maxWidth&&(e=this.maxWidth),hthis.maxHeight&&(t=this.maxHeight),o){if(e&&(n=e),t&&(h=t),s=n/h,!this.isValidRatio(s)){s=this.enforceValidRatio(s);var a=this.getRatioBox({ratio:s,width:n,height:h,keepDimension:o});if(n=a.width,h=a.height,n>this.arenaWidth||h>this.arenaHeight){var r=this.centerAlign(this.maxWidth,this.maxHeight,s);n=r.width,h=r.height}}}else if(e||t){s=this.enforceValidRatio(n/h);var u=this.centerAlign(this.maxWidth,this.maxHeight,s);n=u.width,h=u.height}return{width:n,height:h}}},{key:"enforceMaxArea",value:function(i){var t=i.width,e=i.height,s=i.keepDimension,n=t/e;return"width"===s?n=t/(e=this.maxArea/t):"height"===s?n=(t=this.maxArea/e)/e:e=(t=Math.sqrt(this.maxArea*n))/n,this.isValidRatio(n)||(n=this.enforceValidRatio(n),e=(t=Math.sqrt(this.maxArea*n))/n),{width:t,height:e}}},{key:"isWidthRestricting",value:function(){return this.viewRatio>=this.imageRatio}},{key:"getRatioBox",value:function(i){var t=i.ratio,e=i.width,s=i.height,n=i.keepDimension;return"width"===n||null==s?s=e/t:"height"===n||null==e?e=s*t:s=e/t,{width:e,height:s}}},{key:"centerAlign",value:function(i,t,e){var s,n,h,o;return i/t>e?h=(i-(n=t*e))/2:o=(t-(s=i/e))/2,{x:h||0,y:o||0,width:n||i,height:s||t}}},{key:"min",value:function(i){var t,e=i[0],n=s(i);try{for(n.s();!(t=n.n()).done;){var h=t.value;h0){var e=n("").css({opacity:this.opacity}).attr("src",t);this.outline.append(e)}}},{key:"reset",value:function(){this.url=void 0,this.x=this.y=0,this.width=this.height=0,this.img.attr("src",""),this.img.css({width:"",height:"",transform:""}),this.outline&&this.outline.css({transform:""}).html("")}},{key:"setWidth",value:function(i){this.img.css({width:"".concat(i,"px"),height:"auto"});var t=i/this.ratio;this.updateImageDimensions({width:i,height:t})}},{key:"setHeight",value:function(i){this.img.css({width:"auto",height:"".concat(i,"px")});var t=i*this.ratio;this.updateImageDimensions({width:t,height:i})}},{key:"updateImageDimensions",value:function(i){var t=i.width,e=i.height;this.width=t,this.height=e,this.outline&&this.outline.css({width:"".concat(this.width,"px"),height:"".concat(this.height,"px")})}},{key:"pan",value:function(i,t){this.x=i,this.y=t;var e=Math.round(this.x),s=Math.round(this.y);this.img.css({transform:"translate(-".concat(e,"px, -").concat(s,"px)")}),this.outline&&this.outline.css({transform:"translate(-".concat(e,"px, -").concat(s,"px)")})}}])&&s(t.prototype,e),h&&s(t,h),i}()},function(i,t,e){function s(i,t){for(var e=0;es-t.doubleClickThreshold&&t.parent.onDoubleClick(h(e)),i=s}))}},{key:"preventBrowserDragDrop",value:function(){this.view.on("dragstart.srcissors",(function(){return!1}))}},{key:"resizeView",value:function(i){var t=this,e=i.horizontal,s=i.vertical,h=n("
");h.addClass("resize-handler");var o=[];e&&(o=o.concat(["right","left"])),s&&(o=o.concat(["top","bottom"])),o.forEach((function(i){var e=h.clone();e.addClass("resize-handler-".concat(i)),e.on("mousedown.srcissors touchstart.srcissors",t.getResizeMouseDown(i)),t.view.append(e)}))}},{key:"getResizeMouseDown",value:function(i){var t=this,e=n(document);return function(s){var n=h(s),o=n.pageX,a=n.pageY;s.stopPropagation(),e.on("mousemove.srcissors-resize touchmove.srcissors-resize",(function(e){var s,n,r=h(e),u=r.pageX,c=r.pageY;switch(i){case"top":case"bottom":n=c-a,"top"===i&&(n=-n),a=c;break;case"left":case"right":s=u-o,"left"===i&&(s=-s),o=u}t.parent.onResize({position:i,dx:s,dy:n})})).on("mouseup.srcissors-resize touchend.srcissors-resize",(function(){e.off("mouseup.srcissors-resize touchmove.srcissors-resize"),e.off("mousemove.srcissors-resize touchend.srcissors-resize"),t.parent.onResizeEnd({position:i})}))}}},{key:"responsiveArena",value:function(){}}])&&s(t.prototype,e),o&&s(t,o),i}()}])})); +!function(i,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("jquery")):"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof exports?exports.srcissors=t(require("jquery")):i.srcissors=t(i.jQuery)}(window,(function(i){return function(i){var t={};function e(s){if(t[s])return t[s].exports;var n=t[s]={i:s,l:!1,exports:{}};return i[s].call(n.exports,n,n.exports,e),n.l=!0,n.exports}return e.m=i,e.c=t,e.d=function(i,t,s){e.o(i,t)||Object.defineProperty(i,t,{enumerable:!0,get:s})},e.r=function(i){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},e.t=function(i,t){if(1&t&&(i=e(i)),8&t)return i;if(4&t&&"object"==typeof i&&i&&i.__esModule)return i;var s=Object.create(null);if(e.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:i}),2&t&&"string"!=typeof i)for(var n in i)e.d(s,n,function(t){return i[t]}.bind(null,n));return s},e.n=function(i){var t=i&&i.__esModule?function(){return i.default}:function(){return i};return e.d(t,"a",t),t},e.o=function(i,t){return Object.prototype.hasOwnProperty.call(i,t)},e.p="",e(e.s=1)}([function(t,e){t.exports=i},function(i,t,e){var s=e(0),n=e(2);i.exports={new:function(i){var t=i.arena,e=i.url,h=i.fixedWidth,o=i.fixedHeight,a=i.minWidth,r=i.minHeight,u=i.minRatio,c=i.maxRatio,l=i.maxArea,g=i.originalSize,d=i.zoomStep,v=i.crop,m=i.actions,w=i.minResolution,p=i.surroundingImageOpacity,f=i.showSurroundingImage,y=(t=s(t)).find(".crop-view"),x=y.find(".crop-preview"),k=s("");x.append(k);var R=y.find(".crop-outline");R.length||(R=void 0);var z={pan:!0,zoomOnDoubleClick:!0,resize:!0,resizeHorizontal:!h,resizeVertical:!o};return s.extend(z,m),null==d&&(d=1.25),null==a&&(a=50),null==r&&(r=50),new n({url:e,crop:v,arena:t,view:y,img:k,outline:R,showSurroundingImage:f,surroundingImageOpacity:p,fixedWidth:h,fixedHeight:o,minViewWidth:a,minViewHeight:r,minViewRatio:u,maxViewRatio:c,maxArea:l,originalSize:g,zoomStep:d,actions:z,minResolution:w})}}},function(i,t,e){function s(i,t){var e;if("undefined"==typeof Symbol||null==i[Symbol.iterator]){if(Array.isArray(i)||(e=function(i,t){if(!i)return;if("string"==typeof i)return n(i,t);var e=Object.prototype.toString.call(i).slice(8,-1);"Object"===e&&i.constructor&&(e=i.constructor.name);if("Map"===e||"Set"===e)return Array.from(i);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return n(i,t)}(i))||t&&i&&"number"==typeof i.length){e&&(i=e);var s=0,h=function(){};return{s:h,n:function(){return s>=i.length?{done:!0}:{done:!1,value:i[s++]}},e:function(i){throw i},f:h}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,r=!1;return{s:function(){e=i[Symbol.iterator]()},n:function(){var i=e.next();return a=i.done,i},e:function(i){r=!0,o=i},f:function(){try{a||null==e.return||e.return()}finally{if(r)throw o}}}}function n(i,t){(null==t||t>i.length)&&(t=i.length);for(var e=0,s=new Array(t);eh&&delete this.minResolution,this.minResolution){var o=this.minResolution/(this.imageHeight*this.imageHeight);(!this.minViewRatio||this.minViewRatioa)&&(this.maxViewRatio=a)}this.calcMaxMinDimensions(),this.fixedWidth&&(t="width"),this.fixedHeight&&(t="height"),this.setViewDimensions({width:this.imageWidth,height:this.imageHeight,keepDimension:t}),this.isReady=!0,this.view.removeClass(this.loadingCssClass),this.isInitialized||null==this.initialCrop?(this.zoomAllOut(),this.center()):this.setCrop(this.initialCrop),this.isInitialized=!0,this.readyEvent.fire(),this.loadEvent.fire()}},{key:"setCrop",value:function(i){var t=this,e=i.x,s=i.y,n=i.width,h=i.height;if(this.isReady){this.resize({width:n,height:h});var o=this.viewWidth/n,a=this.imageWidth*o;this.zoom({width:a}),this.pan({x:e*o,y:s*o})}else this.on("ready",(function(){return t.setCrop({x:e,y:s,width:n,height:h})}))}},{key:"getCrop",value:function(){var i=this.preview.width/this.imageWidth,t={x:this.preview.x/i,y:this.preview.y/i,width:this.viewWidth/i,height:this.viewHeight/i};return this.roundCrop(t),this.validateCrop(t),t}},{key:"roundCrop",value:function(i){for(var t in i){var e=i[t];i[t]=Math.round(e)}}},{key:"validateCrop",value:function(i){var t=i.x,e=i.y,s=i.width,n=i.height;return t+s>this.imageWidth?i.width=this.imageWidth-t:e+n>this.imageHeight&&(i.height=this.imageHeight-e),i}},{key:"setRatio",value:function(i,t){var e,s,n=this;if(this.isReady)return i=this.enforceValidRatio(i),"height"===t?s=(e=this.viewHeight)*i:e=(s=this.viewWidth)/i,this.resizeFocusPoint=this.getFocusPoint(),this.resize({width:s,height:e});this.on("ready",(function(){return n.setRatio(i,t)}))}},{key:"onPan",value:function(i){this.isPanning||(this.isPanning=!0,this.arena.addClass(this.panningCssClass),this.outline.addClass(this.outlineCssClass));var t=i.startX-i.dx,e=i.startY-i.dy;this.pan({x:t,y:e})}},{key:"onPanEnd",value:function(){return this.isPanning=!1,this.arena.removeClass(this.panningCssClass),this.outline.removeClass(this.outlineCssClass)}},{key:"onDoubleClick",value:function(i){var t=i.pageX,e=i.pageY,s=this.view[0].getBoundingClientRect(),n=t-s.left,h=e-s.top;this.zoomIn({viewX:n,viewY:h})}},{key:"onResize",value:function(i){var t=i.position,e=i.dx,s=i.dy;this.isResizing||(this.isResizing=!0,this.resizeFocusPoint=this.getFocusPoint()),["top","bottom"].includes(t)?(s*=2,this.resize({width:this.viewWidth,height:this.viewHeight+s,keepDimension:"height"})):["left","right"].includes(t)&&(e*=2,this.resize({width:this.viewWidth+e,height:this.viewHeight,keepDimension:"width"}))}},{key:"onResizeEnd",value:function(){this.isResizing=!1,this.resizeFocusPoint=void 0}},{key:"resize",value:function(i){var t=i.width,e=i.height,s=i.keepDimension;this.setViewDimensions({width:t,height:e,keepDimension:s}),this.resizeFocusPoint&&(this.resizeFocusPoint.viewX=this.viewWidth/2,this.resizeFocusPoint.viewY=this.viewHeight/2),this.zoom({width:this.preview.width,height:this.preview.height,focusPoint:this.resizeFocusPoint})}},{key:"setViewDimensions",value:function(i){var t=i.width,e=i.height,s=i.keepDimension;if(this.maxArea){var n=this.enforceMaxArea({width:t,height:e,keepDimension:s});t=n.width,e=n.height}var h=this.enforceViewDimensions({width:t,height:e,keepDimension:s});if(t=h.width,e=h.height,this.view.css({width:t,height:e}),this.viewWidth=t,this.viewHeight=e,this.viewRatio=t/e,this.minResolution){var o=Math.sqrt(this.minResolution*this.viewRatio),a=Math.sqrt(this.minResolution/this.viewRatio);this.maxImageWidth=this.viewWidth/o*this.imageWidth,this.maxImageHeight=this.viewHeight/a*this.imageHeight}this.fireChange()}},{key:"zoomAllOut",value:function(){this.isWidthRestricting()?this.zoom({width:this.viewWidth}):this.zoom({height:this.viewHeight})}},{key:"zoomIn",value:function(i){null==i&&(i={}),this.isWidthRestricting()?i.width=this.preview.width*this.zoomInStep:i.height=this.preview.height*this.zoomInStep,this.zoom(i)}},{key:"zoomOut",value:function(i){null==i&&(i={}),this.isWidthRestricting()?i.width=this.preview.width*this.zoomOutStep:i.height=this.preview.height*this.zoomOutStep,this.zoom(i)}},{key:"zoom",value:function(i){var t=i.width,e=i.height,s=i.viewX,n=i.viewY,h=i.focusPoint;null==h&&(h=this.getFocusPoint({viewX:s,viewY:n}));var o=this.enforceZoom({width:t,height:e});t=o.width,e=o.height,null!=t?(this.preview.setWidth(t),this.fireChange()):null!=e&&(this.preview.setHeight(e),this.fireChange()),this.focus(h)}},{key:"getFocusPoint",value:function(i){null==i&&(i={});var t=i,e=t.viewX,s=t.viewY;null==e&&(e=this.viewWidth/2),null==s&&(s=this.viewHeight/2);var n=this.preview.x+e,h=this.preview.y+s;return{percentX:n/this.preview.width,percentY:h/this.preview.height,viewX:e,viewY:s}}},{key:"focus",value:function(i){var t=i.percentX,e=i.percentY,s=i.viewX,n=i.viewY,h=this.preview.width*t,o=this.preview.height*e;h-=s,o-=n,this.pan({x:h,y:o})}},{key:"center",value:function(){var i=(this.preview.width-this.viewWidth)/2,t=(this.preview.height-this.viewHeight)/2;this.pan({x:i,y:t})}},{key:"pan",value:function(i){i=this.enforceXy(i),this.preview.pan(i.x,i.y),this.fireChange()}},{key:"enforceXy",value:function(i){var t=i.x,e=i.y;return t<0?t=0:t>this.preview.width-this.viewWidth&&(t=this.preview.width-this.viewWidth),e<0?e=0:e>this.preview.height-this.viewHeight&&(e=this.preview.height-this.viewHeight),{x:t,y:e}}},{key:"enforceZoom",value:function(i){var t=i.width,e=i.height;return null!=t&&this.maxImageWidth&&t>this.maxImageWidth?{width:this.maxImageWidth}:null!=t&&tthis.maxImageHeight?{height:this.maxImageHeight}:null!=e&&ethis.maxWidth||ethis.maxHeight||sthis.maxViewRatio)}},{key:"isValidRatio",value:function(i){return!(ithis.maxViewRatio)}},{key:"enforceValidRatio",value:function(i){return ithis.maxViewRatio?this.maxViewRatio:i}},{key:"enforceViewDimensions",value:function(i){var t,e,s,n=i.width,h=i.height,o=i.keepDimension;if(nthis.maxWidth&&(e=this.maxWidth),hthis.maxHeight&&(t=this.maxHeight),o){if(e&&(n=e),t&&(h=t),s=n/h,!this.isValidRatio(s)){s=this.enforceValidRatio(s);var a=this.getRatioBox({ratio:s,width:n,height:h,keepDimension:o});if(n=a.width,h=a.height,n>this.arenaWidth||h>this.arenaHeight){var r=this.centerAlign(this.maxWidth,this.maxHeight,s);n=r.width,h=r.height}}}else if(e||t){s=this.enforceValidRatio(n/h);var u=this.centerAlign(this.maxWidth,this.maxHeight,s);n=u.width,h=u.height}return{width:n,height:h}}},{key:"enforceMaxArea",value:function(i){var t=i.width,e=i.height,s=i.keepDimension,n=t/e;return"width"===s?n=t/(e=this.maxArea/t):"height"===s?n=(t=this.maxArea/e)/e:e=(t=Math.sqrt(this.maxArea*n))/n,this.isValidRatio(n)||(n=this.enforceValidRatio(n),e=(t=Math.sqrt(this.maxArea*n))/n),{width:t,height:e}}},{key:"checkRatio",value:function(i){if(this.originalSize){var t=this.originalSize.width/this.originalSize.height,e=i.width/i.height,s=(e-t)/t*100;if(Math.abs(s)>1)throw new Error("srcissors: Displayed image has a different image ratio than the "+"one configured in 'originalRatio': ".concat(t," vs ").concat(e))}}},{key:"isWidthRestricting",value:function(){return this.viewRatio>=this.imageRatio}},{key:"getRatioBox",value:function(i){var t=i.ratio,e=i.width,s=i.height,n=i.keepDimension;return"width"===n||null==s?s=e/t:"height"===n||null==e?e=s*t:s=e/t,{width:e,height:s}}},{key:"centerAlign",value:function(i,t,e){var s,n,h,o;return i/t>e?h=(i-(n=t*e))/2:o=(t-(s=i/e))/2,{x:h||0,y:o||0,width:n||i,height:s||t}}},{key:"min",value:function(i){var t,e=i[0],n=s(i);try{for(n.s();!(t=n.n()).done;){var h=t.value;h0){var e=n("").css({opacity:this.opacity}).attr("src",t);this.outline.append(e)}}},{key:"reset",value:function(){this.url=void 0,this.x=this.y=0,this.width=this.height=0,this.img.attr("src",""),this.img.css({width:"",height:"",transform:""}),this.outline&&this.outline.css({transform:""}).html("")}},{key:"setWidth",value:function(i){this.img.css({width:"".concat(i,"px"),height:"auto"});var t=i/this.ratio;this.updateImageDimensions({width:i,height:t})}},{key:"setHeight",value:function(i){this.img.css({width:"auto",height:"".concat(i,"px")});var t=i*this.ratio;this.updateImageDimensions({width:t,height:i})}},{key:"updateImageDimensions",value:function(i){var t=i.width,e=i.height;this.width=t,this.height=e,this.outline&&this.outline.css({width:"".concat(this.width,"px"),height:"".concat(this.height,"px")})}},{key:"pan",value:function(i,t){this.x=i,this.y=t;var e=Math.round(this.x),s=Math.round(this.y);this.img.css({transform:"translate(-".concat(e,"px, -").concat(s,"px)")}),this.outline&&this.outline.css({transform:"translate(-".concat(e,"px, -").concat(s,"px)")})}}])&&s(t.prototype,e),h&&s(t,h),i}()},function(i,t,e){function s(i,t){for(var e=0;es-t.doubleClickThreshold&&t.parent.onDoubleClick(h(e)),i=s}))}},{key:"preventBrowserDragDrop",value:function(){this.view.on("dragstart.srcissors",(function(){return!1}))}},{key:"resizeView",value:function(i){var t=this,e=i.horizontal,s=i.vertical,h=n("
");h.addClass("resize-handler");var o=[];e&&(o=o.concat(["right","left"])),s&&(o=o.concat(["top","bottom"])),o.forEach((function(i){var e=h.clone();e.addClass("resize-handler-".concat(i)),e.on("mousedown.srcissors touchstart.srcissors",t.getResizeMouseDown(i)),t.view.append(e)}))}},{key:"getResizeMouseDown",value:function(i){var t=this,e=n(document);return function(s){var n=h(s),o=n.pageX,a=n.pageY;s.stopPropagation(),e.on("mousemove.srcissors-resize touchmove.srcissors-resize",(function(e){var s,n,r=h(e),u=r.pageX,c=r.pageY;switch(i){case"top":case"bottom":n=c-a,"top"===i&&(n=-n),a=c;break;case"left":case"right":s=u-o,"left"===i&&(s=-s),o=u}t.parent.onResize({position:i,dx:s,dy:n})})).on("mouseup.srcissors-resize touchend.srcissors-resize",(function(){e.off("mouseup.srcissors-resize touchmove.srcissors-resize"),e.off("mousemove.srcissors-resize touchend.srcissors-resize"),t.parent.onResizeEnd({position:i})}))}}},{key:"responsiveArena",value:function(){}}])&&s(t.prototype,e),o&&s(t,o),i}()}])})); //# sourceMappingURL=srcissors.js.map \ No newline at end of file diff --git a/srcissors.js.map b/srcissors.js.map index 3a8aa14..8e58ae3 100644 --- a/srcissors.js.map +++ b/srcissors.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://srcissors/srcissors.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","Crop","new","_ref","arena","url","fixedWidth","fixedHeight","minWidth","minHeight","minRatio","maxRatio","maxArea","zoomStep","crop","actions","minResolution","surroundingImageOpacity","showSurroundingImage","view","find","preview","img","append","outline","length","undefined","allowedActions","pan","zoomOnDoubleClick","resize","resizeHorizontal","resizeVertical","extend","minViewWidth","minViewHeight","minViewRatio","maxViewRatio","_createForOfIteratorHelper","allowArrayLike","it","iterator","Array","isArray","minLen","_arrayLikeToArray","toString","slice","constructor","from","test","_unsupportedIterableToArray","F","done","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","_defineProperties","target","props","descriptor","configurable","writable","Preview","Events","instance","Constructor","_classCallCheck","this","onPreviewReady","loadingCssClass","panningCssClass","outlineCssClass","isPanning","initialCrop","loadEvent","Callbacks","changeEvent","initializeReadyState","zoomInStep","zoomOutStep","arenaWidth","width","arenaHeight","height","setSurroundingImageVisibility","onReady","opacity","setImage","protoProps","staticProps","isReady","readyEvent","empty","isInitialized","reset","addClass","visibility","parseFloat","css","imageWidth","imageHeight","zoomAllOut","_ref2","keepDimension","events","parent","imageRatio","imageResolution","minRatioForResolution","maxRatioForResolution","calcMaxMinDimensions","setViewDimensions","removeClass","center","setCrop","fire","_ref3","_this","x","y","factor","viewWidth","previewWidth","zoom","on","viewHeight","roundCrop","validateCrop","Math","round","ratio","_this2","enforceValidRatio","resizeFocusPoint","getFocusPoint","setRatio","data","newX","startX","dx","newY","startY","dy","_ref4","pageX","pageY","_this$view$0$getBound","getBoundingClientRect","viewX","left","viewY","top","zoomIn","_ref5","position","isResizing","includes","_ref6","focusPoint","_ref7","_this$enforceMaxArea","enforceMaxArea","_this$enforceViewDime","enforceViewDimensions","viewRatio","minZoomPixelWidth","sqrt","minZoomPixelHeight","maxImageWidth","maxImageHeight","fireChange","isWidthRestricting","params","_ref8","_this$enforceZoom","enforceZoom","setWidth","setHeight","focus","param","_param","percentX","percentY","_ref9","enforceXy","_ref10","_ref11","maxWidth","min","maxHeight","_ref12","_ref13","newHeight","newWidth","isValidRatio","_this$getRatioBox","getRatioBox","_this$centerAlign","centerAlign","_this$centerAlign2","_ref14","_ref15","areaWidth","areaHeight","array","_step","_iterator","number","callback","concat","add","remove","_this3","changeDispatch","setTimeout","getCrop","num","obj","image","previewXy","console","log","updateImageDimensions","show","attr","setBackgroundImage","bgImg","transform","html","x1","y1","getPageCoordinates","event","type","originalEvent","changedTouches","horizontal","vertical","doubleClickThreshold","doubleClick","resizeView","preventBrowserDragDrop","responsiveArena","$doc","document","e1","panData","preventDefault","e2","_getPageCoordinates","_getPageCoordinates2","prevPageX","prevPageY","onPan","off","onPanEnd","lastClick","now","Date","getTime","onDoubleClick","$template","positions","forEach","$handler","clone","getResizeMouseDown","_this4","_getPageCoordinates3","lastX","lastY","stopPropagation","_getPageCoordinates4","onResize","onResizeEnd"],"mappings":"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","file":"./srcissors.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://srcissors/srcissors.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","modules","installedModules","__webpack_require__","moduleId","i","l","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","Crop","new","_ref","arena","url","fixedWidth","fixedHeight","minWidth","minHeight","minRatio","maxRatio","maxArea","originalSize","zoomStep","crop","actions","minResolution","surroundingImageOpacity","showSurroundingImage","view","find","preview","img","append","outline","length","undefined","allowedActions","pan","zoomOnDoubleClick","resize","resizeHorizontal","resizeVertical","extend","minViewWidth","minViewHeight","minViewRatio","maxViewRatio","_createForOfIteratorHelper","allowArrayLike","it","iterator","Array","isArray","minLen","_arrayLikeToArray","toString","slice","constructor","from","test","_unsupportedIterableToArray","F","done","e","_e","f","TypeError","err","normalCompletion","didErr","step","next","_e2","return","arr","len","arr2","_defineProperties","target","props","descriptor","configurable","writable","Preview","Events","instance","Constructor","_classCallCheck","this","onPreviewReady","loadingCssClass","panningCssClass","outlineCssClass","isPanning","initialCrop","loadEvent","Callbacks","changeEvent","initializeReadyState","zoomInStep","zoomOutStep","arenaWidth","width","arenaHeight","height","setSurroundingImageVisibility","onReady","opacity","setImage","protoProps","staticProps","isReady","readyEvent","empty","isInitialized","reset","addClass","visibility","parseFloat","css","imageWidth","imageHeight","zoomAllOut","previewImageSize","checkRatio","keepDimension","_ref2","updateImageDimensions","events","parent","imageRatio","imageResolution","minRatioForResolution","maxRatioForResolution","calcMaxMinDimensions","setViewDimensions","removeClass","center","setCrop","fire","_ref3","_this","x","y","factor","viewWidth","previewWidth","zoom","on","viewHeight","roundCrop","validateCrop","Math","round","ratio","_this2","enforceValidRatio","resizeFocusPoint","getFocusPoint","setRatio","data","newX","startX","dx","newY","startY","dy","_ref4","pageX","pageY","_this$view$0$getBound","getBoundingClientRect","viewX","left","viewY","top","zoomIn","_ref5","position","isResizing","includes","_ref6","focusPoint","_ref7","_this$enforceMaxArea","enforceMaxArea","_this$enforceViewDime","enforceViewDimensions","viewRatio","minZoomPixelWidth","sqrt","minZoomPixelHeight","maxImageWidth","maxImageHeight","fireChange","isWidthRestricting","params","_ref8","_this$enforceZoom","enforceZoom","setWidth","setHeight","focus","param","_param","percentX","percentY","_ref9","enforceXy","_ref10","_ref11","maxWidth","min","maxHeight","_ref12","_ref13","newHeight","newWidth","isValidRatio","_this$getRatioBox","getRatioBox","_this$centerAlign","centerAlign","_this$centerAlign2","_ref14","expectedRatio","actualRatio","percentageChange","abs","Error","concat","_ref15","areaWidth","areaHeight","array","_step","_iterator","number","callback","add","remove","_this3","changeDispatch","setTimeout","getCrop","num","obj","image","previewXy","console","log","show","attr","setBackgroundImage","bgImg","transform","html","x1","y1","getPageCoordinates","event","type","originalEvent","changedTouches","horizontal","vertical","doubleClickThreshold","doubleClick","resizeView","preventBrowserDragDrop","responsiveArena","$doc","document","e1","panData","preventDefault","e2","_getPageCoordinates","_getPageCoordinates2","prevPageX","prevPageY","onPan","off","onPanEnd","lastClick","now","Date","getTime","onDoubleClick","$template","positions","forEach","$handler","clone","getResizeMouseDown","_this4","_getPageCoordinates3","lastX","lastY","stopPropagation","_getPageCoordinates4","onResize","onResizeEnd"],"mappings":"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","file":"./srcissors.js","sourceRoot":""} \ No newline at end of file diff --git a/test/specs/srcissors_spec.js b/test/specs/srcissors_spec.js index a25de44..b778e7f 100644 --- a/test/specs/srcissors_spec.js +++ b/test/specs/srcissors_spec.js @@ -320,4 +320,57 @@ describe('srcissors', function () { expect(outline.get(0).style.opacity).to.equal('0') }) }) + + describe('with 4000x3000 originalSize', function () { + + beforeEach(function (done) { + this.arena = $(template) + this.arena.css({width: 100, height: 100}) + $(document.body).append(this.arena) + + // Crop a 400x300 image with 4000x3000 originalSize + this.crop = srcissors.new({ + arena: this.arena, + originalSize: {width: 4000, height: 3000}, + url: '/base/test/images/diagonal.jpg' + }) + this.crop.on('ready', done) + }) + + afterEach(function () { + this.arena.remove() + }) + + it('has initialized the image correctly', function () { + expect(this.crop.imageWidth).to.equal(4000) + expect(this.crop.imageHeight).to.equal(3000) + }) + + it('fires a change event after ready', function (done) { + this.crop.on('change', function (crop) { + expect(crop).to.deep.equal({ + x: 0, + y: 0, + width: 4000, + height: 3000 + }) + + done() + }) + }) + + it('scales crop coordinates on zoom', function (done) { + this.crop.zoomIn() + this.crop.on('change', function (crop) { + expect(crop).to.deep.equal({ + x: 400, + y: 300, + width: 3200, + height: 2400 + }) + + done() + }) + }) + }) })