/* * Slim v4.19.0 - Image Cropping Made Easy * Copyright (c) 2018 Rik Schennink - http://slimimagecropper.com */ window.Slim=function(){function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e,i,n){if(!(e>=1)){for(var o=t.width,a=t.height,r=Math.max(n.width,Math.min(i.width,Math.round(t.width*e))),s=Math.max(n.height,Math.min(i.height,Math.round(t.height*e))),h=rt(t),u=void 0,l=void 0;o>r&&a>s;)u=document.createElement("canvas"),o=Math.round(.5*h.width),a=Math.round(.5*h.height),or?(i.maxWidth=a*r,i.maxHeight=a):(i.maxWidth=o,i.maxHeight=o/r),i},i.renderImageToCanvas=function(t,e,i,n,o,a,r,s,h,u){return t.getContext("2d").drawImage(e,i,n,o,a,r,s,h,u),t},i.hasCanvasOption=function(t){return t.canvas||t.crop||!!t.aspectRatio},i.scale=function(t,e){function n(){var t=Math.max((s||w)/w,(h||b)/b);t>1&&(w*=t,b*=t)}function o(){var t=Math.min((a||w)/w,(r||b)/b);t<1&&(w*=t,b*=t)}e=e||{};var a,r,s,h,u,l,p,c,d,f,_,m=document.createElement("canvas"),g=t.getContext||i.hasCanvasOption(e)&&m.getContext,v=t.naturalWidth||t.width,y=t.naturalHeight||t.height,w=v,b=y;if(g&&(e=i.getTransformedOptions(t,e),p=e.left||0,c=e.top||0,e.sourceWidth?(u=e.sourceWidth,void 0!==e.right&&void 0===e.left&&(p=v-u-e.right)):u=v-p-(e.right||0),e.sourceHeight?(l=e.sourceHeight,void 0!==e.bottom&&void 0===e.top&&(c=y-l-e.bottom)):l=y-c-(e.bottom||0),w=u,b=l),a=e.maxWidth,r=e.maxHeight,s=e.minWidth,h=e.minHeight,g&&a&&r&&e.crop?(w=a,b=r,_=u/l-a/r,_<0?(l=r*u/a,void 0===e.top&&void 0===e.bottom&&(c=(y-l)/2)):_>0&&(u=a*l/r,void 0===e.left&&void 0===e.right&&(p=(v-u)/2))):((e.contain||e.cover)&&(s=a=a||s,h=r=r||h),e.cover?(o(),n()):(n(),o())),g){if(d=e.pixelRatio,d>1&&(m.style.width=w+"px",m.style.height=b+"px",w*=d,b*=d,m.getContext("2d").scale(d,d)),f=e.downsamplingRatio,f>0&&f<1&&ww;)m.width=u*f,m.height=l*f,i.renderImageToCanvas(m,t,p,c,u,l,0,0,m.width,m.height),u=m.width,l=m.height,t=document.createElement("canvas"),t.width=u,t.height=l,i.renderImageToCanvas(t,m,0,0,u,l,0,0,u,l);return m.width=w,m.height=b,i.transformCoordinates(m,e),i.renderImageToCanvas(m,t,p,c,u,l,0,0,w,b)}return t.width=w,t.height=b,t},i.createObjectURL=function(t){return!!n&&n.createObjectURL(t)},i.revokeObjectURL=function(t){return!!n&&n.revokeObjectURL(t)},i.readFile=function(t,e,i){if(window.FileReader){var n=new FileReader;if(n.onload=n.onerror=e,i=i||"readAsDataURL",n[i])return n[i](t),n}return!1};var o=i.hasCanvasOption,a=i.transformCoordinates,r=i.getTransformedOptions;i.hasCanvasOption=function(t){return!!t.orientation||o.call(i,t)},i.transformCoordinates=function(t,e){a.call(i,t,e);var n=t.getContext("2d"),o=t.width,r=t.height,s=t.style.width,h=t.style.height,u=e.orientation;if(u&&!(u>8))switch(u>4&&(t.width=r,t.height=o,t.style.width=h,t.style.height=s),u){case 2:n.translate(o,0),n.scale(-1,1);break;case 3:n.translate(o,r),n.rotate(Math.PI);break;case 4:n.translate(0,r),n.scale(1,-1);break;case 5:n.rotate(.5*Math.PI),n.scale(1,-1);break;case 6:n.rotate(.5*Math.PI),n.translate(0,-r);break;case 7:n.rotate(.5*Math.PI),n.translate(o,-r),n.scale(-1,1);break;case 8:n.rotate(-.5*Math.PI),n.translate(-o,0)}},i.getTransformedOptions=function(t,e){var n,o,a=r.call(i,t,e),s=a.orientation;if(!s||s>8||1===s)return a;n={};for(o in a)a.hasOwnProperty(o)&&(n[o]=a[o]);switch(a.orientation){case 2:n.left=a.right,n.right=a.left;break;case 3:n.left=a.right,n.top=a.bottom,n.right=a.left,n.bottom=a.top;break;case 4:n.top=a.bottom,n.bottom=a.top;break;case 5:n.left=a.top,n.top=a.left,n.right=a.bottom,n.bottom=a.right;break;case 6:n.left=a.top,n.top=a.right,n.right=a.bottom,n.bottom=a.left;break;case 7:n.left=a.bottom,n.top=a.right,n.right=a.top,n.bottom=a.left;break;case 8:n.left=a.bottom,n.top=a.left,n.right=a.top,n.bottom=a.right}return a.orientation>4&&(n.maxWidth=a.maxHeight,n.maxHeight=a.maxWidth,n.minWidth=a.minHeight,n.minHeight=a.minWidth,n.sourceWidth=a.sourceHeight,n.sourceHeight=a.sourceWidth),n};var s=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);i.blobSlice=s&&function(){var t=this.slice||this.webkitSlice||this.mozSlice;return t.apply(this,arguments)},i.metaDataParsers={jpeg:{65505:[]}},i.parseMetaData=function(t,e,n){n=n||{};var o=this,a=n.maxMetaDataSize||262144,r={},s=!(window.DataView&&t&&t.size>=12&&"image/jpeg"===t.type&&i.blobSlice);!s&&i.readFile(i.blobSlice.call(t,0,a),function(t){if(t.target.error)return void e(r);var a,s,h,u,l=t.target.result,p=new DataView(l),c=2,d=p.byteLength-4,f=c;if(65496===p.getUint16(0)){for(;c=65504&&a<=65519||65534===a)&&(s=p.getUint16(c+2)+2,!(c+s>p.byteLength));){if(h=i.metaDataParsers.jpeg[a])for(u=0;u6&&(l.slice?r.imageHead=l.slice(0,f):r.imageHead=new Uint8Array(l).subarray(0,f))}e(r)},"readAsArrayBuffer")||e(r)},i.ExifMap=function(){return this},i.ExifMap.prototype.map={Orientation:274},i.ExifMap.prototype.get=function(t){return this[t]||this[this.map[t]]},i.getExifThumbnail=function(t,e,i){var n,o,a;if(i&&!(e+i>t.byteLength)){for(n=[],o=0;o4?e+t.getUint32(n+8,r):n+8,!(h+s>t.byteLength))){if(1===a)return d.getValue(t,h,r);for(u=[],l=0;lt.byteLength||(a=t.getUint16(i,n),r=i+2+12*a,r+4>t.byteLength))){for(s=0;st.byteLength)&&0===t.getUint16(e+8)){switch(t.getUint16(u)){case 18761:r=!0;break;case 19789:r=!1;break;default:return}42===t.getUint16(u+2,r)&&(s=t.getUint32(u+4,r),o.exif=new i.ExifMap,s=i.parseExifTags(t,u,u+s,r,o),s&&!a.disableExifThumbnail&&(h={exif:{}},s=i.parseExifTags(t,u,u+s,r,h),h.exif[513]&&(o.exif.Thumbnail=i.getExifThumbnail(t,u+h.exif[513],h.exif[514]))),o.exif[34665]&&!a.disableExifSub&&i.parseExifTags(t,u,u+o.exif[34665],r,o),o.exif[34853]&&!a.disableExifGps&&i.parseExifTags(t,u,u+o.exif[34853],r,o))}}},i.metaDataParsers.jpeg[65505].push(i.parseExifData);var h=function(){var t=[],e=[],i=[],n="transform",o=window.getComputedStyle(document.documentElement,""),a=(Array.prototype.slice.call(o).join("").match(/-(moz|webkit|ms)-/)||""===o.OLink&&["","o"])[1];"webkit"===a&&(n="webkitTransform");var r=function(t,e,i){var n=t;if(void 0!==n.length){for(var o={chainers:[],then:function(t){return this.snabbt(t)},snabbt:function(t){var e=this.chainers.length;return this.chainers.forEach(function(i,n){i.snabbt(s(t,n,e))}),o},setValue:function(t){return this.chainers.forEach(function(e){e.setValue(t)}),o},finish:function(){return this.chainers.forEach(function(t){t.finish()}),o},rollback:function(){return this.chainers.forEach(function(t){t.rollback()}),o}},a=0,r=n.length;a1&&!f.isStopped()?(a.loop-=1,f.restart(),b(o)):(a.complete&&a.complete.call(t),m.length&&(a=m.pop(),h=v(a,p,!0),p=v(a,J(p)),a=y(h,p,a),f=x(a),e.push([t,f]),f.tick(i),b(o)))):b(o)}if("attention"===i)return u(t,n);if("stop"===i)return l(t);if("detach"===i)return c(t);var a=i;_();var r=g(t),h=r;h=v(a,h,!0);var p=J(r);p=v(a,p);var d=y(h,p,a),f=x(d);e.push([t,f]),f.updateElement(t,!0);var m=[],w={snabbt:function(t){return m.unshift(s(t,0,1)),w},then:function(t){return this.snabbt(t)}};return b(o),a.manual?f:w},u=function(t,i){function n(e){a.tick(e),a.updateElement(t),a.completed()?(i.callback&&i.callback(t),i.loop&&i.loop>1&&(i.loop--,a.restart(),b(n))):b(n)}var o=v(i,W({}));i.movement=o;var a=S(i);e.push([t,a]),b(n)},l=function(t){for(var i=0,n=e.length;i=0&&e.splice(n,1),n=p(i,t),n>=0&&i.splice(n,1)},f=function(t,e){for(var i=0,n=t.length;io){d=!0,p=t-o;var e=Math.min(Math.max(0,p-l),n);r.tick(e/n),this.updateCurrentTransform(),this.completed()&&h&&h()}}},getCurrentState:function(){return s},setValue:function(t){d=!0,_=Math.min(Math.max(t,1e-4),1+m)},updateCurrentTransform:function(){var t=r.getValue();if(f){var e=Math.max(1e-5,_-m);r.tick(e),t=r.getValue()}u.tween(t)},completed:function(){return!!c||0!==l&&r.completed()},updateElement:function(t,e){if(d||e){var i=u.asMatrix(),n=u.getProperties();G(t,i,a),X(t,n)}}}},S=function(t){var e=t.movement;t.initialVelocity=.1,t.equilibriumPosition=0;var i=R(t),n=!1,o=e.position,a=e.rotation,r=e.rotationPost,s=e.scale,h=e.skew,u=W({position:o?[0,0,0]:void 0,rotation:a?[0,0,0]:void 0,rotationPost:r?[0,0,0]:void 0,scale:s?[0,0]:void 0,skew:h?[0,0]:void 0});return{stop:function(){n=!0},isStopped:function(t){return n},tick:function(t){n||i.equilibrium||(i.tick(),this.updateMovement())},updateMovement:function(){var t=i.getValue();o&&(u.position[0]=e.position[0]*t,u.position[1]=e.position[1]*t,u.position[2]=e.position[2]*t),a&&(u.rotation[0]=e.rotation[0]*t,u.rotation[1]=e.rotation[1]*t,u.rotation[2]=e.rotation[2]*t),r&&(u.rotationPost[0]=e.rotationPost[0]*t,u.rotationPost[1]=e.rotationPost[1]*t,u.rotationPost[2]=e.rotationPost[2]*t),s&&(u.scale[0]=1+e.scale[0]*t,u.scale[1]=1+e.scale[1]*t),h&&(u.skew[0]=e.skew[0]*t,u.skew[1]=e.skew[1]*t)},updateElement:function(t){G(t,u.asMatrix()),X(t,u.getProperties())},getCurrentState:function(){return u},completed:function(){return i.equilibrium||n},restart:function(){i=R(t)}}},E=function(t){return t},C=function(t){return(Math.cos(t*Math.PI+Math.PI)+1)/2},P=function(t){return t*t},M=function(t){return-Math.pow(t-1,2)+1},R=function(t){var e=V(t.startPosition,0),i=V(t.equilibriumPosition,1),n=V(t.initialVelocity,0),o=V(t.springConstant,.8),a=V(t.springDeceleration,.9),r=V(t.springMass,10),s=!1;return{tick:function(t){if(0!==t&&!s){var h=-(e-i)*o,u=h/r;n+=u,e+=n,n*=a,Math.abs(e-i)<.001&&Math.abs(n)<.001&&(s=!0)}},resetFrom:function(t){e=t,n=0},getValue:function(){return s?i:e},completed:function(){return s}}},T={linear:E,ease:C,easeIn:P,easeOut:M},I=function(t,e){if("spring"==t)return R(e);var i=t;Y(t)||(i=T[t]);var n,o=i,a=0;return{tick:function(t){a=o(t),n=t},resetFrom:function(t){n=0},getValue:function(){return a},completed:function(){return n>=1&&n}}},L=function(t,e,i,n){t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e,t[13]=i,t[14]=n,t[15]=1},O=function(t,e){t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=Math.cos(e),t[6]=-Math.sin(e),t[7]=0,t[8]=0,t[9]=Math.sin(e),t[10]=Math.cos(e),t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1},z=function(t,e){t[0]=Math.cos(e),t[1]=0,t[2]=Math.sin(e),t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=-Math.sin(e),t[9]=0,t[10]=Math.cos(e),t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1},D=function(t,e){t[0]=Math.cos(e),t[1]=-Math.sin(e),t[2]=0,t[3]=0,t[4]=Math.sin(e),t[5]=Math.cos(e),t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1},A=function(t,e,i){t[0]=1,t[1]=Math.tan(e),t[2]=0,t[3]=0,t[4]=Math.tan(i),t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1},U=function(t,e,i){t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=i,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1},H=function(t){t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1},B=function(t,e){e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]},N=function(){var t=new Float32Array(16),e=new Float32Array(16),i=new Float32Array(16);return H(t),{data:t,asCSS:function(){for(var e="matrix3d(",i=0;i<15;++i)e+=Math.abs(t[i])<1e-4?"0,":t[i].toFixed(10)+",";return e+=Math.abs(t[15])<1e-4?"0)":t[15].toFixed(10)+")"},clear:function(){H(t)},translate:function(n,o,a){return B(t,e),L(i,n,o,a),F(e,i,t),this},rotateX:function(n){return B(t,e),O(i,n),F(e,i,t),this},rotateY:function(n){return B(t,e),z(i,n),F(e,i,t),this},rotateZ:function(n){return B(t,e),D(i,n),F(e,i,t),this},scale:function(n,o){return B(t,e),U(i,n,o),F(e,i,t),this},skew:function(n,o){return B(t,e),A(i,n,o),F(e,i,t),this}}},F=function(t,e,i){return i[0]=t[0]*e[0]+t[1]*e[4]+t[2]*e[8]+t[3]*e[12],i[1]=t[0]*e[1]+t[1]*e[5]+t[2]*e[9]+t[3]*e[13],i[2]=t[0]*e[2]+t[1]*e[6]+t[2]*e[10]+t[3]*e[14],i[3]=t[0]*e[3]+t[1]*e[7]+t[2]*e[11]+t[3]*e[15],i[4]=t[4]*e[0]+t[5]*e[4]+t[6]*e[8]+t[7]*e[12],i[5]=t[4]*e[1]+t[5]*e[5]+t[6]*e[9]+t[7]*e[13],i[6]=t[4]*e[2]+t[5]*e[6]+t[6]*e[10]+t[7]*e[14],i[7]=t[4]*e[3]+t[5]*e[7]+t[6]*e[11]+t[7]*e[15],i[8]=t[8]*e[0]+t[9]*e[4]+t[10]*e[8]+t[11]*e[12],i[9]=t[8]*e[1]+t[9]*e[5]+t[10]*e[9]+t[11]*e[13],i[10]=t[8]*e[2]+t[9]*e[6]+t[10]*e[10]+t[11]*e[14],i[11]=t[8]*e[3]+t[9]*e[7]+t[10]*e[11]+t[11]*e[15],i[12]=t[12]*e[0]+t[13]*e[4]+t[14]*e[8]+t[15]*e[12],i[13]=t[12]*e[1]+t[13]*e[5]+t[14]*e[9]+t[15]*e[13],i[14]=t[12]*e[2]+t[13]*e[6]+t[14]*e[10]+t[15]*e[14],i[15]=t[12]*e[3]+t[13]*e[7]+t[14]*e[11]+t[15]*e[15],i},W=function(t){var e=N(),i={opacity:void 0,width:void 0,height:void 0};return{position:t.position,rotation:t.rotation,rotationPost:t.rotationPost,skew:t.skew,scale:t.scale,scalePost:t.scalePost,opacity:t.opacity,width:t.width,height:t.height,clone:function(){return W({position:this.position?this.position.slice(0):void 0,rotation:this.rotation?this.rotation.slice(0):void 0,rotationPost:this.rotationPost?this.rotationPost.slice(0):void 0,skew:this.skew?this.skew.slice(0):void 0,scale:this.scale?this.scale.slice(0):void 0,scalePost:this.scalePost?this.scalePost.slice(0):void 0,height:this.height,width:this.width,opacity:this.opacity})},asMatrix:function(){var t=e;return t.clear(),this.transformOrigin&&t.translate(-this.transformOrigin[0],-this.transformOrigin[1],-this.transformOrigin[2]),this.scale&&t.scale(this.scale[0],this.scale[1]),this.skew&&t.skew(this.skew[0],this.skew[1]),this.rotation&&(t.rotateX(this.rotation[0]),t.rotateY(this.rotation[1]),t.rotateZ(this.rotation[2])),this.position&&t.translate(this.position[0],this.position[1],this.position[2]),this.rotationPost&&(t.rotateX(this.rotationPost[0]),t.rotateY(this.rotationPost[1]),t.rotateZ(this.rotationPost[2])),this.scalePost&&t.scale(this.scalePost[0],this.scalePost[1]),this.transformOrigin&&t.translate(this.transformOrigin[0],this.transformOrigin[1],this.transformOrigin[2]),t},getProperties:function(){return i.opacity=this.opacity,i.width=this.width+"px",i.height=this.height+"px",i}}},q=function(t,e,i){var n=t,o=e,a=i,r=void 0!==o.position,s=void 0!==o.rotation,h=void 0!==o.rotationPost,u=void 0!==o.scale,l=void 0!==o.skew,p=void 0!==o.width,c=void 0!==o.height,d=void 0!==o.opacity;return{tween:function(t){if(r){var e=o.position[0]-n.position[0],i=o.position[1]-n.position[1],f=o.position[2]-n.position[2];a.position[0]=n.position[0]+t*e,a.position[1]=n.position[1]+t*i,a.position[2]=n.position[2]+t*f}if(s){var _=o.rotation[0]-n.rotation[0],m=o.rotation[1]-n.rotation[1],g=o.rotation[2]-n.rotation[2];a.rotation[0]=n.rotation[0]+t*_,a.rotation[1]=n.rotation[1]+t*m,a.rotation[2]=n.rotation[2]+t*g}if(h){var v=o.rotationPost[0]-n.rotationPost[0],y=o.rotationPost[1]-n.rotationPost[1],w=o.rotationPost[2]-n.rotationPost[2];a.rotationPost[0]=n.rotationPost[0]+t*v,a.rotationPost[1]=n.rotationPost[1]+t*y,a.rotationPost[2]=n.rotationPost[2]+t*w}if(l){var b=o.scale[0]-n.scale[0],k=o.scale[1]-n.scale[1];a.scale[0]=n.scale[0]+t*b,a.scale[1]=n.scale[1]+t*k}if(u){var x=o.skew[0]-n.skew[0],S=o.skew[1]-n.skew[1];a.skew[0]=n.skew[0]+t*x,a.skew[1]=n.skew[1]+t*S}if(p){var E=o.width-n.width;a.width=n.width+t*E}if(c){var C=o.height-n.height;a.height=n.height+t*C}if(d){var P=o.opacity-n.opacity;a.opacity=n.opacity+t*P}},asMatrix:function(){return a.asMatrix()},getProperties:function(){return a.getProperties()},setReverse:function(){var t=n;n=o,o=t}}},j=function(t,e,i,n){var o=t(0,N()),a=e,r=i,s=n,h=!1;return{tween:function(e){h&&(e=1-e),o.clear(),o=t(e,o);var i=r.width-a.width,n=r.height-a.height,u=r.opacity-a.opacity;void 0!==r.width&&(s.width=a.width+e*i),void 0!==r.height&&(s.height=a.height+e*n),void 0!==r.opacity&&(s.opacity=a.opacity+e*u)},asMatrix:function(){return o},getProperties:function(){return s.getProperties()},setReverse:function(){h=!0}}},V=function(t,e){return"undefined"==typeof t?e:t},G=function(t,e,i){var o="";i&&(o="perspective("+i+"px) ");var a=e.asCSS();t.style[n]=o+a},X=function(t,e){for(var i in e)t.style[i]=e[i]},Y=function(t){return"function"==typeof t},J=function(t){if(!t)return t;var e={};for(var i in t)e[i]=t[i];return e};return r.createMatrix=N,r.setElementTransform=G,r}(),u=function(){function t(t,e,i,n,o){if("string"==typeof t)t=document.getElementById(t);else if(!t instanceof HTMLCanvasElement)return;var a,r=t.getContext("2d");try{try{a=r.getImageData(e,i,n,o)}catch(s){throw new Error("unable to access local image data: "+s)}}catch(s){throw new Error("unable to access image data: "+s)}return a}function e(e,n,o,a,r,s){if(!(isNaN(s)||s<1)){s|=0;var h=t(e,n,o,a,r);h=i(h,n,o,a,r,s),e.getContext("2d").putImageData(h,n,o)}}function i(t,e,i,r,s,h){var u,l,p,c,d,f,_,m,g,v,y,w,b,k,x,S,E,C,P,M,R,T,I,L,O=t.data,z=h+h+1,D=r-1,A=s-1,U=h+1,H=U*(U+1)/2,B=new n,N=B;for(p=1;p>V,0!=I?(I=255/I,O[f]=(m*j>>V)*I,O[f+1]=(g*j>>V)*I,O[f+2]=(v*j>>V)*I):O[f]=O[f+1]=O[f+2]=0,m-=w,g-=b,v-=k,y-=x,w-=W.r,b-=W.g,k-=W.b,x-=W.a,c=_+((c=u+h+1)>V,I>0?(I=255/I,O[c]=(m*j>>V)*I,O[c+1]=(g*j>>V)*I,O[c+2]=(v*j>>V)*I):O[c]=O[c+1]=O[c+2]=0,m-=w,g-=b,v-=k,y-=x,w-=W.r,b-=W.g,k-=W.b,x-=W.a,c=u+((c=l+U)1&&void 0!==arguments[1]?arguments[1]:"POST",i=arguments[2],n=arguments[3],o=arguments[4],a=arguments[5],r=arguments[6],s=new XMLHttpRequest;o&&s.upload.addEventListener("progress",function(t){o(t.loaded,t.total)}),s.open(e,t,!0),n&&n(s,i),s.onreadystatechange=function(){if(4===s.readyState&&s.status>=200&&s.status<300){var t=s.responseText;if(!t.length)return void a();if(t.indexOf("Content-Length")!==-1)return void r("file-too-big");var e=void 0;try{e=JSON.parse(s.responseText)}catch(i){}if("object"===("undefined"==typeof e?"undefined":p(e))&&"failure"===e.status)return void r(e.message);a(e||t)}else if(4===s.readyState){var n=void 0;try{n=JSON.parse(s.responseText)}catch(i){}if("object"===("undefined"==typeof n?"undefined":p(n))&&"failure"===n.status)return void r(n.message);r("fail")}},s.send(i)},O=function(t){t&&(t.style.webkitTransform="",t.style.transform="")},z=function(t){return t/1e6},D=function(){var t=[],e=void 0,i=void 0;for(e in y)y.hasOwnProperty(e)&&(i=y[e],t.indexOf(i)==-1&&t.push(i));return t},A=function(t){return"image/jpeg"===t},U=function(t){var e=void 0;for(e in y)if(y.hasOwnProperty(e)&&y[e]===t)return e;return t},H=function(t){var e=void 0;for(e in y)if(y.hasOwnProperty(e)&&t.indexOf(y[e])!==-1)return y[e];return null},B=function(t){return t.split("/").pop().split("?").shift()},N=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return(e+t).slice(-e.length)},F=function(t){return t.getFullYear()+"-"+N(t.getMonth()+1,"00")+"-"+N(t.getDate(),"00")+"_"+N(t.getHours(),"00")+"-"+N(t.getMinutes(),"00")+"-"+N(t.getSeconds(),"00")},W=function(t){return"undefined"==typeof t.name?F(new Date)+"."+U(q(t)):t.name},q=function(t){return t.type||"image/jpeg"},j=function(t){if("string"!=typeof t)return F(new Date);var e=B(t);return e.split(".").shift()},V=function(t,e){try{return new File([t],e,{type:t.type,lastModified:Date.now()})}catch(i){return t.lastModified=new Date,t.name=e,t}},G=function(t){return/^data:image/.test(t)},X=function(t,e,i,n,o,a){t=""+t+(t.indexOf("?")!==-1?"&":"?")+"url="+n;var r=new XMLHttpRequest;r.open("GET",t,!0),e(r),r.responseType="json",r.onload=function(){return"failure"===this.response.status?void o(this.response.message):void Y(this.response.body,i,a)},r.send()},Y=function(t,e,i,n){var o=new XMLHttpRequest;o.open("GET",t,!0),e(o),o.responseType="blob",o.onload=function(e){if(o.status>=200&&o.status<300){var a=B(t),r=H(this.response.type);w.test(a)||(a+="."+U(r));var s=V(this.response,a);i(mt(s,r))}else n(o.status+": "+o.statusText)},o.onerror=function(){n()},o.send()},J=function(t){var e=t.split(",")[1],i=e.replace(/\s/g,"");return atob(i)},$=function(t,e){for(var i=J(t),n=new ArrayBuffer(i.length),o=new Uint8Array(n),a=0;a1&&void 0!==arguments[1]?arguments[1]:{},n=arguments[2],o=b("canvas"),a=i.rotation,r=i.crop,s=i.size,h=i.filters,u=i.minSize;if(r){var l=a%180!==0,p={width:l?t.height:t.width,height:l?t.width:t.height};r.x<0&&(r.x=0),r.y<0&&(r.y=0),r.width>p.width&&(r.width=p.width),r.height>p.height&&(r.height=p.height),r.y+r.height>p.height&&(r.y=Math.max(0,p.height-r.height)),r.x+r.width>p.width&&(r.x=Math.max(0,p.width-r.width));var c=r.x/p.width,d=r.y/p.height,f=r.width/p.width,_=r.height/p.height;o.width=r.width,o.height=r.height;var m=o.getContext("2d");90===a?(m.translate(.5*o.width,.5*o.height),m.rotate(-90*Math.PI/180),m.drawImage(t,(1-d)*t.width-t.width*_,r.x,r.height,r.width,.5*-o.height,.5*-o.width,o.height,o.width)):180===a?(m.translate(.5*o.width,.5*o.height),m.rotate(-180*Math.PI/180),m.drawImage(t,(1-(c+f))*p.width,(1-(d+_))*p.height,f*p.width,_*p.height,.5*-o.width,.5*-o.height,o.width,o.height)):270===a?(m.translate(.5*o.width,.5*o.height),m.rotate(-270*Math.PI/180),m.drawImage(t,r.y,(1-c)*t.height-t.height*f,r.height,r.width,.5*-o.height,.5*-o.width,o.height,o.width)):m.drawImage(t,r.x,r.y,r.width,r.height,0,0,o.width,o.height)}if(s){var g=s.width/o.width,v=s.height/o.height,y=Math.min(g,v);e(o,y,s,u),h.sharpen>0&&it(o,ot(h.sharpen))}n(o)},et=function(t){var e=t.getContext("2d");return e.getImageData(0,0,t.width,t.height)},it=function(t,e){var i=t.getContext("2d");i.putImageData(e(et(t),t.width,t.height),0,0)},nt=function(t,e,i){var n=document.createElement("canvas");n.width=t,n.height=e;var o=n.getContext("2d"),a=o.createImageData(n.width,n.height);return i&&a.set(i.data),a},ot=function(t){return function(e,i,n){for(var o=[0,-1,0,-1,5,-1,0,-1,0],a=Math.round(Math.sqrt(o.length)),r=.5*a|0,s=nt(i,n),h=s.data,u=e.data,l=n,p=void 0;l--;)for(p=i;p--;){for(var c=l,d=p,f=4*(l*i+p),_=0,m=0,g=0,v=0,y=0;y=0&&b=0&&k0&&1!==i&&e(n,i,{width:Math.round(t.width*i),height:Math.round(t.height*i)},{width:0,height:0}),n},ht=function(t){return t.width&&t.height},ut=function(t,e){var i=e.getContext("2d");ht(e)?i.drawImage(t,0,0,e.width,e.height):(e.width=t.width,e.height=t.height,i.drawImage(t,0,0))},lt=function(t){u(t,0,0,t.width,t.height,3)},pt=function(t,e){return parseInt(t.width,10)>=e.width&&parseInt(t.height,10)>=e.height},ct=function(t,e,i){return{x:t.x*e,y:t.y*i,width:t.width*e,height:t.height*i}},dt=function(t,e,i){return{x:t.x/e,y:t.y/i,width:t.width/e,height:t.height/i}},ft=function(t){if(t&&""!==t.value){try{t.value=""}catch(e){}if(t.value){var i=document.createElement("form"),n=t.parentNode,o=t.nextSibling;i.appendChild(t),i.reset(),o?n.insertBefore(t,o):n.appendChild(t)}}},_t=function(t){return"object"===("undefined"==typeof value?"undefined":p(value))&&null!==value?JSON.parse(JSON.stringify(t)):t},mt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(!t)return null;var i=t.slice(0,t.size,e||t.type);return i.name=t.name,i.lastModified=new Date(t.lastModified),i},gt=function(t){var e=_t(t);return e.input.file=mt(t.input.file),e.output.image=rt(t.output.image),e},vt=function(t,e,i){return t&&e?t.toDataURL(e,A(e)&&"number"==typeof i?i/100:void 0):null},yt=function(t){if(!t)return null;var e=t.substr(0,16).match(/^.+;/);return e.length?e[0].substring(5,e[0].length-1):null},wt=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=arguments[2],n=arguments[3],o=arguments[4],a={server:_t(t.server),meta:_t(t.meta),input:{name:t.input.name,type:t.input.type,size:t.input.size,width:t.input.width,height:t.input.height,field:t.input.field}};return I("input",e)&&!o&&(a.input.image=vt(t.input.image,t.input.type)),I("output",e)&&(a.output={name:n?j(t.input.name)+"."+n:t.input.name,type:y[n]||t.input.type,width:t.output.width,height:t.output.height},a.output.image=vt(t.output.image,a.output.type,i),a.output.type=yt(a.output.image),"image/png"===a.output.type&&(a.output.name=j(a.input.name)+".png")),I("actions",e)&&(a.actions=_t(t.actions)),a},bt=function(t,e,i){var n=t.output.image,o=i?j(t.input.name)+"."+i:t.input.name,a=y[i]||t.input.type;"image/png"===a&&(o=j(t.input.name)+".png"),n.toBlob(function(t){if("msSaveBlob"in window.navigator)return void window.navigator.msSaveBlob(t,o);var e=(window.URL||window.webkitURL).createObjectURL(t),i=b("a");i.style.display="none",i.download=o,i.href=e,document.body.appendChild(i),i.click(),setTimeout(function(){document.body.removeChild(i),(window.URL||window.webkitURL).revokeObjectURL(e)},0)},a,"number"==typeof e?e/100:void 0)},kt=function(t,e,i){var n=i.querySelector(t);n&&(n.style.display=e?"":"none")},xt=function(t){return Array.prototype.slice.call(t)},St=function(t){t.parentNode.removeChild(t)},Et=function(t){var e=b("div");return t.parentNode&&(t.nextSibling?t.parentNode.insertBefore(e,t.nextSibling):t.parentNode.appendChild(e)),e.appendChild(t),e},Ct=function(t,e,i,n){var o=(n-90)*Math.PI/180;return{x:t+i*Math.cos(o),y:e+i*Math.sin(o)}},Pt=function(t,e,i,n,o){var a=Ct(t,e,i,o),r=Ct(t,e,i,n),s=o-n<=180?"0":"1",h=["M",a.x,a.y,"A",i,i,0,s,0,r.x,r.y].join(" ");return h},Mt=function(t,e,i,n){return Pt(t,e,i,0,360*n)},Rt=function(){var e={n:function(t,e,i,n){var o,a,r,s,h,u,l,p;return r=t.y+t.height,o=T(e.y,0,r),r-oMath.round(i.width))&&(p=Math.min(t.x,i.width-(t.x+t.width)),s=t.x-p,a=t.x+t.width+p,h=a-s,u=h*n,o=r-u),{x:s,y:o,width:a-s,height:r-o}},s:function(t,e,i,n){var o,a,r,s,h,u,l,p;return o=t.y,r=T(e.y,o,i.height),r-oMath.round(i.width))&&(p=Math.min(t.x,i.width-(t.x+t.width)),s=t.x-p,a=t.x+t.width+p,h=a-s,u=h*n,r=o+u),{x:s,y:o,width:a-s,height:r-o}},e:function(t,e,i,n){var o,a,r,s,h,u,l,p;return s=t.x,a=T(e.x,s,i.width),a-sMath.round(i.height))&&(p=Math.min(t.y,i.height-(t.y+t.height)),o=t.y-p,r=t.y+t.height+p,u=r-o,h=u/n,a=s+h),{x:s,y:o,width:a-s,height:r-o}},w:function i(t,e,n,o){var a,r,s,h,i,u,l,p;return r=t.x+t.width,h=T(e.x,0,r),r-hMath.round(n.height))&&(p=Math.min(t.y,n.height-(t.y+t.height)),a=t.y-p,s=t.y+t.height+p,u=s-a,i=u/o,h=r-i),{x:h,y:a,width:r-h,height:s-a}},ne:function(t,e,i,n){var o,a,r,s,h,u,l;return s=t.x,r=t.y+t.height,a=T(e.x,s,i.width),a-sMath.round(i.height))&&(l=Math.min(t.y,i.height-(t.y+t.height)),o=t.y-l,u=r-o,h=u/n,a=s+h),{x:s,y:o,width:a-s,height:r-o}},se:function(t,e,i,n){var o,a,r,s,h,u,l;return s=t.x,o=t.y,a=T(e.x,s,i.width),a-sMath.round(i.height))&&(l=Math.min(t.y,i.height-(t.y+t.height)),r=t.y+t.height+l,u=r-o,h=u/n,a=s+h),{x:s,y:o,width:a-s,height:r-o}},sw:function(t,e,i,n){var o,a,r,s,h,u,l;return a=t.x+t.width,o=t.y,s=T(e.x,0,a),a-sMath.round(i.height))&&(l=Math.min(t.y,i.height-(t.y+t.height)),r=t.y+t.height+l,u=r-o,h=u/n,s=a-h),{x:s,y:o,width:a-s,height:r-o}},nw:function(t,e,i,n){var o,a,r,s,h,u,l;return a=t.x+t.width,r=t.y+t.height,s=T(e.x,0,a),a-sMath.round(i.height))&&(l=Math.min(t.y,i.height-(t.y+t.height)),o=t.y-l,u=r-o,h=u/n,s=a-h),{x:s,y:o,width:a-s,height:r-o}}};return function(){function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.createElement("div");t(this,i),this._element=e,this._interaction=null,this._minWidth=1,this._minHeight=1,this._ratio=null,this._rect={x:0,y:0,width:0,height:0},this._space={width:0,height:0},this._rectChanged=!1,this._init()}return l(i,[{key:"_init",value:function(){this._element.className="slim-crop-area";var t=b("div","grid");this._element.appendChild(t);for(var i in e)if(e.hasOwnProperty(i)){var n=b("button",i);this._element.appendChild(n)}var o=b("button","c");this._element.appendChild(o),k(document,v.DOWN,this)}},{key:"reset",value:function(){this._interaction=null,this._rect={x:0,y:0,width:0,height:0},this._rectChanged=!0,this._redraw(),this._element.dispatchEvent(new CustomEvent("change"))}},{key:"rescale",value:function(t){1!==t&&(this._interaction=null,this._rectChanged=!0,this._rect.x*=t,this._rect.y*=t,this._rect.width*=t,this._rect.height*=t,this._redraw(),this._element.dispatchEvent(new CustomEvent("change")))}},{key:"limit",value:function(t,e){this._space.width=t,this._space.height=e}},{key:"offset",value:function(t,e){this._space.x=t,this._space.y=e}},{key:"resize",value:function(t,e,i,n){this._interaction=null,this._rect={x:T(t,0,this._space.width-this._minWidth),y:T(e,0,this._space.height-this._minHeight),width:T(i,this._minWidth,this._space.width),height:T(n,this._minHeight,this._space.height)},this._rectChanged=!0,this._redraw(),this._element.dispatchEvent(new CustomEvent("change"))}},{key:"handleEvent",value:function(t){switch(t.type){case"touchstart":case"pointerdown":case"mousedown":this._onStartDrag(t);break;case"touchmove":case"pointermove":case"mousemove":this._onDrag(t);break;case"touchend":case"touchcancel":case"pointerup":case"mouseup":this._onStopDrag(t)}}},{key:"_onStartDrag",value:function(t){this._element.contains(t.target)&&(t.preventDefault(),k(document,v.MOVE,this),k(document,v.UP,this),this._interaction={type:t.target.className,offset:C(t)},this._interaction.offset.x-=this._rect.x,this._interaction.offset.y-=this._rect.y,this._element.setAttribute("data-dragging","true"),this._redraw())}},{key:"_onDrag",value:function(t){t.preventDefault();var i=C(t),n=this._interaction.type;"c"===n?(this._rect.x=T(i.x-this._interaction.offset.x,0,this._space.width-this._rect.width),this._rect.y=T(i.y-this._interaction.offset.y,0,this._space.height-this._rect.height)):e[n]&&(this._rect=e[n](this._rect,{x:i.x-this._space.x,y:i.y-this._space.y},{x:0,y:0,width:this._space.width,height:this._space.height,min:{width:this._minWidth,height:this._minHeight}},this._ratio)),this._rectChanged=!0,this._element.dispatchEvent(new CustomEvent("input"))}},{key:"_onStopDrag",value:function(t){t.preventDefault(),x(document,v.MOVE,this),x(document,v.UP,this),this._interaction=null,this._element.setAttribute("data-dragging","false"),this._element.dispatchEvent(new CustomEvent("change"))}},{key:"_redraw",value:function(){var t=this;if(this._rectChanged){var e="translate("+this._rect.x+"px,"+this._rect.y+"px);";this._element.style.cssText="\n\t\t\t\t\t-webkit-transform: "+e+";\n\t\t\t\t\ttransform: "+e+";\n\t\t\t\t\twidth:"+this._rect.width+"px;\n\t\t\t\t\theight:"+this._rect.height+"px;\n\t\t\t\t",this._rectChanged=!1}this._interaction&&requestAnimationFrame(function(){return t._redraw()})}},{key:"destroy",value:function(){this._interaction=!1,this._rectChanged=!1,x(document,v.DOWN,this),x(document,v.MOVE,this),x(document,v.UP,this),St(this._element)}},{key:"element",get:function(){return this._element}},{key:"space",get:function(){return this._space}},{key:"area",get:function(){var t=this._rect.x/this._space.width,e=this._rect.y/this._space.height,i=this._rect.width/this._space.width,n=this._rect.height/this._space.height;return{x:t,y:e,width:i,height:n}}},{key:"dirty",get:function(){return 0!==this._rect.x||0!==this._rect.y||0!==this._rect.width||0!==this._rect.height}},{key:"minWidth",set:function(t){this._minWidth=Math.max(t,1)}},{key:"minHeight",set:function(t){this._minHeight=Math.max(t,1)}},{key:"ratio",set:function(t){this._ratio=t}}]),i}()}(),Tt=function(){var e=["input","change"],i=function(){function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.createElement("div"),n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,i),this._element=e,this._options=m(i.options(),n),this._ratio=null,this._output=null,this._rotating=!1,this._input=null,this._preview=null,this._previewBlurred=null,this._blurredPreview=!1,this._cropper=null,this._straightCrop=null,this._previewWrapper=null,this._currentWindowSize={},this._btnGroup=null,this._maskFrame=null,this._dirty=!1,this._wrapperRotation=0,this._wrapperScale=1,this._init()}return l(i,[{key:"_init",value:function(){var t=this;this._element.className="slim-image-editor",this._container=b("div","slim-container"),this._wrapper=b("div","slim-wrapper"),this._stage=b("div","slim-stage"),this._container.appendChild(this._stage),this._cropper=new Rt,e.forEach(function(e){t._cropper.element.addEventListener(e,t)}),this._stage.appendChild(this._cropper.element),this._previewWrapper=b("div","slim-image-editor-preview slim-crop-preview"),this._previewBlurred=b("canvas","slim-crop-blur"),this._previewWrapper.appendChild(this._previewBlurred),this._wrapper.appendChild(this._previewWrapper),this._previewMask=b("div","slim-crop-mask"),this._preview=b("img"),this._previewMask.appendChild(this._preview),this._cropper.element.appendChild(this._previewMask),this._btnGroup=b("div","slim-editor-btn-group"),i.Buttons.forEach(function(e){var i=M(e),n=t._options["button"+i+"Label"],o=t._options["button"+i+"Title"],a=t._options["button"+i+"ClassName"],r=b("button","slim-editor-btn slim-btn-"+e+(a?" "+a:""));r.innerHTML=n,r.title=o||n,r.type="button",r.setAttribute("data-action",e),r.addEventListener("click",t),t._btnGroup.appendChild(r)}),this._utilsGroup=b("div","slim-editor-utils-group");var n=b("button","slim-editor-utils-btn slim-btn-rotate"+(this._options.buttonRotateClassName?" "+this._options.buttonRotateClassName:""));n.setAttribute("data-action","rotate"),n.addEventListener("click",this),n.title=this._options.buttonRotateTitle,this._utilsGroup.appendChild(n),this._container.appendChild(this._wrapper),this._element.appendChild(this._container),this._element.appendChild(this._utilsGroup),this._element.appendChild(this._btnGroup)}},{key:"dirty",value:function(){this._dirty=!0}},{key:"handleEvent",value:function(t){switch(t.type){case"click":this._onClick(t);break;case"change":this._onGridChange(t);break;case"input":this._onGridInput(t);break;case"keydown":this._onKeyDown(t);break;case"resize":this._onResize(t)}}},{key:"_onKeyDown",value:function(t){switch(t.keyCode){case g.RETURN:this._confirm();break;case g.ESC:this._cancel()}}},{key:"_onClick",value:function(t){t.target.classList.contains("slim-btn-cancel")&&this._cancel(),t.target.classList.contains("slim-btn-confirm")&&this._confirm(),t.target.classList.contains("slim-btn-rotate")&&this._rotate()}},{key:"_onResize",value:function(){this._currentWindowSize={width:window.innerWidth,height:window.innerHeight},this._redraw(),this._redrawCropper(this._cropper.area),this._updateWrapperScale(),this._redrawWrapper()}},{key:"_redrawWrapper",value:function(){var t=h.createMatrix();t.scale(this._wrapperScale,this._wrapperScale),t.rotateZ(this._wrapperRotation*(Math.PI/180)),h.setElementTransform(this._previewWrapper,t)}},{key:"_onGridInput",value:function(){this._redrawCropMask()}},{key:"_onGridChange",value:function(){this._redrawCropMask()}},{key:"_updateWrapperRotation",value:function(){this._options.minSize.width>this._input.height||this._options.minSize.height>this._input.width?this._wrapperRotation+=180:this._wrapperRotation+=90}},{key:"_updateWrapperScale",value:function(){var t=this._wrapperRotation%180!==0;if(t){var e=this._container.offsetWidth,i=this._container.offsetHeight,n=this._wrapper.offsetHeight,o=this._wrapper.offsetWidth,a=e/n;a*o>i&&(a=i/o),this._wrapperScale=a}else this._wrapperScale=1}},{key:"_cancel",value:function(){this._rotating||this._element.dispatchEvent(new CustomEvent("cancel"))}},{key:"_confirm",value:function(){if(!this._rotating){var t=this._wrapperRotation%180!==0,e=this._cropper.area,i=ct(e,t?this._input.height:this._input.width,t?this._input.width:this._input.height);this._element.dispatchEvent(new CustomEvent("confirm",{detail:{rotation:this._wrapperRotation%360,crop:i}}))}}},{key:"_rotate",value:function(){var t=this;if(!this._rotating){this._rotating=!0,this._updateWrapperRotation();var e=1===this.ratio||null===this._ratio?this._cropper.area:null;e&&E(e,90),this._updateWrapperScale(),this._hideCropper(),h(this._previewWrapper,{rotation:[0,0,this._wrapperRotation*(Math.PI/180)],scale:[this._wrapperScale,this._wrapperScale],easing:"spring",springConstant:.8,springDeceleration:.65,complete:function(){t._redrawCropper(e),t._showCropper(),t._rotating=!1}})}}},{key:"_showCropper",value:function(){h(this._stage,{easing:"ease",duration:250,fromOpacity:0,opacity:1})}},{key:"_hideCropper",value:function(){h(this._stage,{duration:0,fromOpacity:0,opacity:0})}},{key:"_redrawCropMask",value:function(){var t=this,e=this._wrapperRotation%360,i=this._wrapperScale,n={width:this._wrapper.offsetWidth,height:this._wrapper.offsetHeight},o=this._cropper.area,a={x:0,y:0};0===e?(a.x=-o.x,a.y=-o.y):90===e?(a.x=-(1-o.y),a.y=-o.x):180===e?(a.x=-(1-o.x),a.y=-(1-o.y)):270===e&&(a.x=-o.y,a.y=-(1-o.x)),a.x*=n.width,a.y*=n.height,cancelAnimationFrame(this._maskFrame),this._maskFrame=requestAnimationFrame(function(){var n="scale("+i+") rotate("+-e+"deg) translate("+a.x+"px, "+a.y+"px);";t._preview.style.cssText="\n\t\t\t\t\twidth: "+t._previewSize.width+"px;\n\t\t\t\t\theight: "+t._previewSize.height+"px;\n\t\t\t\t\t-webkit-transform: "+n+";\n\t\t\t\t\ttransform: "+n+";\n\t\t\t\t"})}},{key:"open",value:function(t,e,i,n,o){var a=this;if(this._input&&!this._dirty&&this._ratio===e)return void o();this._currentWindowSize={width:window.innerWidth,height:window.innerHeight},this._dirty=!1,this._wrapperRotation=n||0,this._blurredPreview=!1,this._ratio=e,this._previewSize=null,this._element.style.opacity="0",this._input=t;var r=n%180!==0,s=dt(i,r?t.height:t.width,r?t.width:t.height);this._preview.onload=function(){a._preview.onload=null,a._cropper.ratio=a.ratio,a._redraw(),a._redrawCropper(s),o(),a._element.style.opacity=""},this._preview.src="",this._preview.src=st(this._input,Math.min(this._container.offsetWidth/this._input.width,this._container.offsetHeight/this._input.height)*this._options.devicePixelRatio).toDataURL()}},{key:"_redrawCropper",value:function(t){var e=this._wrapperRotation%180!==0,i=e?this._input.height/this._input.width:this._input.width/this._input.height,n=this._wrapper.offsetWidth,o=this._wrapper.offsetHeight,a=this._container.offsetWidth,r=this._container.offsetHeight;this._updateWrapperScale();var s=this._wrapperScale*(e?o:n),h=this._wrapperScale*(e?n:o),u=e?.5*(a-s):this._wrapper.offsetLeft,l=e?.5*(r-h):this._wrapper.offsetTop;this._stage.style.cssText="\n\t\t\t\tleft:"+u+"px;\n\t\t\t\ttop:"+l+"px;\n\t\t\t\twidth:"+s+"px;\n\t\t\t\theight:"+h+"px;\n\t\t\t",this._cropper.limit(s,s/i),this._cropper.offset(u+this._element.offsetLeft,l+this._element.offsetTop),this._cropper.minWidth=this._wrapperScale*this._options.minSize.width*this.scalar,this._cropper.minHeight=this._wrapperScale*this._options.minSize.height*this.scalar;var p=null;p=t?{x:t.x*s,y:t.y*h,width:t.width*s,height:t.height*h}:Q(s,h,this._ratio||h/s),this._cropper.resize(p.x,p.y,p.width,p.height)}},{key:"_redraw",value:function(){var t=this._input.height/this._input.width,e=this._container.clientWidth,i=this._container.clientHeight,n=e,o=n*t;o>i&&(o=i,n=o/t),n=Math.round(n),o=Math.round(o);var a=(e-n)/2,r=(i-o)/2;this._wrapper.style.cssText="\n\t\t\t\tleft:"+a+"px;\n\t\t\t\ttop:"+r+"px;\n\t\t\t\twidth:"+n+"px;\n\t\t\t\theight:"+o+"px;\n\t\t\t",this._previewBlurred.style.cssText="\n\t\t\t\twidth:"+n+"px;\n\t\t\t\theight:"+o+"px;\n\t\t\t",this._preview.style.cssText="\n\t\t\t\twidth:"+n+"px;\n\t\t\t\theight:"+o+"px;\n\t\t\t",this._previewSize={width:n,height:o},this._blurredPreview||(this._previewBlurred.width=300,this._previewBlurred.height=this._previewBlurred.width*t,ut(this._input,this._previewBlurred),lt(this._previewBlurred,3),this._blurredPreview=!0)}},{key:"show",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};this._currentWindowSize.width===window.innerWidth&&this._currentWindowSize.height===window.innerHeight||(this._redraw(),this._redrawCropper(this._cropper.area)),document.addEventListener("keydown",this),window.addEventListener("resize",this);var e=this._wrapperRotation*(Math.PI/180);h(this._previewWrapper,{fromRotation:[0,0,e],rotation:[0,0,e],fromPosition:[0,0,0],position:[0,0,0],fromOpacity:0,opacity:1,fromScale:[this._wrapperScale-.02,this._wrapperScale-.02],scale:[this._wrapperScale,this._wrapperScale],easing:"spring",springConstant:.3,springDeceleration:.85,delay:450,complete:function(){}}),this._cropper.dirty?h(this._stage,{fromPosition:[0,0,0],position:[0,0,0],fromOpacity:0,opacity:1,duration:250,delay:850,complete:function(){O(this),t()}}):h(this._stage,{fromPosition:[0,0,0],position:[0,0,0],fromOpacity:0,opacity:1,duration:250,delay:1e3,complete:function(){O(this)}}),h(this._btnGroup.childNodes,{fromScale:[.9,.9],scale:[1,1],fromOpacity:0,opacity:1,delay:function(t){return 1e3+100*t},easing:"spring",springConstant:.3,springDeceleration:.85,complete:function(){O(this)}}),h(this._utilsGroup.childNodes,{fromScale:[.9,.9],scale:[1,1],fromOpacity:0,opacity:1,easing:"spring",springConstant:.3,springDeceleration:.85,delay:1250,complete:function(){O(this)}})}},{key:"hide",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};document.removeEventListener("keydown",this),window.removeEventListener("resize",this),h(this._utilsGroup.childNodes,{fromOpacity:1,opacity:0,duration:250}),h(this._btnGroup.childNodes,{fromOpacity:1,opacity:0,delay:200,duration:350}),h([this._stage,this._previewWrapper],{fromPosition:[0,0,0],position:[0,-250,0],fromOpacity:1,opacity:0,easing:"spring",springConstant:.3,springDeceleration:.75,delay:250,allDone:function(){t()}})}},{key:"destroy",value:function(){var t=this;xt(this._btnGroup.children).forEach(function(e){e.removeEventListener("click",t)}),e.forEach(function(e){t._cropper.element.removeEventListener(e,t)}),this._cropper.destroy(),this._element.parentNode&&St(this._element)}},{key:"showRotateButton",set:function(t){t?this._element.classList.remove("slim-rotation-disabled"):this._element.classList.add("slim-rotation-disabled")}},{key:"element",get:function(){return this._element}},{key:"ratio",get:function(){return"input"===this._ratio?this._input.height/this._input.width:this._ratio}},{key:"offset",get:function(){return this._element.getBoundingClientRect()}},{key:"original",get:function(){return this._input}},{key:"scalar",get:function(){return this._previewSize.width/this._input.width}}],[{key:"options",value:function(){return{buttonCancelClassName:null,buttonConfirmClassName:null,buttonCancelLabel:"Cancel",buttonConfirmLabel:"Confirm",buttonCancelTitle:null,buttonConfirmTitle:null,buttonRotateTitle:"Rotate",buttonRotateClassName:null,devicePixelRatio:null,minSize:{width:0,height:0}}}}]),i}();return i.Buttons=["cancel","confirm"],i}(Rt),It=function(){var e=["dragenter","dragover","dragleave","drop"];return function(){function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.createElement("div");t(this,i),this._element=e,this._accept=[],this._allowURLs=!1,this._dragPath=null,this._init()}return l(i,[{key:"isValidDataTransfer",value:function(t){return t.files&&t.files.length?this.areValidDataTransferFiles(t.files):t.items&&t.items.length?this.areValidDataTransferItems(t.items):null}},{key:"areValidDataTransferFiles",value:function(t){return!this._accept.length||!t||this._accept.indexOf(t[0].type)!==-1}},{key:"areValidDataTransferItems",value:function(t){return!this._accept.length||!t||(this._allowURLs&&"string"===t[0].kind?null:t[0].type&&0===t[0].type.indexOf("application")?null:this._accept.indexOf(t[0].type)!==-1)}},{key:"reset",value:function(){this._element.files=null}},{key:"_init",value:function(){var t=this;this._element.className="slim-file-hopper",e.forEach(function(e){t._element.addEventListener(e,t)})}},{key:"handleEvent",value:function(t){switch(t.type){case"dragenter":case"dragover":this._onDragOver(t);break;case"dragleave":this._onDragLeave(t);break;case"drop":this._onDrop(t)}}},{key:"_onDrop",value:function(t){t.preventDefault();var e=null;if(this._allowURLs){var i=void 0,n=void 0;try{i=t.dataTransfer.getData("url"),n=t.dataTransfer.getData("text/html")}catch(t){}if(n&&n.length){var o=n.match(/src\s*=\s*"(.+?)"/);o&&(e=o[1])}else i&&i.length&&(e=i)}if(e)this._element.files=[{remote:e}];else{var a=this.isValidDataTransfer(t.dataTransfer);if(!a)return this._element.dispatchEvent(new CustomEvent("file-invalid-drop")),void(this._dragPath=null);this._element.files=t.dataTransfer.files}this._element.dispatchEvent(new CustomEvent("file-drop",{detail:_(t)})),this._element.dispatchEvent(new CustomEvent("change")),this._dragPath=null}},{key:"_onDragOver",value:function(t){t.preventDefault(),t.dataTransfer.dropEffect="copy";var e=this.isValidDataTransfer(t.dataTransfer);return null===e||e?(this._dragPath||(this._dragPath=[]),this._dragPath.push(_(t)),void this._element.dispatchEvent(new CustomEvent("file-over",{detail:{x:R(this._dragPath).x,y:R(this._dragPath).y}}))):(t.dataTransfer.dropEffect="none",void this._element.dispatchEvent(new CustomEvent("file-invalid")))}},{key:"_onDragLeave",value:function(t){this._element.dispatchEvent(new CustomEvent("file-out",{detail:_(t)})),this._dragPath=null}},{key:"destroy",value:function(){var t=this;e.forEach(function(e){t._element.removeEventListener(e,t)}),St(this._element),this._element=null,this._dragPath=null,this._accept=null}},{key:"element",get:function(){return this._element}},{key:"dragPath",get:function(){return this._dragPath}},{key:"enabled",get:function(){return""===this._element.style.display},set:function(t){this._element.style.display=t?"":"none"}},{key:"allowURLs",set:function(t){this._allowURLs=t}},{key:"accept",set:function(t){this._accept=t},get:function(){return this._accept}}]),i}()}(),Lt=function(){return function(){function e(){t(this,e),this._element=null,this._inner=null,this._init()}return l(e,[{key:"_init",value:function(){this._element=b("div","slim-popover"),this._element.setAttribute("data-state","off"),document.body.appendChild(this._element),this._element.addEventListener("touchmove",function(t){t.preventDefault()},!0)}},{key:"show",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};this._element.setAttribute("data-state","on"),h(this._element,{fromOpacity:0,opacity:1,duration:350,complete:function(){O(t._element),e()}})}},{key:"hide",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){};h(this._element,{fromOpacity:1,opacity:0,duration:500,complete:function(){O(t._element),t._element.setAttribute("data-state","off"),e()}})}},{key:"destroy",value:function(){this._element.parentNode&&(this._element.parentNode.removeChild(this._element),this._element=null,this._inner=null)}},{key:"inner",set:function(t){this._inner=t,this._element.firstChild&&this._element.removeChild(this._element.firstChild),this._element.appendChild(this._inner)}},{key:"className",set:function(t){this._element.className="slim-popover"+(null===t?"":" "+t)}}]),e}()}(),Ot=function(t,e){return t.split(e).map(function(t){return parseInt(t,10)})},zt=function(t){return"DIV"===t.nodeName||"SPAN"===t.nodeName},Dt={AUTO:"auto",INITIAL:"initial",MANUAL:"manual"},At=["x","y","width","height"],Ut=["file-invalid-drop","file-invalid","file-drop","file-over","file-out","click"],Ht=["cancel","confirm"],Bt=["remove","edit","download","upload"],Nt=null,Ft=0,Wt='\n
\n\t\n\t\t\n\t\t\n\t\n
\n',qt='\n
\n',jt=function(t){var e=t.split(",");return{width:parseInt(e[0],10),height:parseInt(e[1],10)}},Vt=function(){function e(i){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t(this,e),Nt||(Nt=new Lt),this._uid=Ft++,this._options=m(e.options(),n),this._options.forceSize&&("string"==typeof this._options.forceSize&&(this._options.forceSize=jt(this._options.forceSize)),this._options.ratio=this._options.forceSize.width+":"+this._options.forceSize.height,this._options.size=_t(this._options.forceSize)),"string"==typeof this._options.size&&(this._options.size=jt(this._options.size)),"string"==typeof this._options.minSize&&(this._options.minSize=jt(this._options.minSize)),"string"==typeof this._options.post&&(this._options.post=this._options.post.split(",").map(function(t){return t.trim()})),this._originalElement=i,this._originalElementInner=i.innerHTML,this._originalElementAttributes=f(i),zt(i)?this._element=i:(this._element=Et(i),this._element.className=i.className,i.className="",this._element.setAttribute("data-ratio",this._options.ratio)),this._element.classList.add("slim"),this._element.setAttribute("data-state","init"),this._state=[],this._timers=[],this._input=null,this._inputReference=null,this._output=null,this._ratio=null,this._isRequired=!1,this._imageHopper=null,this._imageEditor=null,this._progressEnabled=!0,this._data={},this._resetData(),this._drip=null,this._hasInitialImage=!1,this._initialCrop=this._options.crop,this._initialRotation=this._options.rotation&&this._options.rotation%90===0?this._options.rotation:null,this._isBeingDestroyed=!1,e.supported?this._init():this._fallback()}return l(e,[{key:"setRotation",value:function(t,e){if("number"==typeof t||t%90===0){this._data.actions.rotation=t;var i=this._data.actions.rotation%180!==0;if(this._data.input.image){var n=i?this._data.input.image.height:this._data.input.image.width,o=i?this._data.input.image.width:this._data.input.image.height;this._data.actions.crop=Q(n,o,this._ratio),this._data.actions.crop.type=Dt.AUTO}this._data.input.image&&e&&this._manualTransform(e)}}},{key:"setSize",value:function(t,e){"string"==typeof t&&(t=jt(t)),t&&t.width&&t.height&&(this._options.size=_t(t),this._data.actions.size=_t(t),this._data.input.image&&e&&this._manualTransform(e))}},{key:"setForceSize",value:function(t,e){"string"==typeof t&&(t=jt(t)),t&&t.width&&t.height&&(this._options.size=_t(t),this._options.forceSize=_t(t),this._data.actions.size=_t(t),this.setRatio(this._options.forceSize.width+":"+this._options.forceSize.height,e))}},{key:"setRatio",value:function(t,e){var i=this;if(t&&"string"==typeof t&&(this._options.ratio=t,this._isFixedRatio())){var n=Ot(this._options.ratio,":");this._ratio=n[1]/n[0],this._data.input.image&&e?this._cropAuto(function(t){i._scaleDropArea(i._ratio),e&&e(t)}):(this._data.input.image&&(this._data.actions.crop=Q(this._data.input.image.width,this._data.input.image.height,this._ratio), this._data.actions.crop.type=Dt.AUTO),this._scaleDropArea(this._ratio),e&&e(null))}}},{key:"isAttachedTo",value:function(t){return this._element===t||this._originalElement===t}},{key:"isDetached",value:function(){return null===this._element.parentNode}},{key:"load",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments[2];"function"==typeof e?i=e:(this._options.crop=e.crop,this._options.rotation=e.rotation,this._initialRotation=e.rotation&&e.rotation%90===0?e.rotation:null,this._initialCrop=this._options.crop),this._load(t,i,{blockPush:e.blockPush})}},{key:"upload",value:function(t){this._doUpload(t)}},{key:"download",value:function(){this._doDownload()}},{key:"remove",value:function(){return this._doRemove()}},{key:"destroy",value:function(){this._doDestroy()}},{key:"edit",value:function(){this._doEdit()}},{key:"crop",value:function(t,e){this._crop(t.x,t.y,t.width,t.height,e)}},{key:"containsImage",value:function(){return null!==this._data.input.name}},{key:"_canInstantEdit",value:function(){return this._options.instantEdit&&!this._isInitialising}},{key:"_getFileInput",value:function(){return this._element.querySelector("input[type=file]")}},{key:"_getInitialImage",value:function(){return this._element.querySelector("img")}},{key:"_getInputElement",value:function(){return this._getFileInput()||this._getInitialImage()}},{key:"_getRatioSpacerElement",value:function(){return this._element.children[0]}},{key:"_isImageOnly",value:function(){return"INPUT"!==this._input.nodeName}},{key:"_isFixedRatio",value:function(){return this._options.ratio.indexOf(":")!==-1}},{key:"_isAutoCrop",value:function(){return this._data.actions.crop.type===Dt.AUTO}},{key:"_toggleButton",value:function(t,e){kt('.slim-btn[data-action="'+t+'"]',e,this._element)}},{key:"_clearState",value:function(){this._state=[],this._updateState()}},{key:"_removeState",value:function(t){this._state=this._state.filter(function(e){return e!==t}),this._updateState()}},{key:"_addState",value:function(t){I(t,this._state)||(this._state.push(t),this._updateState())}},{key:"_updateState",value:function(){this._element&&this._element.setAttribute("data-state",this._state.join(","))}},{key:"_resetData",value:function(){this._data={server:null,meta:_t(this._options.meta),input:{field:this._inputReference,name:null,type:null,width:0,height:0,file:null},output:{image:null,width:0,height:0},actions:{rotation:null,crop:null,size:null}},this._output&&(this._output.value=""),ft(this._getFileInput())}},{key:"_init",value:function(){var t=this;if(this._isInitialising=!0,this._addState("empty"),I("input",this._options.post)&&(this._inputReference="slim_input_"+this._uid),this._input=this._getInputElement(),this._input||(this._input=b("input"),this._input.type="file",this._element.appendChild(this._input)),this._isRequired=this._input.required===!0,this._output=this._element.querySelector("input[type=hidden]"),this._output){var e=null;try{e=JSON.parse(this._output.value)}catch(i){}if(e){var n=new Image;n.src=e.output.image,n.setAttribute("data-filename",e.output.name),this._element.insertBefore(n,this._element.firstChild)}}else this._output=b("input"),this._output.type="hidden",this._output.name=this._input.name||this._options.defaultInputName,this._element.appendChild(this._output);this._input.removeAttribute("name");var o=b("div","slim-area"),a=this._getInitialImage(),r=(a||{}).src,s=a?a.getAttribute("data-filename"):null;r?this._hasInitialImage=!0:(this._initialCrop=null,this._initialRotation=null);var h='\n\t\t
\n\t\t\t\n\t\t
';if(this._isImageOnly())o.innerHTML="\n\t\t\t\t"+Wt+"\n\t\t\t\t"+qt+"\n\t\t\t\t"+h+'\n\t\t\t\t
'+(this._options.labelLoading||"")+"
\n\t\t\t";else{I("input",this._options.post)&&(this._data.input.field=this._inputReference,this._options.service||(this._input.name=this._inputReference));var u=void 0;this._input.hasAttribute("accept")&&"image/*"!==this._input.getAttribute("accept")?u=this._input.accept.split(",").map(function(t){return t.trim()}).filter(function(t){return t.length>0}):(u=D(),this._input.setAttribute("accept",u.join(","))),this._imageHopper=new It,this._imageHopper.accept=u,this._imageHopper.allowURLs="string"==typeof this._options.fetcher,this._element.appendChild(this._imageHopper.element),Ut.forEach(function(e){t._imageHopper.element.addEventListener(e,t)}),o.innerHTML="\n\t\t\t\t"+Wt+"\n\t\t\t\t"+qt+'\n\t\t\t\t
\n\t\t\t\t
'+(this._options.label||"")+'
'+(this._options.labelLoading||"")+"
\n\t\t\t\t"+h+"\n\t\t\t",this._input.addEventListener("change",this)}if(this._element.appendChild(o),this._btnGroup=b("div","slim-btn-group"),this._btnGroup.style.display="none",this._element.appendChild(this._btnGroup),Bt.filter(function(e){return t._isButtonAllowed(e)}).forEach(function(e){var i=M(e),n=t._options["button"+i+"Label"],o=t._options["button"+i+"Title"]||n,a=t._options["button"+i+"ClassName"],r=b("button","slim-btn slim-btn-"+e+(a?" "+a:""));r.innerHTML=n,r.title=o,r.type="button",r.addEventListener("click",t),r.setAttribute("data-action",e),t._btnGroup.appendChild(r)}),this._isFixedRatio()){var l=Ot(this._options.ratio,":");this._ratio=l[1]/l[0],this._scaleDropArea(this._ratio)}this._updateProgress(.5),r?this._load(r,function(){t._onInit()},{name:s}):this._onInit()}},{key:"_onInit",value:function(){var t=this;this._isInitialising=!1;var e=function(){var e=setTimeout(function(){t._options.didInit.apply(t,[t.data,t])},0);t._timers.push(e)};this._options.saveInitialImage&&this.containsImage()?this._options.service||this._save(function(){e()},!1):(this._options.service&&this.containsImage()&&this._toggleButton("upload",!1),e())}},{key:"_updateProgress",value:function(t){if(t=Math.min(.99999,t),this._element&&this._progressEnabled){var e=this._element.querySelector(".slim-loader");if(e){var i=e.offsetWidth,n=e.querySelectorAll("path"),o=parseInt(n[0].getAttribute("stroke-width"),10);n[0].setAttribute("d",Mt(.5*i,.5*i,.5*i-o,.9999)),n[1].setAttribute("d",Mt(.5*i,.5*i,.5*i-o,t))}}}},{key:"_startProgress",value:function(t){var e=this;if(this._element){this._progressEnabled=!1;var i=this._element.querySelector(".slim-loader");if(i){var n=i.children[0];this._stopProgressLoop(function(){i.removeAttribute("style"),n.removeAttribute("style"),e._progressEnabled=!0,e._updateProgress(0),e._progressEnabled=!1,h(n,{fromOpacity:0,opacity:1,duration:250,complete:function(){e._progressEnabled=!0,t&&t()}})})}}}},{key:"_stopProgress",value:function(){var t=this;if(this._element){var e=this._element.querySelector(".slim-loader");if(e){var i=e.children[0];this._updateProgress(1),h(i,{fromOpacity:1,opacity:0,duration:250,complete:function(){e.removeAttribute("style"),i.removeAttribute("style"),t._updateProgress(.5),t._progressEnabled=!1}})}}}},{key:"_startProgressLoop",value:function(){if(this._element){var t=this._element.querySelector(".slim-loader");if(t){var e=t.children[0];t.removeAttribute("style"),e.removeAttribute("style"),this._updateProgress(.5);var i=1e3;h(t,"stop"),h(t,{rotation:[0,0,-(2*Math.PI)*i],easing:"linear",duration:1e3*i}),h(e,{fromOpacity:0,opacity:1,duration:250})}}}},{key:"_stopProgressLoop",value:function(t){if(this._element){var e=this._element.querySelector(".slim-loader");if(e){var i=e.children[0];h(i,{fromOpacity:parseFloat(i.style.opacity),opacity:0,duration:250,complete:function(){h(e,"stop"),e.removeAttribute("style"),i.removeAttribute("style"),t&&t()}})}}}},{key:"_isButtonAllowed",value:function(t){return"edit"===t?this._options.edit:"download"===t?this._options.download:"upload"===t?!!this._options.service&&!this._options.push:"remove"!==t||!this._isImageOnly()}},{key:"_fallback",value:function(){var t=b("div","slim-area");t.innerHTML='\n\t\t\t
'+(this._options.label||"")+"
\n\t\t",this._element.appendChild(t),this._throwError(this._options.statusNoSupport)}},{key:"handleEvent",value:function(t){switch(t.type){case"click":this._onClick(t);break;case"change":this._onChange(t);break;case"cancel":this._onCancel(t);break;case"confirm":this._onConfirm(t);break;case"file-over":this._onFileOver(t);break;case"file-out":this._onFileOut(t);break;case"file-drop":this._onDropFile(t);break;case"file-invalid":this._onInvalidFile(t);break;case"file-invalid-drop":this._onInvalidFileDrop(t)}}},{key:"_getIntro",value:function(){return this._element.querySelector(".slim-result .in")}},{key:"_getOutro",value:function(){return this._element.querySelector(".slim-result .out")}},{key:"_getInOut",value:function(){return this._element.querySelectorAll(".slim-result img")}},{key:"_getDrip",value:function(){return this._drip||(this._drip=this._element.querySelector(".slim-drip > span")),this._drip}},{key:"_throwError",value:function(t){this._addState("error"),this._element.querySelector(".slim-label").style.display="none";var e=this._element.querySelector(".slim-error");e||(e=b("div","slim-error"),this._element.querySelector(".slim-status").appendChild(e)),e.innerHTML=t,this._options.didThrowError.apply(this,[t])}},{key:"_removeError",value:function(){this._removeState("error"),this._element.querySelector(".slim-label").style.display="";var t=this._element.querySelector(".slim-error");t&&t.parentNode.removeChild(t)}},{key:"_openFileDialog",value:function(){this._removeError(),this._input.click()}},{key:"_onClick",value:function(t){var e=this,i=t.target.classList,n=t.target;if(i.contains("slim-file-hopper"))return t.preventDefault(),void this._openFileDialog();switch(n.getAttribute("data-action")){case"remove":this._options.willRemove.apply(this,[this.data,function(){e._doRemove()}]);break;case"edit":this._doEdit();break;case"download":this._doDownload();break;case"upload":this._doUpload()}}},{key:"_onInvalidFileDrop",value:function(){this._onInvalidFile(),this._removeState("file-over");var t=this._getDrip();h(t.firstChild,{fromScale:[.5,.5],scale:[0,0],fromOpacity:.5,opacity:0,duration:150,complete:function(){O(t.firstChild)}})}},{key:"_onInvalidFile",value:function(){var t=this._imageHopper.accept.map(U),e=this._options.statusFileType.replace("$0",t.join(", "));this._throwError(e)}},{key:"_onImageTooSmall",value:function(){var t=this._options.statusImageTooSmall.replace("$0",this._options.minSize.width+" × "+this._options.minSize.height);this._throwError(t)}},{key:"_onOverWeightFile",value:function(){var t=this._options.statusFileSize.replace("$0",this._options.maxFileSize);this._throwError(t)}},{key:"_onLocalURLProblem",value:function(t){this._throwError(this._options.statusLocalUrlProblem||t)}},{key:"_onRemoteURLProblem",value:function(t){this._throwError(t)}},{key:"_onFileOver",value:function(t){this._addState("file-over"),this._removeError();var e=this._getDrip(),i=h.createMatrix();i.translate(t.detail.x,t.detail.y,0),h.setElementTransform(e,i),1==this._imageHopper.dragPath.length&&(e.style.opacity=1,h(e.firstChild,{fromOpacity:0,opacity:.5,fromScale:[0,0],scale:[.5,.5],duration:150}))}},{key:"_onFileOut",value:function(t){this._removeState("file-over"),this._removeState("file-invalid"),this._removeError();var e=this._getDrip(),i=h.createMatrix();i.translate(t.detail.x,t.detail.y,0),h.setElementTransform(e,i),h(e.firstChild,{fromScale:[.5,.5],scale:[0,0],fromOpacity:.5,opacity:0,duration:150,complete:function(){O(e.firstChild)}})}},{key:"_onDropFile",value:function(t){var e=this;this._removeState("file-over");var i=this._getDrip(),n=h.createMatrix();n.translate(t.detail.x,t.detail.y,0),h.setElementTransform(i,n);var o=this._imageHopper.dragPath.length,a=this._imageHopper.dragPath[o-Math.min(10,o)],r=t.detail.x-a.x,s=t.detail.y-a.y;h(i,{fromPosition:[t.detail.x,t.detail.y,0],position:[t.detail.x+r,t.detail.y+s,0],duration:200}),h(i.firstChild,{fromScale:[.5,.5],scale:[2,2],fromOpacity:1,opacity:0,duration:200,complete:function(){O(i.firstChild),e._load(t.target.files[0])}})}},{key:"_onChange",value:function(t){t.target.files.length&&this._load(t.target.files[0])}},{key:"_load",value:function(t,e){var i=this,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(!this._isBeingDestroyed){if(this.containsImage())return clearTimeout(this._replaceTimeout),void this._doRemove(function(){i._replaceTimeout=setTimeout(function(){i._load(t,e,n)},100)});this._removeState("empty"),this._addState("busy"),this._startProgressLoop(),this._imageHopper&&(this._imageHopper.enabled=!1),clearTimeout(this._loadTimeout);var o=function(){clearTimeout(i._loadTimeout),i._loadTimeout=setTimeout(function(){i._isBeingDestroyed||(i._addState("loading"),h(i._element.querySelector(".slim-label-loading"),{fromOpacity:0,opacity:1,duration:250}))},500)},a=function(){i._imageHopper&&(i._imageHopper.enabled=!0),i._removeState("loading"),i._removeState("busy"),i._addState("empty"),i._stopProgressLoop()};if("string"==typeof t)return void(G(t)?this._load($(t),e,n):(o(),Y(t,this._options.willLoad,function(t){i._load(t,e,n)},function(t){setTimeout(function(){a(),i._onLocalURLProblem("

"+t+"

"),e&&e.apply(i,["local-url-problem"])},500)})));if("undefined"!=typeof t.remote)return G(t.remote)?void this._load($(t.remote),e,n):void(this._options.fetcher&&X(this._options.fetcher,this._options.willFetch,this._options.willLoad,t.remote,function(t){a(),i._onRemoteURLProblem("

"+t+"

"),e&&e.apply(i,["remote-url-problem"])},function(t){i._load(t,e,n)}));var r=t;if(this._imageHopper&&this._imageHopper.accept.indexOf(r.type)===-1)return a(),this._onInvalidFile(),void(e&&e.apply(this,["file-invalid"]));if(r.size&&this._options.maxFileSize&&z(r.size)>this._options.maxFileSize)return a(),this._onOverWeightFile(),void(e&&e.apply(this,["file-too-big"]));this._imageEditor&&this._imageEditor.dirty(),this._data.input.name=n&&n.name?n.name:W(r),this._data.input.type=q(r),this._data.input.size=r.size,this._data.input.file=r,K(r,this._options.internalCanvasSize,function(t,o){var a=function(){i._imageHopper&&(i._imageHopper.enabled=!0),i._removeState("loading"),i._removeState("busy"),i._addState("empty"),i._stopProgressLoop(),i._resetData()};if(!t)return a(),void(e&&e.apply(i,["file-not-found"]));if(!pt(t,i._options.minSize))return a(),i._onImageTooSmall(),void(e&&e.apply(i,["image-too-small"]));var s=i._options.didLoad.apply(i,[r,t,o,i]);if(s!==!0)return a(),s!==!1&&i._throwError(s),void(e&&e.apply(i,[s]));i._removeState("loading");var u=function(t){i._imageHopper&&i._options.dropReplace&&(i._imageHopper.enabled=!0);var e=i._getIntro(),n={fromScale:[1.25,1.25],scale:[1,1],fromOpacity:0,opacity:1,complete:function(){O(e),e.style.opacity=1,t()}};i.isDetached()?n.duration=1:(n.easing="spring",n.springConstant=.3,n.springDeceleration=.7),i._canInstantEdit()&&(n.delay=500,n.duration=1,i._doEdit()),h(e,n)};i._loadCanvas(t,function(t){i._addState("preview"),u(function(){i._canInstantEdit()||t||i._showButtons(),t||(i._stopProgressLoop(),i._removeState("busy")),e&&e.apply(i,[null,i.data])})},function(){i._canInstantEdit()||i._showButtons(),i._removeState("busy")},{blockPush:n.blockPush})})}}},{key:"_loadCanvas",value:function(t,e,i,n){var o=this;if(n||(n={}),!this._isBeingDestroyed){this._data.input.image=t,this._data.input.width=t.width,this._data.input.height=t.height,this._initialRotation&&(this._data.actions.rotation=this._initialRotation,this._initialRotation=null);var a=this._data.actions.rotation%180!==0;this._isFixedRatio()||(this._initialCrop?this._ratio=this._initialCrop.height/this._initialCrop.width:this._ratio=a?t.width/t.height:t.height/t.width,this._scaleDropArea(this._ratio));var r=function(){o._options.size&&(o._data.actions.size={width:o._options.size.width,height:o._options.size.height}),o._applyTransforms(t,function(t){var a=o._getIntro(),r=a.offsetWidth/t.width,s=!1;o._options.service&&o._options.push&&!n.blockPush&&(o._hasInitialImage||o._canInstantEdit()||(s=!0,o._stopProgressLoop(function(){o._startProgress(function(){o._updateProgress(.1)})}))),o._canInstantEdit()||o._save(function(){o._isBeingDestroyed||s&&(o._stopProgress(),i())},s);var h="auto"===o._options.devicePixelRatio?window.devicePixelRatio:o._options.devicePixelRatio;a.src="",a.src=st(t,r*h).toDataURL(),a.onload=function(){a.onload=null,o._isBeingDestroyed||e&&e(s)}})};this._initialCrop?(this._data.actions.crop=_t(this._initialCrop),this._data.actions.crop.type=Dt.INITIAL,this._initialCrop=null,r()):this._options.willCropInitial.apply(this,[this.data,function(e){e?(o._data.actions.crop=e,o._data.actions.crop.type=Dt.INITIAL):(o._data.actions.crop=Q(a?t.height:t.width,a?t.width:t.height,o._ratio),o._data.actions.crop.type=Dt.AUTO),r()},this])}}},{key:"_applyTransforms",value:function(t,e){var i=this,n=_t(this._data.actions);n.filters={sharpen:this._options.filterSharpen/100},this._options.forceMinSize?n.minSize=this._options.minSize:n.minSize={width:0,height:0},tt(t,n,function(t){var n=t;if(i._options.forceSize||i._options.size&&1==at(i._options.size,t)){n=b("canvas"),n.width=i._options.size.width,n.height=i._options.size.height;var o=n.getContext("2d");o.drawImage(t,0,0,i._options.size.width,i._options.size.height)}if(i._options.forceMinSize&&i._options.size&&i._options.minSize.width===i._options.size.width&&i._options.minSize.height===i._options.size.height&&(n.width0&&void 0!==arguments[0]?arguments[0]:function(t){},e=this._data.actions.rotation%180!==0,i=Q(e?this._data.input.image.height:this._data.input.image.width,e?this._data.input.image.width:this._data.input.image.height,this._ratio);this._crop(i.x,i.y,i.width,i.height,t,Dt.AUTO)}},{key:"_crop",value:function(t,e,i,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:function(t){},a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:Dt.MANUAL;this._output.value="",this._data.actions.crop={x:t,y:e,width:i,height:n},this._data.actions.crop.type=a,this._manualTransform(o)}},{key:"_manualTransform",value:function(t){var e=this;this._startProgressLoop(),this._addState("busy"),this._applyTransforms(this._data.input.image,function(i){var n=e._getInOut(),o="out"===n[0].className?n[0]:n[1],a=o===n[0]?n[1]:n[0];o.className="in",o.style.opacity="1",o.style.zIndex="2",a.className="out",a.style.zIndex="0";var r="auto"===e._options.devicePixelRatio?window.devicePixelRatio:e._options.devicePixelRatio;o.src="",o.src=st(i,o.offsetWidth/i.width*r).toDataURL(),o.onload=function(){o.onload=null,"free"===e._options.ratio&&(e._ratio=o.naturalHeight/o.naturalWidth,e._scaleDropArea(e._ratio));var i=e._options.service&&e._options.push,n=function(){e._save(function(n,o,a){i||e._stopProgressLoop(),e._removeState("busy"),t.apply(e,[e.data])},i)};i?e._startProgress(n):n()}})}},{key:"_save",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){},i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!this._isBeingDestroyed){var n=this.dataBase64;this._options.service||this._isInitialising&&!this._isImageOnly()||this._options.willSave.apply(this,[n,function(e){t._store(e),t._options.didSave.apply(t,[e,t])},this]),this._isBeingDestroyed||(this._options.service&&i&&this._options.willSave.apply(this,[n,function(i){t._addState("upload"),t._imageHopper&&t._options.dropReplace&&(t._imageHopper.enabled=!1),t._upload(i,function(n,o){t._imageHopper&&t._options.dropReplace&&(t._imageHopper.enabled=!0),n||t._storeServerResponse(o),t._options.didUpload.apply(t,[n,i,o,t]),t._removeState("upload"),e(n,i,o)})},this]),this._options.service&&i||e())}}},{key:"_storeServerResponse",value:function(t){this._isRequired&&(this._input.required=!1),this._data.server=t,this._output.value="object"===("undefined"==typeof t?"undefined":p(t))?JSON.stringify(this._data.server):t}},{key:"_store",value:function(t){this._isRequired&&(this._input.required=!1),this._output.value=JSON.stringify(t)}},{key:"_upload",value:function(t,e){var i=this;this.requestOutput(function(t,n){var o=i._element.querySelector(".slim-upload-status"),a=i._options.willRequest,r=function(t,e){i._updateProgress(Math.max(.1,t/e))},s=function(t){var n=setTimeout(function(){if(!i._isBeingDestroyed){o.innerHTML=i._options.statusUploadSuccess,o.setAttribute("data-state","success"),o.style.opacity=1;var t=setTimeout(function(){o.style.opacity=0},2e3);i._timers.push(t)}},250);i._timers.push(n),e(null,t)},h=function(t){var n="";n="file-too-big"===t?i._options.statusContentLength:i._options.didReceiveServerError.apply(i,[t,i._options.statusUnknownResponse,i]);var a=setTimeout(function(){o.innerHTML=n,o.setAttribute("data-state","error"),o.style.opacity=1},250);i._timers.push(a),e(t)};"string"==typeof i._options.service?L(i._options.service,i._options.uploadMethod,n,a,r,s,h):"function"==typeof i._options.service&&i._options.service.apply(i,["file"===i._options.serviceFormat?t:n,r,s,h,i])},t)}},{key:"requestOutput",value:function(t,e){var n=this;return this._data.input.file?(e||(e=this.dataBase64),void i.parseMetaData(this._data.input.file,function(o){var a=[],r=new FormData;if(I("input",n._options.post)&&(a.push(n._data.input.file),r.append(n._inputReference,n._data.input.file,n._data.input.file.name)),I("output",n._options.post)&&null!==n._data.output.image&&n._options.uploadBase64===!1){var s=$(e.output.image,e.output.name);if(o.imageHead&&n._options.copyImageHead)try{s=new Blob([o.imageHead,i.blobSlice.call(s,20)],{type:yt(e.output.image)}),s=V(s,e.output.name)}catch(h){}a.push(s);var u="slim_output_"+n._uid;e.output.image=null,e.output.field=u,r.append(u,s,e.output.name)}r.append(n._output.name,JSON.stringify(e)),t(a,r)},{maxMetaDataSize:262144,disableImageHead:!1})):void t(null,null)}},{key:"_showEditor",value:function(){Nt.className=this._options.popoverClassName,Nt.show(),this._imageEditor.show()}},{key:"_hideEditor",value:function(){this._imageEditor.hide();var t=setTimeout(function(){Nt.hide()},250);this._timers.push(t)}},{key:"_showPreview",value:function(t,e){h(t,{fromPosition:[0,50,0],position:[0,0,0],fromScale:[1.5,1.5],scale:[1,1],fromOpacity:0,opacity:1,easing:"spring",springConstant:.3,springDeceleration:.7,complete:function(){O(t),e&&e()}})}},{key:"_hideResult",value:function(t){var e=this._getIntro();e&&h(e,{fromScale:[1,1],scale:[.5,.5],fromOpacity:1,opacity:0,easing:"spring",springConstant:.3,springDeceleration:.75,complete:function(){O(e),t&&t()}})}},{key:"_showButtons",value:function(t){if(this._btnGroup){this._btnGroup.style.display="";var e={fromScale:[.5,.5],scale:[1,1],fromPosition:[0,10,0],position:[0,0,0],fromOpacity:0,opacity:1,complete:function(){O(this)},allDone:function(){t&&t()}};this.isDetached()?e.duration=1:(e.delay=function(t){return 250+50*t},e.easing="spring",e.springConstant=.3,e.springDeceleration=.85),h(this._btnGroup.childNodes,e)}}},{key:"_hideButtons",value:function(t){var e=this;if(this._btnGroup){var i={fromScale:[1,1],scale:[.85,.85],fromOpacity:1,opacity:0,allDone:function(){e._btnGroup.style.display="none",t&&t()}};this.isDetached()?i.duration=1:(i.easing="spring",i.springConstant=.3,i.springDeceleration=.75),h(this._btnGroup.childNodes,i)}}},{key:"_hideStatus",value:function(){var t=this._element.querySelector(".slim-upload-status");t.style.opacity=0}},{key:"_doEdit",value:function(){var t=this;this._data.input.image&&(this._addState("editor"),this._imageEditor||this._appendEditor(),this._imageEditor.showRotateButton=this._options.rotateButton,Nt.inner=this._imageEditor.element,this._imageEditor.open(rt(this._data.input.image),"free"===this._options.ratio?null:this._ratio,this._data.actions.crop,this._data.actions.rotation,function(){t._showEditor(),t._hideButtons(),t._hideStatus()}))}},{key:"_doRemove",value:function(t){var e=this;if(!this._isImageOnly()){this._clearState(),this._addState("empty"),this._hasInitialImage=!1,this._imageHopper&&(this._imageHopper.enabled=!0),this._isRequired&&(this._input.required=!0);var i=this._getOutro();i&&(i.style.opacity="0");var n=this.data;this._resetData();var o=setTimeout(function(){e._isBeingDestroyed||(e._hideButtons(function(){e._toggleButton("upload",!0)}),e._hideStatus(),e._hideResult(),e._options.didRemove.apply(e,[n,e]),t&&t())},this.isDetached()?0:250);return this._timers.push(o),n}}},{key:"_doUpload",value:function(t){var e=this;this._data.input.image&&(this._addState("upload"),this._startProgress(),this._hideButtons(function(){e._toggleButton("upload",!1),e._save(function(i,n,o){e._removeState("upload"),e._stopProgress(),t&&t.apply(e,[i,n,o]),i&&e._toggleButton("upload",!0),e._showButtons()})}))}},{key:"_doDownload",value:function(){var t=this._data.output.image;t&&bt(this._data,this._options.jpegCompression,this._options.forceType)}},{key:"_doDestroy",value:function(){function t(t,e){return 0!==e.filter(function(e){return t.name===e.name&&t.value===e.value}).length}var e=this;this._isBeingDestroyed=!0,this._timers.forEach(function(t){clearTimeout(t)}),this._timers=[],h(this._element,"detach"),this._imageHopper&&(Ut.forEach(function(t){e._imageHopper.element.removeEventListener(t,e)}),this._imageHopper.destroy(),this._imageHopper=null),this._imageEditor&&(Ht.forEach(function(t){e._imageEditor.element.removeEventListener(t,e)}),this._imageEditor.destroy(),this._imageEditor=null),xt(this._btnGroup.children).forEach(function(t){t.removeEventListener("click",e)}),this._input.removeEventListener("change",this),this._element!==this._originalElement&&this._element.parentNode&&this._element.parentNode.replaceChild(this._originalElement,this._element),this._originalElement.innerHTML=this._originalElementInner;var i=f(this._originalElement);i.forEach(function(i){t(i,e._originalElementAttributes)||e._originalElement.removeAttribute(i.name)}),this._originalElementAttributes.forEach(function(n){t(n,i)||e._originalElement.setAttribute(n.name,n.value)}),Ft=Math.max(0,Ft-1),Nt&&0===Ft&&(Nt.destroy(),Nt=null),this._originalElement=null,this._element=null,this._input=null,this._output=null,this._btnGroup=null,this._options=null}},{key:"dataBase64",get:function(){return wt(this._data,this._options.post,this._options.jpegCompression,this._options.forceType,null!==this._options.service)}},{key:"data",get:function(){return gt(this._data)}},{key:"element",get:function(){return this._element}},{key:"service",set:function(t){this._options.service=t}},{key:"size",set:function(t){this.setSize(t,null)}},{key:"rotation",set:function(t){this.setRotation(t,null)}},{key:"forceSize",set:function(t){this.setForceSize(t,null)}},{key:"ratio",set:function(t){this.setRatio(t,null)}}],[{key:"options",value:function(){var t={edit:!0,instantEdit:!1,uploadBase64:!1,meta:{},ratio:"free",devicePixelRatio:1,size:null,rotation:null,crop:null,post:["output","actions"],service:null,serviceFormat:null,filterSharpen:0,push:!1,defaultInputName:"slim[]",minSize:{width:0,height:0},maxFileSize:null,jpegCompression:null,uploadMethod:"POST",download:!1,saveInitialImage:!1,forceType:!1,forceSize:null,forceMinSize:!0,dropReplace:!0,fetcher:null,internalCanvasSize:{width:4096,height:4096},copyImageHead:!1,rotateButton:!0,popoverClassName:null,label:"

Drop your image here

",labelLoading:"

Loading image...

",statusFileType:"

Invalid file type, expects: $0.

",statusFileSize:"

File is too big, maximum file size: $0 MB.

",statusNoSupport:"

Your browser does not support image cropping.

",statusImageTooSmall:"

Image is too small, minimum size is: $0 pixels.

",statusContentLength:' The file is probably too big',statusUnknownResponse:' An unknown error occurred',statusUploadSuccess:' Saved',statusLocalUrlProblem:null,didInit:function(t){},didLoad:function(t,e,i){return!0},didSave:function(t){},didUpload:function(t,e,i){},didReceiveServerError:function(t,e){return e},didRemove:function(t){},didTransform:function(t){},didConfirm:function(t){},didCancel:function(){},didThrowError:function(){},willCropInitial:function(t,e){e(null)},willTransform:function(t,e){e(t)},willSave:function(t,e){e(t)},willRemove:function(t,e){e()},willRequest:function(t,e){},willFetch:function(t){},willLoad:function(t){}};return Bt.concat(Tt.Buttons).concat("rotate").forEach(function(e){var i=M(e);t["button"+i+"ClassName"]=null,t["button"+i+"Label"]=i,t["button"+i+"Title"]=i}),t}}]),e}();return function(){function t(t){return t?"

"+t+"

":null}function e(t){var e=window,i=t.split(".");return i.forEach(function(t,n){e[i[n]]&&(e=e[i[n]])}),e!==window?e:null}var i=[],n=function(t){for(var e=0,n=i.length;e