/* * Slim v3.1.1 - Image Cropping Made Easy * Copyright (c) 2016 Rik Schennink - http://slim.pqina.nl */ !function(t,e){function i(){t.Slim.parse(document)}t&&t.addEventListener&&(t.Slim=function(){function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t){return y[t?t.toLowerCase():t]||"unknown"}function n(t,e){if(!(e>=1)){for(var i,n=X(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},o.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},o.hasCanvasOption=function(t){return t.canvas||t.crop||!!t.aspectRatio},o.scale=function(t,i){function n(){var t=Math.max((h||b)/b,(u||k)/k);t>1&&(b*=t,k*=t)}function r(){var t=Math.min((a||b)/b,(s||k)/k);t<1&&(b*=t,k*=t)}i=i||{};var a,s,h,u,l,c,p,d,f,m,_,g=document.createElement("canvas"),v=t.getContext||o.hasCanvasOption(i)&&g.getContext,y=t.naturalWidth||t.width,w=t.naturalHeight||t.height,b=y,k=w;if(v&&(i=o.getTransformedOptions(t,i),p=i.left||0,d=i.top||0,i.sourceWidth?(l=i.sourceWidth,i.right!==e&&i.left===e&&(p=y-l-i.right)):l=y-p-(i.right||0),i.sourceHeight?(c=i.sourceHeight,i.bottom!==e&&i.top===e&&(d=w-c-i.bottom)):c=w-d-(i.bottom||0),b=l,k=c),a=i.maxWidth,s=i.maxHeight,h=i.minWidth,u=i.minHeight,v&&a&&s&&i.crop?(b=a,k=s,_=l/c-a/s,_<0?(c=s*l/a,i.top===e&&i.bottom===e&&(d=(w-c)/2)):_>0&&(l=a*c/s,i.left===e&&i.right===e&&(p=(y-l)/2))):((i.contain||i.cover)&&(h=a=a||h,u=s=s||u),i.cover?(r(),n()):(n(),r())),v){if(f=i.pixelRatio,f>1&&(g.style.width=b+"px",g.style.height=k+"px",b*=f,k*=f,g.getContext("2d").scale(f,f)),m=i.downsamplingRatio,m>0&&m<1&&bb;)g.width=l*m,g.height=c*m,o.renderImageToCanvas(g,t,p,d,l,c,0,0,g.width,g.height),l=g.width,c=g.height,t=document.createElement("canvas"),t.width=l,t.height=c,o.renderImageToCanvas(t,g,0,0,l,c,0,0,l,c);return g.width=b,g.height=k,o.transformCoordinates(g,i),o.renderImageToCanvas(g,t,p,d,l,c,0,0,b,k)}return t.width=b,t.height=k,t},o.createObjectURL=function(t){return!!r&&r.createObjectURL(t)},o.revokeObjectURL=function(t){return!!r&&r.revokeObjectURL(t)},o.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 a=o.hasCanvasOption,s=o.transformCoordinates,h=o.getTransformedOptions;o.hasCanvasOption=function(t){return!!t.orientation||a.call(o,t)},o.transformCoordinates=function(t,e){s.call(o,t,e);var i=t.getContext("2d"),n=t.width,r=t.height,a=t.style.width,h=t.style.height,u=e.orientation;if(u&&!(u>8))switch(u>4&&(t.width=r,t.height=n,t.style.width=h,t.style.height=a),u){case 2:i.translate(n,0),i.scale(-1,1);break;case 3:i.translate(n,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(n,-r),i.scale(-1,1);break;case 8:i.rotate(-.5*Math.PI),i.translate(-n,0)}},o.getTransformedOptions=function(t,e){var i,n,r=h.call(o,t,e),a=r.orientation;if(!a||a>8||1===a)return r;i={};for(n in r)r.hasOwnProperty(n)&&(i[n]=r[n]);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 u=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);o.blobSlice=u&&function(){var t=this.slice||this.webkitSlice||this.mozSlice;return t.apply(this,arguments)},o.metaDataParsers={jpeg:{65505:[]}},o.parseMetaData=function(t,e,i){i=i||{};var n=this,r=i.maxMetaDataSize||262144,a={},s=!(window.DataView&&t&&t.size>=12&&"image/jpeg"===t.type&&o.blobSlice);!s&&o.readFile(o.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=o.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)},o.ExifMap=function(){return this},o.ExifMap.prototype.map={Orientation:274},o.ExifMap.prototype.get=function(t){return this[t]||this[this.map[t]]},o.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),n.exif=new o.ExifMap,s=o.parseExifTags(t,u,u+s,a,n),s&&!r.disableExifThumbnail&&(h={exif:{}},s=o.parseExifTags(t,u,u+s,a,h),h.exif[513]&&(n.exif.Thumbnail=o.getExifThumbnail(t,u+h.exif[513],h.exif[514]))),n.exif[34665]&&!r.disableExifSub&&o.parseExifTags(t,u,u+n.exif[34665],a,n),n.exif[34853]&&!r.disableExifGps&&o.parseExifTags(t,u,u+n.exif[34853],a,n))}}},o.metaDataParsers.jpeg[65505].push(o.parseExifData);var l=function(){var t=[],i=[],n=[],o="transform",r=window.getComputedStyle(document.documentElement,""),a=(Array.prototype.slice.call(r).join("").match(/-(moz|webkit|ms)-/)||""===r.OLink&&["","o"])[1];"webkit"===a&&(o="webkitTransform");var s=function(t,i,n){var o=t;if(o.length!==e){for(var r={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(h(t,n,e))}),r},setValue:function(t){return this.chainers.forEach(function(e){e.setValue(t)}),r},finish:function(){return this.chainers.forEach(function(t){t.finish()}),r},rollback:function(){return this.chainers.forEach(function(t){t.rollback()}),r}},a=0,s=o.length;a1&&!f.isStopped()?(r.loop-=1,f.restart(),y(o)):(r.complete&&r.complete.call(t),v.length&&(r=v.pop(),s=_(r,u,!0),u=_(r,X(u)),r=g(s,u,r),f=b(r),i.push([t,f]),f.tick(e),y(o)))):y(o)}if("attention"===e)return l(t,n);if("stop"===e)return c(t);var r=e;d();var a=m(t),s=a;s=_(r,s,!0);var u=X(a);u=_(r,u);var p=g(s,u,r),f=b(p);i.push([t,f]),f.updateElement(t,!0);var v=[],w={snabbt:function(t){return v.unshift(h(t,0,1)),w},then:function(t){return this.snabbt(t)}};return y(o),r.manual?f:w},l=function(t,e){function n(i){r.tick(i),r.updateElement(t),r.completed()?(e.callback&&e.callback(t),e.loop&&e.loop>1&&(e.loop--,r.restart(),y(n))):y(n)}var o=_(e,H({}));e.movement=o;var r=k(e);i.push([t,r]),y(n)},c=function(t){for(var e=0,n=i.length;er){f=!0,p=t-r;var e=Math.min(Math.max(0,p-c),o);s.tick(e/o),this.updateCurrentTransform(),this.completed()&&u&&u()}}},getCurrentState:function(){return h},setValue:function(t){f=!0,_=Math.min(Math.max(t,1e-4),1+g)},updateCurrentTransform:function(){var t=s.getValue();if(m){var e=Math.max(1e-5,_-g);s.tick(e),t=s.getValue()}l.tween(t)},completed:function(){return!!d||0!==c&&s.completed()},updateElement:function(t,e){if(f||e){var i=l.asMatrix(),n=l.getProperties();q(t,i,a),V(t,n)}}}},k=function(t){var i=t.movement;t.initialVelocity=.1,t.equilibriumPosition=0;var n=P(t),o=!1,r=i.position,a=i.rotation,s=i.rotationPost,h=i.scale,u=i.skew,l=H({position:r?[0,0,0]:e,rotation:a?[0,0,0]:e,rotationPost:s?[0,0,0]:e,scale:h?[0,0]:e,skew:u?[0,0]:e});return{stop:function(){o=!0},isStopped:function(t){return o},tick:function(t){o||n.equilibrium||(n.tick(),this.updateMovement())},updateMovement:function(){var t=n.getValue();r&&(l.position[0]=i.position[0]*t,l.position[1]=i.position[1]*t,l.position[2]=i.position[2]*t),a&&(l.rotation[0]=i.rotation[0]*t,l.rotation[1]=i.rotation[1]*t,l.rotation[2]=i.rotation[2]*t),s&&(l.rotationPost[0]=i.rotationPost[0]*t,l.rotationPost[1]=i.rotationPost[1]*t,l.rotationPost[2]=i.rotationPost[2]*t),h&&(l.scale[0]=1+i.scale[0]*t,l.scale[1]=1+i.scale[1]*t),u&&(l.skew[0]=i.skew[0]*t,l.skew[1]=i.skew[1]*t)},updateElement:function(t){q(t,l.asMatrix()),V(t,l.getProperties())},getCurrentState:function(){return l},completed:function(){return n.equilibrium||o},restart:function(){n=P(t)}}},x=function(t){return t},E=function(t){return(Math.cos(t*Math.PI+Math.PI)+1)/2},C=function(t){return t*t},S=function(t){return-Math.pow(t-1,2)+1},P=function(t){var e=j(t.startPosition,0),i=j(t.equilibriumPosition,1),n=j(t.initialVelocity,0),o=j(t.springConstant,.8),r=j(t.springDeceleration,.9),a=j(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}}},I={linear:x,ease:E,easeIn:C,easeOut:S},O=function(t,e){if("spring"==t)return P(e);var i=t;G(t)||(i=I[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}}},T=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},M=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},L=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},R=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},D=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},A=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},z=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},F=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]},U=function(){var t=new Float32Array(16),e=new Float32Array(16),i=new Float32Array(16);return z(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(){z(t)},translate:function(n,o,r){return F(t,e),T(i,n,o,r),N(e,i,t),this},rotateX:function(n){return F(t,e),M(i,n),N(e,i,t),this},rotateY:function(n){return F(t,e),L(i,n),N(e,i,t),this},rotateZ:function(n){return F(t,e),R(i,n),N(e,i,t),this},scale:function(n,o){return F(t,e),A(i,n,o),N(e,i,t),this},skew:function(n,o){return F(t,e),D(i,n,o),N(e,i,t),this}}},N=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},H=function(t){var i=U(),n={opacity:e,width:e,height:e};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 H({position:this.position?this.position.slice(0):e,rotation:this.rotation?this.rotation.slice(0):e,rotationPost:this.rotationPost?this.rotationPost.slice(0):e,skew:this.skew?this.skew.slice(0):e,scale:this.scale?this.scale.slice(0):e,scalePost:this.scalePost?this.scalePost.slice(0):e,height:this.height,width:this.width,opacity:this.opacity})},asMatrix:function(){var t=i;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 n.opacity=this.opacity,n.width=this.width+"px",n.height=this.height+"px",n}}},W=function(t,i,n){var o=t,r=i,a=n,s=r.position!==e,h=r.rotation!==e,u=r.rotationPost!==e,l=r.scale!==e,c=r.skew!==e,p=r.width!==e,d=r.height!==e,f=r.opacity!==e;return{tween:function(t){if(s){var e=r.position[0]-o.position[0],i=r.position[1]-o.position[1],n=r.position[2]-o.position[2];a.position[0]=o.position[0]+t*e,a.position[1]=o.position[1]+t*i,a.position[2]=o.position[2]+t*n}if(h){var m=r.rotation[0]-o.rotation[0],_=r.rotation[1]-o.rotation[1],g=r.rotation[2]-o.rotation[2];a.rotation[0]=o.rotation[0]+t*m,a.rotation[1]=o.rotation[1]+t*_,a.rotation[2]=o.rotation[2]+t*g}if(u){var v=r.rotationPost[0]-o.rotationPost[0],y=r.rotationPost[1]-o.rotationPost[1],w=r.rotationPost[2]-o.rotationPost[2];a.rotationPost[0]=o.rotationPost[0]+t*v,a.rotationPost[1]=o.rotationPost[1]+t*y,a.rotationPost[2]=o.rotationPost[2]+t*w}if(c){var b=r.scale[0]-o.scale[0],k=r.scale[1]-o.scale[1];a.scale[0]=o.scale[0]+t*b,a.scale[1]=o.scale[1]+t*k}if(l){var x=r.skew[0]-o.skew[0],E=r.skew[1]-o.skew[1];a.skew[0]=o.skew[0]+t*x,a.skew[1]=o.skew[1]+t*E}if(p){var C=r.width-o.width;a.width=o.width+t*C}if(d){var S=r.height-o.height;a.height=o.height+t*S}if(f){var P=r.opacity-o.opacity;a.opacity=o.opacity+t*P}},asMatrix:function(){return a.asMatrix()},getProperties:function(){return a.getProperties()},setReverse:function(){var t=o;o=r,r=t}}},B=function(t,i,n,o){var r=t(0,U()),a=i,s=n,h=o,u=!1;return{tween:function(i){u&&(i=1-i),r.clear(),r=t(i,r);var n=s.width-a.width,o=s.height-a.height,l=s.opacity-a.opacity;s.width!==e&&(h.width=a.width+i*n),s.height!==e&&(h.height=a.height+i*o),s.opacity!==e&&(h.opacity=a.opacity+i*l)},asMatrix:function(){return r},getProperties:function(){return h.getProperties()},setReverse:function(){u=!0}}},j=function(t,e){return"undefined"==typeof t?e:t},q=function(t,e,i){var n="";i&&(n="perspective("+i+"px) ");var r=e.asCSS();t.style[o]=n+r},V=function(t,e){for(var i in e)t.style[i]=e[i]},G=function(t){return"function"==typeof t},X=function(t){if(!t)return t;var e={};for(var i in t)e[i]=t[i];return e};return s.createMatrix=U,s.setElementTransform=q,s}(),c=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)l.height&&(s.y=Math.max(0,l.height-s.height)),s.x+s.width>l.width&&(s.x=Math.max(0,l.width-s.width)),r.width=s.width,r.height=s.height;var m=r.getContext("2d");90===a?(m.translate(.5*r.width,.5*r.height),m.rotate(-90*Math.PI/180),m.drawImage(t,(1-p)*t.width-t.width*f,s.x,s.height,s.width,.5*-r.height,.5*-r.width,r.height,r.width)):180===a?(m.translate(.5*r.width,.5*r.height),m.rotate(-180*Math.PI/180),m.drawImage(t,(1-(c+d))*l.width,(1-(p+f))*l.height,d*l.width,f*l.height,.5*-r.width,.5*-r.height,r.width,r.height)):270===a?(m.translate(.5*r.width,.5*r.height),m.rotate(-270*Math.PI/180),m.drawImage(t,s.y,(1-c)*t.height-t.height*d,s.height,s.width,.5*-r.height,.5*-r.width,r.height,r.width)):m.drawImage(t,s.x,s.y,s.width,s.height,0,0,r.width,r.height)}h&&n(r,Math.min(h.width/r.width,h.height/r.height)),o(r)},X=function(t){return Y(t,1)},Y=function(t,e){if(!t)return null;var i=document.createElement("canvas");i.setAttribute("data-file",t.getAttribute("data-file"));var o=i.getContext("2d");return i.width=t.width,i.height=t.height,o.drawImage(t,0,0),e>0&&1!=e&&n(i,e),i},$=function(t){return t.width&&t.height},J=function(t,e){var i=e.getContext("2d");$(e)?i.drawImage(t,0,0,e.width,e.height):(e.width=t.width,e.height=t.height,i.drawImage(t,0,0))},Z=function(t){c(t,0,0,t.width,t.height,3)},K=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=k("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)},Q=function(t,e){return parseInt(t.width,10)>=e.width&&parseInt(t.height,10)>=e.height},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,e,i){return{x:t.x/e,y:t.y/i,width:t.width/e,height:t.height/i}},it=function(t){return{x:Math.floor(t.x),y:Math.floor(t.y),width:Math.floor(t.width),height:Math.floor(t.height)}},nt=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)}}},ot=function(t){return"object"===("undefined"==typeof value?"undefined":d(value))&&null!==value?JSON.parse(JSON.stringify(t)):t},rt=function(t){var e=X(t.input.image),i=X(t.output.image),n=ot(t);return n.input.image=e,n.output.image=i,n},at=function(t,i,n){ return t&&i?t.toDataURL(i,A(i)&&"number"==typeof n?n/100:e):null},st=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},ht=function(t){var i=arguments.length<=1||arguments[1]===e?[]:arguments[1],n=arguments[2],o={server:ot(t.server),meta:ot(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}};T("input",i)&&(o.input.image=at(t.input.image,t.input.type)),T("output",i)&&(o.output.image=at(t.output.image,t.input.type,n)),T("actions",i)&&(o.actions=ot(t.actions));var r=st(o.output.image||o.input.image);return"image/png"===r&&(o.input.name=U(o.input.name)+".png",o.input.type=r),o},ut=function(t,e,i){var n=i.querySelector(t);n&&(n.style.display=e?"":"none")},lt=function(t){return Array.prototype.slice.call(t)},ct=function(t){t.parentNode.removeChild(t)},pt=function(t){var e=k("div");return t.parentNode&&(t.nextSibling?t.parentNode.insertBefore(e,t.nextSibling):t.parentNode.appendChild(e)),e.appendChild(t),e},dt=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)}},ft=function(t,e,i,n,o){var r=dt(t,e,i,o),a=dt(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},mt=function(t,e,i,n){return ft(t,e,i,0,360*n)},_t=function(){var i={n:function(t,e,i,n){var o,r,a,s,h,u,l,c;return a=t.y+t.height,o=O(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=O(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=O(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 n(t,e,i,o){var r,a,s,h,n,u,l,c;return a=t.x+t.width,h=O(e.x,0,a),a-hi.height)&&(c=Math.min(t.y,i.height-(t.y+t.height)),r=t.y-c,s=t.y+t.height+c,u=s-r,n=u/o,h=a-n),{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=O(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=O(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=O(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=O(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 n(){var i=arguments.length<=0||arguments[0]===e?document.createElement("div"):arguments[0];t(this,n),this._element=i,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 p(n,[{key:"_init",value:function(){this._element.className="slim-crop-area";var t=k("div","grid");this._element.appendChild(t);for(var e in i)if(i.hasOwnProperty(e)){var n=k("button",e);this._element.appendChild(n)}var o=k("button","c");this._element.appendChild(o),x(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,height:e}}},{key:"resize",value:function(t,e,i,n){this._interaction=null,this._rect={x:t,y:e,width:O(i,0,this._space.width),height:O(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(),x(document,v.MOVE,this),x(document,v.UP,this),this._interaction={type:t.target.className,offset:S(t,this._element)},this._element.setAttribute("data-dragging","true"),this._redraw())}},{key:"_onDrag",value:function(t){t.preventDefault();var e=S(t,this._element.parentNode),n=this._interaction.type;"c"===n?(this._rect.x=O(e.x-this._interaction.offset.x,0,this._space.width-this._rect.width),this._rect.y=O(e.y-this._interaction.offset.y,0,this._space.height-this._rect.height)):i[n]&&(this._rect=i[n](this._rect,e,{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(),E(document,v.MOVE,this),E(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;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,E(document,v.DOWN,this),E(document,v.MOVE,this),E(document,v.UP,this),ct(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}}]),n}()}(),gt=function(){var i=["input","change"],n=function(){function n(){var i=arguments.length<=0||arguments[0]===e?document.createElement("div"):arguments[0],o=arguments.length<=1||arguments[1]===e?{}:arguments[1];t(this,n),this._element=i,this._options=_(n.options(),o),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 p(n,[{key:"_init",value:function(){var t=this;this._element.className="slim-image-editor",this._container=k("div","slim-container"),this._wrapper=k("div","slim-wrapper"),this._stage=k("div","slim-stage"),this._container.appendChild(this._stage),this._cropper=new _t,i.forEach(function(e){t._cropper.element.addEventListener(e,t)}),this._stage.appendChild(this._cropper.element),this._previewWrapper=k("div","slim-image-editor-preview slim-crop-preview"),this._previewBlurred=k("canvas","slim-crop-blur"),this._previewWrapper.appendChild(this._previewBlurred),this._wrapper.appendChild(this._previewWrapper),this._preview=k("img","slim-crop"),this._previewWrapper.appendChild(this._preview),this._btnGroup=k("div","slim-editor-btn-group"),n.Buttons.forEach(function(e){var i=P(e),n=t._options["button"+i+"Label"],o=t._options["button"+i+"Title"],r=t._options["button"+i+"ClassName"],a=k("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=k("div","slim-editor-utils-group");var e=k("button","slim-editor-utils-btn slim-btn-rotate");e.setAttribute("data-action","rotate"),e.addEventListener("click",this),e.title=this._options.buttonRotateTitle,this._utilsGroup.appendChild(e),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=l.createMatrix();t.scale(this._wrapperScale,this._wrapperScale),t.rotateZ(this._wrapperRotation*(Math.PI/180)),l.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:tt(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(),l(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(){l(this._stage,{easing:"ease",duration:250,fromOpacity:0,opacity:1})}},{key:"_hideCropper",value:function(){l(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=tt(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=et(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=Y(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}:V(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,J(this._input,this._previewBlurred),Z(this._previewBlurred,3),this._blurredPreview=!0)}},{key:"show",value:function(){var t=arguments.length<=0||arguments[0]===e?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 i=this._wrapperRotation*(Math.PI/180);l(this._previewWrapper,{fromRotation:[0,0,i],rotation:[0,0,i],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?l(this._stage,{fromPosition:[0,0,0],position:[0,0,0],fromOpacity:0,opacity:1,duration:250,delay:550,complete:function(){L(this),t()}}):l(this._stage,{fromPosition:[0,0,0],position:[0,0,0],fromOpacity:0,opacity:1,duration:250,delay:1e3,complete:function(){L(this)}}),l(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(){L(this)}}),l(this._utilsGroup.childNodes,{fromScale:[.9,.9],scale:[1,1],fromOpacity:0,opacity:1,easing:"spring",springConstant:.3,springDeceleration:.85,delay:1250,complete:function(){L(this)}})}},{key:"hide",value:function(){var t=arguments.length<=0||arguments[0]===e?function(){}:arguments[0];document.removeEventListener("keydown",this),window.removeEventListener("resize",this),l(this._utilsGroup.childNodes,{fromOpacity:1,opacity:0,duration:250}),l(this._btnGroup.childNodes,{fromOpacity:1,opacity:0,delay:200,duration:350}),l([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;lt(this._btnGroup.children).forEach(function(e){e.removeEventListener("click",t)}),i.forEach(function(e){t._cropper.element.removeEventListener(e,t)}),this._cropper.destroy(),ct(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}}}}]),n}();return n.Buttons=["cancel","confirm"],n}(_t),vt=function(){var i=["dragover","dragleave","drop"];return function(){function n(){var i=arguments.length<=0||arguments[0]===e?document.createElement("div"):arguments[0];t(this,n),this._element=i,this._accept=[],this._dragPath=null,this._init()}return p(n,[{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",i.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:m(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(m(t)),void this._element.dispatchEvent(new CustomEvent("file-over",{detail:{x:I(this._dragPath).x,y:I(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:m(t)})),this._dragPath=null}},{key:"destroy",value:function(){var t=this;i.forEach(function(e){t._element.removeEventListener(e,t)}),ct(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}}]),n}()}(),yt=function(){return function(){function i(){t(this,i),this._element=null,this._inner=null,this._init()}return p(i,[{key:"_init",value:function(){this._element=k("div","slim-popover"),this._element.setAttribute("data-state","off"),document.body.appendChild(this._element)}},{key:"show",value:function(){var t=this,i=arguments.length<=0||arguments[0]===e?function(){}:arguments[0];this._element.setAttribute("data-state","on"),l(this._element,{fromOpacity:0,opacity:1,duration:350,complete:function(){L(t._element),i()}})}},{key:"hide",value:function(){var t=this,i=arguments.length<=0||arguments[0]===e?function(){}:arguments[0];l(this._element,{fromOpacity:1,opacity:0,duration:500,complete:function(){L(t._element),t._element.setAttribute("data-state","off"),i()}})}},{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)}}]),i}()}(),wt=function(t,e){return t.split(e).map(function(t){return parseInt(t,10)})},bt=function(t){return"DIV"===t.nodeName},kt={AUTO:"auto",INITIAL:"initial",MANUAL:"manual"},xt=["x","y","width","height"],Et=["file-invalid-drop","file-invalid","file-drop","file-over","file-out","click"],Ct=["cancel","confirm"],St=["remove","edit","download","upload"],Pt=null,It=0,Ot='\n
\n\t\n\t\t\n\t\t\n\t\n
\n',Tt='\n
\n',Mt=function(){function i(n){var o=arguments.length<=1||arguments[1]===e?{}:arguments[1];t(this,i),Pt||(Pt=new yt),It++,this._options=_(i.options(),o),this._originalElement=n,this._originalElementInner=n.innerHTML,this._originalElementAttributes=f(n),bt(n)?this._element=n:(this._element=pt(n),this._element.className=n.className,n.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,i.supported?this._init():this._fallback()}return p(i,[{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 i=arguments.length<=1||arguments[1]===e?{}:arguments[1],n=arguments[2];"function"==typeof i?n=i:(this._options.crop=i.crop,this._initialCrop=this._options.crop),this._load(t,n)}},{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){ut('.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){T(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=""),nt(this._getFileInput())}},{key:"_init",value:function(){var t=this;this._isInitialising=!0,this._addState("empty"),this._input=this._getInputElement(),this._input||(this._input=k("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=k("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=k("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"+Ot+"\n\t\t\t\t"+Tt+"\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=D(),this._input.setAttribute("accept",r.join(","))),this._imageHopper=new vt,this._imageHopper.accept=r,this._element.appendChild(this._imageHopper.element),Et.forEach(function(e){t._imageHopper.element.addEventListener(e,t)}),e.innerHTML="\n\t\t\t\t"+Ot+"\n\t\t\t\t"+Tt+'\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=k("div","slim-btn-group"),this._btnGroup.style.display="none",this._element.appendChild(this._btnGroup),St.filter(function(e){return t._isButtonAllowed(e)}).forEach(function(e){var i=P(e),n=t._options["button"+i+"Label"],o=t._options["button"+i+"Title"]||n,r=t._options["button"+i+"ClassName"],a=k("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=wt(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",mt(.5*i.width,.5*i.height,.5*i.width-o,.9999)),n[1].setAttribute("d",mt(.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,l(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),l(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;l(t,{rotation:[0,0,-(2*Math.PI)*i],easing:"linear",duration:1e3*i}),l(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];l(i,{fromOpacity:parseFloat(i.style.opacity),opacity:0,duration:250,complete:function(){l(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=k("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=k("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();l(t.firstChild,{fromScale:[.5,.5],scale:[0,0],fromOpacity:.5,opacity:0,duration:150,complete:function(){L(t.firstChild)}})}},{key:"_onInvalidFile",value:function(){var t=this._imageHopper.accept.map(z),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=l.createMatrix();i.translate(t.detail.x,t.detail.y,0),l.setElementTransform(e,i),1==this._imageHopper.dragPath.length&&(e.style.opacity=1,l(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=l.createMatrix();i.translate(t.detail.x,t.detail.y,0),l.setElementTransform(e,i),l(e.firstChild,{fromScale:[.5,.5],scale:[0,0],fromOpacity:.5,opacity:0,duration:150,complete:function(){L(e.firstChild)}})}},{key:"_onDropFile",value:function(t){var e=this;this._removeState("file-over");var i=this._getDrip(),n=l.createMatrix();n.translate(t.detail.x,t.detail.y,0),l.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;l(i,{fromPosition:[t.detail.x,t.detail.y,0],position:[t.detail.x+a,t.detail.y+s,0],duration:200}),l(i.firstChild,{fromScale:[.5,.5],scale:[2,2],fromOpacity:1,opacity:0,duration:200,complete:function(){L(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=B(t);if(("unknown"===n.type||this._options.forceType)&&(n=j(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&&R(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"),q(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(!Q(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(){L(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()),l(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=ot(this._initialCrop),this._data.actions.crop.type=kt.INITIAL,this._initialCrop=null):(this._data.actions.crop=V(t.width,t.height,this._ratio),this._data.actions.crop.type=kt.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=Y(t,o).toDataURL(),n.onload=function(){n.onload=null,i._isBeingDestroyed||e&&e()}}))}},{key:"_applyTransforms",value:function(t,e){var i=this;G(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 gt(k("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}),Ct.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=kt.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=Y(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,i,n,o){var r=this,a=arguments.length<=4||arguments[4]===e?function(){}:arguments[4];this._startProgressLoop(),this._addState("busy"),this._output.value="",this._data.actions.crop={x:t,y:i,width:n,height:o},this._data.actions.crop.type=kt.MANUAL,this._applyTransforms(this._data.input.image,function(t){var e=r._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=Y(t,i.offsetWidth/t.width).toDataURL(),i.onload=function(){i.onload=null,"free"===r._options.ratio&&(r._ratio=i.naturalHeight/i.naturalWidth,r._scaleDropArea(r._ratio));var t=r._options.service&&r._options.push;r._save(function(t,e,i){r._stopProgressLoop(),r._removeState("busy"),a.apply(r,[r.data])},t)}})}},{key:"_save",value:function(){var t=this,i=arguments.length<=0||arguments[0]===e?function(){}:arguments[0],n=arguments.length<=1||arguments[1]===e||arguments[1],o=this.dataBase64;this._options.service||this._isInitialising&&!this._isImageOnly()||this._options.willSave.apply(this,[o,function(e){t._store(e),t._options.didSave.apply(t,[e])}]),this._options.service&&n&&this._options.willSave.apply(this,[o,function(e){t._upload(e,function(n,o){n||t._storeServerResponse(o),t._options.didUpload.apply(t,[n,e,o]),i(n,e,o)})}]),this._options.service&&n||i()}},{key:"_storeServerResponse",value:function(t){this._isRequired&&(this._input.required=!1),this._data.server=t,this._output.value="object"===("undefined"==typeof t?"undefined":d(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;M(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(){Pt.show(),this._imageEditor.show()}},{key:"_hideEditor",value:function(){this._imageEditor.hide(),setTimeout(function(){Pt.hide()},250)}},{key:"_showPreview",value:function(t,e){l(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(){L(t),e&&e()}})}},{key:"_hideResult",value:function(t){var e=this._getIntro();e&&l(e,{fromScale:[1,1],scale:[.5,.5],fromOpacity:1,opacity:0,easing:"spring",springConstant:.3,springDeceleration:.75,complete:function(){L(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(){L(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),l(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),l(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(),Pt.inner=this._imageEditor.element,this._imageEditor.open(X(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&&K(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&&(Et.forEach(function(t){e._imageHopper.element.removeEventListener(t,e)}),this._imageHopper.destroy()),this._imageEditor&&(Ct.forEach(function(t){e._imageEditor.element.removeEventListener(t,e)}),this._imageEditor.destroy()),lt(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)}),It=Math.max(0,It-1),Pt&&0===It&&(Pt.destroy(),Pt=null)}},{key:"dataBase64",get:function(){return ht(this._data,this._options.post,this._options.jpegCompression)}},{key:"data",get:function(){return rt(this._data)}},{key:"element",get:function(){return this._element}},{key:"size",set:function(t){t&&t.width&&t.height&&(this._options.size=ot(t),this._data.actions.size=ot(t))}},{key:"ratio",set:function(t){if(t&&"string"==typeof t&&(this._options.ratio=t,this._isFixedRatio())){var e=wt(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 St.concat(gt.Buttons).forEach(function(e){var i=P(e);t["button"+i+"ClassName"]=null,t["button"+i+"Label"]=i,t["button"+i+"Title"]=null}),t}}]),i}();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