{"version":3,"sources":["croppie.js"],"names":["root","factory","define","amd","exports","nodeName","commonJsStrict","this","b","a","apply","arguments","c","TypeError","_state","_value","_deferreds","i","e","f","d","push","k","onFulfilled","onRejected","resolve","reject","then","g","call","length","h","Promise","j","setTimeout","setImmediate","l","Array","isArray","Object","prototype","toString","all","slice","constructor","race","_setImmediateFn","module","CSS_TRANS_ORG","CSS_TRANSFORM","CSS_USERSELECT","cssPrefixes","emptyStyles","document","createElement","style","vendorPrefix","prop","capProp","toUpperCase","deepExtend","destination","source","property","callee","dispatchChange","element","evt","createEvent","initEvent","dispatchEvent","fireEvent","css","el","styles","val","tmp","addClass","classList","add","className","_customSpinner","jQuery","Transform","x","y","scale","parseFloat","TransformOrigin","parse","v","indexOf","fromMatrix","fromString","vals","substring","split","parseInt","values","translate","_TRANSLATE","_create","boundary","viewport","overlay","customViewportClass","options","type","useCanvas","exif","window","EXIF","data","elements","img","canvas","preview","width","height","appendChild","customClass","originalX","originalY","originalDistance","vpRect","self","isDragging","mouseDown","ev","preventDefault","pageX","pageY","touches","transform","addEventListener","mouseMove","mouseUp","body","getBoundingClientRect","dist","deltaX","deltaY","imgRect","top","left","newCss","touch1","touch2","Math","sqrt","_currentZoom","_setZoomerVal","zoomer","bottom","right","_updateOverlay","removeEventListener","_updateCenterPoint","_triggerUpdate","enableZoom","origin","viewportRect","wrap","zoomerWrap","start","change","ui","boundaries","value","vpWidth","vpHeight","centerFromBoundaryX","centerFromBoundaryY","originalImgWidth","_originalImageWidth","originalImgHeight","_originalImageHeight","curImgWidth","curImgHeight","halfWidth","halfHeight","maxX","maxY","originMinX","originMinY","minX","minY","transBoundaries","oBoundaries","transCss","_debouncedOverlay","scroll","delta","wheelDelta","detail","targetZoom","step","display","showZoomer","mouseWheelZoom","fix","show","vpData","pc","center","adj","boundRect","imgData","func","wait","immediate","timeout","context","args","callNow","clearTimeout","_isVisible","update","get","is","hide","offsetHeight","offsetWidth","_updatePropertiesFromImage","boundaryData","minW","minH","maxZoom","initialZoom","cssReset","transformReset","originReset","bound","minZoom","max","min","points","pointsWidth","vpOffset","originTop","originLeft","transformTop","transformLeft","imgDim","vpDim","boundDim","vpLeft","vpTop","w","_transferImageToCanvas","ctx","getContext","clearRect","cb","getData","orientation","getTag","getExifOrientation","save","rotate","PI","drawImage","restore","rotateCanvas","_bind","url","map","p","src","imageEl","Image","prom","toLowerCase","setAttribute","onload","opacity","exifdata","decimalPoints","toFixed","_get","x1","y1","x2","y2","Infinity","isNaN","zoom","$","RESULT_DEFAULTS","size","format","quality","RESULT_FORMATS","_result","opts","outputWidth","outputHeight","circle","outWidth","outHeight","fillStyle","globalCompositeOperation","beginPath","arc","closePath","fill","toDataURL","div","Croppie","defaults","fn","croppie","singleInst","result","each","method","isFunction","removeData","bind","refresh","setZoom","destroy","removeChild","remove","replace","ready"],"mappings":"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","file":"croppie.js","sourcesContent":["/*************************\r\n * Croppie\r\n * Copyright 2016\r\n * Foliotek\r\n * Version: 2.0.1\r\n *************************/\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD. Register as an anonymous module.\r\n define(['exports'], factory);\r\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\r\n // CommonJS\r\n factory(exports);\r\n } else {\r\n // Browser globals\r\n factory((root.commonJsStrict = {}));\r\n }\r\n}(this, function (exports) {\r\n\r\n if (typeof Promise !== 'function') {\r\n /*! promise-polyfill 3.1.0 */\r\n !function(a){function b(a,b){return function(){a.apply(b,arguments)}}function c(a){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof a)throw new TypeError(\"not a function\");this._state=null,this._value=null,this._deferreds=[],i(a,b(e,this),b(f,this))}function d(a){var b=this;return null===this._state?void this._deferreds.push(a):void k(function(){var c=b._state?a.onFulfilled:a.onRejected;if(null===c)return void(b._state?a.resolve:a.reject)(b._value);var d;try{d=c(b._value)}catch(e){return void a.reject(e)}a.resolve(d)})}function e(a){try{if(a===this)throw new TypeError(\"A promise cannot be resolved with itself.\");if(a&&(\"object\"==typeof a||\"function\"==typeof a)){var c=a.then;if(\"function\"==typeof c)return void i(b(c,a),b(e,this),b(f,this))}this._state=!0,this._value=a,g.call(this)}catch(d){f.call(this,d)}}function f(a){this._state=!1,this._value=a,g.call(this)}function g(){for(var a=0,b=this._deferreds.length;b>a;a++)d.call(this,this._deferreds[a]);this._deferreds=null}function h(a,b,c,d){this.onFulfilled=\"function\"==typeof a?a:null,this.onRejected=\"function\"==typeof b?b:null,this.resolve=c,this.reject=d}function i(a,b,c){var d=!1;try{a(function(a){d||(d=!0,b(a))},function(a){d||(d=!0,c(a))})}catch(e){if(d)return;d=!0,c(e)}}var j=setTimeout,k=\"function\"==typeof setImmediate&&setImmediate||function(a){j(a,1)},l=Array.isArray||function(a){return\"[object Array]\"===Object.prototype.toString.call(a)};c.prototype[\"catch\"]=function(a){return this.then(null,a)},c.prototype.then=function(a,b){var e=this;return new c(function(c,f){d.call(e,new h(a,b,c,f))})},c.all=function(){var a=Array.prototype.slice.call(1===arguments.length&&l(arguments[0])?arguments[0]:arguments);return new c(function(b,c){function d(f,g){try{if(g&&(\"object\"==typeof g||\"function\"==typeof g)){var h=g.then;if(\"function\"==typeof h)return void h.call(g,function(a){d(f,a)},c)}a[f]=g,0===--e&&b(a)}catch(i){c(i)}}if(0===a.length)return b([]);for(var e=a.length,f=0;fd;d++)a[d].then(b,c)})},c._setImmediateFn=function(a){k=a},\"undefined\"!=typeof module&&module.exports?module.exports=c:a.Promise||(a.Promise=c)}(this);\r\n }\r\n\r\n var cssPrefixes = ['Webkit', 'Moz', 'ms'],\r\n emptyStyles = document.createElement('div').style,\r\n CSS_TRANS_ORG,\r\n CSS_TRANSFORM,\r\n CSS_USERSELECT;\r\n\r\n function vendorPrefix(prop) {\r\n if (prop in emptyStyles) {\r\n return prop;\r\n }\r\n\r\n var capProp = prop[0].toUpperCase() + prop.slice(1),\r\n i = cssPrefixes.length;\r\n\r\n while (i--) {\r\n prop = cssPrefixes[i] + capProp;\r\n if (prop in emptyStyles) {\r\n return prop;\r\n }\r\n }\r\n }\r\n\r\n CSS_TRANSFORM = vendorPrefix('transform');\r\n CSS_TRANS_ORG = vendorPrefix('transformOrigin');\r\n CSS_USERSELECT = vendorPrefix('userSelect');\r\n _customSpinner = jQuery(\"#profilePicSpinner\");\r\n\r\n // Credits to : Andrew Dupont - http://andrewdupont.net/2009/08/28/deep-extending-objects-in-javascript/\r\n function deepExtend(destination, source) {\r\n destination = destination || {};\r\n for (var property in source) {\r\n if (source[property] && source[property].constructor && source[property].constructor === Object) {\r\n destination[property] = destination[property] || {};\r\n arguments.callee(destination[property], source[property]);\r\n } else {\r\n destination[property] = source[property];\r\n }\r\n }\r\n return destination;\r\n }\r\n\r\n function debounce(func, wait, immediate) {\r\n var timeout;\r\n return function () {\r\n var context = this, args = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n }\r\n\r\n function dispatchChange(element) {\r\n if (\"createEvent\" in document) {\r\n var evt = document.createEvent(\"HTMLEvents\");\r\n evt.initEvent(\"change\", false, true);\r\n element.dispatchEvent(evt);\r\n }\r\n else {\r\n element.fireEvent(\"onchange\");\r\n }\r\n }\r\n\r\n //http://jsperf.com/vanilla-css\r\n function css(el, styles, val) {\r\n if (typeof (styles) === 'string') {\r\n var tmp = styles;\r\n styles = {};\r\n styles[tmp] = val;\r\n }\r\n\r\n for (var prop in styles) {\r\n el.style[prop] = styles[prop];\r\n }\r\n }\r\n\r\n function addClass(el, c) {\r\n if (el.classList) {\r\n el.classList.add(c);\r\n }\r\n else {\r\n el.className += ' ' + c;\r\n }\r\n }\r\n\r\n function removeClass(el, c) {\r\n if (el.classList) {\r\n el.classList.remove(c);\r\n }\r\n else {\r\n el.className = el.className.replace(c, '');\r\n }\r\n }\r\n\r\n /* Utilities */\r\n function loadImage(src, imageEl) {\r\n var img = imageEl || new Image(),\r\n prom;\r\n\r\n prom = new Promise(function (resolve, reject) {\r\n if (src.substring(0,4).toLowerCase() === 'http') {\r\n img.setAttribute('crossOrigin', 'anonymous');\r\n }\r\n img.onload = function () {\r\n setTimeout(function () {\r\n resolve(img);\r\n }, 1);\r\n };\r\n });\r\n\r\n img.style.opacity = 0;\r\n img.src = src;\r\n return prom;\r\n }\r\n\r\n /* CSS Transform Prototype */\r\n var _TRANSLATE = 'translate3d',\r\n _TRANSLATE_SUFFIX = ', 0px';\r\n var Transform = function (x, y, scale) {\r\n this.x = parseFloat(x);\r\n this.y = parseFloat(y);\r\n this.scale = parseFloat(scale);\r\n };\r\n\r\n Transform.parse = function (v) {\r\n if (v.style) {\r\n return Transform.parse(v.style[CSS_TRANSFORM]);\r\n }\r\n else if (v.indexOf('matrix') > -1 || v.indexOf('none') > -1) {\r\n return Transform.fromMatrix(v);\r\n }\r\n else {\r\n return Transform.fromString(v);\r\n }\r\n };\r\n\r\n Transform.fromMatrix = function (v) {\r\n var vals = v.substring(7).split(',');\r\n if (!vals.length || v === 'none') {\r\n vals = [1, 0, 0, 1, 0, 0];\r\n }\r\n\r\n return new Transform(parseInt(vals[4], 10), parseInt(vals[5], 10), parseFloat(vals[0]));\r\n };\r\n\r\n Transform.fromString = function (v) {\r\n var values = v.split(') '),\r\n translate = values[0].substring(_TRANSLATE.length + 1).split(','),\r\n scale = values.length > 1 ? values[1].substring(6) : 1,\r\n x = translate.length > 1 ? translate[0] : 0,\r\n y = translate.length > 1 ? translate[1] : 0;\r\n\r\n return new Transform(x, y, scale);\r\n };\r\n\r\n Transform.prototype.toString = function () {\r\n return _TRANSLATE + '(' + this.x + 'px, ' + this.y + 'px' + _TRANSLATE_SUFFIX + ') scale(' + this.scale + ')';\r\n };\r\n\r\n var TransformOrigin = function (el) {\r\n if (!el || !el.style[CSS_TRANS_ORG]) {\r\n this.x = 0;\r\n this.y = 0;\r\n return;\r\n }\r\n var css = el.style[CSS_TRANS_ORG].split(' ');\r\n this.x = parseFloat(css[0]);\r\n this.y = parseFloat(css[1]);\r\n };\r\n\r\n TransformOrigin.prototype.toString = function () {\r\n return this.x + 'px ' + this.y + 'px';\r\n };\r\n\r\n function getExifOrientation (img, cb) {\r\n if (!window.EXIF) {\r\n cb(0);\r\n }\r\n\r\n EXIF.getData(img, function () { \r\n var orientation = EXIF.getTag(this, 'Orientation');\r\n cb(orientation); \r\n });\r\n }\r\n\r\n function rotateCanvas(canvas, ctx, img, orientation) {\r\n var width = img.width,\r\n height = img.height;\r\n\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n\r\n ctx.save();\r\n switch (orientation) {\r\n case 2:\r\n ctx.translate(width, 0);\r\n ctx.scale(-1, 1);\r\n break;\r\n\r\n case 3:\r\n ctx.translate(width, height);\r\n ctx.rotate(180*Math.PI/180);\r\n break;\r\n\r\n case 4:\r\n ctx.translate(0, height);\r\n ctx.scale(1, -1);\r\n break;\r\n\r\n case 5:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.rotate(90*Math.PI/180);\r\n ctx.scale(1, -1);\r\n break;\r\n\r\n case 6:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.rotate(90*Math.PI/180);\r\n ctx.translate(0, -height);\r\n break;\r\n\r\n case 7:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.rotate(-90*Math.PI/180);\r\n ctx.translate(-width, height);\r\n ctx.scale(1, -1);\r\n break;\r\n\r\n case 8:\r\n canvas.width = height;\r\n canvas.height = width;\r\n ctx.translate(0, width);\r\n ctx.rotate(-90*Math.PI/180);\r\n break;\r\n }\r\n ctx.drawImage(img, 0,0, width, height);\r\n ctx.restore();\r\n }\r\n\r\n /* Private Methods */\r\n function _create() {\r\n var self = this,\r\n contClass = 'croppie-container',\r\n customViewportClass = self.options.viewport.type ? 'cr-vp-' + self.options.viewport.type : null,\r\n boundary, img, viewport, overlay, canvas;\r\n\r\n self.options.useCanvas = self.options.exif && window.EXIF;\r\n // Properties on class\r\n self.data = {};\r\n self.elements = {};\r\n\r\n // Generating Markup\r\n boundary = self.elements.boundary = document.createElement('div');\r\n viewport = self.elements.viewport = document.createElement('div');\r\n img = self.elements.img = document.createElement('img');\r\n overlay = self.elements.overlay = document.createElement('div');\r\n\r\n if (self.options.useCanvas) {\r\n self.elements.canvas = document.createElement('canvas');\r\n self.elements.preview = self.elements.canvas;\r\n }\r\n else {\r\n self.elements.preview = self.elements.img;\r\n }\r\n\r\n addClass(boundary, 'cr-boundary');\r\n css(boundary, {\r\n width: self.options.boundary.width + 'px',\r\n height: self.options.boundary.height + 'px'\r\n });\r\n\r\n addClass(viewport, 'cr-viewport');\r\n if (customViewportClass) {\r\n addClass(viewport, customViewportClass);\r\n }\r\n css(viewport, {\r\n width: self.options.viewport.width + 'px',\r\n height: self.options.viewport.height + 'px'\r\n });\r\n\r\n addClass(self.elements.preview, 'cr-image');\r\n addClass(overlay, 'cr-overlay');\r\n\r\n self.element.appendChild(boundary);\r\n boundary.appendChild(self.elements.preview);\r\n boundary.appendChild(viewport);\r\n boundary.appendChild(overlay);\r\n\r\n addClass(self.element, contClass);\r\n if (self.options.customClass) {\r\n addClass(self.element, self.options.customClass);\r\n }\r\n\r\n // Initialize drag & zoom\r\n _initDraggable.call(this);\r\n\r\n if (self.options.enableZoom) {\r\n _initializeZoom.call(self);\r\n }\r\n }\r\n\r\n function _setZoomerVal(v) {\r\n if (this.options.enableZoom) {\r\n this.elements.zoomer.value = fix(v, 4);\r\n }\r\n }\r\n\r\n function _initializeZoom() {\r\n var self = this,\r\n wrap = self.elements.zoomerWrap = document.createElement('div'),\r\n zoomer = self.elements.zoomer = document.createElement('input'),\r\n origin,\r\n viewportRect,\r\n transform;\r\n\r\n addClass(wrap, 'cr-slider-wrap');\r\n addClass(zoomer, 'cr-slider');\r\n zoomer.type = 'range';\r\n zoomer.step = '0.01';\r\n zoomer.value = 1;\r\n zoomer.style.display = self.options.showZoomer ? '' : 'none';\r\n\r\n self.element.appendChild(wrap);\r\n wrap.appendChild(zoomer);\r\n\r\n self._currentZoom = 1;\r\n function start() { \r\n _updateCenterPoint.call(self);\r\n origin = new TransformOrigin(self.elements.preview);\r\n viewportRect = self.elements.viewport.getBoundingClientRect();\r\n transform = Transform.parse(self.elements.preview); \r\n }\r\n\r\n function change() {\r\n _onZoom.call(self, {\r\n value: parseFloat(zoomer.value),\r\n origin: origin || new TransformOrigin(self.elements.preview),\r\n viewportRect: viewportRect || self.elements.viewport.getBoundingClientRect(),\r\n transform: transform || Transform.parse(self.elements.preview)\r\n });\r\n }\r\n\r\n function scroll(ev) {\r\n var delta, targetZoom;\r\n\r\n if (ev.wheelDelta) {\r\n delta = ev.wheelDelta / 1200; //wheelDelta min: -120 max: 120 // max x 10 x 2\r\n } else if (ev.deltaY) {\r\n delta = ev.deltaY / 1060; //deltaY min: -53 max: 53 // max x 10 x 2\r\n } else if (ev.detail) {\r\n delta = ev.detail / 60; //delta min: -3 max: 3 // max x 10 x 2\r\n } else {\r\n delta = 0;\r\n }\r\n\r\n targetZoom = self._currentZoom + delta;\r\n\r\n ev.preventDefault();\r\n start();\r\n _setZoomerVal.call(self, targetZoom);\r\n change();\r\n }\r\n\r\n self.elements.zoomer.addEventListener('mousedown', start);\r\n self.elements.zoomer.addEventListener('touchstart', start);\r\n\r\n self.elements.zoomer.addEventListener('input', change);// this is being fired twice on keypress\r\n self.elements.zoomer.addEventListener('change', change);\r\n\r\n if (self.options.mouseWheelZoom) {\r\n self.elements.boundary.addEventListener('mousewheel', scroll);\r\n self.elements.boundary.addEventListener('DOMMouseScroll', scroll);\r\n }\r\n }\r\n\r\n function _onZoom(ui) {\r\n var self = this,\r\n transform = ui.transform,\r\n vpRect = ui.viewportRect,\r\n origin = ui.origin;\r\n\r\n self._currentZoom = ui.value;\r\n transform.scale = self._currentZoom;\r\n\r\n var boundaries = _getVirtualBoundaries.call(self, vpRect),\r\n transBoundaries = boundaries.translate,\r\n oBoundaries = boundaries.origin;\r\n\r\n if (transform.x >= transBoundaries.maxX) {\r\n origin.x = oBoundaries.minX;\r\n transform.x = transBoundaries.maxX;\r\n }\r\n\r\n if (transform.x <= transBoundaries.minX) {\r\n origin.x = oBoundaries.maxX;\r\n transform.x = transBoundaries.minX;\r\n }\r\n\r\n if (transform.y >= transBoundaries.maxY) {\r\n origin.y = oBoundaries.minY;\r\n transform.y = transBoundaries.maxY;\r\n }\r\n\r\n if (transform.y <= transBoundaries.minY) {\r\n origin.y = oBoundaries.maxY;\r\n transform.y = transBoundaries.minY;\r\n }\r\n\r\n var transCss = {};\r\n transCss[CSS_TRANSFORM] = transform.toString();\r\n transCss[CSS_TRANS_ORG] = origin.toString();\r\n css(self.elements.preview, transCss);\r\n\r\n _debouncedOverlay.call(self);\r\n _triggerUpdate.call(self);\r\n }\r\n\r\n function _getVirtualBoundaries(viewport) {\r\n var self = this,\r\n scale = self._currentZoom,\r\n vpWidth = viewport.width,\r\n vpHeight = viewport.height,\r\n centerFromBoundaryX = self.options.boundary.width / 2,\r\n centerFromBoundaryY = self.options.boundary.height / 2,\r\n originalImgWidth = self._originalImageWidth,\r\n originalImgHeight = self._originalImageHeight,\r\n curImgWidth = originalImgWidth * scale,\r\n curImgHeight = originalImgHeight * scale,\r\n halfWidth = vpWidth / 2,\r\n halfHeight = vpHeight / 2;\r\n\r\n\r\n var maxX = ((halfWidth / scale) - centerFromBoundaryX) * -1;\r\n var minX = maxX - ((curImgWidth * (1 / scale)) - (vpWidth * (1 / scale)));\r\n\r\n var maxY = ((halfHeight / scale) - centerFromBoundaryY) * -1;\r\n var minY = maxY - ((curImgHeight * (1 / scale)) - (vpHeight * (1 / scale)));\r\n\r\n var originMinX = (1 / scale) * halfWidth;\r\n var originMaxX = (curImgWidth * (1 / scale)) - originMinX;\r\n\r\n var originMinY = (1 / scale) * halfHeight;\r\n var originMaxY = (curImgHeight * (1 / scale)) - originMinY;\r\n\r\n return {\r\n translate: {\r\n maxX: maxX,\r\n minX: minX,\r\n maxY: maxY,\r\n minY: minY\r\n },\r\n origin: {\r\n maxX: originMaxX,\r\n minX: originMinX,\r\n maxY: originMaxY,\r\n minY: originMinY\r\n }\r\n }; \r\n }\r\n\r\n function _updateCenterPoint() { \r\n jQuery(_customSpinner).show();\r\n var self = this,\r\n scale = self._currentZoom,\r\n data = self.elements.preview.getBoundingClientRect(),\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n transform = Transform.parse(self.elements.preview.style[CSS_TRANSFORM]),\r\n pc = new TransformOrigin(self.elements.preview),\r\n top = (vpData.top - data.top) + (vpData.height / 2),\r\n left = (vpData.left - data.left) + (vpData.width / 2),\r\n center = {},\r\n adj = {};\r\n\r\n center.y = top / scale;\r\n center.x = left / scale;\r\n\r\n adj.y = (center.y - pc.y) * (1 - scale);\r\n adj.x = (center.x - pc.x) * (1 - scale);\r\n\r\n transform.x -= adj.x;\r\n transform.y -= adj.y;\r\n\r\n var newCss = {};\r\n newCss[CSS_TRANS_ORG] = center.x + 'px ' + center.y + 'px';\r\n newCss[CSS_TRANSFORM] = transform.toString();\r\n css(self.elements.preview, newCss); \r\n }\r\n\r\n function _initDraggable() {\r\n var self = this,\r\n isDragging = false,\r\n originalX,\r\n originalY,\r\n originalDistance,\r\n vpRect;\r\n\r\n function mouseDown(ev) {\r\n ev.preventDefault();\r\n if (isDragging) return;\r\n isDragging = true;\r\n originalX = ev.pageX;\r\n originalY = ev.pageY;\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n originalX = touches.pageX;\r\n originalY = touches.pageY;\r\n }\r\n\r\n transform = Transform.parse(self.elements.preview);\r\n window.addEventListener('mousemove', mouseMove);\r\n window.addEventListener('touchmove', mouseMove);\r\n window.addEventListener('mouseup', mouseUp);\r\n window.addEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = 'none';\r\n vpRect = self.elements.viewport.getBoundingClientRect();\r\n }\r\n\r\n function mouseMove(ev) {\r\n ev.preventDefault();\r\n var pageX = ev.pageX,\r\n pageY = ev.pageY;\r\n\r\n if (ev.touches) {\r\n var touches = ev.touches[0];\r\n pageX = touches.pageX;\r\n pageY = touches.pageY;\r\n }\r\n\r\n var deltaX = pageX - originalX,\r\n deltaY = pageY - originalY,\r\n imgRect = self.elements.preview.getBoundingClientRect(),\r\n top = transform.y + deltaY,\r\n left = transform.x + deltaX,\r\n newCss = {};\r\n\r\n if (ev.type == 'touchmove') {\r\n if (ev.touches.length > 1) {\r\n var touch1 = ev.touches[0];\r\n var touch2 = ev.touches[1];\r\n var dist = Math.sqrt((touch1.pageX - touch2.pageX) * (touch1.pageX - touch2.pageX) + (touch1.pageY - touch2.pageY) * (touch1.pageY - touch2.pageY));\r\n\r\n if (!originalDistance) {\r\n originalDistance = dist / self._currentZoom;\r\n }\r\n\r\n var scale = dist / originalDistance;\r\n\r\n _setZoomerVal.call(self, scale);\r\n dispatchChange(self.elements.zoomer);\r\n return;\r\n }\r\n }\r\n\r\n if (vpRect.top > imgRect.top + deltaY && vpRect.bottom < imgRect.bottom + deltaY) {\r\n transform.y = top;\r\n }\r\n\r\n if (vpRect.left > imgRect.left + deltaX && vpRect.right < imgRect.right + deltaX) {\r\n transform.x = left;\r\n }\r\n\r\n newCss[CSS_TRANSFORM] = transform.toString();\r\n css(self.elements.preview, newCss);\r\n _updateOverlay.call(self);\r\n originalY = pageY;\r\n originalX = pageX;\r\n }\r\n\r\n function mouseUp() {\r\n isDragging = false;\r\n window.removeEventListener('mousemove', mouseMove);\r\n window.removeEventListener('touchmove', mouseMove);\r\n window.removeEventListener('mouseup', mouseUp);\r\n window.removeEventListener('touchend', mouseUp);\r\n document.body.style[CSS_USERSELECT] = '';\r\n _updateCenterPoint.call(self);\r\n _triggerUpdate.call(self);\r\n originalDistance = 0;\r\n }\r\n\r\n self.elements.overlay.addEventListener('mousedown', mouseDown);\r\n self.elements.overlay.addEventListener('touchstart', mouseDown);\r\n }\r\n\r\n function _updateOverlay() {\r\n var self = this,\r\n boundRect = self.elements.boundary.getBoundingClientRect(),\r\n imgData = self.elements.preview.getBoundingClientRect();\r\n\r\n css(self.elements.overlay, {\r\n width: imgData.width + 'px',\r\n height: imgData.height + 'px',\r\n top: (imgData.top - boundRect.top) + 'px',\r\n left: (imgData.left - boundRect.left) + 'px'\r\n });\r\n }\r\n var _debouncedOverlay = debounce(_updateOverlay, 500);\r\n\r\n function _triggerUpdate() {\r\n var self = this;\r\n if (_isVisible.call(self)) {\r\n self.options.update.call(self, self.get());\r\n }\r\n if (jQuery(_customSpinner).is(\":visible\")) {\r\n jQuery(_customSpinner).hide();\r\n }\r\n }\r\n\r\n function _isVisible() {\r\n return this.elements.preview.offsetHeight > 0 && this.elements.preview.offsetWidth > 0;\r\n }\r\n\r\n function _updatePropertiesFromImage() {\r\n var self = this,\r\n minZoom = 0,\r\n maxZoom = 1.5,\r\n initialZoom = 1,\r\n cssReset = {},\r\n img = self.elements.preview,\r\n zoomer = self.elements.zoomer,\r\n transformReset = new Transform(0, 0, initialZoom),\r\n originReset = new TransformOrigin(),\r\n isVisible = _isVisible.call(self),\r\n imgData,\r\n vpData,\r\n boundaryData,\r\n minW,\r\n minH;\r\n\r\n if (!isVisible || self.data.bound) {\r\n // if the croppie isn't visible or it doesn't need binding\r\n return;\r\n }\r\n\r\n self.data.bound = true;\r\n cssReset[CSS_TRANSFORM] = transformReset.toString();\r\n cssReset[CSS_TRANS_ORG] = originReset.toString();\r\n cssReset['opacity'] = 1;\r\n css(img, cssReset);\r\n\r\n imgData = img.getBoundingClientRect();\r\n vpData = self.elements.viewport.getBoundingClientRect();\r\n boundaryData = self.elements.boundary.getBoundingClientRect();\r\n self._originalImageWidth = imgData.width;\r\n self._originalImageHeight = imgData.height;\r\n\r\n if (self.options.enableZoom) {\r\n minW = vpData.width / imgData.width;\r\n minH = vpData.height / imgData.height;\r\n minZoom = Math.max(minW, minH);\r\n\r\n if (minZoom >= maxZoom) {\r\n maxZoom = minZoom + 1;\r\n }\r\n\r\n zoomer.min = fix(minZoom, 4);\r\n zoomer.max = fix(maxZoom, 4);\r\n initialZoom = Math.max((boundaryData.width / imgData.width), (boundaryData.height / imgData.height));\r\n _setZoomerVal.call(self, initialZoom);\r\n dispatchChange(zoomer);\r\n }\r\n\r\n self._currentZoom = transformReset.scale = initialZoom;\r\n cssReset[CSS_TRANSFORM] = transformReset.toString();\r\n css(img, cssReset);\r\n\r\n if (self.data.points.length) {\r\n _bindPoints.call(self, self.data.points);\r\n }\r\n else {\r\n _centerImage.call(self);\r\n }\r\n\r\n\r\n _updateOverlay.call(self);\r\n }\r\n\r\n function _bindPoints(points) {\r\n if (points.length != 4) {\r\n throw \"Croppie - Invalid number of points supplied: \" + points;\r\n }\r\n var self = this,\r\n pointsWidth = points[2] - points[0],\r\n // pointsHeight = points[3] - points[1],\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n boundRect = self.elements.boundary.getBoundingClientRect(),\r\n vpOffset = {\r\n left: vpData.left - boundRect.left,\r\n top: vpData.top - boundRect.top\r\n },\r\n scale = vpData.width / pointsWidth,\r\n originTop = points[1],\r\n originLeft = points[0],\r\n transformTop = (-1 * points[1]) + vpOffset.top,\r\n transformLeft = (-1 * points[0]) + vpOffset.left,\r\n newCss = {};\r\n\r\n newCss[CSS_TRANS_ORG] = originLeft + 'px ' + originTop + 'px';\r\n newCss[CSS_TRANSFORM] = new Transform(transformLeft, transformTop, scale).toString();\r\n css(self.elements.preview, newCss);\r\n\r\n _setZoomerVal.call(self, scale);\r\n self._currentZoom = scale;\r\n }\r\n\r\n function _centerImage() {\r\n var self = this,\r\n imgDim = self.elements.preview.getBoundingClientRect(),\r\n vpDim = self.elements.viewport.getBoundingClientRect(),\r\n boundDim = self.elements.boundary.getBoundingClientRect(),\r\n vpLeft = vpDim.left - boundDim.left,\r\n vpTop = vpDim.top - boundDim.top,\r\n w = vpLeft - ((imgDim.width - vpDim.width) / 2),\r\n h = vpTop - ((imgDim.height - vpDim.height) / 2),\r\n transform = new Transform(w, h, self._currentZoom);\r\n\r\n css(self.elements.preview, CSS_TRANSFORM, transform.toString());\r\n }\r\n\r\n function _transferImageToCanvas() {\r\n var self = this,\r\n canvas = self.elements.canvas,\r\n img = self.elements.img,\r\n ctx = canvas.getContext('2d');\r\n\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n canvas.width = img.width;\r\n canvas.height = img.height;\r\n\r\n getExifOrientation(img, function (orientation) {\r\n rotateCanvas(canvas, ctx, img, parseInt(orientation));\r\n });\r\n }\r\n\r\n function _getHtmlResult(data) {\r\n var points = data.points,\r\n div = document.createElement('div'),\r\n img = document.createElement('img'),\r\n width = points[2] - points[0],\r\n height = points[3] - points[1];\r\n\r\n addClass(div, 'croppie-result');\r\n div.appendChild(img);\r\n css(img, {\r\n left: (-1 * points[0]) + 'px',\r\n top: (-1 * points[1]) + 'px'\r\n });\r\n img.src = data.url;\r\n css(div, {\r\n width: width + 'px',\r\n height: height + 'px'\r\n });\r\n\r\n return div;\r\n }\r\n\r\n function _getCanvasResult(img, data) {\r\n var points = data.points,\r\n left = points[0],\r\n top = points[1],\r\n width = (points[2] - points[0]),\r\n height = (points[3] - points[1]),\r\n circle = data.circle,\r\n canvas = document.createElement('canvas'),\r\n ctx = canvas.getContext('2d'),\r\n outWidth = width,\r\n outHeight = height;\r\n\r\n if (data.outputWidth && data.outputHeight) {\r\n outWidth = data.outputWidth;\r\n outHeight = data.outputHeight;\r\n }\r\n\r\n canvas.width = outWidth;\r\n canvas.height = outHeight;\r\n\r\n ctx.drawImage(img, left, top, width, height, 0, 0, outWidth, outHeight);\r\n if (circle) {\r\n ctx.fillStyle = '#fff';\r\n ctx.globalCompositeOperation = 'destination-in';\r\n ctx.beginPath();\r\n ctx.arc(outWidth / 2, outHeight / 2, outWidth / 2, 0, Math.PI * 2, true);\r\n ctx.closePath();\r\n ctx.fill();\r\n }\r\n return canvas.toDataURL(data.format, data.quality);\r\n }\r\n\r\n function _bind(options, cb) {\r\n var self = this,\r\n url,\r\n points = [];\r\n\r\n if (typeof (options) === 'string') {\r\n url = options;\r\n options = {};\r\n }\r\n else if (Array.isArray(options)) {\r\n points = options.slice();\r\n }\r\n else if (typeof (options) == 'undefined' && self.data.url) { //refreshing\r\n _updatePropertiesFromImage.call(self);\r\n _triggerUpdate.call(self);\r\n return null;\r\n }\r\n else {\r\n url = options.url;\r\n points = options.points || [];\r\n }\r\n\r\n self.data.bound = false;\r\n self.data.url = url || self.data.url;\r\n self.data.points = (points || self.data.points).map(function (p) {\r\n return parseFloat(p);\r\n });\r\n var prom = loadImage(url, self.elements.img);\r\n prom.then(function () {\r\n if (self.options.useCanvas) {\r\n self.elements.img.exifdata = null;\r\n _transferImageToCanvas.call(self);\r\n }\r\n _updatePropertiesFromImage.call(self);\r\n _triggerUpdate.call(self);\r\n if (cb) {\r\n cb();\r\n }\r\n });\r\n return prom;\r\n }\r\n\r\n function fix(v, decimalPoints) {\r\n return parseFloat(v).toFixed(decimalPoints || 0);\r\n }\r\n\r\n function _get() {\r\n var self = this,\r\n imgData = self.elements.preview.getBoundingClientRect(),\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n x1 = vpData.left - imgData.left,\r\n y1 = vpData.top - imgData.top,\r\n x2 = x1 + vpData.width,\r\n y2 = y1 + vpData.height,\r\n scale = self._currentZoom;\r\n\r\n if (scale === Infinity || isNaN(scale)) {\r\n scale = 1;\r\n }\r\n\r\n x1 = Math.max(0, x1 / scale);\r\n y1 = Math.max(0, y1 / scale);\r\n x2 = Math.max(0, x2 / scale);\r\n y2 = Math.max(0, y2 / scale);\r\n\r\n return {\r\n points: [fix(x1), fix(y1), fix(x2), fix(y2)],\r\n zoom: scale\r\n };\r\n }\r\n\r\n var RESULT_DEFAULTS = {\r\n type: 'canvas', \r\n size: 'viewport', \r\n format: 'png', \r\n quality: 1\r\n },\r\n RESULT_FORMATS = ['jpeg', 'webp', 'png'];\r\n\r\n function _result(options) {\r\n var self = this,\r\n data = _get.call(self),\r\n opts = deepExtend(RESULT_DEFAULTS, deepExtend({}, options)),\r\n type = (typeof (options) === 'string' ? options : opts.type),\r\n size = opts.size,\r\n format = opts.format,\r\n quality = opts.quality,\r\n vpRect,\r\n prom;\r\n\r\n if (size === 'viewport') {\r\n vpRect = self.elements.viewport.getBoundingClientRect();\r\n data.outputWidth = vpRect.width;\r\n data.outputHeight = vpRect.height;\r\n }\r\n\r\n if (RESULT_FORMATS.indexOf(format) > -1) {\r\n data.format = 'image/' + format;\r\n data.quality = quality;\r\n }\r\n\r\n data.circle = self.options.viewport.type === 'circle';\r\n data.url = self.data.url;\r\n\r\n prom = new Promise(function (resolve, reject) {\r\n if (type === 'canvas') {\r\n resolve(_getCanvasResult.call(self, self.elements.preview, data));\r\n }\r\n else {\r\n resolve(_getHtmlResult.call(self, data));\r\n }\r\n });\r\n return prom;\r\n }\r\n\r\n function _refresh() {\r\n _updatePropertiesFromImage.call(this);\r\n }\r\n\r\n function _destroy() {\r\n var self = this;\r\n self.element.removeChild(self.elements.boundary);\r\n removeClass(self.element, 'croppie-container');\r\n if (self.options.enableZoom) {\r\n self.element.removeChild(self.elements.zoomerWrap);\r\n }\r\n delete self.elements;\r\n }\r\n\r\n if (this.jQuery) {\r\n var $ = this.jQuery;\r\n $.fn.croppie = function (opts) {\r\n var ot = typeof opts;\r\n\r\n if (ot === 'string') {\r\n var args = Array.prototype.slice.call(arguments, 1);\r\n var singleInst = $(this).data('croppie');\r\n\r\n if (opts === 'get') {\r\n return singleInst.get();\r\n }\r\n else if (opts === 'result') {\r\n return singleInst.result.apply(singleInst, args);\r\n }\r\n\r\n return this.each(function () {\r\n var i = $(this).data('croppie');\r\n if (!i) return;\r\n\r\n var method = i[opts];\r\n if ($.isFunction(method)) {\r\n method.apply(i, args);\r\n if (opts === 'destroy') {\r\n $(this).removeData('croppie');\r\n }\r\n }\r\n else {\r\n throw 'Croppie ' + opts + ' method not found';\r\n }\r\n });\r\n }\r\n else {\r\n return this.each(function () {\r\n var i = new Croppie(this, opts);\r\n $(this).data('croppie', i);\r\n });\r\n }\r\n };\r\n }\r\n\r\n function Croppie(element, opts) {\r\n this.element = element;\r\n this.options = deepExtend(deepExtend({}, Croppie.defaults), opts);\r\n\r\n _create.call(this);\r\n }\r\n\r\n Croppie.defaults = {\r\n viewport: {\r\n width: 100,\r\n height: 100,\r\n type: 'square'\r\n },\r\n boundary: {\r\n width: 300,\r\n height: 300\r\n },\r\n customClass: '',\r\n showZoomer: true,\r\n enableZoom: true,\r\n mouseWheelZoom: true,\r\n exif: false,\r\n update: function () { }\r\n };\r\n\r\n deepExtend(Croppie.prototype, {\r\n bind: function (options, cb) {\r\n return _bind.call(this, options, cb);\r\n },\r\n get: function () {\r\n return _get.call(this);\r\n },\r\n result: function (type) {\r\n return _result.call(this, type);\r\n },\r\n refresh: function () {\r\n return _refresh.call(this);\r\n },\r\n setZoom: function (v) {\r\n _setZoomerVal.call(this, v);\r\n dispatchChange(this.elements.zoomer);\r\n },\r\n destroy: function () {\r\n return _destroy.call(this);\r\n }\r\n });\r\n\r\n exports.Croppie = window.Croppie = Croppie;\r\n\r\n if (typeof module === 'object' && !!module.exports) {\r\n module.exports = Croppie; \r\n }\r\n}));\r\n\r\n$(document).ready(function () {\r\n _customSpinner = jQuery(\"#profilePicSpinner\");\r\n});\r\n"]}