{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/vue-picture-input/PictureInput.vue?1b1f","webpack:///./node_modules/croppie/croppie.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./src/components/custom/croopie/croopie.vue?9a69","webpack:///./node_modules/vue-picture-input/PictureInput.vue?47d9","webpack:///node_modules/vue-picture-input/PictureInput.vue","webpack:///./node_modules/vue-picture-input/PictureInput.vue?53bc","webpack:///./node_modules/vue-picture-input/PictureInput.vue","webpack:///./node_modules/vue-croppie/dist/vue-croppie.es.js","webpack:///./src/components/custom/croopie/croopie.js","webpack:///./src/components/custom/croopie/croopie.js?d3bc","webpack:///./src/components/custom/croopie/croopie.vue","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/core-js/internals/array-fill.js","webpack:///./src/components/custom/croopie/croopie.css?77f7","webpack:///./node_modules/core-js/internals/array-buffer-native.js","webpack:///./node_modules/core-js/modules/es.array-buffer.slice.js"],"names":["toInteger","toLength","module","exports","it","undefined","number","length","RangeError","root","factory","self","Promise","a","b","apply","arguments","c","this","TypeError","_state","_value","_deferreds","i","e","f","d","push","k","onFulfilled","onRejected","reject","resolve","then","g","call","h","j","setTimeout","setImmediate","l","Array","isArray","Object","prototype","toString","all","slice","constructor","race","_setImmediateFn","window","CustomEvent","event","params","bubbles","cancelable","detail","evt","document","createEvent","initCustomEvent","Event","HTMLCanvasElement","toBlob","defineProperty","value","callback","type","quality","binStr","atob","toDataURL","split","len","arr","Uint8Array","charCodeAt","Blob","CSS_TRANS_ORG","CSS_TRANSFORM","CSS_USERSELECT","cssPrefixes","emptyStyles","createElement","style","EXIF_NORM","EXIF_FLIP","vendorPrefix","prop","capProp","toUpperCase","getExifOffset","ornt","rotate","indexOf","index","offset","deepExtend","destination","source","property","clone","object","debounce","func","wait","immediate","timeout","context","args","later","callNow","clearTimeout","dispatchChange","element","initEvent","dispatchEvent","fireEvent","css","el","styles","val","tmp","addClass","classList","add","className","removeClass","remove","replace","setAttributes","attrs","key","setAttribute","num","v","parseInt","loadImage","src","doExif","img","Image","opacity","_resolve","removeAttribute","match","onload","EXIF","getData","onerror","ev","naturalImageDimensions","w","naturalWidth","naturalHeight","orient","getExifOrientation","x","width","height","TRANSLATE_OPTS","suffix","Transform","y","scale","parseFloat","parse","fromMatrix","fromString","vals","substring","values","translate","Croppie","globals","TransformOrigin","exifdata","Orientation","drawCanvas","canvas","orientation","ctx","getContext","save","Math","PI","drawImage","restore","_create","boundary","viewport","overlay","bw","bh","contClass","customViewportClass","options","useCanvas","enableOrientation","_hasExif","data","elements","preview","isNaN","appendChild","customClass","_initDraggable","enableZoom","_initializeZoom","enableResize","_initializeResize","enableExif","direction","originalX","originalY","maxWidth","maxHeight","vr","hr","wrap","isDragging","minSize","mouseDown","button","preventDefault","overlayRect","getBoundingClientRect","pageX","pageY","currentTarget","touches","addEventListener","mouseMove","mouseUp","body","deltaX","deltaY","newHeight","newWidth","_updateOverlay","_updateZoomLimits","_updateCenterPoint","_triggerUpdate","removeEventListener","resizeControls","_setZoomerVal","z","zoomer","fix","max","min","zoomerWrap","change","_onZoom","origin","viewportRect","transform","scroll","delta","targetZoom","mouseWheelZoom","ctrlKey","wheelDelta","_currentZoom","step","display","showZoomer","ui","vpRect","applyCss","transCss","enforceBoundary","boundaries","_getVirtualBoundaries","transBoundaries","oBoundaries","maxX","minX","maxY","minY","_debouncedOverlay","vpWidth","vpHeight","centerFromBoundaryX","clientWidth","centerFromBoundaryY","clientHeight","imgRect","curImgWidth","curImgHeight","halfWidth","halfHeight","originMinX","originMaxX","originMinY","originMaxY","vpData","pc","top","left","center","adj","cx","cy","tx","ty","newCss","originalDistance","assignTransformCoordinates","bottom","right","toggleGrabState","keyDown","zoom","LEFT_ARROW","UP_ARROW","RIGHT_ARROW","DOWN_ARROW","shiftKey","keyCode","enableKeyMovement","movement","parseKeyDown","keyMove","setZoom","touch1","touch2","dist","sqrt","boundRect","imgData","get","_isVisible","update","$","Prototype","trigger","offsetHeight","offsetWidth","_updatePropertiesFromImage","initialZoom","cssReset","transformReset","originReset","isVisible","bound","_originalImageWidth","_originalImageHeight","points","_bindPoints","_centerImage","initial","defaultInitialZoom","minW","minH","minZoom","maxZoom","boundaryData","boundZoom","pointsWidth","vpOffset","originTop","originLeft","transformTop","transformLeft","imgDim","vpDim","boundDim","vpLeft","vpTop","_transferImageToCanvas","customOrientation","clearRect","_getCanvas","circle","canvasWidth","outputWidth","canvasHeight","outputHeight","backgroundColor","fillStyle","fillRect","sx","sy","sWidth","sHeight","dx","dy","dWidth","dHeight","abs","globalCompositeOperation","beginPath","arc","closePath","fill","_getHtmlResult","div","url","_getBase64Result","format","_getBlobResult","blob","_replaceImage","parentNode","forEach","replaceChild","_bind","cb","hasExif","relative","natDim","rect","aspectRatio","imgAspectRatio","x0","y0","x1","y1","map","p","decimalPoints","toFixed","_get","widthDiff","heightDiff","x2","y2","Infinity","Number","NEGATIVE_INFINITY","RESULT_DEFAULTS","RESULT_FORMATS","_result","prom","opts","resultType","size","ratio","toLowerCase","_refresh","_rotate","deg","_destroy","removeChild","jQuery","fn","croppie","ot","singleInst","result","bind","each","method","isFunction","removeData","Error","defaults","tagName","origImage","replacementDiv","bindOpts","orientationControls","enabled","leftClass","rightClass","refresh","destroy","global","DESCRIPTORS","NATIVE_ARRAY_BUFFER","createNonEnumerableProperty","redefineAll","fails","anInstance","toIndex","IEEE754","getPrototypeOf","setPrototypeOf","getOwnPropertyNames","arrayFill","setToStringTag","InternalStateModule","getInternalState","setInternalState","set","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","$DataView","$DataViewPrototype","ObjectPrototype","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","buffer","packFloat32","packFloat64","addGetter","Constructor","view","count","isLittleEndian","intIndex","store","byteLength","bytes","start","byteOffset","reverse","conversion","NaN","name","ArrayBufferPrototype","keys","testView","nativeSetInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","ArrayBuffer","DataView","render","_vm","_h","$createElement","_c","_self","staticClass","resultImageUrl","on","imageRemove","_e","directives","rawName","expression","ref","resultImage","customString","imageChange","imageCrop","_v","_s","cropButtonText","selectImage","selectButtonText","staticRenderFns","supportsUpload","previewWidth","previewHeight","borderRadius","radius","class","computedClasses","zIndex","$event","stopPropagation","onDragStart","onDragStop","onFileDrop","onClick","imageSelected","plain","marginBottom","fontSize","domProps","strings","drag","tap","hideChangeButton","buttonClass","removable","removeButtonClass","removeImage","toggleAspectRatio","aspectButtonClass","rotateImage","aspect","selected","select","upload","id","accept","onFileChange","props","String","default","MAX_SAFE_INTEGER","margin","prefill","File","prefillOptions","crop","Boolean","autoToggleAspectRatio","changeOnClick","alertOnError","customStrings","watch","preloadImage","draggingOver","fileSize","fileType","updateStrings","$nextTick","onResize","supportsPreview","pixelRatio","round","devicePixelRatio","screen","deviceXDPI","logicalXDPI","$refs","previewCanvas","fileTypes","s","trim","$on","onError","$off","methods","$emit","resizeCanvas","imageObject","supportsDragAndDrop","files","target","dataTransfer","fileName","message","fileModified","lastModified","file","substr","image","alert","error","getEXIFOrientation","setOrientation","reader","FileReader","canvasOrientation","getOrientation","imageOrientation","rotateCanvas","readAsDataURL","imageWidth","imageHeight","imageRatio","offsetX","offsetY","scaledWidth","scaledHeight","previewRatio","background","setTransform","fileInput","click","newOrientation","container","containerWidth","switchCanvasOrientation","marker","little","tags","readAsArrayBuffer","super","chunks","lastModifiedDate","Date","filename","assign","headers","Headers","append","fetch","mode","response","mediaType","imageBlob","err","computed","navigator","userAgent","disabled","CanvasRenderingContext2D","classObject","component","VueCroppieComponent","croppieInitialized","Function","mounted","initCroppie","_this","croppieContainer","angle","_this2","output","VueCroppie","install","Vue","use","heigth","resize","originImage","showPreview","components","PictureInput","pictureInput","pictureCroppie","blobToFile","URL","webkitURL","createObjectURL","pow","floor","log","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","sign","nBits","toObject","toAbsoluteIndex","O","argumentsLength","end","endPos","ArrayBufferModule","anObject","speciesConstructor","nativeArrayBufferSlice","INCORRECT_SLICE","proto","forced","first","fin","viewSource","viewTarget"],"mappings":"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","file":"js/croopie.0c624a70.js","sourcesContent":["var toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\n\n// `ToIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length or index');\n return length;\n};\n","import mod from \"-!../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../vue-loader/lib/loaders/stylePostLoader.js!../postcss-loader/src/index.js??ref--6-oneOf-1-2!../cache-loader/dist/cjs.js??ref--0-0!../vue-loader/lib/index.js??vue-loader-options!./PictureInput.vue?vue&type=style&index=0&id=5080a0f2&scoped=true&lang=css&\"; export default mod; export * from \"-!../mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../css-loader/dist/cjs.js??ref--6-oneOf-1-1!../vue-loader/lib/loaders/stylePostLoader.js!../postcss-loader/src/index.js??ref--6-oneOf-1-2!../cache-loader/dist/cjs.js??ref--0-0!../vue-loader/lib/index.js??vue-loader-options!./PictureInput.vue?vue&type=style&index=0&id=5080a0f2&scoped=true&lang=css&\"","/*************************\r\n * Croppie\r\n * Copyright 2019\r\n * Foliotek\r\n * Version: 2.6.4\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(factory);\r\n } else if (typeof exports === 'object' && typeof exports.nodeName !== 'string') {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n root.Croppie = factory();\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function () {\r\n\r\n /* Polyfills */\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 if ( typeof window.CustomEvent !== \"function\" ) {\r\n (function(){\r\n function CustomEvent ( event, params ) {\r\n params = params || { bubbles: false, cancelable: false, detail: undefined };\r\n var evt = document.createEvent( 'CustomEvent' );\r\n evt.initCustomEvent( event, params.bubbles, params.cancelable, params.detail );\r\n return evt;\r\n }\r\n CustomEvent.prototype = window.Event.prototype;\r\n window.CustomEvent = CustomEvent;\r\n }());\r\n }\r\n\r\n if (!HTMLCanvasElement.prototype.toBlob) {\r\n Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {\r\n value: function (callback, type, quality) {\r\n var binStr = atob( this.toDataURL(type, quality).split(',')[1] ),\r\n len = binStr.length,\r\n arr = new Uint8Array(len);\r\n\r\n for (var i=0; i -1 ? EXIF_NORM : EXIF_FLIP,\r\n index = arr.indexOf(ornt),\r\n offset = (rotate / 90) % arr.length;// 180 = 2%4 = 2 shift exif by 2 indexes\r\n\r\n return arr[(arr.length + index + (offset % arr.length)) % arr.length];\r\n }\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 deepExtend(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 clone(object) {\r\n return deepExtend({}, object);\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 function setAttributes(el, attrs) {\r\n for (var key in attrs) {\r\n el.setAttribute(key, attrs[key]);\r\n }\r\n }\r\n\r\n function num(v) {\r\n return parseInt(v, 10);\r\n }\r\n\r\n /* Utilities */\r\n function loadImage(src, doExif) {\r\n var img = new Image();\r\n img.style.opacity = '0';\r\n return new Promise(function (resolve, reject) {\r\n function _resolve() {\r\n img.style.opacity = '1';\r\n setTimeout(function () {\r\n resolve(img);\r\n }, 1);\r\n }\r\n\r\n img.removeAttribute('crossOrigin');\r\n if (src.match(/^https?:\\/\\/|^\\/\\//)) {\r\n img.setAttribute('crossOrigin', 'anonymous');\r\n }\r\n\r\n img.onload = function () {\r\n if (doExif) {\r\n EXIF.getData(img, function () {\r\n _resolve();\r\n });\r\n }\r\n else {\r\n _resolve();\r\n }\r\n };\r\n img.onerror = function (ev) {\r\n img.style.opacity = 1;\r\n setTimeout(function () {\r\n reject(ev);\r\n }, 1);\r\n };\r\n img.src = src;\r\n });\r\n }\r\n\r\n function naturalImageDimensions(img, ornt) {\r\n var w = img.naturalWidth;\r\n var h = img.naturalHeight;\r\n var orient = ornt || getExifOrientation(img);\r\n if (orient && orient >= 5) {\r\n var x= w;\r\n w = h;\r\n h = x;\r\n }\r\n return { width: w, height: h };\r\n }\r\n\r\n /* CSS Transform Prototype */\r\n var TRANSLATE_OPTS = {\r\n 'translate3d': {\r\n suffix: ', 0px'\r\n },\r\n 'translate': {\r\n suffix: ''\r\n }\r\n };\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(num(vals[4]), num(vals[5]), 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(Croppie.globals.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 var suffix = TRANSLATE_OPTS[Croppie.globals.translate].suffix || '';\r\n return Croppie.globals.translate + '(' + this.x + 'px, ' + this.y + 'px' + 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) {\r\n return img.exifdata && img.exifdata.Orientation ? num(img.exifdata.Orientation) : 1;\r\n }\r\n\r\n function drawCanvas(canvas, img, orientation) {\r\n var width = img.width,\r\n height = img.height,\r\n ctx = canvas.getContext('2d');\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, bw, bh;\r\n\r\n self.options.useCanvas = self.options.enableOrientation || _hasExif.call(self);\r\n // Properties on class\r\n self.data = {};\r\n self.elements = {};\r\n\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 = img;\r\n }\r\n\r\n addClass(boundary, 'cr-boundary');\r\n boundary.setAttribute('aria-dropeffect', 'none');\r\n bw = self.options.boundary.width;\r\n bh = self.options.boundary.height;\r\n css(boundary, {\r\n width: (bw + (isNaN(bw) ? '' : 'px')),\r\n height: (bh + (isNaN(bh) ? '' : '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 viewport.setAttribute('tabindex', 0);\r\n\r\n addClass(self.elements.preview, 'cr-image');\r\n setAttributes(self.elements.preview, { 'alt': 'preview', 'aria-grabbed': 'false' });\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 _initDraggable.call(this);\r\n\r\n if (self.options.enableZoom) {\r\n _initializeZoom.call(self);\r\n }\r\n\r\n // if (self.options.enableOrientation) {\r\n // _initRotationControls.call(self);\r\n // }\r\n\r\n if (self.options.enableResize) {\r\n _initializeResize.call(self);\r\n }\r\n }\r\n\r\n // function _initRotationControls () {\r\n // var self = this,\r\n // wrap, btnLeft, btnRight, iLeft, iRight;\r\n\r\n // wrap = document.createElement('div');\r\n // self.elements.orientationBtnLeft = btnLeft = document.createElement('button');\r\n // self.elements.orientationBtnRight = btnRight = document.createElement('button');\r\n\r\n // wrap.appendChild(btnLeft);\r\n // wrap.appendChild(btnRight);\r\n\r\n // iLeft = document.createElement('i');\r\n // iRight = document.createElement('i');\r\n // btnLeft.appendChild(iLeft);\r\n // btnRight.appendChild(iRight);\r\n\r\n // addClass(wrap, 'cr-rotate-controls');\r\n // addClass(btnLeft, 'cr-rotate-l');\r\n // addClass(btnRight, 'cr-rotate-r');\r\n\r\n // self.elements.boundary.appendChild(wrap);\r\n\r\n // btnLeft.addEventListener('click', function () {\r\n // self.rotate(-90);\r\n // });\r\n // btnRight.addEventListener('click', function () {\r\n // self.rotate(90);\r\n // });\r\n // }\r\n\r\n function _hasExif() {\r\n return this.options.enableExif && window.EXIF;\r\n }\r\n\r\n function _initializeResize () {\r\n var self = this;\r\n var wrap = document.createElement('div');\r\n var isDragging = false;\r\n var direction;\r\n var originalX;\r\n var originalY;\r\n var minSize = 50;\r\n var maxWidth;\r\n var maxHeight;\r\n var vr;\r\n var hr;\r\n\r\n addClass(wrap, 'cr-resizer');\r\n css(wrap, {\r\n width: this.options.viewport.width + 'px',\r\n height: this.options.viewport.height + 'px'\r\n });\r\n\r\n if (this.options.resizeControls.height) {\r\n vr = document.createElement('div');\r\n addClass(vr, 'cr-resizer-vertical');\r\n wrap.appendChild(vr);\r\n }\r\n\r\n if (this.options.resizeControls.width) {\r\n hr = document.createElement('div');\r\n addClass(hr, 'cr-resizer-horisontal');\r\n wrap.appendChild(hr);\r\n }\r\n\r\n function mouseDown(ev) {\r\n if (ev.button !== undefined && ev.button !== 0) return;\r\n\r\n ev.preventDefault();\r\n if (isDragging) {\r\n return;\r\n }\r\n\r\n var overlayRect = self.elements.overlay.getBoundingClientRect();\r\n\r\n isDragging = true;\r\n originalX = ev.pageX;\r\n originalY = ev.pageY;\r\n direction = ev.currentTarget.className.indexOf('vertical') !== -1 ? 'v' : 'h';\r\n maxWidth = overlayRect.width;\r\n maxHeight = overlayRect.height;\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 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 }\r\n\r\n function mouseMove(ev) {\r\n var pageX = ev.pageX;\r\n var pageY = ev.pageY;\r\n\r\n ev.preventDefault();\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 var deltaY = pageY - originalY;\r\n var newHeight = self.options.viewport.height + deltaY;\r\n var newWidth = self.options.viewport.width + deltaX;\r\n\r\n if (direction === 'v' && newHeight >= minSize && newHeight <= maxHeight) {\r\n css(wrap, {\r\n height: newHeight + 'px'\r\n });\r\n\r\n self.options.boundary.height += deltaY;\r\n css(self.elements.boundary, {\r\n height: self.options.boundary.height + 'px'\r\n });\r\n\r\n self.options.viewport.height += deltaY;\r\n css(self.elements.viewport, {\r\n height: self.options.viewport.height + 'px'\r\n });\r\n }\r\n else if (direction === 'h' && newWidth >= minSize && newWidth <= maxWidth) {\r\n css(wrap, {\r\n width: newWidth + 'px'\r\n });\r\n\r\n self.options.boundary.width += deltaX;\r\n css(self.elements.boundary, {\r\n width: self.options.boundary.width + 'px'\r\n });\r\n\r\n self.options.viewport.width += deltaX;\r\n css(self.elements.viewport, {\r\n width: self.options.viewport.width + 'px'\r\n });\r\n }\r\n\r\n _updateOverlay.call(self);\r\n _updateZoomLimits.call(self);\r\n _updateCenterPoint.call(self);\r\n _triggerUpdate.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 }\r\n\r\n if (vr) {\r\n vr.addEventListener('mousedown', mouseDown);\r\n vr.addEventListener('touchstart', mouseDown);\r\n }\r\n\r\n if (hr) {\r\n hr.addEventListener('mousedown', mouseDown);\r\n hr.addEventListener('touchstart', mouseDown);\r\n }\r\n\r\n this.elements.boundary.appendChild(wrap);\r\n }\r\n\r\n function _setZoomerVal(v) {\r\n if (this.options.enableZoom) {\r\n var z = this.elements.zoomer,\r\n val = fix(v, 4);\r\n\r\n z.value = Math.max(parseFloat(z.min), Math.min(parseFloat(z.max), val)).toString();\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\r\n addClass(wrap, 'cr-slider-wrap');\r\n addClass(zoomer, 'cr-slider');\r\n zoomer.type = 'range';\r\n zoomer.step = '0.0001';\r\n zoomer.value = '1';\r\n zoomer.style.display = self.options.showZoomer ? '' : 'none';\r\n zoomer.setAttribute('aria-label', 'zoom');\r\n\r\n self.element.appendChild(wrap);\r\n wrap.appendChild(zoomer);\r\n\r\n self._currentZoom = 1;\r\n\r\n function change() {\r\n _onZoom.call(self, {\r\n value: parseFloat(zoomer.value),\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\r\n function scroll(ev) {\r\n var delta, targetZoom;\r\n\r\n if(self.options.mouseWheelZoom === 'ctrl' && ev.ctrlKey !== true){\r\n return 0; \r\n } else 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 * self._currentZoom);\r\n\r\n ev.preventDefault();\r\n _setZoomerVal.call(self, targetZoom);\r\n change.call(self);\r\n }\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 ? ui.transform : Transform.parse(self.elements.preview),\r\n vpRect = ui ? ui.viewportRect : self.elements.viewport.getBoundingClientRect(),\r\n origin = ui ? ui.origin : new TransformOrigin(self.elements.preview);\r\n\r\n function applyCss() {\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\r\n self._currentZoom = ui ? ui.value : self._currentZoom;\r\n transform.scale = self._currentZoom;\r\n self.elements.zoomer.setAttribute('aria-valuenow', self._currentZoom);\r\n applyCss();\r\n\r\n if (self.options.enforceBoundary) {\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 applyCss();\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.elements.boundary.clientWidth / 2,\r\n centerFromBoundaryY = self.elements.boundary.clientHeight / 2,\r\n imgRect = self.elements.preview.getBoundingClientRect(),\r\n curImgWidth = imgRect.width,\r\n curImgHeight = imgRect.height,\r\n halfWidth = vpWidth / 2,\r\n halfHeight = vpHeight / 2;\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(rotate) {\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 if (rotate) {\r\n var cx = pc.x;\r\n var cy = pc.y;\r\n var tx = transform.x;\r\n var ty = transform.y;\r\n\r\n center.y = cx;\r\n center.x = cy;\r\n transform.y = tx;\r\n transform.x = ty;\r\n }\r\n else {\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\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 transform;\r\n\r\n function assignTransformCoordinates(deltaX, deltaY) {\r\n var imgRect = self.elements.preview.getBoundingClientRect(),\r\n top = transform.y + deltaY,\r\n left = transform.x + deltaX;\r\n\r\n if (self.options.enforceBoundary) {\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 else {\r\n transform.y = top;\r\n transform.x = left;\r\n }\r\n }\r\n\r\n function toggleGrabState(isDragging) {\r\n self.elements.preview.setAttribute('aria-grabbed', isDragging);\r\n self.elements.boundary.setAttribute('aria-dropeffect', isDragging? 'move': 'none');\r\n }\r\n\r\n function keyDown(ev) {\r\n var LEFT_ARROW = 37,\r\n UP_ARROW = 38,\r\n RIGHT_ARROW = 39,\r\n DOWN_ARROW = 40;\r\n\r\n if (ev.shiftKey && (ev.keyCode === UP_ARROW || ev.keyCode === DOWN_ARROW)) {\r\n var zoom;\r\n if (ev.keyCode === UP_ARROW) {\r\n zoom = parseFloat(self.elements.zoomer.value) + parseFloat(self.elements.zoomer.step)\r\n }\r\n else {\r\n zoom = parseFloat(self.elements.zoomer.value) - parseFloat(self.elements.zoomer.step)\r\n }\r\n self.setZoom(zoom);\r\n }\r\n else if (self.options.enableKeyMovement && (ev.keyCode >= 37 && ev.keyCode <= 40)) {\r\n ev.preventDefault();\r\n var movement = parseKeyDown(ev.keyCode);\r\n\r\n transform = Transform.parse(self.elements.preview);\r\n document.body.style[CSS_USERSELECT] = 'none';\r\n vpRect = self.elements.viewport.getBoundingClientRect();\r\n keyMove(movement);\r\n }\r\n\r\n function parseKeyDown(key) {\r\n switch (key) {\r\n case LEFT_ARROW:\r\n return [1, 0];\r\n case UP_ARROW:\r\n return [0, 1];\r\n case RIGHT_ARROW:\r\n return [-1, 0];\r\n case DOWN_ARROW:\r\n return [0, -1];\r\n }\r\n }\r\n }\r\n\r\n function keyMove(movement) {\r\n var deltaX = movement[0],\r\n deltaY = movement[1],\r\n newCss = {};\r\n\r\n assignTransformCoordinates(deltaX, deltaY);\r\n\r\n newCss[CSS_TRANSFORM] = transform.toString();\r\n css(self.elements.preview, newCss);\r\n _updateOverlay.call(self);\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 function mouseDown(ev) {\r\n if (ev.button !== undefined && ev.button !== 0) return;\r\n\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 toggleGrabState(isDragging);\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 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 assignTransformCoordinates(deltaX, deltaY);\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 toggleGrabState(isDragging);\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.viewport.addEventListener('keydown', keyDown);\r\n self.elements.overlay.addEventListener('touchstart', mouseDown);\r\n }\r\n\r\n function _updateOverlay() {\r\n if (!this.elements) return; // since this is debounced, it can be fired after destroy\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 data = self.get();\r\n\r\n if (!_isVisible.call(self)) {\r\n return;\r\n }\r\n\r\n self.options.update.call(self, data);\r\n if (self.$ && typeof Prototype === 'undefined') {\r\n self.$(self.element).trigger('update.croppie', data);\r\n }\r\n else {\r\n var ev;\r\n if (window.CustomEvent) {\r\n ev = new CustomEvent('update', { detail: data });\r\n } else {\r\n ev = document.createEvent('CustomEvent');\r\n ev.initCustomEvent('update', true, true, data);\r\n }\r\n\r\n self.element.dispatchEvent(ev);\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 initialZoom = 1,\r\n cssReset = {},\r\n img = self.elements.preview,\r\n imgData,\r\n transformReset = new Transform(0, 0, initialZoom),\r\n originReset = new TransformOrigin(),\r\n isVisible = _isVisible.call(self);\r\n\r\n if (!isVisible || self.data.bound) {// 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 = self.elements.preview.getBoundingClientRect();\r\n\r\n self._originalImageWidth = imgData.width;\r\n self._originalImageHeight = imgData.height;\r\n self.data.orientation = getExifOrientation(self.elements.img);\r\n\r\n if (self.options.enableZoom) {\r\n _updateZoomLimits.call(self, true);\r\n }\r\n else {\r\n self._currentZoom = initialZoom;\r\n }\r\n\r\n transformReset.scale = self._currentZoom;\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 _updateCenterPoint.call(self);\r\n _updateOverlay.call(self);\r\n }\r\n\r\n function _updateZoomLimits (initial) {\r\n var self = this,\r\n minZoom = Math.max(self.options.minZoom, 0) || 0,\r\n maxZoom = self.options.maxZoom || 1.5,\r\n initialZoom,\r\n defaultInitialZoom,\r\n zoomer = self.elements.zoomer,\r\n scale = parseFloat(zoomer.value),\r\n boundaryData = self.elements.boundary.getBoundingClientRect(),\r\n imgData = naturalImageDimensions(self.elements.img, self.data.orientation),\r\n vpData = self.elements.viewport.getBoundingClientRect(),\r\n minW,\r\n minH;\r\n if (self.options.enforceBoundary) {\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\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 \r\n if (!initial && (scale < zoomer.min || scale > zoomer.max)) {\r\n _setZoomerVal.call(self, scale < zoomer.min ? zoomer.min : zoomer.max);\r\n }\r\n else if (initial) {\r\n defaultInitialZoom = Math.max((boundaryData.width / imgData.width), (boundaryData.height / imgData.height));\r\n initialZoom = self.data.boundZoom !== null ? self.data.boundZoom : defaultInitialZoom;\r\n _setZoomerVal.call(self, initialZoom);\r\n }\r\n\r\n dispatchChange(zoomer);\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(customOrientation) {\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 var orientation = self.options.enableOrientation && customOrientation || getExifOrientation(img);\r\n drawCanvas(canvas, img, orientation);\r\n }\r\n\r\n function _getCanvas(data) {\r\n var self = this,\r\n points = data.points,\r\n left = num(points[0]),\r\n top = num(points[1]),\r\n right = num(points[2]),\r\n bottom = num(points[3]),\r\n width = right-left,\r\n height = bottom-top,\r\n circle = data.circle,\r\n canvas = document.createElement('canvas'),\r\n ctx = canvas.getContext('2d'),\r\n startX = 0,\r\n startY = 0,\r\n canvasWidth = data.outputWidth || width,\r\n canvasHeight = data.outputHeight || height;\r\n\r\n canvas.width = canvasWidth;\r\n canvas.height = canvasHeight;\r\n\r\n if (data.backgroundColor) {\r\n ctx.fillStyle = data.backgroundColor;\r\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\r\n }\r\n\r\n // By default assume we're going to draw the entire\r\n // source image onto the destination canvas.\r\n var sx = left,\r\n sy = top,\r\n sWidth = width,\r\n sHeight = height,\r\n dx = 0,\r\n dy = 0,\r\n dWidth = canvasWidth,\r\n dHeight = canvasHeight;\r\n\r\n //\r\n // Do not go outside of the original image's bounds along the x-axis.\r\n // Handle translations when projecting onto the destination canvas.\r\n //\r\n\r\n // The smallest possible source x-position is 0.\r\n if (left < 0) {\r\n sx = 0;\r\n dx = (Math.abs(left) / width) * canvasWidth;\r\n }\r\n\r\n // The largest possible source width is the original image's width.\r\n if (sWidth + sx > self._originalImageWidth) {\r\n sWidth = self._originalImageWidth - sx;\r\n dWidth = (sWidth / width) * canvasWidth;\r\n }\r\n\r\n //\r\n // Do not go outside of the original image's bounds along the y-axis.\r\n //\r\n\r\n // The smallest possible source y-position is 0.\r\n if (top < 0) {\r\n sy = 0;\r\n dy = (Math.abs(top) / height) * canvasHeight;\r\n }\r\n\r\n // The largest possible source height is the original image's height.\r\n if (sHeight + sy > self._originalImageHeight) {\r\n sHeight = self._originalImageHeight - sy;\r\n dHeight = (sHeight / height) * canvasHeight;\r\n }\r\n\r\n // console.table({ left, right, top, bottom, canvasWidth, canvasHeight, width, height, startX, startY, circle, sx, sy, dx, dy, sWidth, sHeight, dWidth, dHeight });\r\n\r\n ctx.drawImage(this.elements.preview, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight);\r\n if (circle) {\r\n ctx.fillStyle = '#fff';\r\n ctx.globalCompositeOperation = 'destination-in';\r\n ctx.beginPath();\r\n ctx.arc(canvas.width / 2, canvas.height / 2, canvas.width / 2, 0, Math.PI * 2, true);\r\n ctx.closePath();\r\n ctx.fill();\r\n }\r\n return canvas;\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 _getBase64Result(data) {\r\n return _getCanvas.call(this, data).toDataURL(data.format, data.quality);\r\n }\r\n\r\n function _getBlobResult(data) {\r\n var self = this;\r\n return new Promise(function (resolve) {\r\n _getCanvas.call(self, data).toBlob(function (blob) {\r\n resolve(blob);\r\n }, data.format, data.quality);\r\n });\r\n }\r\n\r\n function _replaceImage(img) {\r\n if (this.elements.img.parentNode) {\r\n Array.prototype.forEach.call(this.elements.img.classList, function(c) { img.classList.add(c); });\r\n this.elements.img.parentNode.replaceChild(img, this.elements.img);\r\n this.elements.preview = img; // if the img is attached to the DOM, they're not using the canvas\r\n }\r\n this.elements.img = img;\r\n }\r\n\r\n function _bind(options, cb) {\r\n var self = this,\r\n url,\r\n points = [],\r\n zoom = null,\r\n hasExif = _hasExif.call(self);\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 zoom = typeof(options.zoom) === 'undefined' ? null : options.zoom;\r\n }\r\n\r\n self.data.bound = false;\r\n self.data.url = url || self.data.url;\r\n self.data.boundZoom = zoom;\r\n\r\n return loadImage(url, hasExif).then(function (img) {\r\n _replaceImage.call(self, img);\r\n if (!points.length) {\r\n var natDim = naturalImageDimensions(img);\r\n var rect = self.elements.viewport.getBoundingClientRect();\r\n var aspectRatio = rect.width / rect.height;\r\n var imgAspectRatio = natDim.width / natDim.height;\r\n var width, height;\r\n\r\n if (imgAspectRatio > aspectRatio) {\r\n height = natDim.height;\r\n width = height * aspectRatio;\r\n }\r\n else {\r\n width = natDim.width;\r\n height = natDim.height / aspectRatio;\r\n }\r\n\r\n var x0 = (natDim.width - width) / 2;\r\n var y0 = (natDim.height - height) / 2;\r\n var x1 = x0 + width;\r\n var y1 = y0 + height;\r\n self.data.points = [x0, y0, x1, y1];\r\n }\r\n else if (self.options.relative) {\r\n points = [\r\n points[0] * img.naturalWidth / 100,\r\n points[1] * img.naturalHeight / 100,\r\n points[2] * img.naturalWidth / 100,\r\n points[3] * img.naturalHeight / 100\r\n ];\r\n }\r\n\r\n self.data.points = points.map(function (p) {\r\n return parseFloat(p);\r\n });\r\n if (self.options.useCanvas) {\r\n _transferImageToCanvas.call(self, options.orientation);\r\n }\r\n _updatePropertiesFromImage.call(self);\r\n _triggerUpdate.call(self);\r\n cb && cb();\r\n });\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 widthDiff = (vpData.width - self.elements.viewport.offsetWidth) / 2, //border\r\n heightDiff = (vpData.height - self.elements.viewport.offsetHeight) / 2,\r\n x2 = x1 + self.elements.viewport.offsetWidth + widthDiff,\r\n y2 = y1 + self.elements.viewport.offsetHeight + heightDiff,\r\n scale = self._currentZoom;\r\n\r\n if (scale === Infinity || isNaN(scale)) {\r\n scale = 1;\r\n }\r\n\r\n var max = self.options.enforceBoundary ? 0 : Number.NEGATIVE_INFINITY;\r\n x1 = Math.max(max, x1 / scale);\r\n y1 = Math.max(max, y1 / scale);\r\n x2 = Math.max(max, x2 / scale);\r\n y2 = Math.max(max, y2 / scale);\r\n\r\n return {\r\n points: [fix(x1), fix(y1), fix(x2), fix(y2)],\r\n zoom: scale,\r\n orientation: self.data.orientation\r\n };\r\n }\r\n\r\n var RESULT_DEFAULTS = {\r\n type: 'canvas',\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(clone(RESULT_DEFAULTS), clone(options)),\r\n resultType = (typeof (options) === 'string' ? options : (opts.type || 'base64')),\r\n size = opts.size || 'viewport',\r\n format = opts.format,\r\n quality = opts.quality,\r\n backgroundColor = opts.backgroundColor,\r\n circle = typeof opts.circle === 'boolean' ? opts.circle : (self.options.viewport.type === 'circle'),\r\n vpRect = self.elements.viewport.getBoundingClientRect(),\r\n ratio = vpRect.width / vpRect.height,\r\n prom;\r\n\r\n if (size === 'viewport') {\r\n data.outputWidth = vpRect.width;\r\n data.outputHeight = vpRect.height;\r\n } else if (typeof size === 'object') {\r\n if (size.width && size.height) {\r\n data.outputWidth = size.width;\r\n data.outputHeight = size.height;\r\n } else if (size.width) {\r\n data.outputWidth = size.width;\r\n data.outputHeight = size.width / ratio;\r\n } else if (size.height) {\r\n data.outputWidth = size.height * ratio;\r\n data.outputHeight = size.height;\r\n }\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 = circle;\r\n data.url = self.data.url;\r\n data.backgroundColor = backgroundColor;\r\n\r\n prom = new Promise(function (resolve) {\r\n switch(resultType.toLowerCase())\r\n {\r\n case 'rawcanvas':\r\n resolve(_getCanvas.call(self, data));\r\n break;\r\n case 'canvas':\r\n case 'base64':\r\n resolve(_getBase64Result.call(self, data));\r\n break;\r\n case 'blob':\r\n _getBlobResult.call(self, data).then(resolve);\r\n break;\r\n default:\r\n resolve(_getHtmlResult.call(self, data));\r\n break;\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 _rotate(deg) {\r\n if (!this.options.useCanvas || !this.options.enableOrientation) {\r\n throw 'Croppie: Cannot rotate without enableOrientation && EXIF.js included';\r\n }\r\n\r\n var self = this,\r\n canvas = self.elements.canvas;\r\n\r\n self.data.orientation = getExifOffset(self.data.orientation, deg);\r\n drawCanvas(canvas, self.elements.img, self.data.orientation);\r\n _updateCenterPoint.call(self, true);\r\n _updateZoomLimits.call(self);\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 (window.jQuery) {\r\n var $ = window.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 else if (opts === 'bind') {\r\n return singleInst.bind.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 i.$ = $;\r\n $(this).data('croppie', i);\r\n });\r\n }\r\n };\r\n }\r\n\r\n function Croppie(element, opts) {\r\n if (element.className.indexOf('croppie-container') > -1) {\r\n throw new Error(\"Croppie: Can't initialize croppie more than once\");\r\n }\r\n this.element = element;\r\n this.options = deepExtend(clone(Croppie.defaults), opts);\r\n\r\n if (this.element.tagName.toLowerCase() === 'img') {\r\n var origImage = this.element;\r\n addClass(origImage, 'cr-original-image');\r\n setAttributes(origImage, {'aria-hidden' : 'true', 'alt' : '' });\r\n var replacementDiv = document.createElement('div');\r\n this.element.parentNode.appendChild(replacementDiv);\r\n replacementDiv.appendChild(origImage);\r\n this.element = replacementDiv;\r\n this.options.url = this.options.url || origImage.src;\r\n }\r\n\r\n _create.call(this);\r\n if (this.options.url) {\r\n var bindOpts = {\r\n url: this.options.url,\r\n points: this.options.points\r\n };\r\n delete this.options['url'];\r\n delete this.options['points'];\r\n _bind.call(this, bindOpts);\r\n }\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 orientationControls: {\r\n enabled: true,\r\n leftClass: '',\r\n rightClass: ''\r\n },\r\n resizeControls: {\r\n width: true,\r\n height: true\r\n },\r\n customClass: '',\r\n showZoomer: true,\r\n enableZoom: true,\r\n enableResize: false,\r\n mouseWheelZoom: true,\r\n enableExif: false,\r\n enforceBoundary: true,\r\n enableOrientation: false,\r\n enableKeyMovement: true,\r\n update: function () { }\r\n };\r\n\r\n Croppie.globals = {\r\n translate: 'translate3d'\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 var data = _get.call(this);\r\n var points = data.points;\r\n if (this.options.relative) {\r\n points[0] /= this.elements.img.naturalWidth / 100;\r\n points[1] /= this.elements.img.naturalHeight / 100;\r\n points[2] /= this.elements.img.naturalWidth / 100;\r\n points[3] /= this.elements.img.naturalHeight / 100;\r\n }\r\n return data;\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 rotate: function (deg) {\r\n _rotate.call(this, deg);\r\n },\r\n destroy: function () {\r\n return _destroy.call(this);\r\n }\r\n });\r\n return Croppie;\r\n}));\r\n","'use strict';\nvar global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-native');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefineAll = require('../internals/redefine-all');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toInteger = require('../internals/to-integer');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar $DataView = global[DATA_VIEW];\nvar $DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar RangeError = global.RangeError;\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = bytes.slice(start, start + count);\n return isLittleEndian ? pack : pack.reverse();\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: arrayFill.call(new Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new NativeArrayBuffer(); // eslint-disable-line no-new\n new NativeArrayBuffer(1.5); // eslint-disable-line no-new\n new NativeArrayBuffer(NaN); // eslint-disable-line no-new\n return NativeArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new NativeArrayBuffer(toIndex(length));\n };\n var ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE] = NativeArrayBuffer[PROTOTYPE];\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf($DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf($DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var nativeSetInt8 = $DataViewPrototype.setInt8;\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) redefineAll($DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n nativeSetInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"picture-input\"},[(_vm.showPreview)?_c('div',{staticClass:\"preview-img\"},[_c('div',{staticClass:\"img-wrap\"},[_c('img',{attrs:{\"src\":_vm.resultImageUrl}}),_c('i',{staticClass:\"el-icon-error\",on:{\"click\":_vm.imageRemove}})])]):_vm._e(),_c('PictureInput',{directives:[{name:\"show\",rawName:\"v-show\",value:(false),expression:\"false\"}],ref:\"pictureInput\",attrs:{\"width\":_vm.boundary.width,\"height\":_vm.boundary.height,\"margin\":\"10\",\"size\":\"5\",\"removable\":true,\"prefill\":_vm.value || _vm.resultImage,\"crop\":false,\"accept\":\"image/jpeg, image/png, image/jpg\",\"button-class\":\"btn\",\"custom-strings\":_vm.customString},on:{\"change\":_vm.imageChange,\"remove\":_vm.imageRemove}}),_c('vue-croppie',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.originImage),expression:\"originImage\"}],ref:\"pictureCroppie\",attrs:{\"viewport\":_vm.viewport,\"boundary\":_vm.boundary,\"enableResize\":false,\"enableOrientation\":true}}),(_vm.originImage)?_c('el-button',{on:{\"click\":_vm.imageCrop}},[_vm._v(\" \"+_vm._s(_vm.cropButtonText)+\" \")]):_c('el-button',{on:{\"click\":_vm.selectImage}},[_vm._v(\" \"+_vm._s(_vm.selectButtonText)+\" \")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",staticClass:\"picture-input\",attrs:{\"id\":\"picture-input\"}},[(!_vm.supportsUpload)?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.strings.upload)}}):(_vm.supportsPreview)?_c('div',[_c('div',{staticClass:\"preview-container\",style:({maxWidth: _vm.previewWidth + 'px', height: _vm.previewHeight + 'px', borderRadius: _vm.radius + '%'})},[_c('canvas',{ref:\"previewCanvas\",staticClass:\"picture-preview\",class:_vm.computedClasses,style:({height: _vm.previewHeight + 'px', zIndex: _vm.zIndex + 1 }),on:{\"drag\":function($event){$event.stopPropagation();$event.preventDefault();},\"dragover\":function($event){$event.stopPropagation();$event.preventDefault();},\"dragstart\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onDragStart($event)},\"dragenter\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onDragStart($event)},\"dragend\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onDragStop($event)},\"dragleave\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onDragStop($event)},\"drop\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.onFileDrop($event)},\"click\":function($event){$event.preventDefault();return _vm.onClick($event)}}}),(!_vm.imageSelected && !_vm.plain)?_c('div',{staticClass:\"picture-inner\",style:({top: -_vm.previewHeight + 'px', marginBottom: -_vm.previewHeight + 'px', fontSize: _vm.fontSize, borderRadius: _vm.radius + '%', zIndex: _vm.zIndex + 2})},[(_vm.supportsDragAndDrop)?_c('span',{staticClass:\"picture-inner-text\",domProps:{\"innerHTML\":_vm._s(_vm.strings.drag)}}):_c('span',{staticClass:\"picture-inner-text\",domProps:{\"innerHTML\":_vm._s(_vm.strings.tap)}})]):_vm._e()]),(_vm.imageSelected && !_vm.hideChangeButton)?_c('button',{class:_vm.buttonClass,on:{\"click\":function($event){$event.preventDefault();return _vm.selectImage($event)}}},[_vm._v(_vm._s(_vm.strings.change))]):_vm._e(),(_vm.imageSelected && _vm.removable)?_c('button',{class:_vm.removeButtonClass,on:{\"click\":function($event){$event.preventDefault();return _vm.removeImage($event)}}},[_vm._v(_vm._s(_vm.strings.remove))]):_vm._e(),(_vm.imageSelected && _vm.toggleAspectRatio && _vm.width !== _vm.height)?_c('button',{class:_vm.aspectButtonClass,on:{\"click\":function($event){$event.preventDefault();return _vm.rotateImage($event)}}},[_vm._v(_vm._s(_vm.strings.aspect))]):_vm._e()]):_c('div',[(!_vm.imageSelected)?_c('button',{class:_vm.buttonClass,on:{\"click\":function($event){$event.preventDefault();return _vm.selectImage($event)}}},[_vm._v(_vm._s(_vm.strings.select))]):_c('div',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.strings.selected)}}),(!_vm.hideChangeButton)?_c('button',{class:_vm.buttonClass,on:{\"click\":function($event){$event.preventDefault();return _vm.selectImage($event)}}},[_vm._v(_vm._s(_vm.strings.change))]):_vm._e(),(_vm.removable)?_c('button',{class:_vm.removeButtonClass,on:{\"click\":function($event){$event.preventDefault();return _vm.removeImage($event)}}},[_vm._v(_vm._s(_vm.strings.remove))]):_vm._e()])]),_c('input',{ref:\"fileInput\",attrs:{\"type\":\"file\",\"name\":_vm.name,\"id\":_vm.id,\"accept\":_vm.accept},on:{\"change\":_vm.onFileChange}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../cache-loader/dist/cjs.js??ref--12-0!../thread-loader/dist/cjs.js!../babel-loader/lib/index.js!../cache-loader/dist/cjs.js??ref--0-0!../vue-loader/lib/index.js??vue-loader-options!./PictureInput.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../cache-loader/dist/cjs.js??ref--12-0!../thread-loader/dist/cjs.js!../babel-loader/lib/index.js!../cache-loader/dist/cjs.js??ref--0-0!../vue-loader/lib/index.js??vue-loader-options!./PictureInput.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./PictureInput.vue?vue&type=template&id=5080a0f2&scoped=true&\"\nimport script from \"./PictureInput.vue?vue&type=script&lang=js&\"\nexport * from \"./PictureInput.vue?vue&type=script&lang=js&\"\nimport style0 from \"./PictureInput.vue?vue&type=style&index=0&id=5080a0f2&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5080a0f2\",\n null\n \n)\n\nexport default component.exports","import Croppie from 'croppie';\n\nvar VueCroppieComponent = {\n name: 'VueCroppie',\n render: function render(h) {\n return h('div', {\n class: this.customClass,\n ref: 'croppieContainer',\n id: 'croppieContainer'\n });\n },\n props: {\n boundary: Object,\n customClass: String,\n enableExif: Boolean,\n enableOrientation: {\n type: Boolean,\n default: true\n },\n enableResize: {\n type: Boolean,\n default: true\n },\n enableZoom: {\n type: Boolean,\n default: true\n },\n enforceBoundary: {\n type: Boolean,\n default: true\n },\n mouseWheelZoom: {\n type: [Boolean, String],\n default: true\n },\n showZoomer: {\n type: Boolean,\n default: true\n },\n croppieInitialized: {\n type: Function,\n default: function _default() {}\n },\n viewport: {\n type: Object,\n default: function _default() {\n return {\n width: 200,\n height: 200,\n type: 'square'\n };\n }\n },\n minZoom: Number,\n maxZoom: Number\n },\n mounted: function mounted() {\n this.initCroppie();\n },\n data: function data() {\n return {\n croppie: null\n };\n },\n methods: {\n initCroppie: function initCroppie() {\n var _this = this;\n\n var el = this.$refs.croppieContainer;\n var options = {\n enableExif: this.enableExif,\n enableOrientation: this.enableOrientation,\n enableZoom: this.enableZoom,\n enableResize: this.enableResize,\n enforceBoundary: this.enforceBoundary,\n mouseWheelZoom: this.mouseWheelZoom,\n viewport: this.viewport,\n showZoomer: this.showZoomer,\n minZoom: this.minZoom,\n maxZoom: this.maxZoom\n };\n\n if (this.boundary) {\n options.boundary = this.boundary;\n }\n\n el.addEventListener('update', function (ev) {\n _this.$emit('update', ev.detail);\n });\n this.croppie = new Croppie(el, options);\n this.croppieInitialized();\n },\n bind: function bind(options) {\n return this.croppie.bind(options);\n },\n destroy: function destroy() {\n this.croppie.destroy();\n },\n get: function get(cb) {\n if (cb) {\n cb(this.croppie.get());\n } else {\n return this.croppie.get();\n }\n },\n rotate: function rotate(angle) {\n this.croppie.rotate(angle);\n },\n setZoom: function setZoom(value) {\n this.croppie.setZoom(value);\n },\n result: function result(options, cb) {\n var _this2 = this;\n\n if (!options) options = {\n type: 'base64'\n };\n return this.croppie.result(options).then(function (output) {\n if (!cb) {\n _this2.$emit('result', output);\n } else {\n cb(output);\n }\n\n return output;\n });\n },\n refresh: function refresh() {\n this.croppie.destroy();\n this.initCroppie();\n }\n }\n};\n\nvar VueCroppie = {\n install: function install(Vue, options) {\n Vue.component(VueCroppieComponent.name, VueCroppieComponent);\n }\n};\n\nif (window && window.Vue) {\n Vue.use(VueCroppie);\n}\n\nexport default VueCroppie;\nexport { VueCroppieComponent };\n","import Vue from \"vue\";\r\nimport PictureInput from \"vue-picture-input\";\r\nimport \"croppie/croppie.css\";\r\nimport VueCroppie from \"vue-croppie\";\r\nVue.use(VueCroppie);\r\n\r\nexport default {\r\n props: {\r\n cropButtonText: {\r\n default: \"Crop image\"\r\n },\r\n selectButtonText: {\r\n default: \"Select image\"\r\n },\r\n boundary: {\r\n default: () => {\r\n return {\r\n width: 250,\r\n height: 250\r\n };\r\n }\r\n },\r\n viewport: {\r\n default: () => {\r\n return {\r\n width: 200,\r\n heigth: 200\r\n };\r\n }\r\n },\r\n customString: {\r\n default: () => {\r\n return {\r\n drag: \"Drag an image or
click here to select a file\", // HTML allowed\r\n change: \"Change Photo\", // Text only\r\n remove: \"Remove Photo\", // Text only\r\n select: \"Select a Photo\" // Text only\r\n };\r\n }\r\n },\r\n resize: {\r\n default: false\r\n },\r\n value: {\r\n default: \"\"\r\n }\r\n },\r\n data() {\r\n return {\r\n originImage: null,\r\n resultImage: \"\",\r\n resultImageUrl: \"\",\r\n showPreview: false,\r\n resultImageUrl: \"\"\r\n };\r\n },\r\n components: {\r\n PictureInput\r\n },\r\n methods: {\r\n selectImage() {\r\n this.$refs.pictureInput.onClick();\r\n },\r\n imageChange(image) {\r\n this.$emit(\"change\", image);\r\n if (image) {\r\n this.originImage = image;\r\n this.$refs.pictureCroppie.bind({\r\n url: image\r\n });\r\n }\r\n },\r\n imageRemove() {\r\n this.showPreview = false;\r\n this.resultImageUrl = \"\";\r\n this.$emit(\"remove\");\r\n },\r\n imageCrop() {\r\n let options = {\r\n type: \"blob\",\r\n format: \"png\",\r\n circle: false,\r\n size: \"original\"\r\n };\r\n this.imageChange();\r\n this.$refs.pictureCroppie.result(options).then(output => {\r\n let reader = new FileReader();\r\n reader.readAsDataURL(output);\r\n this.resultImage = reader.result;\r\n this.originImage = null;\r\n this.result(this.blobToFile(output));\r\n this.showPreview = true;\r\n });\r\n },\r\n result(e) {\r\n window.URL = window.URL || window.webkitURL;\r\n let url = window.URL.createObjectURL(e);\r\n this.resultImageUrl = url;\r\n this.showPreview = true;\r\n this.$emit(\"result\", e);\r\n },\r\n update(e) {\r\n this.$emit(\"update\", e);\r\n },\r\n blobToFile(blob, fileName = \"file\") {\r\n blob.lastModifiedDate = new Date();\r\n blob.name = fileName;\r\n return blob;\r\n }\r\n }\r\n};\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/eslint-loader/index.js??ref--13-0!./croopie.js?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/eslint-loader/index.js??ref--13-0!./croopie.js?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./croopie.vue?vue&type=template&id=d6744722&scoped=true&\"\nimport script from \"./croopie.js?vue&type=script&lang=js&\"\nexport * from \"./croopie.js?vue&type=script&lang=js&\"\nimport style0 from \"./croopie.css?vue&type=style&index=0&id=d6744722&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d6744722\",\n null\n \n)\n\nexport default component.exports","// IEEE754 conversions based on https://github.com/feross/ieee754\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = 1 / 0;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = new Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n if (number * (c = pow(2, -exponent)) < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n for (; mantissaLength >= 8; buffer[index++] = mantissa & 255, mantissa /= 256, mantissaLength -= 8);\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n for (; exponentLength > 0; buffer[index++] = exponent & 255, exponent /= 256, exponentLength -= 8);\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n for (; nBits > 0; exponent = exponent * 256 + buffer[index], index--, nBits -= 8);\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n for (; nBits > 0; mantissa = mantissa * 256 + buffer[index], index--, nBits -= 8);\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.github.io/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./croopie.css?vue&type=style&index=0&id=d6744722&scoped=true&lang=css&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!./croopie.css?vue&type=style&index=0&id=d6744722&scoped=true&lang=css&\"","module.exports = typeof ArrayBuffer !== 'undefined' && typeof DataView !== 'undefined';\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar nativeArrayBufferSlice = ArrayBuffer.prototype.slice;\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.github.io/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice !== undefined && end === undefined) {\n return nativeArrayBufferSlice.call(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n viewTarget.setUint8(index++, viewSource.getUint8(first++));\n } return result;\n }\n});\n"],"sourceRoot":""}