/*! For license information please see 643.b17de642.js.LICENSE.txt */ (self.webpackChunkdjango_vue_lyadmin_pro=self.webpackChunkdjango_vue_lyadmin_pro||[]).push([[643],{ /***/65643: /***/function(t){ /*! * Cropper.js v1.6.2 * https://fengyuanchen.github.io/cropperjs * * Copyright 2015-present Chen Fengyuan * Released under the MIT license * * Date: 2024-04-21T07:43:05.335Z */ t.exports=function(){"use strict";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;it.length)&&(e=t.length);for(var i=0,a=new Array(e);i0&&t<1/0}; /** * Check if the given value is undefined. * @param {*} value - The value to check. * @returns {boolean} Returns `true` if the given value is undefined, else `false`. */function vt(t){return void 0===t} /** * Check if the given value is an object. * @param {*} value - The value to check. * @returns {boolean} Returns `true` if the given value is an object, else `false`. */function wt(t){return"object"===n(t)&&null!==t}var bt=Object.prototype.hasOwnProperty; /** * Check if the given value is a plain object. * @param {*} value - The value to check. * @returns {boolean} Returns `true` if the given value is a plain object, else `false`. */function yt(t){if(!wt(t))return!1;try{var e=t.constructor,i=e.prototype;return e&&i&&bt.call(i,"isPrototypeOf")}catch(t){return!1}} /** * Check if the given value is a function. * @param {*} value - The value to check. * @returns {boolean} Returns `true` if the given value is a function, else `false`. */function xt(t){return"function"==typeof t}var Mt=Array.prototype.slice; /** * Convert array-like or iterable object to an array. * @param {*} value - The value to convert. * @returns {Array} Returns a new array. */function Ct(t){return Array.from?Array.from(t):Mt.call(t)} /** * Iterate the given data. * @param {*} data - The data to iterate. * @param {Function} callback - The process function for each element. * @returns {*} The original data. */function Dt(t,e){return t&&xt(e)&&(Array.isArray(t)||gt(t.length)/* array-like */?Ct(t).forEach((function(i,a){e.call(t,i,a,t)})):wt(t)&&Object.keys(t).forEach((function(i){e.call(t,t[i],i,t)}))),t} /** * Extend the given object. * @param {*} target - The target object to extend. * @param {*} args - The rest objects for merging to the target object. * @returns {Object} The extended object. */var kt=Object.assign||function(t){for(var e=arguments.length,i=new Array(e>1?e-1:0),a=1;a0&&i.forEach((function(e){wt(e)&&Object.keys(e).forEach((function(i){t[i]=e[i]}))})),t},Bt=/\.\d*(?:0|9){12}\d*$/; /** * Normalize decimal number. * Check out {@link https://0.30000000000000004.com/} * @param {number} value - The value to normalize. * @param {number} [times=100000000000] - The times for normalizing. * @returns {number} Returns the normalized number. */ function Ot(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1e11;return Bt.test(t)?Math.round(t*e)/e:t}var Tt=/^width|height|left|top|marginLeft|marginTop$/; /** * Apply styles to the given element. * @param {Element} element - The target element. * @param {Object} styles - The styles for applying. */function Et(t,e){var i=t.style;Dt(e,(function(t,e){Tt.test(e)&>(t)&&(t="".concat(t,"px")),i[e]=t}))} /** * Check if the given element has a special class. * @param {Element} element - The element to check. * @param {string} value - The class to search. * @returns {boolean} Returns `true` if the special class was found. */function Wt(t,e){return t.classList?t.classList.contains(e):t.className.indexOf(e)>-1} /** * Add classes to the given element. * @param {Element} element - The target element. * @param {string} value - The classes to be added. */function Ht(t,e){if(e)if(gt(t.length))Dt(t,(function(t){Ht(t,e)}));else if(t.classList)t.classList.add(e);else{var i=t.className.trim();i?i.indexOf(e)<0&&(t.className="".concat(i," ").concat(e)):t.className=e}} /** * Remove classes from the given element. * @param {Element} element - The target element. * @param {string} value - The classes to be removed. */function Nt(t,e){e&&(gt(t.length)?Dt(t,(function(t){Nt(t,e)})):t.classList?t.classList.remove(e):t.className.indexOf(e)>=0&&(t.className=t.className.replace(e,"")))} /** * Add or remove classes from the given element. * @param {Element} element - The target element. * @param {string} value - The classes to be toggled. * @param {boolean} added - Add only. */function Lt(t,e,i){e&&(gt(t.length)?Dt(t,(function(t){Lt(t,e,i)})): // IE10-11 doesn't support the second parameter of `classList.toggle` i?Ht(t,e):Nt(t,e))}var zt=/([a-z\d])([A-Z])/g; /** * Transform the given string from camelCase to kebab-case * @param {string} value - The value to transform. * @returns {string} The transformed value. */function Yt(t){return t.replace(zt,"$1-$2").toLowerCase()} /** * Get data from the given element. * @param {Element} element - The target element. * @param {string} name - The data key to get. * @returns {string} The data value. */function Xt(t,e){return wt(t[e])?t[e]:t.dataset?t.dataset[e]:t.getAttribute("data-".concat(Yt(e)))} /** * Set data to the given element. * @param {Element} element - The target element. * @param {string} name - The data key to set. * @param {string} data - The data value. */function Rt(t,e,i){wt(i)?t[e]=i:t.dataset?t.dataset[e]=i:t.setAttribute("data-".concat(Yt(e)),i)} /** * Remove data from the given element. * @param {Element} element - The target element. * @param {string} name - The data key to remove. */function St(t,e){if(wt(t[e]))try{delete t[e]}catch(i){t[e]=void 0}else if(t.dataset) // #128 Safari not allows to delete dataset property try{delete t.dataset[e]}catch(i){t.dataset[e]=void 0}else t.removeAttribute("data-".concat(Yt(e)))}var jt=/\s\s*/,At=function(){var t=!1;if(g){var e=!1,i=function(){},a=Object.defineProperty({},"once",{get:function(){return t=!0,e}, /** * This setter can fix a `TypeError` in strict mode * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only} * @param {boolean} value - The value to set */ set:function(t){e=t}});f.addEventListener("test",i,a),f.removeEventListener("test",i,a)}return t}(); /** * Remove event listener from the target element. * @param {Element} element - The event target. * @param {string} type - The event type(s). * @param {Function} listener - The event listener. * @param {Object} options - The event options. */ function Pt(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=i;e.trim().split(jt).forEach((function(e){if(!At){var o=t.listeners;o&&o[e]&&o[e][i]&&(n=o[e][i],delete o[e][i],0===Object.keys(o[e]).length&&delete o[e],0===Object.keys(o).length&&delete t.listeners)}t.removeEventListener(e,n,a)}))} /** * Add event listener to the target element. * @param {Element} element - The event target. * @param {string} type - The event type(s). * @param {Function} listener - The event listener. * @param {Object} options - The event options. */function It(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},n=i;e.trim().split(jt).forEach((function(e){if(a.once&&!At){var o=t.listeners,r=void 0===o?{}:o;n=function(){delete r[e][i],t.removeEventListener(e,n,a);for(var o=arguments.length,h=new Array(o),s=0;sMath.abs(a)&&(a=s)}))})),a} /** * Get a pointer from an event object. * @param {Object} event - The target event object. * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not. * @returns {Object} The result pointer contains start and/or end point coordinates. */function Vt(t,i){var a=t.pageX,n=t.pageY,o={endX:a,endY:n};return i?o:e({startX:a,startY:n},o)} /** * Get the center point coordinate of a group of pointers. * @param {Object} pointers - The target pointers. * @returns {Object} The center point coordinate. */function Ft(t){var e=0,i=0,a=0;return Dt(t,(function(t){var n=t.startX,o=t.startY;e+=n,i+=o,a+=1})),{pageX:e/=a,pageY:i/=a}} /** * Get the max sizes in a rectangle under the given aspect ratio. * @param {Object} data - The original sizes. * @param {string} [type='contain'] - The adjust type. * @returns {Object} The result sizes. */function Jt(t){var e=t.aspectRatio,i=t.height,a=t.width,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"contain",o=ft(a),r=ft(i);if(o&&r){var h=i*e;"contain"===n&&h>a||"cover"===n&&h90?{width:s,height:h}:{width:h,height:s}} /** * Get a canvas which drew the given image. * @param {HTMLImageElement} image - The image for drawing. * @param {Object} imageData - The image data. * @param {Object} canvasData - The canvas data. * @param {Object} options - The options. * @returns {HTMLCanvasElement} The result canvas. */function ee(t,e,i,a){var n=e.aspectRatio,o=e.naturalWidth,r=e.naturalHeight,h=e.rotate,s=void 0===h?0:h,l=e.scaleX,d=void 0===l?1:l,p=e.scaleY,u=void 0===p?1:p,m=i.aspectRatio,g=i.naturalWidth,f=i.naturalHeight,v=a.fillColor,w=void 0===v?"transparent":v,b=a.imageSmoothingEnabled,y=void 0===b||b,x=a.imageSmoothingQuality,M=void 0===x?"low":x,C=a.maxWidth,D=void 0===C?1/0:C,k=a.maxHeight,B=void 0===k?1/0:k,O=a.minWidth,T=void 0===O?0:O,E=a.minHeight,W=void 0===E?0:E,H=document.createElement("canvas"),N=H.getContext("2d"),L=Jt({aspectRatio:m,width:D,height:B}),z=Jt({aspectRatio:m,width:T,height:W},"cover"),Y=Math.min(L.width,Math.max(z.width,g)),X=Math.min(L.height,Math.max(z.height,f)),R=Jt({aspectRatio:n,width:D,height:B}),S=Jt({aspectRatio:n,width:T,height:W},"cover"),j=Math.min(R.width,Math.max(S.width,o)),A=Math.min(R.height,Math.max(S.height,r)),P=[-j/2,-A/2,j,A];return H.width=Ot(Y),H.height=Ot(X),N.fillStyle=w,N.fillRect(0,0,Y,X),N.save(),N.translate(Y/2,X/2),N.rotate(s*Math.PI/180),N.scale(d,u),N.imageSmoothingEnabled=y,N.imageSmoothingQuality=M,N.drawImage.apply(N,[t].concat(c(P.map((function(t){return Math.floor(Ot(t))}))))),N.restore(),H}var ie=String.fromCharCode; /** * Get string from char code in data view. * @param {DataView} dataView - The data view for read. * @param {number} start - The start index. * @param {number} length - The read length. * @returns {string} The read result. */function ae(t,e,i){var a="";i+=e;for(var n=e;n0;) // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9 // eslint-disable-next-line prefer-spread i.push(ie.apply(null,Ct(n.subarray(0,a)))),n=n.subarray(a);return"data:".concat(e,";base64,").concat(btoa(i.join("")))} /** * Get orientation value from given array buffer. * @param {ArrayBuffer} arrayBuffer - The array buffer to read. * @returns {number} The read orientation value. */function he(t){var e,i=new DataView(t); // Ignores range error when the image does not have correct Exif information try{var a,n,o; // Only handle JPEG image (start by 0xFFD8) if(255===i.getUint8(0)&&216===i.getUint8(1))for(var r=i.byteLength,h=2;h+1=8&&(o=s+l)}}}if(o){var d,p,u=i.getUint16(o,a);for(p=0;p=0?n:lt),height:Math.max(i.offsetHeight,o>=0?o:dt)};this.containerData=r,Et(a,{width:r.width,height:r.height}),Ht(t,z),Nt(a,z)}, // Canvas (image wrapper) initCanvas:function(){var t=this.containerData,e=this.imageData,i=this.options.viewMode,a=Math.abs(e.rotate)%180==90,n=a?e.naturalHeight:e.naturalWidth,o=a?e.naturalWidth:e.naturalHeight,r=n/o,h=t.width,s=t.height;t.height*r>t.width?3===i?h=t.height*r:s=t.width/r:3===i?s=t.width/r:h=t.height*r;var c={aspectRatio:r,naturalWidth:n,naturalHeight:o,width:h,height:s};this.canvasData=c,this.limited=1===i||2===i,this.limitCanvas(!0,!0),c.width=Math.min(Math.max(c.width,c.minWidth),c.maxWidth),c.height=Math.min(Math.max(c.height,c.minHeight),c.maxHeight),c.left=(t.width-c.width)/2,c.top=(t.height-c.height)/2,c.oldLeft=c.left,c.oldTop=c.top,this.initialCanvasData=kt({},c)},limitCanvas:function(t,e){var i=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,r=i.viewMode,h=n.aspectRatio,s=this.cropped&&o;if(t){var c=Number(i.minCanvasWidth)||0,l=Number(i.minCanvasHeight)||0;r>1?(c=Math.max(c,a.width),l=Math.max(l,a.height),3===r&&(l*h>c?c=l*h:l=c/h)):r>0&&(c?c=Math.max(c,s?o.width:0):l?l=Math.max(l,s?o.height:0):s&&(c=o.width,(l=o.height)*h>c?c=l*h:l=c/h));var d=Jt({aspectRatio:h,width:c,height:l});c=d.width,l=d.height,n.minWidth=c,n.minHeight=l,n.maxWidth=1/0,n.maxHeight=1/0}if(e)if(r>(s?0:1)){var p=a.width-n.width,u=a.height-n.height;n.minLeft=Math.min(0,p),n.minTop=Math.min(0,u),n.maxLeft=Math.max(0,p),n.maxTop=Math.max(0,u),s&&this.limited&&(n.minLeft=Math.min(o.left,o.left+(o.width-n.width)),n.minTop=Math.min(o.top,o.top+(o.height-n.height)),n.maxLeft=o.left,n.maxTop=o.top,2===r&&(n.width>=a.width&&(n.minLeft=Math.min(0,p),n.maxLeft=Math.max(0,p)),n.height>=a.height&&(n.minTop=Math.min(0,u),n.maxTop=Math.max(0,u))))}else n.minLeft=-n.width,n.minTop=-n.height,n.maxLeft=a.width,n.maxTop=a.height},renderCanvas:function(t,e){var i=this.canvasData,a=this.imageData;if(e){var n=te({width:a.naturalWidth*Math.abs(a.scaleX||1),height:a.naturalHeight*Math.abs(a.scaleY||1),degree:a.rotate||0}),o=n.width,r=n.height,h=i.width*(o/i.naturalWidth),s=i.height*(r/i.naturalHeight);i.left-=(h-i.width)/2,i.top-=(s-i.height)/2,i.width=h,i.height=s,i.aspectRatio=o/r,i.naturalWidth=o,i.naturalHeight=r,this.limitCanvas(!0,!1)}(i.width>i.maxWidth||i.widthi.maxHeight||i.heighte.width?n.height=n.width/i:n.width=n.height*i),this.cropBoxData=n,this.limitCropBox(!0,!0), // Initialize auto crop area n.width=Math.min(Math.max(n.width,n.minWidth),n.maxWidth),n.height=Math.min(Math.max(n.height,n.minHeight),n.maxHeight), // The width/height of auto crop area must large than "minWidth/Height" n.width=Math.max(n.minWidth,n.width*a),n.height=Math.max(n.minHeight,n.height*a),n.left=e.left+(e.width-n.width)/2,n.top=e.top+(e.height-n.height)/2,n.oldLeft=n.left,n.oldTop=n.top,this.initialCropBoxData=kt({},n)},limitCropBox:function(t,e){var i=this.options,a=this.containerData,n=this.canvasData,o=this.cropBoxData,r=this.limited,h=i.aspectRatio;if(t){var s=Number(i.minCropBoxWidth)||0,c=Number(i.minCropBoxHeight)||0,l=r?Math.min(a.width,n.width,n.width+n.left,a.width-n.left):a.width,d=r?Math.min(a.height,n.height,n.height+n.top,a.height-n.top):a.height; // The min/maxCropBoxWidth/Height must be less than container's width/height s=Math.min(s,a.width),c=Math.min(c,a.height),h&&(s&&c?c*h>s?c=s/h:s=c*h:s?c=s/h:c&&(s=c*h),d*h>l?d=l/h:l=d*h), // The minWidth/Height must be less than maxWidth/Height o.minWidth=Math.min(s,l),o.minHeight=Math.min(c,d),o.maxWidth=l,o.maxHeight=d}e&&(r?(o.minLeft=Math.max(0,n.left),o.minTop=Math.max(0,n.top),o.maxLeft=Math.min(a.width,n.left+n.width)-o.width,o.maxTop=Math.min(a.height,n.top+n.height)-o.height):(o.minLeft=0,o.minTop=0,o.maxLeft=a.width-o.width,o.maxTop=a.height-o.height))},renderCropBox:function(){var t=this.options,e=this.containerData,i=this.cropBoxData;(i.width>i.maxWidth||i.widthi.maxHeight||i.height=e.width&&i.height>=e.height?M:y),Et(this.cropBox,kt({width:i.width,height:i.height},Zt({translateX:i.left,translateY:i.top}))),this.cropped&&this.limited&&this.limitCanvas(!0,!0),this.disabled||this.output()},output:function(){this.preview(),Ut(this.element,q,this.getData())}},le={initPreview:function(){var t=this.element,e=this.crossOrigin,i=this.options.preview,a=e?this.crossOriginUrl:this.url,n=t.alt||"The image to preview",o=document.createElement("img");if(e&&(o.crossOrigin=e),o.src=a,o.alt=n,this.viewBox.appendChild(o),this.viewBoxImage=o,i){var r=i;"string"==typeof i?r=t.ownerDocument.querySelectorAll(i):i.querySelector&&(r=[i]),this.previews=r,Dt(r,(function(t){var i=document.createElement("img"); // Save the original size for recover Rt(t,A,{width:t.offsetWidth,height:t.offsetHeight,html:t.innerHTML}),e&&(i.crossOrigin=e),i.src=a,i.alt=n, /** * Override img element styles * Add `display:block` to avoid margin top issue * Add `height:auto` to override `height` attribute on IE8 * (Occur only when margin-top <= -height) */ i.style.cssText='display:block;width:100%;height:auto;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;image-orientation:0deg!important;"',t.innerHTML="",t.appendChild(i)}))}},resetPreview:function(){Dt(this.previews,(function(t){var e=Xt(t,A);Et(t,{width:e.width,height:e.height}),t.innerHTML=e.html,St(t,A)}))},preview:function(){var t=this.imageData,e=this.canvasData,i=this.cropBoxData,a=i.width,n=i.height,o=t.width,r=t.height,h=i.left-e.left-t.left,s=i.top-e.top-t.top;this.cropped&&!this.disabled&&(Et(this.viewBoxImage,kt({width:o,height:r},Zt(kt({translateX:-h,translateY:-s},t)))),Dt(this.previews,(function(e){var i=Xt(e,A),c=i.width,l=i.height,d=c,p=l,u=1;a&&(p=n*(u=c/a)),n&&p>l&&(d=a*(u=l/n),p=l),Et(e,{width:d,height:p}),Et(e.getElementsByTagName("img")[0],kt({width:o*u,height:r*u},Zt(kt({translateX:-h*u,translateY:-s*u},t))))})))}},de={bind:function(){var t=this.element,e=this.options,i=this.cropper;xt(e.cropstart)&&It(t,Q,e.cropstart),xt(e.cropmove)&&It(t,_,e.cropmove),xt(e.cropend)&&It(t,$,e.cropend),xt(e.crop)&&It(t,q,e.crop),xt(e.zoom)&&It(t,nt,e.zoom),It(i,F,this.onCropStart=this.cropStart.bind(this)),e.zoomable&&e.zoomOnWheel&&It(i,at,this.onWheel=this.wheel.bind(this),{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&It(i,K,this.onDblclick=this.dblclick.bind(this)),It(t.ownerDocument,J,this.onCropMove=this.cropMove.bind(this)),It(t.ownerDocument,tt,this.onCropEnd=this.cropEnd.bind(this)),e.responsive&&It(window,it,this.onResize=this.resize.bind(this))},unbind:function(){var t=this.element,e=this.options,i=this.cropper;xt(e.cropstart)&&Pt(t,Q,e.cropstart),xt(e.cropmove)&&Pt(t,_,e.cropmove),xt(e.cropend)&&Pt(t,$,e.cropend),xt(e.crop)&&Pt(t,q,e.crop),xt(e.zoom)&&Pt(t,nt,e.zoom),Pt(i,F,this.onCropStart),e.zoomable&&e.zoomOnWheel&&Pt(i,at,this.onWheel,{passive:!1,capture:!0}),e.toggleDragModeOnDblclick&&Pt(i,K,this.onDblclick),Pt(t.ownerDocument,J,this.onCropMove),Pt(t.ownerDocument,tt,this.onCropEnd),e.responsive&&Pt(window,it,this.onResize)}},pe={resize:function(){if(!this.disabled){var t,e,i=this.options,a=this.container,n=this.containerData,o=a.offsetWidth/n.width,r=a.offsetHeight/n.height,h=Math.abs(o-1)>Math.abs(r-1)?o:r; // Resize when width changed or height changed 1!==h&&(i.restore&&(t=this.getCanvasData(),e=this.getCropBoxData()),this.render(),i.restore&&(this.setCanvasData(Dt(t,(function(e,i){t[i]=e*h}))),this.setCropBoxData(Dt(e,(function(t,i){e[i]=t*h})))))}},dblclick:function(){this.disabled||this.options.dragMode===U||this.setDragMode(Wt(this.dragBox,N)?I:P)},wheel:function(t){var e=this,i=Number(this.options.wheelZoomRatio)||.1,a=1;this.disabled||(t.preventDefault(), // Limit wheel speed to prevent zoom too fast (#21) this.wheeling||(this.wheeling=!0,setTimeout((function(){e.wheeling=!1}),50),t.deltaY?a=t.deltaY>0?1:-1:t.wheelDelta?a=-t.wheelDelta/120:t.detail&&(a=t.detail>0?1:-1),this.zoom(-a*i,t)))},cropStart:function(t){var e=t.buttons,i=t.button;if(!(this.disabled||("mousedown"===t.type||"pointerdown"===t.type&&"mouse"===t.pointerType)&&( // No primary button (Usually the left button) gt(e)&&1!==e||gt(i)&&0!==i||t.ctrlKey))){var a,n=this.options,o=this.pointers;t.changedTouches? // Handle touch event Dt(t.changedTouches,(function(t){o[t.identifier]=Vt(t)})): // Handle mouse event and pointer event o[t.pointerId||0]=Vt(t),a=Object.keys(o).length>1&&n.zoomable&&n.zoomOnTouch?C:Xt(t.target,j),rt.test(a)&&!1!==Ut(this.element,Q,{originalEvent:t,action:a})&&( // This line is required for preventing page zooming in iOS browsers t.preventDefault(),this.action=a,this.cropping=!1,a===x&&(this.cropping=!0,Ht(this.dragBox,R)))}},cropMove:function(t){var e=this.action;if(!this.disabled&&e){var i=this.pointers;t.preventDefault(),!1!==Ut(this.element,_,{originalEvent:t,action:e})&&(t.changedTouches?Dt(t.changedTouches,(function(t){ // The first parameter should not be undefined (#432) kt(i[t.identifier]||{},Vt(t,!0))})):kt(i[t.pointerId||0]||{},Vt(t,!0)),this.change(t))}},cropEnd:function(t){if(!this.disabled){var e=this.action,i=this.pointers;t.changedTouches?Dt(t.changedTouches,(function(t){delete i[t.identifier]})):delete i[t.pointerId||0],e&&(t.preventDefault(),Object.keys(i).length||(this.action=""),this.cropping&&(this.cropping=!1,Lt(this.dragBox,R,this.cropped&&this.options.modal)),Ut(this.element,$,{originalEvent:t,action:e}))}}},ue={change:function(t){var e,i=this.options,a=this.canvasData,n=this.containerData,o=this.cropBoxData,r=this.pointers,h=this.action,s=i.aspectRatio,c=o.left,l=o.top,d=o.width,p=o.height,u=c+d,m=l+p,g=0,f=0,v=n.width,w=n.height,b=!0; // Locking aspect ratio in "free mode" by holding shift key !s&&t.shiftKey&&(s=d&&p?d/p:1),this.limited&&(g=o.minLeft,f=o.minTop,v=g+Math.min(n.width,a.width,a.left+a.width),w=f+Math.min(n.height,a.height,a.top+a.height));var N=r[Object.keys(r)[0]],L={x:N.endX-N.startX,y:N.endY-N.startY},Y=function(t){switch(t){case D:u+L.x>v&&(L.x=v-u);break;case k:c+L.xw&&(L.y=w-m)}};switch(h){ // Move crop box case y:c+=L.x,l+=L.y;break; // Resize crop box case D:if(L.x>=0&&(u>=v||s&&(l<=f||m>=w))){b=!1;break}Y(D),(d+=L.x)<0&&(h=k,c-=d=-d),s&&(p=d/s,l+=(o.height-p)/2);break;case O:if(L.y<=0&&(l<=f||s&&(c<=g||u>=v))){b=!1;break}Y(O),p-=L.y,l+=L.y,p<0&&(h=B,l-=p=-p),s&&(d=p*s,c+=(o.width-d)/2);break;case k:if(L.x<=0&&(c<=g||s&&(l<=f||m>=w))){b=!1;break}Y(k),d-=L.x,c+=L.x,d<0&&(h=D,c-=d=-d),s&&(p=d/s,l+=(o.height-p)/2);break;case B:if(L.y>=0&&(m>=w||s&&(c<=g||u>=v))){b=!1;break}Y(B),(p+=L.y)<0&&(h=O,l-=p=-p),s&&(d=p*s,c+=(o.width-d)/2);break;case T:if(s){if(L.y<=0&&(l<=f||u>=v)){b=!1;break}Y(O),p-=L.y,l+=L.y,d=p*s}else Y(O),Y(D),L.x>=0?uf&&(p-=L.y,l+=L.y):(p-=L.y,l+=L.y);d<0&&p<0?(h=H,l-=p=-p,c-=d=-d):d<0?(h=E,c-=d=-d):p<0&&(h=W,l-=p=-p);break;case E:if(s){if(L.y<=0&&(l<=f||c<=g)){b=!1;break}Y(O),p-=L.y,l+=L.y,d=p*s,c+=o.width-d}else Y(O),Y(k),L.x<=0?c>g?(d-=L.x,c+=L.x):L.y<=0&&l<=f&&(b=!1):(d-=L.x,c+=L.x),L.y<=0?l>f&&(p-=L.y,l+=L.y):(p-=L.y,l+=L.y);d<0&&p<0?(h=W,l-=p=-p,c-=d=-d):d<0?(h=T,c-=d=-d):p<0&&(h=H,l-=p=-p);break;case H:if(s){if(L.x<=0&&(c<=g||m>=w)){b=!1;break}Y(k),d-=L.x,c+=L.x,p=d/s}else Y(B),Y(k),L.x<=0?c>g?(d-=L.x,c+=L.x):L.y>=0&&m>=w&&(b=!1):(d-=L.x,c+=L.x),L.y>=0?m=0&&(u>=v||m>=w)){b=!1;break}Y(D),p=(d+=L.x)/s}else Y(B),Y(D),L.x>=0?u=0&&m>=w&&(b=!1):d+=L.x,L.y>=0?m0?h=L.y>0?W:T:L.x<0&&(c-=d,h=L.y>0?H:E),L.y<0&&(l-=p), // Show the crop box if is hidden this.cropped||(Nt(this.cropBox,z),this.cropped=!0,this.limited&&this.limitCropBox(!0,!0))}b&&(o.width=d,o.height=p,o.left=c,o.top=l,this.action=h,this.renderCropBox()), // Override Dt(r,(function(t){t.startX=t.endX,t.startY=t.endY}))}},me={ // Show the crop box manually crop:function(){return!this.ready||this.cropped||this.disabled||(this.cropped=!0,this.limitCropBox(!0,!0),this.options.modal&&Ht(this.dragBox,R),Nt(this.cropBox,z),this.setCropBoxData(this.initialCropBoxData)),this}, // Reset the image and crop box to their initial states reset:function(){return this.ready&&!this.disabled&&(this.imageData=kt({},this.initialImageData),this.canvasData=kt({},this.initialCanvasData),this.cropBoxData=kt({},this.initialCropBoxData),this.renderCanvas(),this.cropped&&this.renderCropBox()),this}, // Clear the crop box clear:function(){return this.cropped&&!this.disabled&&(kt(this.cropBoxData,{left:0,top:0,width:0,height:0}),this.cropped=!1,this.renderCropBox(),this.limitCanvas(!0,!0), // Render canvas after crop box rendered this.renderCanvas(),Nt(this.dragBox,R),Ht(this.cropBox,z)),this}, /** * Replace the image's src and rebuild the cropper * @param {string} url - The new URL. * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one. * @returns {Cropper} this */ replace:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return!this.disabled&&t&&(this.isImg&&(this.element.src=t),e?(this.url=t,this.image.src=t,this.ready&&(this.viewBoxImage.src=t,Dt(this.previews,(function(e){e.getElementsByTagName("img")[0].src=t})))):(this.isImg&&(this.replaced=!0),this.options.data=null,this.uncreate(),this.load(t))),this}, // Enable (unfreeze) the cropper enable:function(){return this.ready&&this.disabled&&(this.disabled=!1,Nt(this.cropper,L)),this}, // Disable (freeze) the cropper disable:function(){return this.ready&&!this.disabled&&(this.disabled=!0,Ht(this.cropper,L)),this}, /** * Destroy the cropper and remove the instance from the image * @returns {Cropper} this */ destroy:function(){var t=this.element;return t[b]?(t[b]=void 0,this.isImg&&this.replaced&&(t.src=this.originalUrl),this.uncreate(),this):this}, /** * Move the canvas with relative offsets * @param {number} offsetX - The relative offset distance on the x-axis. * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis. * @returns {Cropper} this */ move:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.canvasData,a=i.left,n=i.top;return this.moveTo(vt(t)?t:a+Number(t),vt(e)?e:n+Number(e))}, /** * Move the canvas to an absolute point * @param {number} x - The x-axis coordinate. * @param {number} [y=x] - The y-axis coordinate. * @returns {Cropper} this */ moveTo:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.canvasData,a=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.movable&&(gt(t)&&(i.left=t,a=!0),gt(e)&&(i.top=e,a=!0),a&&this.renderCanvas(!0)),this}, /** * Zoom the canvas with a relative ratio * @param {number} ratio - The target ratio. * @param {Event} _originalEvent - The original event if any. * @returns {Cropper} this */ zoom:function(t,e){var i=this.canvasData;return t=(t=Number(t))<0?1/(1-t):1+t,this.zoomTo(i.width*t/i.naturalWidth,null,e)}, /** * Zoom the canvas to an absolute ratio * @param {number} ratio - The target ratio. * @param {Object} pivot - The zoom pivot point coordinate. * @param {Event} _originalEvent - The original event if any. * @returns {Cropper} this */ zoomTo:function(t,e,i){var a=this.options,n=this.canvasData,o=n.width,r=n.height,h=n.naturalWidth,s=n.naturalHeight;if((t=Number(t))>=0&&this.ready&&!this.disabled&&a.zoomable){var c=h*t,l=s*t;if(!1===Ut(this.element,nt,{ratio:t,oldRatio:o/h,originalEvent:i}))return this;if(i){var d=this.pointers,p=qt(this.cropper),u=d&&Object.keys(d).length?Ft(d):{pageX:i.pageX,pageY:i.pageY}; // Zoom from the triggering point of the event n.left-=(c-o)*((u.pageX-p.left-n.left)/o),n.top-=(l-r)*((u.pageY-p.top-n.top)/r)}else yt(e)&>(e.x)&>(e.y)?(n.left-=(c-o)*((e.x-n.left)/o),n.top-=(l-r)*((e.y-n.top)/r)):( // Zoom from the center of the canvas n.left-=(c-o)/2,n.top-=(l-r)/2);n.width=c,n.height=l,this.renderCanvas(!0)}return this}, /** * Rotate the canvas with a relative degree * @param {number} degree - The rotate degree. * @returns {Cropper} this */ rotate:function(t){return this.rotateTo((this.imageData.rotate||0)+Number(t))}, /** * Rotate the canvas to an absolute degree * @param {number} degree - The rotate degree. * @returns {Cropper} this */ rotateTo:function(t){return gt(t=Number(t))&&this.ready&&!this.disabled&&this.options.rotatable&&(this.imageData.rotate=t%360,this.renderCanvas(!0,!0)),this}, /** * Scale the image on the x-axis. * @param {number} scaleX - The scale ratio on the x-axis. * @returns {Cropper} this */ scaleX:function(t){var e=this.imageData.scaleY;return this.scale(t,gt(e)?e:1)}, /** * Scale the image on the y-axis. * @param {number} scaleY - The scale ratio on the y-axis. * @returns {Cropper} this */ scaleY:function(t){var e=this.imageData.scaleX;return this.scale(gt(e)?e:1,t)}, /** * Scale the image * @param {number} scaleX - The scale ratio on the x-axis. * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis. * @returns {Cropper} this */ scale:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:t,i=this.imageData,a=!1;return t=Number(t),e=Number(e),this.ready&&!this.disabled&&this.options.scalable&&(gt(t)&&(i.scaleX=t,a=!0),gt(e)&&(i.scaleY=e,a=!0),a&&this.renderCanvas(!0,!0)),this}, /** * Get the cropped area position and size data (base on the original image) * @param {boolean} [rounded=false] - Indicate if round the data values or not. * @returns {Object} The result cropped data. */ getData:function(){var t,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],i=this.options,a=this.imageData,n=this.canvasData,o=this.cropBoxData;if(this.ready&&this.cropped){t={x:o.left-n.left,y:o.top-n.top,width:o.width,height:o.height};var r=a.width/a.naturalWidth;if(Dt(t,(function(e,i){t[i]=e/r})),e){ // In case rounding off leads to extra 1px in right or bottom border // we should round the top-left corner and the dimension (#343). var h=Math.round(t.y+t.height),s=Math.round(t.x+t.width);t.x=Math.round(t.x),t.y=Math.round(t.y),t.width=s-t.x,t.height=h-t.y}}else t={x:0,y:0,width:0,height:0};return i.rotatable&&(t.rotate=a.rotate||0),i.scalable&&(t.scaleX=a.scaleX||1,t.scaleY=a.scaleY||1),t}, /** * Set the cropped area position and size with new data * @param {Object} data - The new data. * @returns {Cropper} this */ setData:function(t){var e=this.options,i=this.imageData,a=this.canvasData,n={};if(this.ready&&!this.disabled&&yt(t)){var o=!1;e.rotatable&>(t.rotate)&&t.rotate!==i.rotate&&(i.rotate=t.rotate,o=!0),e.scalable&&(gt(t.scaleX)&&t.scaleX!==i.scaleX&&(i.scaleX=t.scaleX,o=!0),gt(t.scaleY)&&t.scaleY!==i.scaleY&&(i.scaleY=t.scaleY,o=!0)),o&&this.renderCanvas(!0,!0);var r=i.width/i.naturalWidth;gt(t.x)&&(n.left=t.x*r+a.left),gt(t.y)&&(n.top=t.y*r+a.top),gt(t.width)&&(n.width=t.width*r),gt(t.height)&&(n.height=t.height*r),this.setCropBoxData(n)}return this}, /** * Get the container size data. * @returns {Object} The result container data. */ getContainerData:function(){return this.ready?kt({},this.containerData):{}}, /** * Get the image position and size data. * @returns {Object} The result image data. */ getImageData:function(){return this.sized?kt({},this.imageData):{}}, /** * Get the canvas position and size data. * @returns {Object} The result canvas data. */ getCanvasData:function(){var t=this.canvasData,e={};return this.ready&&Dt(["left","top","width","height","naturalWidth","naturalHeight"],(function(i){e[i]=t[i]})),e}, /** * Set the canvas position and size with new data. * @param {Object} data - The new canvas data. * @returns {Cropper} this */ setCanvasData:function(t){var e=this.canvasData,i=e.aspectRatio;return this.ready&&!this.disabled&&yt(t)&&(gt(t.left)&&(e.left=t.left),gt(t.top)&&(e.top=t.top),gt(t.width)?(e.width=t.width,e.height=t.width/i):gt(t.height)&&(e.height=t.height,e.width=t.height*i),this.renderCanvas(!0)),this}, /** * Get the crop box position and size data. * @returns {Object} The result crop box data. */ getCropBoxData:function(){var t,e=this.cropBoxData;return this.ready&&this.cropped&&(t={left:e.left,top:e.top,width:e.width,height:e.height}),t||{}}, /** * Set the crop box position and size with new data. * @param {Object} data - The new crop box data. * @returns {Cropper} this */ setCropBoxData:function(t){var e,i,a=this.cropBoxData,n=this.options.aspectRatio;return this.ready&&this.cropped&&!this.disabled&&yt(t)&&(gt(t.left)&&(a.left=t.left),gt(t.top)&&(a.top=t.top),gt(t.width)&&t.width!==a.width&&(e=!0,a.width=t.width),gt(t.height)&&t.height!==a.height&&(i=!0,a.height=t.height),n&&(e?a.height=a.width/n:i&&(a.width=a.height*n)),this.renderCropBox()),this}, /** * Get a canvas drawn the cropped image. * @param {Object} [options={}] - The config options. * @returns {HTMLCanvasElement} - The result canvas. */ getCroppedCanvas:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.ready||!window.HTMLCanvasElement)return null;var e=this.canvasData,i=ee(this.image,this.imageData,e,t); // Returns the source canvas if it is not cropped. if(!this.cropped)return i;var a=this.getData(t.rounded),n=a.x,o=a.y,r=a.width,h=a.height,s=i.width/Math.floor(e.naturalWidth);1!==s&&(n*=s,o*=s,r*=s,h*=s);var l=r/h,d=Jt({aspectRatio:l,width:t.maxWidth||1/0,height:t.maxHeight||1/0}),p=Jt({aspectRatio:l,width:t.minWidth||0,height:t.minHeight||0},"cover"),u=Jt({aspectRatio:l,width:t.width||(1!==s?i.width:r),height:t.height||(1!==s?i.height:h)}),m=u.width,g=u.height;m=Math.min(d.width,Math.max(p.width,m)),g=Math.min(d.height,Math.max(p.height,g));var f=document.createElement("canvas"),v=f.getContext("2d");f.width=Ot(m),f.height=Ot(g),v.fillStyle=t.fillColor||"transparent",v.fillRect(0,0,m,g);var w=t.imageSmoothingEnabled,b=void 0===w||w,y=t.imageSmoothingQuality;v.imageSmoothingEnabled=b,y&&(v.imageSmoothingQuality=y); // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage var x,M,C,D,k,B,O=i.width,T=i.height,E=n,W=o;E<=-r||E>O?(E=0,x=0,C=0,k=0):E<=0?(C=-E,E=0,k=x=Math.min(O,r+E)):E<=O&&(C=0,k=x=Math.min(r,O-E)),x<=0||W<=-h||W>T?(W=0,M=0,D=0,B=0):W<=0?(D=-W,W=0,B=M=Math.min(T,h+W)):W<=T&&(D=0,B=M=Math.min(h,T-W));var H=[E,W,x,M]; // Avoid "IndexSizeError" if(k>0&&B>0){var N=m/r;H.push(C*N,D*N,k*N,B*N)} // All the numerical parameters should be integer for `drawImage` // https://github.com/fengyuanchen/cropper/issues/476 return v.drawImage.apply(v,[i].concat(c(H.map((function(t){return Math.floor(Ot(t))}))))),f}, /** * Change the aspect ratio of the crop box. * @param {number} aspectRatio - The new aspect ratio. * @returns {Cropper} this */ setAspectRatio:function(t){var e=this.options;return this.disabled||vt(t)||( // 0 -> NaN e.aspectRatio=Math.max(0,t)||NaN,this.ready&&(this.initCropBox(),this.cropped&&this.renderCropBox())),this}, /** * Change the drag mode. * @param {string} mode - The new drag mode. * @returns {Cropper} this */ setDragMode:function(t){var e=this.options,i=this.dragBox,a=this.face;if(this.ready&&!this.disabled){var n=t===P,o=e.movable&&t===I;t=n||o?t:U,e.dragMode=t,Rt(i,j,t),Lt(i,N,n),Lt(i,S,o),e.cropBoxMovable||( // Sync drag mode to crop box when it is not movable Rt(a,j,t),Lt(a,N,n),Lt(a,S,o))}return this}},ge=f.Cropper,fe=function(){ /** * Create a new Cropper. * @param {Element} element - The target element for cropping. * @param {Object} [options={}] - The configuration options. */ function t(e){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(o(this,t),!e||!ct.test(e.tagName))throw new Error("The first argument is required and must be an or element.");this.element=e,this.options=kt({},pt,yt(i)&&i),this.cropped=!1,this.disabled=!1,this.pointers={},this.ready=!1,this.reloading=!1,this.replaced=!1,this.sized=!1,this.sizing=!1,this.init()}return h(t,[{key:"init",value:function(){var t,e=this.element,i=e.tagName.toLowerCase();if(!e[b]){if(e[b]=this,"img"===i){ // Stop when it's a blank image if(this.isImg=!0, // e.g.: "img/picture.jpg" t=e.getAttribute("src")||"",this.originalUrl=t,!t)return; // e.g.: "https://example.com/img/picture.jpg" t=e.src}else"canvas"===i&&window.HTMLCanvasElement&&(t=e.toDataURL());this.load(t)}}},{key:"load",value:function(t){var e=this;if(t){this.url=t,this.imageData={};var i=this.element,a=this.options; // Only IE10+ supports Typed Arrays if(a.rotatable||a.scalable||(a.checkOrientation=!1),a.checkOrientation&&window.ArrayBuffer) // Detect the mime type of the image directly if it is a Data URL if(ht.test(t)) // Read ArrayBuffer from Data URL of JPEG images directly for better performance st.test(t)?this.read(oe(t)): // Only a JPEG image may contains Exif Orientation information, // the rest types of Data URLs are not necessary to check orientation at all. this.clone();else{ // 1. Detect the mime type of the image by a XMLHttpRequest. // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image. var n=new XMLHttpRequest,o=this.clone.bind(this);this.reloading=!0,this.xhr=n, // 1. Cross origin requests are only supported for protocol schemes: // http, https, data, chrome, chrome-extension. // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy // in some browsers as IE11 and Safari. n.onabort=o,n.onerror=o,n.ontimeout=o,n.onprogress=function(){ // Abort the request directly if it not a JPEG image for better performance n.getResponseHeader("content-type")!==ot&&n.abort()},n.onload=function(){e.read(n.response)},n.onloadend=function(){e.reloading=!1,e.xhr=null}, // Bust cache when there is a "crossOrigin" property to avoid browser cache error a.checkCrossOrigin&&Qt(t)&&i.crossOrigin&&(t=Kt(t)), // The third parameter is required for avoiding side-effect (#682) n.open("GET",t,!0),n.responseType="arraybuffer",n.withCredentials="use-credentials"===i.crossOrigin,n.send()}else this.clone()}}},{key:"read",value:function(t){var e=this.options,i=this.imageData,a=he(t),n=0,o=1,r=1; // Reset the orientation value to its default value 1 // as some iOS browsers will render image with its orientation if(a>1){ // Generate a new URL which has the default orientation value this.url=re(t,ot);var h=se(a);n=h.rotate,o=h.scaleX,r=h.scaleY}e.rotatable&&(i.rotate=n),e.scalable&&(i.scaleX=o,i.scaleY=r),this.clone()}},{key:"clone",value:function(){var t=this.element,e=this.url,i=t.crossOrigin,a=e;this.options.checkCrossOrigin&&Qt(e)&&(i||(i="anonymous"), // Bust cache when there is not a "crossOrigin" property (#519) a=Kt(e)),this.crossOrigin=i,this.crossOriginUrl=a;var n=document.createElement("img");i&&(n.crossOrigin=i),n.src=a||e,n.alt=t.alt||"The image to crop",this.image=n,n.onload=this.start.bind(this),n.onerror=this.stop.bind(this),Ht(n,Y),t.parentNode.insertBefore(n,t.nextSibling)}},{key:"start",value:function(){var t=this,e=this.image;e.onload=null,e.onerror=null,this.sizing=!0; // Match all browsers that use WebKit as the layout engine in iOS devices, // such as Safari for iOS, Chrome for iOS, and in-app browsers. var i=f.navigator&&/(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(f.navigator.userAgent),a=function(e,i){kt(t.imageData,{naturalWidth:e,naturalHeight:i,aspectRatio:e/i}),t.initialImageData=kt({},t.imageData),t.sizing=!1,t.sized=!0,t.build()}; // Most modern browsers (excepts iOS WebKit) if(!e.naturalWidth||i){var n=document.createElement("img"),o=document.body||document.documentElement;this.sizingImage=n,n.onload=function(){a(n.width,n.height),i||o.removeChild(n)},n.src=e.src, // iOS WebKit will convert the image automatically // with its orientation once append it into DOM (#279) i||(n.style.cssText="left:0;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;opacity:0;position:absolute;top:0;z-index:-1;",o.appendChild(n))}else a(e.naturalWidth,e.naturalHeight)}},{key:"stop",value:function(){var t=this.image;t.onload=null,t.onerror=null,t.parentNode.removeChild(t),this.image=null}},{key:"build",value:function(){if(this.sized&&!this.ready){var t=this.element,e=this.options,i=this.image,a=t.parentNode,n=document.createElement("div"); // Create cropper elements n.innerHTML=ut;var o=n.querySelector(".".concat(b,"-container")),r=o.querySelector(".".concat(b,"-canvas")),h=o.querySelector(".".concat(b,"-drag-box")),s=o.querySelector(".".concat(b,"-crop-box")),c=s.querySelector(".".concat(b,"-face"));this.container=a,this.cropper=o,this.canvas=r,this.dragBox=h,this.cropBox=s,this.viewBox=o.querySelector(".".concat(b,"-view-box")),this.face=c,r.appendChild(i), // Hide the original image Ht(t,z), // Inserts the cropper after to the current image a.insertBefore(o,t.nextSibling), // Show the hidden image Nt(i,Y),this.initPreview(),this.bind(),e.initialAspectRatio=Math.max(0,e.initialAspectRatio)||NaN,e.aspectRatio=Math.max(0,e.aspectRatio)||NaN,e.viewMode=Math.max(0,Math.min(3,Math.round(e.viewMode)))||0,Ht(s,z),e.guides||Ht(s.getElementsByClassName("".concat(b,"-dashed")),z),e.center||Ht(s.getElementsByClassName("".concat(b,"-center")),z),e.background&&Ht(o,"".concat(b,"-bg")),e.highlight||Ht(c,X),e.cropBoxMovable&&(Ht(c,S),Rt(c,j,y)),e.cropBoxResizable||(Ht(s.getElementsByClassName("".concat(b,"-line")),z),Ht(s.getElementsByClassName("".concat(b,"-point")),z)),this.render(),this.ready=!0,this.setDragMode(e.dragMode),e.autoCrop&&this.crop(),this.setData(e.data),xt(e.ready)&&It(t,et,e.ready,{once:!0}),Ut(t,et)}}},{key:"unbuild",value:function(){if(this.ready){this.ready=!1,this.unbind(),this.resetPreview();var t=this.cropper.parentNode;t&&t.removeChild(this.cropper),Nt(this.element,z)}}},{key:"uncreate",value:function(){this.ready?(this.unbuild(),this.ready=!1,this.cropped=!1):this.sizing?(this.sizingImage.onload=null,this.sizing=!1,this.sized=!1):this.reloading?(this.xhr.onabort=null,this.xhr.abort()):this.image&&this.stop()} /** * Get the no conflict cropper class. * @returns {Cropper} The cropper class. */}],[{key:"noConflict",value:function(){return window.Cropper=ge,t} /** * Change the default options. * @param {Object} options - The new default options. */},{key:"setDefaults",value:function(t){kt(pt,yt(t)&&t)}}])}();return kt(fe.prototype,ce,le,de,pe,ue,me),fe}(); /***/}}]);