/* * Slim v3.1.1 - Image Cropping Made Easy * Copyright (c) 2016 Rik Schennink - http://slim.pqina.nl */ window.Slim=function(){function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t){return v[t?t.toLowerCase():t]||"unknown"}function i(t,e){if(!(e>=1)){for(var i,n=G(t),o=t.width,r=t.height,a=Math.ceil(t.width*e),s=Math.ceil(t.height*e);o>a&&(o*=.5,r*=.5,!(oa?(i.maxWidth=r*a,i.maxHeight=r):(i.maxWidth=o,i.maxHeight=o/a),i},n.renderImageToCanvas=function(t,e,i,n,o,r,a,s,h,u){return t.getContext("2d").drawImage(e,i,n,o,r,a,s,h,u),t},n.hasCanvasOption=function(t){return t.canvas||t.crop||!!t.aspectRatio},n.scale=function(t,e){function i(){var t=Math.max((s||w)/w,(h||b)/b);t>1&&(w*=t,b*=t)}function o(){var t=Math.min((r||w)/w,(a||b)/b);t<1&&(w*=t,b*=t)}e=e||{};var r,a,s,h,u,l,c,p,d,f,m,_=document.createElement("canvas"),g=t.getContext||n.hasCanvasOption(e)&&_.getContext,v=t.naturalWidth||t.width,y=t.naturalHeight||t.height,w=v,b=y;if(g&&(e=n.getTransformedOptions(t,e),c=e.left||0,p=e.top||0,e.sourceWidth?(u=e.sourceWidth,void 0!==e.right&&void 0===e.left&&(c=v-u-e.right)):u=v-c-(e.right||0),e.sourceHeight?(l=e.sourceHeight,void 0!==e.bottom&&void 0===e.top&&(p=y-l-e.bottom)):l=y-p-(e.bottom||0),w=u,b=l),r=e.maxWidth,a=e.maxHeight,s=e.minWidth,h=e.minHeight,g&&r&&a&&e.crop?(w=r,b=a,m=u/l-r/a,m<0?(l=a*u/r,void 0===e.top&&void 0===e.bottom&&(p=(y-l)/2)):m>0&&(u=r*l/a,void 0===e.left&&void 0===e.right&&(c=(v-u)/2))):((e.contain||e.cover)&&(s=r=r||s,h=a=a||h),e.cover?(o(),i()):(i(),o())),g){if(d=e.pixelRatio,d>1&&(_.style.width=w+"px",_.style.height=b+"px",w*=d,b*=d,_.getContext("2d").scale(d,d)),f=e.downsamplingRatio,f>0&&f<1&&ww;)_.width=u*f,_.height=l*f,n.renderImageToCanvas(_,t,c,p,u,l,0,0,_.width,_.height),u=_.width,l=_.height,t=document.createElement("canvas"),t.width=u,t.height=l,n.renderImageToCanvas(t,_,0,0,u,l,0,0,u,l);return _.width=w,_.height=b,n.transformCoordinates(_,e),n.renderImageToCanvas(_,t,c,p,u,l,0,0,w,b)}return t.width=w,t.height=b,t},n.createObjectURL=function(t){return!!o&&o.createObjectURL(t)},n.revokeObjectURL=function(t){return!!o&&o.revokeObjectURL(t)},n.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 r=n.hasCanvasOption,a=n.transformCoordinates,s=n.getTransformedOptions;n.hasCanvasOption=function(t){return!!t.orientation||r.call(n,t)},n.transformCoordinates=function(t,e){a.call(n,t,e);var i=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:i.translate(o,0),i.scale(-1,1);break;case 3:i.translate(o,r),i.rotate(Math.PI);break;case 4:i.translate(0,r),i.scale(1,-1);break;case 5:i.rotate(.5*Math.PI),i.scale(1,-1);break;case 6:i.rotate(.5*Math.PI),i.translate(0,-r);break;case 7:i.rotate(.5*Math.PI),i.translate(o,-r),i.scale(-1,1);break;case 8:i.rotate(-.5*Math.PI),i.translate(-o,0)}},n.getTransformedOptions=function(t,e){var i,o,r=s.call(n,t,e),a=r.orientation;if(!a||a>8||1===a)return r;i={};for(o in r)r.hasOwnProperty(o)&&(i[o]=r[o]);switch(r.orientation){case 2:i.left=r.right,i.right=r.left;break;case 3:i.left=r.right,i.top=r.bottom,i.right=r.left,i.bottom=r.top;break;case 4:i.top=r.bottom,i.bottom=r.top;break;case 5:i.left=r.top,i.top=r.left,i.right=r.bottom,i.bottom=r.right;break;case 6:i.left=r.top,i.top=r.right,i.right=r.bottom,i.bottom=r.left;break;case 7:i.left=r.bottom,i.top=r.right,i.right=r.top,i.bottom=r.left;break;case 8:i.left=r.bottom,i.top=r.left,i.right=r.top,i.bottom=r.right}return r.orientation>4&&(i.maxWidth=r.maxHeight,i.maxHeight=r.maxWidth,i.minWidth=r.minHeight,i.minHeight=r.minWidth,i.sourceWidth=r.sourceHeight,i.sourceHeight=r.sourceWidth),i};var h=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);n.blobSlice=h&&function(){var t=this.slice||this.webkitSlice||this.mozSlice;return t.apply(this,arguments)},n.metaDataParsers={jpeg:{65505:[]}},n.parseMetaData=function(t,e,i){i=i||{};var o=this,r=i.maxMetaDataSize||262144,a={},s=!(window.DataView&&t&&t.size>=12&&"image/jpeg"===t.type&&n.blobSlice);!s&&n.readFile(n.blobSlice.call(t,0,r),function(t){if(t.target.error)return void e(a);var r,s,h,u,l=t.target.result,c=new DataView(l),p=2,d=c.byteLength-4,f=p;if(65496===c.getUint16(0)){for(;p=65504&&r<=65519||65534===r)&&(s=c.getUint16(p+2)+2,!(p+s>c.byteLength));){if(h=n.metaDataParsers.jpeg[r])for(u=0;u6&&(l.slice?a.imageHead=l.slice(0,f):a.imageHead=new Uint8Array(l).subarray(0,f))}e(a)},"readAsArrayBuffer")||e(a)},n.ExifMap=function(){return this},n.ExifMap.prototype.map={Orientation:274},n.ExifMap.prototype.get=function(t){return this[t]||this[this.map[t]]},n.getExifThumbnail=function(t,e,i){var n,o,r;if(i&&!(e+i>t.byteLength)){for(n=[],o=0;o4?e+t.getUint32(i+8,a):i+8,!(h+s>t.byteLength))){if(1===r)return d.getValue(t,h,a);for(u=[],l=0;lt.byteLength||(r=t.getUint16(i,n),a=i+2+12*r,a+4>t.byteLength))){for(s=0;st.byteLength)&&0===t.getUint16(e+8)){switch(t.getUint16(u)){case 18761:a=!0;break;case 19789:a=!1;break;default:return}42===t.getUint16(u+2,a)&&(s=t.getUint32(u+4,a),o.exif=new n.ExifMap,s=n.parseExifTags(t,u,u+s,a,o),s&&!r.disableExifThumbnail&&(h={exif:{}},s=n.parseExifTags(t,u,u+s,a,h),h.exif[513]&&(o.exif.Thumbnail=n.getExifThumbnail(t,u+h.exif[513],h.exif[514]))),o.exif[34665]&&!r.disableExifSub&&n.parseExifTags(t,u,u+o.exif[34665],a,o),o.exif[34853]&&!r.disableExifGps&&n.parseExifTags(t,u,u+o.exif[34853],a,o))}}},n.metaDataParsers.jpeg[65505].push(n.parseExifData);var u=function(){var t=[],e=[],i=[],n="transform",o=window.getComputedStyle(document.documentElement,""),r=(Array.prototype.slice.call(o).join("").match(/-(moz|webkit|ms)-/)||""===o.OLink&&["","o"])[1];"webkit"===r&&(n="webkitTransform");var a=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}},r=0,a=n.length;r1&&!g.isStopped()?(r.loop-=1,g.restart(),v(o)):(r.complete&&r.complete.call(t),y.length&&(r=y.pop(),h=m(r,c,!0),c=m(r,G(c)),r=_(h,c,r),g=w(r),e.push([t,g]),g.tick(i),v(o)))):v(o)}if("attention"===i)return u(t,n);if("stop"===i)return l(t);var r=i;p();var a=f(t),h=a;h=m(r,h,!0);var c=G(a);c=m(r,c);var d=_(h,c,r),g=w(d);e.push([t,g]),g.updateElement(t,!0);var y=[],b={snabbt:function(t){return y.unshift(s(t,0,1)),b},then:function(t){return this.snabbt(t)}};return v(o),r.manual?g:b},u=function(t,i){function n(e){r.tick(e),r.updateElement(t),r.completed()?(i.callback&&i.callback(t),i.loop&&i.loop>1&&(i.loop--,r.restart(),v(n))):v(n)}var o=m(i,N({}));i.movement=o;var r=b(i);e.push([t,r]),v(n)},l=function(t){for(var i=0,n=e.length;io){d=!0,c=t-o;var e=Math.min(Math.max(0,c-l),n);a.tick(e/n),this.updateCurrentTransform(),this.completed()&&h&&h()}}},getCurrentState:function(){return s},setValue:function(t){d=!0,m=Math.min(Math.max(t,1e-4),1+_)},updateCurrentTransform:function(){var t=a.getValue();if(f){var e=Math.max(1e-5,m-_);a.tick(e),t=a.getValue()}u.tween(t)},completed:function(){return!!p||0!==l&&a.completed()},updateElement:function(t,e){if(d||e){var i=u.asMatrix(),n=u.getProperties();j(t,i,r),q(t,n)}}}},b=function(t){var e=t.movement;t.initialVelocity=.1,t.equilibriumPosition=0;var i=S(t),n=!1,o=e.position,r=e.rotation,a=e.rotationPost,s=e.scale,h=e.skew,u=N({position:o?[0,0,0]:void 0,rotation:r?[0,0,0]:void 0,rotationPost:a?[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),r&&(u.rotation[0]=e.rotation[0]*t,u.rotation[1]=e.rotation[1]*t,u.rotation[2]=e.rotation[2]*t),a&&(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){j(t,u.asMatrix()),q(t,u.getProperties())},getCurrentState:function(){return u},completed:function(){return i.equilibrium||n},restart:function(){i=S(t)}}},k=function(t){return t},x=function(t){return(Math.cos(t*Math.PI+Math.PI)+1)/2},E=function(t){return t*t},C=function(t){return-Math.pow(t-1,2)+1},S=function(t){var e=B(t.startPosition,0),i=B(t.equilibriumPosition,1),n=B(t.initialVelocity,0),o=B(t.springConstant,.8),r=B(t.springDeceleration,.9),a=B(t.springMass,10),s=!1;return{tick:function(t){if(0!==t&&!s){var h=-(e-i)*o,u=h/a;n+=u,e+=n,n*=r,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}}},P={linear:k,ease:x,easeIn:E,easeOut:C},I=function(t,e){if("spring"==t)return S(e);var i=t;V(t)||(i=P[t]);var n,o=i,r=0;return{tick:function(t){r=o(t),n=t},resetFrom:function(t){n=0},getValue:function(){return r},completed:function(){return n>=1&&n}}},O=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},T=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},M=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},L=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},R=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},D=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},A=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},z=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]},F=function(){var t=new Float32Array(16),e=new Float32Array(16),i=new Float32Array(16);return A(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(){A(t)},translate:function(n,o,r){return z(t,e),O(i,n,o,r),U(e,i,t),this},rotateX:function(n){return z(t,e),T(i,n),U(e,i,t),this},rotateY:function(n){return z(t,e),M(i,n),U(e,i,t),this},rotateZ:function(n){return z(t,e),L(i,n),U(e,i,t),this},scale:function(n,o){return z(t,e),D(i,n,o),U(e,i,t),this},skew:function(n,o){return z(t,e),R(i,n,o),U(e,i,t),this}}},U=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},N=function(t){var e=F(),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 N({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}}},H=function(t,e,i){var n=t,o=e,r=i,a=void 0!==o.position,s=void 0!==o.rotation,h=void 0!==o.rotationPost,u=void 0!==o.scale,l=void 0!==o.skew,c=void 0!==o.width,p=void 0!==o.height,d=void 0!==o.opacity;return{tween:function(t){if(a){var e=o.position[0]-n.position[0],i=o.position[1]-n.position[1],f=o.position[2]-n.position[2];r.position[0]=n.position[0]+t*e,r.position[1]=n.position[1]+t*i,r.position[2]=n.position[2]+t*f}if(s){var m=o.rotation[0]-n.rotation[0],_=o.rotation[1]-n.rotation[1],g=o.rotation[2]-n.rotation[2];r.rotation[0]=n.rotation[0]+t*m,r.rotation[1]=n.rotation[1]+t*_,r.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];r.rotationPost[0]=n.rotationPost[0]+t*v,r.rotationPost[1]=n.rotationPost[1]+t*y,r.rotationPost[2]=n.rotationPost[2]+t*w}if(l){var b=o.scale[0]-n.scale[0],k=o.scale[1]-n.scale[1];r.scale[0]=n.scale[0]+t*b,r.scale[1]=n.scale[1]+t*k}if(u){var x=o.skew[0]-n.skew[0],E=o.skew[1]-n.skew[1];r.skew[0]=n.skew[0]+t*x,r.skew[1]=n.skew[1]+t*E}if(c){var C=o.width-n.width;r.width=n.width+t*C}if(p){var S=o.height-n.height;r.height=n.height+t*S}if(d){var P=o.opacity-n.opacity;r.opacity=n.opacity+t*P}},asMatrix:function(){return r.asMatrix()},getProperties:function(){return r.getProperties()},setReverse:function(){var t=n;n=o,o=t}}},W=function(t,e,i,n){var o=t(0,F()),r=e,a=i,s=n,h=!1;return{tween:function(e){h&&(e=1-e),o.clear(),o=t(e,o);var i=a.width-r.width,n=a.height-r.height,u=a.opacity-r.opacity;void 0!==a.width&&(s.width=r.width+e*i),void 0!==a.height&&(s.height=r.height+e*n),void 0!==a.opacity&&(s.opacity=r.opacity+e*u)},asMatrix:function(){return o},getProperties:function(){return s.getProperties()},setReverse:function(){h=!0}}},B=function(t,e){return"undefined"==typeof t?e:t},j=function(t,e,i){var o="";i&&(o="perspective("+i+"px) ");var r=e.asCSS();t.style[n]=o+r},q=function(t,e){for(var i in e)t.style[i]=e[i]},V=function(t){return"function"==typeof t},G=function(t){if(!t)return t;var e={};for(var i in t)e[i]=t[i];return e};return a.createMatrix=F,a.setElementTransform=j,a}(),l=function(){function t(t,e,i,n,o){if("string"==typeof t)t=document.getElementById(t);else if(!t instanceof HTMLCanvasElement)return;var r,a=t.getContext("2d");try{try{r=a.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 r}function e(e,n,o,r,a,s){if(!(isNaN(s)||s<1)){s|=0;var h=t(e,n,o,r,a);h=i(h,n,o,r,a,s),e.getContext("2d").putImageData(h,n,o)}}function i(t,e,i,a,s,h){var u,l,c,p,d,f,m,_,g,v,y,w,b,k,x,E,C,S,P,I,O,T,M,L,R=t.data,D=h+h+1,A=a-1,z=s-1,F=h+1,U=F*(F+1)/2,N=new n,H=N;for(c=1;c>V,0!=M?(M=255/M,R[f]=(_*q>>V)*M,R[f+1]=(g*q>>V)*M,R[f+2]=(v*q>>V)*M):R[f]=R[f+1]=R[f+2]=0,_-=w,g-=b,v-=k,y-=x,w-=B.r,b-=B.g,k-=B.b,x-=B.a,p=m+((p=u+h+1)>V,M>0?(M=255/M,R[p]=(_*q>>V)*M,R[p+1]=(g*q>>V)*M,R[p+2]=(v*q>>V)*M):R[p]=R[p+1]=R[p+2]=0,_-=w,g-=b,v-=k,y-=x,w-=B.r,b-=B.g,k-=B.b,x-=B.a,p=u+((p=l+F)u.height&&(a.y=Math.max(0,u.height-a.height)),a.x+a.width>u.width&&(a.x=Math.max(0,u.width-a.width)),o.width=a.width,o.height=a.height;var f=o.getContext("2d");90===r?(f.translate(.5*o.width,.5*o.height),f.rotate(-90*Math.PI/180),f.drawImage(t,(1-c)*t.width-t.width*d,a.x,a.height,a.width,.5*-o.height,.5*-o.width,o.height,o.width)):180===r?(f.translate(.5*o.width,.5*o.height),f.rotate(-180*Math.PI/180),f.drawImage(t,(1-(l+p))*u.width,(1-(c+d))*u.height,p*u.width,d*u.height,.5*-o.width,.5*-o.height,o.width,o.height)):270===r?(f.translate(.5*o.width,.5*o.height),f.rotate(-270*Math.PI/180),f.drawImage(t,a.y,(1-l)*t.height-t.height*p,a.height,a.width,.5*-o.height,.5*-o.width,o.height,o.width)):f.drawImage(t,a.x,a.y,a.width,a.height,0,0,o.width,o.height)}s&&i(o,Math.min(s.width/o.width,s.height/o.height)),n(o)},G=function(t){return X(t,1)},X=function(t,e){if(!t)return null;var n=document.createElement("canvas");n.setAttribute("data-file",t.getAttribute("data-file"));var o=n.getContext("2d");return n.width=t.width,n.height=t.height,o.drawImage(t,0,0),e>0&&1!=e&&i(n,e),n},Y=function(t){return t.width&&t.height},$=function(t,e){var i=e.getContext("2d");Y(e)?i.drawImage(t,0,0,e.width,e.height):(e.width=t.width,e.height=t.height,i.drawImage(t,0,0))},J=function(t){l(t,0,0,t.width,t.height,3)},Z=function(t,e,i){t.toBlob(function(t){if("msSaveBlob"in window.navigator)return void window.navigator.msSaveBlob(t,e);var i=URL.createObjectURL(t),n=b("a");n.style.display="none",n.download=e,n.href=i,document.body.appendChild(n),n.click(),setTimeout(function(){document.body.removeChild(n),URL.revokeObjectURL(i)},0)},i)},K=function(t,e){return parseInt(t.width,10)>=e.width&&parseInt(t.height,10)>=e.height},Q=function(t,e,i){return{x:t.x*e,y:t.y*i,width:t.width*e,height:t.height*i}},tt=function(t,e,i){return{x:t.x/e,y:t.y/i,width:t.width/e,height:t.height/i}},et=function(t){return{x:Math.floor(t.x),y:Math.floor(t.y),width:Math.floor(t.width),height:Math.floor(t.height)}},it=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)}}},nt=function(t){return"object"===("undefined"==typeof value?"undefined":p(value))&&null!==value?JSON.parse(JSON.stringify(t)):t},ot=function(t){ var e=G(t.input.image),i=G(t.output.image),n=nt(t);return n.input.image=e,n.output.image=i,n},rt=function(t,e,i){return t&&e?t.toDataURL(e,D(e)&&"number"==typeof i?i/100:void 0):null},at=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},st=function(t){var e=arguments.length<=1||void 0===arguments[1]?[]:arguments[1],i=arguments[2],n={server:nt(t.server),meta:nt(t.meta),input:{name:t.input.name,type:t.input.type,size:t.input.size,width:t.input.width,height:t.input.height},output:{width:t.output.width,height:t.output.height}};O("input",e)&&(n.input.image=rt(t.input.image,t.input.type)),O("output",e)&&(n.output.image=rt(t.output.image,t.input.type,i)),O("actions",e)&&(n.actions=nt(t.actions));var o=at(n.output.image||n.input.image);return"image/png"===o&&(n.input.name=F(n.input.name)+".png",n.input.type=o),n},ht=function(t,e,i){var n=i.querySelector(t);n&&(n.style.display=e?"":"none")},ut=function(t){return Array.prototype.slice.call(t)},lt=function(t){t.parentNode.removeChild(t)},ct=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},pt=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)}},dt=function(t,e,i,n,o){var r=pt(t,e,i,o),a=pt(t,e,i,n),s=o-n<=180?"0":"1",h=["M",r.x,r.y,"A",i,i,0,s,0,a.x,a.y].join(" ");return h},ft=function(t,e,i,n){return dt(t,e,i,0,360*n)},mt=function(){var e={n:function(t,e,i,n){var o,r,a,s,h,u,l,c;return a=t.y+t.height,o=I(e.y,0,a),a-oi.width)&&(c=Math.min(t.x,i.width-(t.x+t.width)),s=t.x-c,r=t.x+t.width+c,h=r-s,u=h*n,o=a-u),{x:s,y:o,width:r-s,height:a-o}},s:function(t,e,i,n){var o,r,a,s,h,u,l,c;return o=t.y,a=I(e.y,o,i.height),a-oi.width)&&(c=Math.min(t.x,i.width-(t.x+t.width)),s=t.x-c,r=t.x+t.width+c,h=r-s,u=h*n,a=o+u),{x:s,y:o,width:r-s,height:a-o}},e:function(t,e,i,n){var o,r,a,s,h,u,l,c;return s=t.x,r=I(e.x,s,i.width),r-si.height)&&(c=Math.min(t.y,i.height-(t.y+t.height)),o=t.y-c,a=t.y+t.height+c,u=a-o,h=u/n,r=s+h),{x:s,y:o,width:r-s,height:a-o}},w:function i(t,e,n,o){var r,a,s,h,i,u,l,c;return a=t.x+t.width,h=I(e.x,0,a),a-hn.height)&&(c=Math.min(t.y,n.height-(t.y+t.height)),r=t.y-c,s=t.y+t.height+c,u=s-r,i=u/o,h=a-i),{x:h,y:r,width:a-h,height:s-r}},ne:function(t,e,i,n){var o,r,a,s,h,u,l;return s=t.x,a=t.y+t.height,r=I(e.x,s,i.width),r-si.height)&&(l=Math.min(t.y,i.height-(t.y+t.height)),o=t.y-l,u=a-o,h=u/n,r=s+h),{x:s,y:o,width:r-s,height:a-o}},se:function(t,e,i,n){var o,r,a,s,h,u,l;return s=t.x,o=t.y,r=I(e.x,s,i.width),r-si.height)&&(l=Math.min(t.y,i.height-(t.y+t.height)),a=t.y+t.height+l,u=a-o,h=u/n,r=s+h),{x:s,y:o,width:r-s,height:a-o}},sw:function(t,e,i,n){var o,r,a,s,h,u,l;return r=t.x+t.width,o=t.y,s=I(e.x,0,r),r-si.height)&&(l=Math.min(t.y,i.height-(t.y+t.height)),a=t.y+t.height+l,u=a-o,h=u/n,s=r-h),{x:s,y:o,width:r-s,height:a-o}},nw:function(t,e,i,n){var o,r,a,s,h,u,l;return r=t.x+t.width,a=t.y+t.height,s=I(e.x,0,r),r-si.height)&&(l=Math.min(t.y,i.height-(t.y+t.height)),o=t.y-l,u=a-o,h=u/n,s=r-h),{x:s,y:o,width:r-s,height:a-o}}};return function(){function i(){var e=arguments.length<=0||void 0===arguments[0]?document.createElement("div"):arguments[0];t(this,i),this._element=e,this._interaction=null,this._minWidth=0,this._minHeight=0,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 c(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,g.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,height:e}}},{key:"resize",value:function(t,e,i,n){this._interaction=null,this._rect={x:t,y:e,width:I(i,0,this._space.width),height:I(n,0,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,g.MOVE,this),k(document,g.UP,this),this._interaction={type:t.target.className,offset:C(t,this._element)},this._element.setAttribute("data-dragging","true"),this._redraw())}},{key:"_onDrag",value:function(t){t.preventDefault();var i=C(t,this._element.parentNode),n=this._interaction.type;"c"===n?(this._rect.x=I(i.x-this._interaction.offset.x,0,this._space.width-this._rect.width),this._rect.y=I(i.y-this._interaction.offset.y,0,this._space.height-this._rect.height)):e[n]&&(this._rect=e[n](this._rect,i,{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,g.MOVE,this),x(document,g.UP,this),this._interaction=null,this._element.setAttribute("data-dragging","false"),this._element.dispatchEvent(new CustomEvent("change"))}},{key:"_redraw",value:function(){var t=this;this._rectChanged&&(this._element.style.cssText="\n\t\t\t\t\tleft:"+this._rect.x+"px;\n\t\t\t\t\ttop:"+this._rect.y+"px;\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,g.DOWN,this),x(document,g.MOVE,this),x(document,g.UP,this),lt(this._element)}},{key:"element",get:function(){return this._element}},{key:"space",get:function(){return this._space}},{key:"area",get:function(){return{x:this._rect.x/this._space.width,y:this._rect.y/this._space.height,width:this._rect.width/this._space.width,height:this._rect.height/this._space.height}}},{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=t}},{key:"minHeight",set:function(t){this._minHeight=t}},{key:"ratio",set:function(t){this._ratio=t}}]),i}()}(),_t=function(){var e=["input","change"],i=function(){function i(){var e=arguments.length<=0||void 0===arguments[0]?document.createElement("div"):arguments[0],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._input=null,this._preview=null,this._previewBlurred=null,this._blurredPreview=!1,this._cropper=null,this._previewWrapper=null,this._currentWindowSize={},this._btnGroup=null,this._dirty=!1,this._wrapperRotation=0,this._wrapperScale=1,this._init()}return c(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 mt,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._preview=b("img","slim-crop"),this._previewWrapper.appendChild(this._preview),this._btnGroup=b("div","slim-editor-btn-group"),i.Buttons.forEach(function(e){var i=S(e),n=t._options["button"+i+"Label"],o=t._options["button"+i+"Title"],r=t._options["button"+i+"ClassName"],a=b("button","slim-editor-btn slim-btn-"+e+(r?" "+r:""));a.innerHTML=n,a.title=o||n,a.type="button",a.setAttribute("data-action",e),a.addEventListener("click",t),t._btnGroup.appendChild(a)}),this._utilsGroup=b("div","slim-editor-utils-group");var n=b("button","slim-editor-utils-btn slim-btn-rotate");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 _.RETURN:this._confirm();break;case _.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=u.createMatrix();t.scale(this._wrapperScale,this._wrapperScale),t.rotateZ(this._wrapperRotation*(Math.PI/180)),u.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,r=e/n;r*o>i&&(r=i/o),this._wrapperScale=r}else this._wrapperScale=1}},{key:"_cancel",value:function(){this._element.dispatchEvent(new CustomEvent("cancel"))}},{key:"_confirm",value:function(){var t=this._wrapperRotation%180!==0;this._element.dispatchEvent(new CustomEvent("confirm",{detail:{rotation:this._wrapperRotation%360,crop:Q(this._cropper.area,t?this._input.height:this._input.width,t?this._input.width:this._input.height)}}))}},{key:"_rotate",value:function(){var t=this;this._updateWrapperRotation(),this._updateWrapperScale(),this._clearCropMask(),this._hideCropper(),u(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(),t._showCropper()}})}},{key:"_showCropper",value:function(){u(this._stage,{easing:"ease",duration:250,fromOpacity:0,opacity:1})}},{key:"_hideCropper",value:function(){u(this._stage,{duration:0,fromOpacity:0,opacity:0})}},{key:"_clearCropMask",value:function(){this._preview.style.clip=""}},{key:"_redrawCropMask",value:function(){var t=this,e=this._wrapperRotation%360,i={width:this._wrapper.offsetWidth,height:this._wrapper.offsetHeight},n=this._cropper.area,o=n.x,r=n.y,a=n.width,s=n.height;90===e?(n.x=1-r-s,n.y=o,n.width=s,n.height=a):180===e?(n.x=1-(o+a),n.y=1-(r+s),n.width=a,n.height=s):270===e&&(n.x=r,n.y=1-o-a,n.width=s,n.height=a),n=Q(n,i.width,i.height),requestAnimationFrame(function(){t._preview.style.clip="rect(\n\t\t\t\t\t"+n.y+"px,\n\t\t\t\t\t"+(n.x+n.width)+"px,\n\t\t\t\t\t"+(n.y+n.height)+"px,\n\t\t\t\t\t"+n.x+"px)\n\t\t\t\t"})}},{key:"open",value:function(t,e,i,n,o){var r=this;if(this._input&&!this._dirty)return void o();this._dirty=!1,this._wrapperRotation=n||0,this._blurredPreview=!1,this._ratio=e,this._element.style.opacity="0",this._input=t;var a=n%180!==0,s=tt(i,a?t.height:t.width,a?t.width:t.height);this._preview.onload=function(){r._preview.onload=null,r._cropper.ratio=r.ratio,r._redraw(),r._redrawCropper(s),o(),r._element.style.opacity=""},this._preview.src=X(this._input,Math.min(this._container.offsetWidth/this._input.width,this._container.offsetHeight/this._input.height)).toDataURL()}},{key:"_redrawCropper",value:function(t){var e=this._wrapperRotation%180!==0,i=this._wrapper.offsetWidth,n=this._wrapper.offsetHeight,o=this._container.offsetWidth,r=this._container.offsetHeight;this._updateWrapperScale();var a=this._wrapperScale*(e?n:i),s=this._wrapperScale*(e?i:n),h=e?.5*(o-a):this._wrapper.offsetLeft,u=e?.5*(r-s):this._wrapper.offsetTop;this._stage.style.cssText="\n\t\t\t\tleft:"+h+"px;\n\t\t\t\ttop:"+u+"px;\n\t\t\t\twidth:"+a+"px;\n\t\t\t\theight:"+s+"px;\n\t\t\t",this._cropper.limit(a,s),this._cropper.minWidth=this._wrapperScale*this._options.minSize.width*this.scalar,this._cropper.minHeight=this._wrapperScale*this._options.minSize.height*this.scalar;var l=null;l=t?{x:t.x*a,y:t.y*s,width:t.width*a,height:t.height*s}:q(a,s,this._ratio||s/a),this._cropper.resize(l.x,l.y,l.width,l.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 r=(e-n)/2,a=(i-o)/2;this._wrapper.style.cssText="\n\t\t\t\tleft:"+r+"px;\n\t\t\t\ttop:"+a+"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.width=n,this._preview.height=o,this._blurredPreview||(this._previewBlurred.width=300,this._previewBlurred.height=this._previewBlurred.width*t,$(this._input,this._previewBlurred),J(this._previewBlurred,3),this._blurredPreview=!0)}},{key:"show",value:function(){var t=arguments.length<=0||void 0===arguments[0]?function(){}:arguments[0];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);u(this._previewWrapper,{fromRotation:[0,0,e],rotation:[0,0,e],fromPosition:[0,0,0],position:[0,0,0],fromOpacity:0,opacity:.9999,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?u(this._stage,{fromPosition:[0,0,0],position:[0,0,0],fromOpacity:0,opacity:1,duration:250,delay:550,complete:function(){M(this),t()}}):u(this._stage,{fromPosition:[0,0,0],position:[0,0,0],fromOpacity:0,opacity:1,duration:250,delay:1e3,complete:function(){M(this)}}),u(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(){M(this)}}),u(this._utilsGroup.childNodes,{fromScale:[.9,.9],scale:[1,1],fromOpacity:0,opacity:1,easing:"spring",springConstant:.3,springDeceleration:.85,delay:1250,complete:function(){M(this)}})}},{key:"hide",value:function(){var t=arguments.length<=0||void 0===arguments[0]?function(){}:arguments[0];document.removeEventListener("keydown",this),window.removeEventListener("resize",this),u(this._utilsGroup.childNodes,{fromOpacity:1,opacity:0,duration:250}),u(this._btnGroup.childNodes,{fromOpacity:1,opacity:0,delay:200,duration:350}),u([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;ut(this._btnGroup.children).forEach(function(e){e.removeEventListener("click",t)}),e.forEach(function(e){t._cropper.element.removeEventListener(e,t)}),this._cropper.destroy(),lt(this._element)}},{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._preview.width/this._input.width}}],[{key:"options",value:function(){return{buttonCancelClassName:null,buttonConfirmClassName:null,buttonCancelLabel:"Cancel",buttonConfirmLabel:"Confirm",buttonCancelTitle:null,buttonConfirmTitle:null,buttonRotateTitle:"Rotate",minSize:{width:0,height:0}}}}]),i}();return i.Buttons=["cancel","confirm"],i}(mt),gt=function(){var e=["dragover","dragleave","drop"];return function(){function i(){var e=arguments.length<=0||void 0===arguments[0]?document.createElement("div"):arguments[0];t(this,i),this._element=e,this._accept=[],this._dragPath=null,this._init()}return c(i,[{key:"areValidFiles",value:function(t){return!this._accept.length||!t||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"dragover":this._onDragOver(t);break;case"dragleave":this._onDragLeave(t);break;case"drop":this._onDrop(t)}}},{key:"_onDrop",value:function(t){return t.preventDefault(),this.areValidFiles(t.dataTransfer.files)?(this._element.files=t.dataTransfer.files,this._element.dispatchEvent(new CustomEvent("file-drop",{detail:f(t)})),this._element.dispatchEvent(new CustomEvent("change")),void(this._dragPath=null)):(this._element.dispatchEvent(new CustomEvent("file-invalid-drop")),void(this._dragPath=null))}},{key:"_onDragOver",value:function(t){return t.preventDefault(),t.dataTransfer.dropEffect="copy",this.areValidFiles(t.dataTransfer.items)?(this._dragPath||(this._dragPath=[]),this._dragPath.push(f(t)),void this._element.dispatchEvent(new CustomEvent("file-over",{detail:{x:P(this._dragPath).x,y:P(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:f(t)})),this._dragPath=null}},{key:"destroy",value:function(){var t=this;e.forEach(function(e){t._element.removeEventListener(e,t)}),lt(this._element)}},{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:"accept",set:function(t){this._accept=t},get:function(){return this._accept}}]),i}()}(),vt=function(){return function(){function e(){t(this,e),this._element=null,this._inner=null,this._init()}return c(e,[{key:"_init",value:function(){this._element=b("div","slim-popover"),this._element.setAttribute("data-state","off"),document.body.appendChild(this._element)}},{key:"show",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?function(){}:arguments[0];this._element.setAttribute("data-state","on"),u(this._element,{fromOpacity:0,opacity:1,duration:350,complete:function(){M(t._element),e()}})}},{key:"hide",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?function(){}:arguments[0];u(this._element,{fromOpacity:1,opacity:0,duration:500,complete:function(){M(t._element),t._element.setAttribute("data-state","off"),e()}})}},{key:"destroy",value:function(){this._element.parentNode&&this._element.parentNode.removeChild(this._element)}},{key:"inner",set:function(t){this._inner=t,this._element.firstChild&&this._element.removeChild(this._element.firstChild),this._element.appendChild(this._inner)}}]),e}()}(),yt=function(t,e){return t.split(e).map(function(t){return parseInt(t,10)})},wt=function(t){return"DIV"===t.nodeName},bt={AUTO:"auto",INITIAL:"initial",MANUAL:"manual"},kt=["x","y","width","height"],xt=["file-invalid-drop","file-invalid","file-drop","file-over","file-out","click"],Et=["cancel","confirm"],Ct=["remove","edit","download","upload"],St=null,Pt=0,It='\n
\n\t\n\t\t\n\t\t\n\t\n
\n',Ot='\n
\n',Tt=function(){function e(i){var n=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];t(this,e),St||(St=new vt),Pt++,this._options=m(e.options(),n),this._originalElement=i,this._originalElementInner=i.innerHTML,this._originalElementAttributes=d(i),wt(i)?this._element=i:(this._element=ct(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._input=null,this._output=null,this._ratio=null,this._isRequired=!1,this._imageHopper=null,this._imageEditor=null,this._progressEnabled=!0,this._data={},this._resetData(),this._state=[],this._drip=null,this._hasInitialImage=!1,this._initialCrop=this._options.crop,this._isBeingDestroyed=!1,e.supported?this._init():this._fallback()}return c(e,[{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._initialCrop=this._options.crop),this._load(t,i)}},{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:"_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:"_toggleButton",value:function(t,e){ht('.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){O(t,this._state)||(this._state.push(t),this._updateState())}},{key:"_updateState",value:function(){this._element.setAttribute("data-state",this._state.join(","))}},{key:"_resetData",value:function(){this._data={server:null,meta:null,input:{image:null,name:null,type:null,width:0,height:0},output:{image:null,width:0,height:0},actions:{rotation:null,crop:null,size:null}},this._output&&(this._output.value=""),it(this._getFileInput())}},{key:"_init",value:function(){var t=this;this._isInitialising=!0,this._addState("empty"),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||(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 e=b("div","slim-area"),i=this._getInitialImage(),n=(i||{}).src;n?this._hasInitialImage=!0:this._initialCrop=null;var o='\n\t\t
\n\t\t\t\n\t\t
';if(this._isImageOnly())e.innerHTML="\n\t\t\t\t"+It+"\n\t\t\t\t"+Ot+"\n\t\t\t\t"+o+"\n\t\t\t";else{var r=void 0;this._input.hasAttribute("accept")&&"image/*"!==this._input.getAttribute("accept")?r=this._input.accept.split(",").map(function(t){return t.trim()}).filter(function(t){return t.length>0}):(r=R(),this._input.setAttribute("accept",r.join(","))),this._imageHopper=new gt,this._imageHopper.accept=r,this._element.appendChild(this._imageHopper.element),xt.forEach(function(e){t._imageHopper.element.addEventListener(e,t)}),e.innerHTML="\n\t\t\t\t"+It+"\n\t\t\t\t"+Ot+'\n\t\t\t\t
\n\t\t\t\t
'+(this._options.label||"")+"
\n\t\t\t\t"+o+"\n\t\t\t",this._input.addEventListener("change",this)}if(this._element.appendChild(e),this._btnGroup=b("div","slim-btn-group"),this._btnGroup.style.display="none",this._element.appendChild(this._btnGroup),Ct.filter(function(e){return t._isButtonAllowed(e)}).forEach(function(e){var i=S(e),n=t._options["button"+i+"Label"],o=t._options["button"+i+"Title"]||n,r=t._options["button"+i+"ClassName"],a=b("button","slim-btn slim-btn-"+e+(r?" "+r:""));a.innerHTML=n,a.title=o,a.type="button",a.addEventListener("click",t),a.setAttribute("data-action",e),t._btnGroup.appendChild(a)}),this._isFixedRatio()){var a=yt(this._options.ratio,":");this._ratio=a[1]/a[0],this._scaleDropArea(this._ratio)}this._updateProgress(.5),n?this._load(n,function(){t._onInit()}):this._onInit()}},{key:"_onInit",value:function(){var t=this;this._isInitialising=!1;var e=function(){setTimeout(function(){t._options.didInit.apply(t,[t.data])},0)};this._options.saveInitialImage?this._save(function(){e()},!1):e()}},{key:"_updateProgress",value:function(t){if(this._progressEnabled){var e=this._element.querySelector(".slim-loader");if(e){var i=e.getBoundingClientRect(),n=e.querySelectorAll("path"),o=parseInt(n[0].getAttribute("stroke-width"),10);n[0].setAttribute("d",ft(.5*i.width,.5*i.height,.5*i.width-o,.9999)),n[1].setAttribute("d",ft(.5*i.width,.5*i.height,.5*i.width-o,t))}}}},{key:"_startProgress",value:function(){var t=this;this._progressEnabled=!1;var e=this._element.querySelector(".slim-loader");if(e){var i=e.children[0];this._stopProgressLoop(function(){e.removeAttribute("style"),i.removeAttribute("style"),t._progressEnabled=!0,t._updateProgress(0),t._progressEnabled=!1,u(i,{fromOpacity:0,opacity:1,duration:250,complete:function(){t._progressEnabled=!0}})})}}},{key:"_stopProgress",value:function(){var t=this,e=this._element.querySelector(".slim-loader");if(e){var i=e.children[0];this._updateProgress(1),u(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(){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;u(t,{rotation:[0,0,-(2*Math.PI)*i],easing:"linear",duration:1e3*i}),u(e,{fromOpacity:0,opacity:1,duration:250})}}},{key:"_stopProgressLoop",value:function(t){var e=this._element.querySelector(".slim-loader");if(e){var i=e.children[0];u(i,{fromOpacity:parseFloat(i.style.opacity),opacity:0,duration:250,complete:function(){u(e,"stop"),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(){this._removeState("init");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}},{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 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();u(t.firstChild,{fromScale:[.5,.5],scale:[0,0],fromOpacity:.5,opacity:0,duration:150,complete:function(){M(t.firstChild)}})}},{key:"_onInvalidFile",value:function(){var t=this._imageHopper.accept.map(A),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:"_onFileOver",value:function(t){this._addState("file-over"),this._removeError();var e=this._getDrip(),i=u.createMatrix();i.translate(t.detail.x,t.detail.y,0),u.setElementTransform(e,i),1==this._imageHopper.dragPath.length&&(e.style.opacity=1,u(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=u.createMatrix();i.translate(t.detail.x,t.detail.y,0),u.setElementTransform(e,i),u(e.firstChild,{fromScale:[.5,.5],scale:[0,0],fromOpacity:.5,opacity:0,duration:150,complete:function(){M(e.firstChild)}})}},{key:"_onDropFile",value:function(t){var e=this;this._removeState("file-over");var i=this._getDrip(),n=u.createMatrix();n.translate(t.detail.x,t.detail.y,0),u.setElementTransform(i,n);var o=this._imageHopper.dragPath.length,r=this._imageHopper.dragPath[o-Math.min(10,o)],a=t.detail.x-r.x,s=t.detail.y-r.y;u(i,{fromPosition:[t.detail.x,t.detail.y,0],position:[t.detail.x+a,t.detail.y+s,0],duration:200}),u(i.firstChild,{fromScale:[.5,.5],scale:[2,2],fromOpacity:1,opacity:0,duration:200,complete:function(){M(i.firstChild),e._load(t.target.files[0])}})}},{key:"_onChange",value:function(t){this._load(t.target.files[0])}},{key:"_load",value:function(t,e){var i=this;if(!this._isBeingDestroyed){var n=W(t);if(("unknown"===n.type||this._options.forceType)&&(n=B(n,this._options.forceType||"png")),this._imageHopper&&this._imageHopper.accept.indexOf(n.type)===-1)return this._onInvalidFile(),void(e&&e.apply(this,["file-invalid"]));if(n.size&&this._options.maxFileSize&&L(n.size)>this._options.maxFileSize)return this._onOverWeightFile(),void(e&&e.apply(this,["file-too-big"]));this._removeState("empty"),this._imageHopper&&(this._imageHopper.enabled=!1),this._imageEditor&&this._imageEditor.dirty(),this._data.input.name=n.name,this._data.input.type=n.type,this._data.input.size=n.size,this._startProgressLoop(),this._addState("busy"),j(t,function(t,o){var r=function(){i._imageHopper&&(i._imageHopper.enabled=!0),i._removeState("busy"),i._stopProgressLoop(),i._resetData()};if(!t)return r(),void(e&&e.apply(i,["file-not-found"]));if(!K(t,i._options.minSize))return r(),i._onImageTooSmall(),void(e&&e.apply(i,["image-too-small"]));var a=i._options.didLoad.apply(i,[n,t,o]);return a!==!0?(r(),a!==!1&&i._throwError(a),void(e&&e.apply(i,[a]))):void i._loadCanvas(t,function(){var t=i._getIntro(),n={fromScale:[1.25,1.25],scale:[1,1],fromOpacity:0,opacity:1,complete:function(){M(t),t.style.opacity=1,i._canInstantEdit()||i._showButtons(),i._stopProgressLoop(),i._removeState("busy"),i._addState("preview"),e&&e.apply(i,[null,i.data])}};i.isDetached()?n.duration=1:(n.easing="spring",n.springConstant=.3,n.springDeceleration=.7),i._canInstantEdit()&&(n.delay=500,n.duration=1,i._doEdit()),u(t,n)})})}}},{key:"_loadCanvas",value:function(t,e){var i=this;this._isBeingDestroyed||(this._isFixedRatio()||(this._ratio=t.height/t.width,this._scaleDropArea(this._ratio)),this._data.input.image=t,this._data.input.width=t.width,this._data.input.height=t.height,this._initialCrop?(this._data.actions.crop=nt(this._initialCrop),this._data.actions.crop.type=bt.INITIAL,this._initialCrop=null):(this._data.actions.crop=q(t.width,t.height,this._ratio),this._data.actions.crop.type=bt.AUTO),this._options.size&&(this._data.actions.size={width:this._options.size.width,height:this._options.size.height}),this._applyTransforms(t,function(t){var n=i._getIntro(),o=n.offsetWidth/t.width,r=!1;i._options.service&&i._options.push&&(i._hasInitialImage||(r=!0)),i._save(function(){},r),n.src="",n.src=X(t,o).toDataURL(),n.onload=function(){n.onload=null,i._isBeingDestroyed||e&&e()}}))}},{key:"_applyTransforms",value:function(t,e){var i=this;V(t,this._data.actions,function(t){i._data.output.width=t.width,i._data.output.height=t.height,i._data.output.image=t,i._onTransformCanvas(function(t){i._data=t,i._options.didTransform.apply(i,[i.data]),e(i._data.output.image)})})}},{key:"_onTransformCanvas",value:function(t){this._options.willTransform.apply(this,[this.data,t])}},{key:"_appendEditor",value:function(){var t=this;this._imageEditor||(this._imageEditor=new _t(b("div"),{minSize:this._options.minSize,buttonConfirmClassName:"slim-btn-confirm",buttonCancelClassName:"slim-btn-cancel",buttonConfirmLabel:this._options.buttonConfirmLabel,buttonCancelLabel:this._options.buttonCancelLabel,buttonConfirmTitle:this._options.buttonConfirmTitle,buttonCancelTitle:this._options.buttonCancelTitle}),Et.forEach(function(e){t._imageEditor.element.addEventListener(e,t)}))}},{key:"_scaleDropArea",value:function(t){var e=this._getRatioSpacerElement();e&&this._element&&(e.style.marginBottom=100*t+"%",this._element.setAttribute("data-ratio","1:"+t))}},{key:"_onCancel",value:function(t){this._removeState("editor"),this._showButtons(),this._hideEditor()}},{key:"_onConfirm",value:function(t){var e=this;this._removeState("editor"),this._startProgressLoop(),this._addState("busy"),this._output.value="",this._data.actions.rotation=t.detail.rotation,this._data.actions.crop=t.detail.crop,this._data.actions.crop.type=bt.MANUAL,this._applyTransforms(this._data.input.image,function(t){var i=e._getInOut(),n="out"===i[0].className?i[0]:i[1],o=n===i[0]?i[1]:i[0];n.className="in",n.style.opacity="0",n.style.zIndex="2",o.className="out",o.style.zIndex="1",n.src="",n.src=X(t,n.offsetWidth/t.width).toDataURL(),n.onload=function(){n.onload=null,"free"===e._options.ratio&&(e._ratio=n.naturalHeight/n.naturalWidth,e._scaleDropArea(e._ratio)),e._hideEditor(),setTimeout(function(){e._showPreview(n,function(){var t=e._options.service&&e._options.push;e._save(function(t,i,n){e._toggleButton("upload",!0),e._stopProgressLoop(),e._removeState("busy"),e._showButtons()},t)})},250)}})}},{key:"_crop",value:function(t,e,i,n){var o=this,r=arguments.length<=4||void 0===arguments[4]?function(){}:arguments[4];this._startProgressLoop(),this._addState("busy"),this._output.value="",this._data.actions.crop={x:t,y:e,width:i,height:n},this._data.actions.crop.type=bt.MANUAL,this._applyTransforms(this._data.input.image,function(t){var e=o._getInOut(),i="out"===e[0].className?e[0]:e[1],n=i===e[0]?e[1]:e[0];i.className="in",i.style.opacity="1",i.style.zIndex="2",n.className="out",n.style.zIndex="0",i.src="",i.src=X(t,i.offsetWidth/t.width).toDataURL(),i.onload=function(){i.onload=null,"free"===o._options.ratio&&(o._ratio=i.naturalHeight/i.naturalWidth,o._scaleDropArea(o._ratio));var t=o._options.service&&o._options.push;o._save(function(t,e,i){o._stopProgressLoop(),o._removeState("busy"),r.apply(o,[o.data])},t)}})}},{key:"_save",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?function(){}:arguments[0],i=arguments.length<=1||void 0===arguments[1]||arguments[1],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])}]),this._options.service&&i&&this._options.willSave.apply(this,[n,function(i){t._upload(i,function(n,o){n||t._storeServerResponse(o),t._options.didUpload.apply(t,[n,i,o]),e(n,i,o)})}]),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,n=new FormData;n.append(this._output.name,JSON.stringify(t));var o=this._element.querySelector(".slim-upload-status"),r=this._options.willRequest;T(this._options.service,n,r,function(t,e){i._updateProgress(t/e)},function(t){setTimeout(function(){o.innerHTML=i._options.statusUploadSuccess,o.setAttribute("data-state","success"),o.style.opacity=1,setTimeout(function(){o.style.opacity=0},2e3)},250),e(null,t)},function(t){var n="";n="file-too-big"===t?i._options.statusContentLength:i._options.statusUnknownResponse,setTimeout(function(){o.innerHTML=n,o.setAttribute("data-state","error"),o.style.opacity=1},250),e(t)})}},{key:"_showEditor",value:function(){St.show(),this._imageEditor.show()}},{key:"_hideEditor",value:function(){this._imageEditor.hide(),setTimeout(function(){St.hide()},250)}},{key:"_showPreview",value:function(t,e){u(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(){M(t),e&&e()}})}},{key:"_hideResult",value:function(t){var e=this._getIntro();e&&u(e,{fromScale:[1,1],scale:[.5,.5],fromOpacity:1,opacity:0,easing:"spring",springConstant:.3,springDeceleration:.75,complete:function(){M(e),t&&t()}})}},{key:"_showButtons",value:function(t){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(){M(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),u(this._btnGroup.childNodes,e)}},{key:"_hideButtons",value:function(t){var e=this,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),u(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(),St.inner=this._imageEditor.element,this._imageEditor.open(G(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(){var t=this;if(!this._isImageOnly()){this._clearState(),this._addState("empty"),this._hasInitialImage=!1,this._imageHopper.enabled=!0,this._isRequired&&(this._input.required=!0);var e=this._getOutro();e&&(e.style.opacity="0");var i=this.data;return this._resetData(),setTimeout(function(){t._isBeingDestroyed||(t._hideButtons(function(){t._toggleButton("upload",!0)}),t._hideStatus(),t._hideResult(),t._options.didRemove.apply(t,[i]))},this.isDetached()?0:250),i}}},{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&&Z(t,this._data.input.name,this._data.input.type)}},{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._imageHopper&&(xt.forEach(function(t){e._imageHopper.element.removeEventListener(t,e)}),this._imageHopper.destroy()),this._imageEditor&&(Et.forEach(function(t){e._imageEditor.element.removeEventListener(t,e)}),this._imageEditor.destroy()),ut(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=d(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)}),Pt=Math.max(0,Pt-1),St&&0===Pt&&(St.destroy(),St=null)}},{key:"dataBase64",get:function(){return st(this._data,this._options.post,this._options.jpegCompression)}},{key:"data",get:function(){return ot(this._data)}},{key:"element",get:function(){return this._element}},{key:"size",set:function(t){t&&t.width&&t.height&&(this._options.size=nt(t),this._data.actions.size=nt(t))}},{key:"ratio",set:function(t){if(t&&"string"==typeof t&&(this._options.ratio=t,this._isFixedRatio())){var e=yt(this._options.ratio,":");this._ratio=e[1]/e[0],this._scaleDropArea(this._ratio)}}}],[{key:"options",value:function(){var t={edit:!0,instantEdit:!1,ratio:"free",size:null,crop:null,post:["output","actions"],service:null,push:!1,defaultInputName:"slim[]",minSize:{width:100,height:100},maxFileSize:null,jpegCompression:null,download:!1,saveInitialImage:!1,forceType:!1,label:"

Drop your image here

",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',didInit:function(t){},didLoad:function(t,e,i){return!0},didSave:function(t){},didUpload:function(t,e,i){},didRemove:function(t){},didTransform:function(t){},willTransform:function(t,e){e(t)},willSave:function(t,e){e(t)},willRemove:function(t,e){e()},willRequest:function(t){}};return Ct.concat(_t.Buttons).forEach(function(e){var i=S(e);t["button"+i+"ClassName"]=null,t["button"+i+"Label"]=i,t["button"+i+"Title"]=null}),t}}]),e}();return function(){function t(t,e){return t.getAttribute("data-"+e)}function e(t){return t.replace(/([a-z](?=[A-Z]))/g,"$1-").toLowerCase()}function i(t){return t?"

"+t+"

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