{"version":3,"sources":["webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/index.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/filepond-plugin-file-validate-type/dist/filepond-plugin-file-validate-type.esm.js","webpack:///./node_modules/dayjs/dayjs.min.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.esm.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/lottie-vuejs/src/LottieAnimation.vue?94d9","webpack:///node_modules/lottie-vuejs/src/LottieAnimation.vue","webpack:///./node_modules/lottie-vuejs/src/LottieAnimation.vue?53c1","webpack:///./node_modules/lottie-vuejs/src/LottieAnimation.vue","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/defaults.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/core/settle.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/axios.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/utils.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/core/createError.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/lottie-vuejs/node_modules/axios/lib/helpers/normalizeHeaderName.js"],"names":["utils","transformData","isCancel","defaults","throwIfCancellationRequested","config","cancelToken","throwIfRequested","module","exports","headers","data","transformRequest","merge","common","method","forEach","adapter","then","response","transformResponse","reason","Promise","reject","Cancel","CancelToken","executor","TypeError","resolvePromise","this","promise","resolve","token","message","prototype","source","cancel","c","encode","val","encodeURIComponent","replace","url","params","paramsSerializer","serializedParams","isURLSearchParams","toString","parts","key","isArray","v","isDate","toISOString","isObject","JSON","stringify","push","join","hashmarkIndex","indexOf","slice","ignoreDuplicateOf","i","parsed","split","line","trim","substr","toLowerCase","concat","callback","arr","apply","error","code","request","isAxiosError","toJSON","name","description","number","fileName","lineNumber","columnNumber","stack","isAbsoluteURL","combineURLs","baseURL","requestedURL","settle","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","isFormData","XMLHttpRequest","auth","username","password","Authorization","btoa","fullPath","open","toUpperCase","timeout","onreadystatechange","readyState","status","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","cookies","xsrfValue","withCredentials","xsrfCookieName","read","undefined","xsrfHeaderName","setRequestHeader","isUndefined","e","onDownloadProgress","addEventListener","onUploadProgress","upload","abort","send","plugin","addFilter","Type","isString","replaceInString","guesstimateMimeType","getExtensionFromFilename","getFilenameFromURL","mimeTypeMatchesWildCard","mimeType","wildcard","mimeTypeGroup","exec","pop","wildcardGroup","isValidMimeType","acceptedTypes","userInputType","some","acceptedType","test","getItemType","item","type","filename","extension","validateFile","acceptedFileTypes","typeDetector","length","detectedType","catch","applyMimeTypeMap","map","acceptedFileType","Object","assign","accept","file","query","validationResult","handleRejection","acceptedFileTypesMapped","filter","label","main","sub","allTypes","allButLastType","lastType","options","allowFileTypeValidation","BOOLEAN","ARRAY","labelFileTypeNotAllowed","STRING","fileValidateTypeLabelExpectedTypes","fileValidateTypeLabelExpectedTypesMap","OBJECT","fileValidateTypeDetectType","FUNCTION","isBrowser","window","document","dispatchEvent","CustomEvent","detail","t","n","r","s","u","a","o","f","h","d","$","l","y","M","weekdays","months","m","String","Array","g","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","_","S","args","arguments","O","locale","$L","utc","$u","x","$x","$offset","parse","$d","Date","NaN","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toUTCString","T","extend","$i","isDayjs","en","Ls","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","prop","deepMerge","axiosKeys","otherKeys","keys","InterceptorManager","handlers","use","fulfilled","rejected","eject","id","fn","isPreviewableImage","vectorMultiply","amount","createVector","vectorAdd","b","vectorNormalize","sqrt","vectorRotate","radians","origin","cos","sin","getMarkupValue","value","size","scalar","axis","parseFloat","width","height","getMarkupStyles","markup","scale","lineStyle","borderStyle","fill","backgroundColor","fontColor","stroke","borderColor","lineColor","strokeWidth","borderWidth","lineWidth","lineCap","lineJoin","dashes","opacity","isDefined","getMarkupRect","rect","left","top","right","bottom","pointsToPathShape","points","point","index","setAttributes","element","attr","setAttribute","ns","svg","tag","createElementNS","updateRect","styles","updateEllipse","cx","cy","rx","ry","IMAGE_FIT_STYLE","contain","cover","updateImage","preserveAspectRatio","fit","TEXT_ANCHOR","center","updateText","fontSize","fontFamily","fontWeight","textAlign","text","textContent","updateLine","childNodes","begin","end","target","x1","y1","x2","y2","lineDecoration","style","display","arrowBeginRotationPoint","arrowBeginCenter","arrowBeginA","arrowBeginB","arrowEndRotationPoint","arrowEndCenter","arrowEndA","arrowEndB","updatePath","createShape","node","createImage","shape","onload","setAttributeNS","src","createLine","appendChild","CREATE_TYPE_ROUTES","image","ellipse","path","UPDATE_TYPE_ROUTES","createMarkupByType","updateMarkupByType","MARKUP_RECT","toOptionalFraction","prepareMarkup","props","reduce","prev","curr","zIndex","sortMarkupByZIndex","createMarkupView","createView","ignoreRect","mixins","apis","write","root","dirty","crop","resize","viewWidth","viewHeight","cropWidth","cropHeight","outputWidth","outputHeight","outputFit","mode","outputUpscale","upscale","shouldUpscale","scalarWidth","scalarHeight","max","innerHTML","markupFilter","sort","settings","createVector$1","vectorDot","vectorSubtract","vectorDistanceSquared","vectorDistance","getOffsetPointOnEdge","rotation","B","C","sinA","sinB","sinC","cosC","ratio","getRotatedRectSize","hor","ver","tl","tr","bl","calculateCanvasSize","canvasAspectRatio","zoom","imageAspectRatio","canvasWidth","canvasHeight","imgWidth","imgHeight","getImageRectZoomFactor","imageRect","cropRect","imageWidth","imageHeight","rotatedCropSize","getCenteredCropRect","container","aspectRatio","getCurrentCropSize","imageSize","canvasSize","canvasCenter","stage","shouldLimit","scaleToFit","stageZoomFactor","widthFloat","heightFloat","IMAGE_SCALE_SPRING_PROPS","stiffness","damping","mass","createBitmapView","create","createImageCanvasWrapper","animations","originX","originY","scaleX","scaleY","translateX","translateY","rotateZ","ref","bitmap","appendChildView","createChildView","flip","horizontal","vertical","createClipView","duration","didWriteView","background","createMarkup","destroyMarkup","removeChildView","transparencyIndicator","dataset","shouldOptimize","translation","PI","cropAspectRatio","imageView","createImageView","clip","hidden","containerWidth","inner","containerHeight","fixedPreviewHeight","minPreviewHeight","maxPreviewHeight","panelAspectRatio","allowMultiple","clipHeight","clipWidth","SVG_MASK","SVGMaskUniqueId","createImageOverlayView","fpAPI","mask","querySelector","location","href","hash","classList","BitmapWorker","self","onmessage","createImageBitmap","postMessage","ColorMatrixWorker","imageData","matrix","colorMatrix","m11","m12","m13","m14","m15","m21","m22","m23","m24","m25","m31","m32","m33","m34","m35","m41","m42","m43","m44","m45","buffer","getImageSize","cb","Image","naturalWidth","naturalHeight","transforms","1","2","3","4","5","6","7","8","fixImageOrientation","ctx","orientation","transform","createPreviewImage","canvas","createElement","getContext","drawImage","isBitmap","MAX_WIDTH","MAX_HEIGHT","calculateAverageColor","getImageData","averageColor","cloneCanvas","cloneImageData","ImageData","createImageData","Uint8ClampedArray","loadImage","img","crossOrigin","createImageWrapperView","OverlayView","ImageView","createWorker","applyFilter","putImageData","worker","post","terminate","removeImageView","_destroy","shiftImage","images","shift","imageViewBin","pushImage","getMetadata","childViews","setTimeout","dispatch","didUpdateItemMetadata","action","change","canCreateImageBitmap","userAgent","navigator","isFirefox","firefoxVersion","parseInt","didCreatePreviewContainer","fileURL","URL","createObjectURL","drawPreview","loadPreviewFallback","previewImageLoaded","revokeObjectURL","exif","pixelDensityFactor","devicePixelRatio","zoomFactor","scaleFactor","previewImageRatio","previewContainerWidth","previewContainerHeight","previewImage","done","setMetadata","close","overlayShadow","imageBitmap","didDrawPreview","restoreOverlay","overlayError","overlaySuccess","didThrowError","didCompleteProcessing","destroy","createRoute","DID_IMAGE_PREVIEW_DRAW","DID_IMAGE_PREVIEW_CONTAINER_CREATE","DID_FINISH_CALCULATE_PREVIEWSIZE","DID_UPDATE_ITEM_METADATA","DID_THROW_ITEM_LOAD_ERROR","DID_THROW_ITEM_PROCESSING_ERROR","DID_THROW_ITEM_INVALID","DID_COMPLETE_ITEM_PROCESSING","DID_START_ITEM_PROCESSING","DID_REVERT_ITEM_PROCESSING","viewsToRemove","isFile","imagePreviewView","viewAPI","is","view","didLoadItem","archived","supportsCreateImageBitmap","maxPreviewFileSize","imagePreview","queue","rescaleItem","itemPanelAspectRatio","fixedHeight","previewAspectRatio","previewHeightMax","itemWidth","previewHeight","didResizeView","shouldRescale","didCalculatePreviewSize","shouldDrawPreview","registerWriter","DID_RESIZE_ROOT","DID_STOP_RESIZE","DID_LOAD_ITEM","DID_IMAGE_PREVIEW_CALCULATE_SIZE","requestAnimationFrame","allowImagePreview","imagePreviewFilterItem","imagePreviewHeight","INT","imagePreviewMinHeight","imagePreviewMaxHeight","imagePreviewMaxFileSize","imagePreviewZoomFactor","imagePreviewUpscale","imagePreviewMaxInstantPreviewFileSize","imagePreviewTransparencyIndicator","imagePreviewCalculateAverageImageColor","imagePreviewMarkupShow","imagePreviewMarkupFilter","render","_vm","_h","$createElement","_c","_self","_e","staticRenderFns","required","speed","default","loop","autoPlay","loopDelayMin","loopDelayMax","rendererSettings","scaleMode","clearCanvas","progressiveLoad","hideOnTransparent","anim","mounted","methods","loadJsonData","axios","overflow","margin","jsonData","renderer","autoplay","animationData","getRandomInt","random","executeLoop","play","watch","component","originURL","msie","urlParsingNode","resolveURL","protocol","host","search","hostname","port","pathname","charAt","requestURL","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","process","call","isArrayBuffer","isBuffer","isStream","isBlob","isArrayBufferView","maxContentLength","validateStatus","bind","Axios","mergeConfig","createInstance","defaultConfig","context","instance","instanceConfig","all","promises","spread","fns","expires","domain","secure","cookie","isNumber","toGMTString","RegExp","decodeURIComponent","remove","now","relativeURL","constructor","FormData","result","ArrayBuffer","isView","isFunction","pipe","URLSearchParams","str","product","obj","hasOwnProperty","assignValue","thisArg","enhanceError","Error","dispatchRequest","interceptors","chain","interceptor","unshift","getUri","normalizedName"],"mappings":"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","file":"js/chunk-vendors~b5906859.6fc4c754.js","sourcesContent":["'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","/*!\n * FilePondPluginFileValidateType 1.2.6\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n\nconst plugin = ({ addFilter, utils }) => {\n // get quick reference to Type utils\n const {\n Type,\n isString,\n replaceInString,\n guesstimateMimeType,\n getExtensionFromFilename,\n getFilenameFromURL\n } = utils;\n\n const mimeTypeMatchesWildCard = (mimeType, wildcard) => {\n const mimeTypeGroup = (/^[^/]+/.exec(mimeType) || []).pop(); // image/png -> image\n const wildcardGroup = wildcard.slice(0, -2); // image/* -> image\n return mimeTypeGroup === wildcardGroup;\n };\n\n const isValidMimeType = (acceptedTypes, userInputType) =>\n acceptedTypes.some(acceptedType => {\n // accepted is wildcard mime type\n if (/\\*$/.test(acceptedType)) {\n return mimeTypeMatchesWildCard(userInputType, acceptedType);\n }\n\n // is normal mime type\n return acceptedType === userInputType;\n });\n\n const getItemType = item => {\n // if the item is a url we guess the mime type by the extension\n let type = '';\n if (isString(item)) {\n const filename = getFilenameFromURL(item);\n const extension = getExtensionFromFilename(filename);\n if (extension) {\n type = guesstimateMimeType(extension);\n }\n } else {\n type = item.type;\n }\n\n return type;\n };\n\n const validateFile = (item, acceptedFileTypes, typeDetector) => {\n // no types defined, everything is allowed \\o/\n if (acceptedFileTypes.length === 0) {\n return true;\n }\n\n // gets the item type\n const type = getItemType(item);\n\n // no type detector, test now\n if (!typeDetector) {\n return isValidMimeType(acceptedFileTypes, type);\n }\n\n // use type detector\n return new Promise((resolve, reject) => {\n typeDetector(item, type)\n .then(detectedType => {\n if (isValidMimeType(acceptedFileTypes, detectedType)) {\n resolve();\n } else {\n reject();\n }\n })\n .catch(reject);\n });\n };\n\n const applyMimeTypeMap = map => acceptedFileType =>\n map[acceptedFileType] === null\n ? false\n : map[acceptedFileType] || acceptedFileType;\n\n // setup attribute mapping for accept\n addFilter('SET_ATTRIBUTE_TO_OPTION_MAP', map =>\n Object.assign(map, {\n accept: 'acceptedFileTypes'\n })\n );\n\n // filtering if an item is allowed in hopper\n addFilter('ALLOW_HOPPER_ITEM', (file, { query }) => {\n // if we are not doing file type validation exit\n if (!query('GET_ALLOW_FILE_TYPE_VALIDATION')) {\n return true;\n }\n\n // we validate the file against the accepted file types\n return validateFile(file, query('GET_ACCEPTED_FILE_TYPES'));\n });\n\n // called for each file that is loaded\n // right before it is set to the item state\n // should return a promise\n addFilter(\n 'LOAD_FILE',\n (file, { query }) =>\n new Promise((resolve, reject) => {\n if (!query('GET_ALLOW_FILE_TYPE_VALIDATION')) {\n resolve(file);\n return;\n }\n\n const acceptedFileTypes = query('GET_ACCEPTED_FILE_TYPES');\n\n // custom type detector method\n const typeDetector = query('GET_FILE_VALIDATE_TYPE_DETECT_TYPE');\n\n // if invalid, exit here\n const validationResult = validateFile(\n file,\n acceptedFileTypes,\n typeDetector\n );\n\n const handleRejection = () => {\n const acceptedFileTypesMapped = acceptedFileTypes\n .map(\n applyMimeTypeMap(\n query('GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES_MAP')\n )\n )\n .filter(label => label !== false);\n\n reject({\n status: {\n main: query('GET_LABEL_FILE_TYPE_NOT_ALLOWED'),\n sub: replaceInString(\n query('GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES'),\n {\n allTypes: acceptedFileTypesMapped.join(', '),\n allButLastType: acceptedFileTypesMapped\n .slice(0, -1)\n .join(', '),\n lastType:\n acceptedFileTypesMapped[acceptedFileTypesMapped.length - 1]\n }\n )\n }\n });\n };\n\n // has returned new filename immidiately\n if (typeof validationResult === 'boolean') {\n if (!validationResult) {\n return handleRejection();\n }\n return resolve(file);\n }\n\n // is promise\n validationResult\n .then(() => {\n resolve(file);\n })\n .catch(handleRejection);\n })\n );\n\n // expose plugin\n return {\n // default options\n options: {\n // Enable or disable file type validation\n allowFileTypeValidation: [true, Type.BOOLEAN],\n\n // What file types to accept\n acceptedFileTypes: [[], Type.ARRAY],\n // - must be comma separated\n // - mime types: image/png, image/jpeg, image/gif\n // - extensions: .png, .jpg, .jpeg ( not enabled yet )\n // - wildcards: image/*\n\n // label to show when a type is not allowed\n labelFileTypeNotAllowed: ['File is of invalid type', Type.STRING],\n\n // nicer label\n fileValidateTypeLabelExpectedTypes: [\n 'Expects {allButLastType} or {lastType}',\n Type.STRING\n ],\n\n // map mime types to extensions\n fileValidateTypeLabelExpectedTypesMap: [{}, Type.OBJECT],\n\n // Custom function to detect type of file\n fileValidateTypeDetectType: [null, Type.FUNCTION]\n }\n };\n};\n\n// fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\nconst isBrowser =\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\nif (isBrowser) {\n document.dispatchEvent(\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\n );\n}\n\nexport default plugin;\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",f=\"month\",h=\"quarter\",c=\"year\",d=\"date\",$=\"Invalid Date\",l=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t) /^image/.test(file.type);\n\nconst vectorMultiply = (v, amount) => createVector(v.x * amount, v.y * amount);\n\nconst vectorAdd = (a, b) => createVector(a.x + b.x, a.y + b.y);\n\nconst vectorNormalize = v => {\n const l = Math.sqrt(v.x * v.x + v.y * v.y);\n if (l === 0) {\n return {\n x: 0,\n y: 0\n };\n }\n return createVector(v.x / l, v.y / l);\n};\n\nconst vectorRotate = (v, radians, origin) => {\n const cos = Math.cos(radians);\n const sin = Math.sin(radians);\n const t = createVector(v.x - origin.x, v.y - origin.y);\n return createVector(\n origin.x + cos * t.x - sin * t.y,\n origin.y + sin * t.x + cos * t.y\n );\n};\n\nconst createVector = (x = 0, y = 0) => ({ x, y });\n\nconst getMarkupValue = (value, size, scalar = 1, axis) => {\n if (typeof value === 'string') {\n return parseFloat(value) * scalar;\n }\n if (typeof value === 'number') {\n return value * (axis ? size[axis] : Math.min(size.width, size.height));\n }\n return;\n};\n\nconst getMarkupStyles = (markup, size, scale) => {\n const lineStyle = markup.borderStyle || markup.lineStyle || 'solid';\n const fill = markup.backgroundColor || markup.fontColor || 'transparent';\n const stroke = markup.borderColor || markup.lineColor || 'transparent';\n const strokeWidth = getMarkupValue(\n markup.borderWidth || markup.lineWidth,\n size,\n scale\n );\n const lineCap = markup.lineCap || 'round';\n const lineJoin = markup.lineJoin || 'round';\n const dashes =\n typeof lineStyle === 'string'\n ? ''\n : lineStyle.map(v => getMarkupValue(v, size, scale)).join(',');\n const opacity = markup.opacity || 1;\n return {\n 'stroke-linecap': lineCap,\n 'stroke-linejoin': lineJoin,\n 'stroke-width': strokeWidth || 0,\n 'stroke-dasharray': dashes,\n stroke,\n fill,\n opacity\n };\n};\n\nconst isDefined = value => value != null;\n\nconst getMarkupRect = (rect, size, scalar = 1) => {\n let left =\n getMarkupValue(rect.x, size, scalar, 'width') ||\n getMarkupValue(rect.left, size, scalar, 'width');\n let top =\n getMarkupValue(rect.y, size, scalar, 'height') ||\n getMarkupValue(rect.top, size, scalar, 'height');\n let width = getMarkupValue(rect.width, size, scalar, 'width');\n let height = getMarkupValue(rect.height, size, scalar, 'height');\n let right = getMarkupValue(rect.right, size, scalar, 'width');\n let bottom = getMarkupValue(rect.bottom, size, scalar, 'height');\n\n if (!isDefined(top)) {\n if (isDefined(height) && isDefined(bottom)) {\n top = size.height - height - bottom;\n } else {\n top = bottom;\n }\n }\n\n if (!isDefined(left)) {\n if (isDefined(width) && isDefined(right)) {\n left = size.width - width - right;\n } else {\n left = right;\n }\n }\n\n if (!isDefined(width)) {\n if (isDefined(left) && isDefined(right)) {\n width = size.width - left - right;\n } else {\n width = 0;\n }\n }\n\n if (!isDefined(height)) {\n if (isDefined(top) && isDefined(bottom)) {\n height = size.height - top - bottom;\n } else {\n height = 0;\n }\n }\n\n return {\n x: left || 0,\n y: top || 0,\n width: width || 0,\n height: height || 0\n };\n};\n\nconst pointsToPathShape = points =>\n points\n .map((point, index) => `${index === 0 ? 'M' : 'L'} ${point.x} ${point.y}`)\n .join(' ');\n\nconst setAttributes = (element, attr) =>\n Object.keys(attr).forEach(key => element.setAttribute(key, attr[key]));\n\nconst ns = 'http://www.w3.org/2000/svg';\nconst svg = (tag, attr) => {\n const element = document.createElementNS(ns, tag);\n if (attr) {\n setAttributes(element, attr);\n }\n return element;\n};\n\nconst updateRect = element =>\n setAttributes(element, {\n ...element.rect,\n ...element.styles\n });\n\nconst updateEllipse = element => {\n const cx = element.rect.x + element.rect.width * 0.5;\n const cy = element.rect.y + element.rect.height * 0.5;\n const rx = element.rect.width * 0.5;\n const ry = element.rect.height * 0.5;\n return setAttributes(element, {\n cx,\n cy,\n rx,\n ry,\n ...element.styles\n });\n};\n\nconst IMAGE_FIT_STYLE = {\n contain: 'xMidYMid meet',\n cover: 'xMidYMid slice'\n};\n\nconst updateImage = (element, markup) => {\n setAttributes(element, {\n ...element.rect,\n ...element.styles,\n preserveAspectRatio: IMAGE_FIT_STYLE[markup.fit] || 'none'\n });\n};\n\nconst TEXT_ANCHOR = {\n left: 'start',\n center: 'middle',\n right: 'end'\n};\n\nconst updateText = (element, markup, size, scale) => {\n const fontSize = getMarkupValue(markup.fontSize, size, scale);\n const fontFamily = markup.fontFamily || 'sans-serif';\n const fontWeight = markup.fontWeight || 'normal';\n const textAlign = TEXT_ANCHOR[markup.textAlign] || 'start';\n\n setAttributes(element, {\n ...element.rect,\n ...element.styles,\n 'stroke-width': 0,\n 'font-weight': fontWeight,\n 'font-size': fontSize,\n 'font-family': fontFamily,\n 'text-anchor': textAlign\n });\n\n // update text\n if (element.text !== markup.text) {\n element.text = markup.text;\n element.textContent = markup.text.length ? markup.text : ' ';\n }\n};\n\nconst updateLine = (element, markup, size, scale) => {\n setAttributes(element, {\n ...element.rect,\n ...element.styles,\n fill: 'none'\n });\n\n const line = element.childNodes[0];\n const begin = element.childNodes[1];\n const end = element.childNodes[2];\n\n const origin = element.rect;\n\n const target = {\n x: element.rect.x + element.rect.width,\n y: element.rect.y + element.rect.height\n };\n\n setAttributes(line, {\n x1: origin.x,\n y1: origin.y,\n x2: target.x,\n y2: target.y\n });\n\n if (!markup.lineDecoration) return;\n\n begin.style.display = 'none';\n end.style.display = 'none';\n\n const v = vectorNormalize({\n x: target.x - origin.x,\n y: target.y - origin.y\n });\n\n const l = getMarkupValue(0.05, size, scale);\n\n if (markup.lineDecoration.indexOf('arrow-begin') !== -1) {\n const arrowBeginRotationPoint = vectorMultiply(v, l);\n const arrowBeginCenter = vectorAdd(origin, arrowBeginRotationPoint);\n const arrowBeginA = vectorRotate(origin, 2, arrowBeginCenter);\n const arrowBeginB = vectorRotate(origin, -2, arrowBeginCenter);\n\n setAttributes(begin, {\n style: 'display:block;',\n d: `M${arrowBeginA.x},${arrowBeginA.y} L${origin.x},${origin.y} L${\n arrowBeginB.x\n },${arrowBeginB.y}`\n });\n }\n\n if (markup.lineDecoration.indexOf('arrow-end') !== -1) {\n const arrowEndRotationPoint = vectorMultiply(v, -l);\n const arrowEndCenter = vectorAdd(target, arrowEndRotationPoint);\n const arrowEndA = vectorRotate(target, 2, arrowEndCenter);\n const arrowEndB = vectorRotate(target, -2, arrowEndCenter);\n\n setAttributes(end, {\n style: 'display:block;',\n d: `M${arrowEndA.x},${arrowEndA.y} L${target.x},${target.y} L${\n arrowEndB.x\n },${arrowEndB.y}`\n });\n }\n};\n\nconst updatePath = (element, markup, size, scale) => {\n setAttributes(element, {\n ...element.styles,\n fill: 'none',\n d: pointsToPathShape(\n markup.points.map(point => ({\n x: getMarkupValue(point.x, size, scale, 'width'),\n y: getMarkupValue(point.y, size, scale, 'height')\n }))\n )\n });\n};\n\nconst createShape = node => markup => svg(node, { id: markup.id });\n\nconst createImage = markup => {\n const shape = svg('image', {\n id: markup.id,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n opacity: '0'\n });\n shape.onload = () => {\n shape.setAttribute('opacity', markup.opacity || 1);\n };\n shape.setAttributeNS(\n 'http://www.w3.org/1999/xlink',\n 'xlink:href',\n markup.src\n );\n return shape;\n};\n\nconst createLine = markup => {\n const shape = svg('g', {\n id: markup.id,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round'\n });\n\n const line = svg('line');\n shape.appendChild(line);\n\n const begin = svg('path');\n shape.appendChild(begin);\n\n const end = svg('path');\n shape.appendChild(end);\n\n return shape;\n};\n\nconst CREATE_TYPE_ROUTES = {\n image: createImage,\n rect: createShape('rect'),\n ellipse: createShape('ellipse'),\n text: createShape('text'),\n path: createShape('path'),\n line: createLine\n};\n\nconst UPDATE_TYPE_ROUTES = {\n rect: updateRect,\n ellipse: updateEllipse,\n image: updateImage,\n text: updateText,\n path: updatePath,\n line: updateLine\n};\n\nconst createMarkupByType = (type, markup) => CREATE_TYPE_ROUTES[type](markup);\n\nconst updateMarkupByType = (element, type, markup, size, scale) => {\n if (type !== 'path') {\n element.rect = getMarkupRect(markup, size, scale);\n }\n element.styles = getMarkupStyles(markup, size, scale);\n UPDATE_TYPE_ROUTES[type](element, markup, size, scale);\n};\n\nconst MARKUP_RECT = [\n 'x',\n 'y',\n 'left',\n 'top',\n 'right',\n 'bottom',\n 'width',\n 'height'\n];\n\nconst toOptionalFraction = value =>\n typeof value === 'string' && /%/.test(value)\n ? parseFloat(value) / 100\n : value;\n\n// adds default markup properties, clones markup\nconst prepareMarkup = markup => {\n const [type, props] = markup;\n\n const rect = props.points\n ? {}\n : MARKUP_RECT.reduce((prev, curr) => {\n prev[curr] = toOptionalFraction(props[curr]);\n return prev;\n }, {});\n\n return [\n type,\n {\n zIndex: 0,\n ...props,\n ...rect\n }\n ];\n};\n\nconst sortMarkupByZIndex = (a, b) => {\n if (a[1].zIndex > b[1].zIndex) {\n return 1;\n }\n if (a[1].zIndex < b[1].zIndex) {\n return -1;\n }\n return 0;\n};\n\nconst createMarkupView = _ =>\n _.utils.createView({\n name: 'image-preview-markup',\n tag: 'svg',\n ignoreRect: true,\n mixins: {\n apis: ['width', 'height', 'crop', 'markup', 'resize', 'dirty']\n },\n write: ({ root, props }) => {\n if (!props.dirty) return;\n\n const { crop, resize, markup } = props;\n\n const viewWidth = props.width;\n const viewHeight = props.height;\n\n let cropWidth = crop.width;\n let cropHeight = crop.height;\n\n if (resize) {\n const { size } = resize;\n\n let outputWidth = size && size.width;\n let outputHeight = size && size.height;\n const outputFit = resize.mode;\n const outputUpscale = resize.upscale;\n\n if (outputWidth && !outputHeight) outputHeight = outputWidth;\n if (outputHeight && !outputWidth) outputWidth = outputHeight;\n\n const shouldUpscale =\n cropWidth < outputWidth && cropHeight < outputHeight;\n\n if (!shouldUpscale || (shouldUpscale && outputUpscale)) {\n let scalarWidth = outputWidth / cropWidth;\n let scalarHeight = outputHeight / cropHeight;\n\n if (outputFit === 'force') {\n cropWidth = outputWidth;\n cropHeight = outputHeight;\n } else {\n let scalar;\n if (outputFit === 'cover') {\n scalar = Math.max(scalarWidth, scalarHeight);\n } else if (outputFit === 'contain') {\n scalar = Math.min(scalarWidth, scalarHeight);\n }\n cropWidth = cropWidth * scalar;\n cropHeight = cropHeight * scalar;\n }\n }\n }\n\n const size = {\n width: viewWidth,\n height: viewHeight\n };\n\n root.element.setAttribute('width', size.width);\n root.element.setAttribute('height', size.height);\n\n const scale = Math.min(viewWidth / cropWidth, viewHeight / cropHeight);\n\n // clear\n root.element.innerHTML = '';\n\n // get filter\n const markupFilter = root.query('GET_IMAGE_PREVIEW_MARKUP_FILTER');\n\n // draw new\n markup\n .filter(markupFilter)\n .map(prepareMarkup)\n .sort(sortMarkupByZIndex)\n .forEach(markup => {\n const [type, settings] = markup;\n\n // create\n const element = createMarkupByType(type, settings);\n\n // update\n updateMarkupByType(element, type, settings, size, scale);\n\n // add\n root.element.appendChild(element);\n });\n }\n });\n\nconst createVector$1 = (x, y) => ({ x, y });\n\nconst vectorDot = (a, b) => a.x * b.x + a.y * b.y;\n\nconst vectorSubtract = (a, b) => createVector$1(a.x - b.x, a.y - b.y);\n\nconst vectorDistanceSquared = (a, b) =>\n vectorDot(vectorSubtract(a, b), vectorSubtract(a, b));\n\nconst vectorDistance = (a, b) => Math.sqrt(vectorDistanceSquared(a, b));\n\nconst getOffsetPointOnEdge = (length, rotation) => {\n const a = length;\n\n const A = 1.5707963267948966;\n const B = rotation;\n const C = 1.5707963267948966 - rotation;\n\n const sinA = Math.sin(A);\n const sinB = Math.sin(B);\n const sinC = Math.sin(C);\n const cosC = Math.cos(C);\n const ratio = a / sinA;\n const b = ratio * sinB;\n const c = ratio * sinC;\n\n return createVector$1(cosC * b, cosC * c);\n};\n\nconst getRotatedRectSize = (rect, rotation) => {\n const w = rect.width;\n const h = rect.height;\n\n const hor = getOffsetPointOnEdge(w, rotation);\n const ver = getOffsetPointOnEdge(h, rotation);\n\n const tl = createVector$1(rect.x + Math.abs(hor.x), rect.y - Math.abs(hor.y));\n\n const tr = createVector$1(\n rect.x + rect.width + Math.abs(ver.y),\n rect.y + Math.abs(ver.x)\n );\n\n const bl = createVector$1(\n rect.x - Math.abs(ver.y),\n rect.y + rect.height - Math.abs(ver.x)\n );\n\n return {\n width: vectorDistance(tl, tr),\n height: vectorDistance(tl, bl)\n };\n};\n\nconst calculateCanvasSize = (image, canvasAspectRatio, zoom = 1) => {\n const imageAspectRatio = image.height / image.width;\n\n // determine actual pixels on x and y axis\n let canvasWidth = 1;\n let canvasHeight = canvasAspectRatio;\n let imgWidth = 1;\n let imgHeight = imageAspectRatio;\n if (imgHeight > canvasHeight) {\n imgHeight = canvasHeight;\n imgWidth = imgHeight / imageAspectRatio;\n }\n\n const scalar = Math.max(canvasWidth / imgWidth, canvasHeight / imgHeight);\n const width = image.width / (zoom * scalar * imgWidth);\n const height = width * canvasAspectRatio;\n\n return {\n width: width,\n height: height\n };\n};\n\nconst getImageRectZoomFactor = (imageRect, cropRect, rotation, center) => {\n // calculate available space round image center position\n const cx = center.x > 0.5 ? 1 - center.x : center.x;\n const cy = center.y > 0.5 ? 1 - center.y : center.y;\n const imageWidth = cx * 2 * imageRect.width;\n const imageHeight = cy * 2 * imageRect.height;\n\n // calculate rotated crop rectangle size\n const rotatedCropSize = getRotatedRectSize(cropRect, rotation);\n\n // calculate scalar required to fit image\n return Math.max(\n rotatedCropSize.width / imageWidth,\n rotatedCropSize.height / imageHeight\n );\n};\n\nconst getCenteredCropRect = (container, aspectRatio) => {\n let width = container.width;\n let height = width * aspectRatio;\n if (height > container.height) {\n height = container.height;\n width = height / aspectRatio;\n }\n const x = (container.width - width) * 0.5;\n const y = (container.height - height) * 0.5;\n\n return {\n x,\n y,\n width,\n height\n };\n};\n\nconst getCurrentCropSize = (imageSize, crop = {}) => {\n let { zoom, rotation, center, aspectRatio } = crop;\n\n if (!aspectRatio) aspectRatio = imageSize.height / imageSize.width;\n\n const canvasSize = calculateCanvasSize(imageSize, aspectRatio, zoom);\n\n const canvasCenter = {\n x: canvasSize.width * 0.5,\n y: canvasSize.height * 0.5\n };\n\n const stage = {\n x: 0,\n y: 0,\n width: canvasSize.width,\n height: canvasSize.height,\n center: canvasCenter\n };\n\n const shouldLimit = typeof crop.scaleToFit === 'undefined' || crop.scaleToFit;\n\n const stageZoomFactor = getImageRectZoomFactor(\n imageSize,\n getCenteredCropRect(stage, aspectRatio),\n rotation,\n shouldLimit ? center : { x: 0.5, y: 0.5 }\n );\n\n const scale = zoom * stageZoomFactor;\n\n // start drawing\n return {\n widthFloat: canvasSize.width / scale,\n heightFloat: canvasSize.height / scale,\n width: Math.round(canvasSize.width / scale),\n height: Math.round(canvasSize.height / scale)\n };\n};\n\nconst IMAGE_SCALE_SPRING_PROPS = {\n type: 'spring',\n stiffness: 0.5,\n damping: 0.45,\n mass: 10\n};\n\n// does horizontal and vertical flipping\nconst createBitmapView = _ =>\n _.utils.createView({\n name: 'image-bitmap',\n ignoreRect: true,\n mixins: { styles: ['scaleX', 'scaleY'] },\n create: ({ root, props }) => {\n root.appendChild(props.image);\n }\n });\n\n// shifts and rotates image\nconst createImageCanvasWrapper = _ =>\n _.utils.createView({\n name: 'image-canvas-wrapper',\n tag: 'div',\n ignoreRect: true,\n mixins: {\n apis: ['crop', 'width', 'height'],\n styles: [\n 'originX',\n 'originY',\n 'translateX',\n 'translateY',\n 'scaleX',\n 'scaleY',\n 'rotateZ'\n ],\n animations: {\n originX: IMAGE_SCALE_SPRING_PROPS,\n originY: IMAGE_SCALE_SPRING_PROPS,\n scaleX: IMAGE_SCALE_SPRING_PROPS,\n scaleY: IMAGE_SCALE_SPRING_PROPS,\n translateX: IMAGE_SCALE_SPRING_PROPS,\n translateY: IMAGE_SCALE_SPRING_PROPS,\n rotateZ: IMAGE_SCALE_SPRING_PROPS\n }\n },\n create: ({ root, props }) => {\n props.width = props.image.width;\n props.height = props.image.height;\n root.ref.bitmap = root.appendChildView(\n root.createChildView(createBitmapView(_), { image: props.image })\n );\n },\n write: ({ root, props }) => {\n const { flip } = props.crop;\n const { bitmap } = root.ref;\n bitmap.scaleX = flip.horizontal ? -1 : 1;\n bitmap.scaleY = flip.vertical ? -1 : 1;\n }\n });\n\n// clips canvas to correct aspect ratio\nconst createClipView = _ =>\n _.utils.createView({\n name: 'image-clip',\n tag: 'div',\n ignoreRect: true,\n mixins: {\n apis: [\n 'crop',\n 'markup',\n 'resize',\n 'width',\n 'height',\n 'dirty',\n 'background'\n ],\n styles: ['width', 'height', 'opacity'],\n animations: {\n opacity: { type: 'tween', duration: 250 }\n }\n },\n didWriteView: function({ root, props }) {\n if (!props.background) return;\n root.element.style.backgroundColor = props.background;\n },\n create: ({ root, props }) => {\n root.ref.image = root.appendChildView(\n root.createChildView(\n createImageCanvasWrapper(_),\n Object.assign({}, props)\n )\n );\n\n root.ref.createMarkup = () => {\n if (root.ref.markup) return;\n root.ref.markup = root.appendChildView(\n root.createChildView(createMarkupView(_), Object.assign({}, props))\n );\n };\n\n root.ref.destroyMarkup = () => {\n if (!root.ref.markup) return;\n root.removeChildView(root.ref.markup);\n root.ref.markup = null;\n };\n\n // set up transparency grid\n const transparencyIndicator = root.query(\n 'GET_IMAGE_PREVIEW_TRANSPARENCY_INDICATOR'\n );\n if (transparencyIndicator === null) return;\n\n // grid pattern\n if (transparencyIndicator === 'grid') {\n root.element.dataset.transparencyIndicator = transparencyIndicator;\n }\n // basic color\n else {\n root.element.dataset.transparencyIndicator = 'color';\n }\n },\n write: ({ root, props, shouldOptimize }) => {\n const { crop, markup, resize, dirty, width, height } = props;\n\n root.ref.image.crop = crop;\n\n const stage = {\n x: 0,\n y: 0,\n width,\n height,\n center: {\n x: width * 0.5,\n y: height * 0.5\n }\n };\n\n const image = {\n width: root.ref.image.width,\n height: root.ref.image.height\n };\n\n const origin = {\n x: crop.center.x * image.width,\n y: crop.center.y * image.height\n };\n\n const translation = {\n x: stage.center.x - image.width * crop.center.x,\n y: stage.center.y - image.height * crop.center.y\n };\n\n const rotation = Math.PI * 2 + (crop.rotation % (Math.PI * 2));\n\n const cropAspectRatio = crop.aspectRatio || image.height / image.width;\n\n const shouldLimit =\n typeof crop.scaleToFit === 'undefined' || crop.scaleToFit;\n\n const stageZoomFactor = getImageRectZoomFactor(\n image,\n getCenteredCropRect(stage, cropAspectRatio),\n rotation,\n shouldLimit ? crop.center : { x: 0.5, y: 0.5 }\n );\n\n const scale = crop.zoom * stageZoomFactor;\n\n // update markup view\n if (markup && markup.length) {\n root.ref.createMarkup();\n root.ref.markup.width = width;\n root.ref.markup.height = height;\n root.ref.markup.resize = resize;\n root.ref.markup.dirty = dirty;\n root.ref.markup.markup = markup;\n root.ref.markup.crop = getCurrentCropSize(image, crop);\n } else if (root.ref.markup) {\n root.ref.destroyMarkup();\n }\n\n // update image view\n const imageView = root.ref.image;\n\n // don't update clip layout\n if (shouldOptimize) {\n imageView.originX = null;\n imageView.originY = null;\n imageView.translateX = null;\n imageView.translateY = null;\n imageView.rotateZ = null;\n imageView.scaleX = null;\n imageView.scaleY = null;\n return;\n }\n\n imageView.originX = origin.x;\n imageView.originY = origin.y;\n imageView.translateX = translation.x;\n imageView.translateY = translation.y;\n imageView.rotateZ = rotation;\n imageView.scaleX = scale;\n imageView.scaleY = scale;\n }\n });\n\nconst createImageView = _ =>\n _.utils.createView({\n name: 'image-preview',\n tag: 'div',\n ignoreRect: true,\n mixins: {\n apis: ['image', 'crop', 'markup', 'resize', 'dirty', 'background'],\n styles: ['translateY', 'scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: IMAGE_SCALE_SPRING_PROPS,\n scaleY: IMAGE_SCALE_SPRING_PROPS,\n translateY: IMAGE_SCALE_SPRING_PROPS,\n opacity: { type: 'tween', duration: 400 }\n }\n },\n create: ({ root, props }) => {\n root.ref.clip = root.appendChildView(\n root.createChildView(createClipView(_), {\n id: props.id,\n image: props.image,\n crop: props.crop,\n markup: props.markup,\n resize: props.resize,\n dirty: props.dirty,\n background: props.background\n })\n );\n },\n write: ({ root, props, shouldOptimize }) => {\n const { clip } = root.ref;\n\n const { image, crop, markup, resize, dirty } = props;\n\n clip.crop = crop;\n clip.markup = markup;\n clip.resize = resize;\n clip.dirty = dirty;\n\n // don't update clip layout\n clip.opacity = shouldOptimize ? 0 : 1;\n\n // don't re-render if optimizing or hidden (width will be zero resulting in weird animations)\n if (shouldOptimize || root.rect.element.hidden) return;\n\n // calculate scaled preview image size\n const imageAspectRatio = image.height / image.width;\n let aspectRatio = crop.aspectRatio || imageAspectRatio;\n\n // calculate container size\n const containerWidth = root.rect.inner.width;\n const containerHeight = root.rect.inner.height;\n\n let fixedPreviewHeight = root.query('GET_IMAGE_PREVIEW_HEIGHT');\n const minPreviewHeight = root.query('GET_IMAGE_PREVIEW_MIN_HEIGHT');\n const maxPreviewHeight = root.query('GET_IMAGE_PREVIEW_MAX_HEIGHT');\n\n const panelAspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\n const allowMultiple = root.query('GET_ALLOW_MULTIPLE');\n\n if (panelAspectRatio && !allowMultiple) {\n fixedPreviewHeight = containerWidth * panelAspectRatio;\n aspectRatio = panelAspectRatio;\n }\n\n // determine clip width and height\n let clipHeight =\n fixedPreviewHeight !== null\n ? fixedPreviewHeight\n : Math.max(\n minPreviewHeight,\n Math.min(containerWidth * aspectRatio, maxPreviewHeight)\n );\n\n let clipWidth = clipHeight / aspectRatio;\n if (clipWidth > containerWidth) {\n clipWidth = containerWidth;\n clipHeight = clipWidth * aspectRatio;\n }\n\n if (clipHeight > containerHeight) {\n clipHeight = containerHeight;\n clipWidth = containerHeight / aspectRatio;\n }\n\n clip.width = clipWidth;\n clip.height = clipHeight;\n }\n });\n\nlet SVG_MASK = `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n`;\n\nlet SVGMaskUniqueId = 0;\n\nconst createImageOverlayView = fpAPI =>\n fpAPI.utils.createView({\n name: 'image-preview-overlay',\n tag: 'div',\n ignoreRect: true,\n create: ({ root, props }) => {\n let mask = SVG_MASK;\n if (document.querySelector('base')) {\n const url = window.location.href.replace(window.location.hash, '');\n mask = mask.replace(/url\\(\\#/g, 'url(' + url + '#');\n }\n\n SVGMaskUniqueId++;\n root.element.classList.add(\n `filepond--image-preview-overlay-${props.status}`\n );\n root.element.innerHTML = mask.replace(/__UID__/g, SVGMaskUniqueId);\n },\n mixins: {\n styles: ['opacity'],\n animations: {\n opacity: { type: 'spring', mass: 25 }\n }\n }\n });\n\n/**\n * Bitmap Worker\n */\nconst BitmapWorker = function() {\n self.onmessage = e => {\n createImageBitmap(e.data.message.file).then(bitmap => {\n self.postMessage({ id: e.data.id, message: bitmap }, [bitmap]);\n });\n };\n};\n\n/**\n * ColorMatrix Worker\n */\nconst ColorMatrixWorker = function() {\n self.onmessage = e => {\n const imageData = e.data.message.imageData;\n const matrix = e.data.message.colorMatrix;\n\n const data = imageData.data;\n const l = data.length;\n\n const m11 = matrix[0];\n const m12 = matrix[1];\n const m13 = matrix[2];\n const m14 = matrix[3];\n const m15 = matrix[4];\n\n const m21 = matrix[5];\n const m22 = matrix[6];\n const m23 = matrix[7];\n const m24 = matrix[8];\n const m25 = matrix[9];\n\n const m31 = matrix[10];\n const m32 = matrix[11];\n const m33 = matrix[12];\n const m34 = matrix[13];\n const m35 = matrix[14];\n\n const m41 = matrix[15];\n const m42 = matrix[16];\n const m43 = matrix[17];\n const m44 = matrix[18];\n const m45 = matrix[19];\n\n let index = 0,\n r = 0.0,\n g = 0.0,\n b = 0.0,\n a = 0.0;\n\n for (; index < l; index += 4) {\n r = data[index] / 255;\n g = data[index + 1] / 255;\n b = data[index + 2] / 255;\n a = data[index + 3] / 255;\n data[index] = Math.max(\n 0,\n Math.min((r * m11 + g * m12 + b * m13 + a * m14 + m15) * 255, 255)\n );\n data[index + 1] = Math.max(\n 0,\n Math.min((r * m21 + g * m22 + b * m23 + a * m24 + m25) * 255, 255)\n );\n data[index + 2] = Math.max(\n 0,\n Math.min((r * m31 + g * m32 + b * m33 + a * m34 + m35) * 255, 255)\n );\n data[index + 3] = Math.max(\n 0,\n Math.min((r * m41 + g * m42 + b * m43 + a * m44 + m45) * 255, 255)\n );\n }\n\n self.postMessage({ id: e.data.id, message: imageData }, [\n imageData.data.buffer\n ]);\n };\n};\n\nconst getImageSize = (url, cb) => {\n let image = new Image();\n image.onload = () => {\n const width = image.naturalWidth;\n const height = image.naturalHeight;\n image = null;\n cb(width, height);\n };\n image.src = url;\n};\n\nconst transforms = {\n 1: () => [1, 0, 0, 1, 0, 0],\n 2: width => [-1, 0, 0, 1, width, 0],\n 3: (width, height) => [-1, 0, 0, -1, width, height],\n 4: (width, height) => [1, 0, 0, -1, 0, height],\n 5: () => [0, 1, 1, 0, 0, 0],\n 6: (width, height) => [0, 1, -1, 0, height, 0],\n 7: (width, height) => [0, -1, -1, 0, height, width],\n 8: width => [0, -1, 1, 0, 0, width]\n};\n\nconst fixImageOrientation = (ctx, width, height, orientation) => {\n // no orientation supplied\n if (orientation === -1) {\n return;\n }\n\n ctx.transform.apply(ctx, transforms[orientation](width, height));\n};\n\n// draws the preview image to canvas\nconst createPreviewImage = (data, width, height, orientation) => {\n // can't draw on half pixels\n width = Math.round(width);\n height = Math.round(height);\n\n // draw image\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n\n // if is rotated incorrectly swap width and height\n if (orientation >= 5 && orientation <= 8) {\n [width, height] = [height, width];\n }\n\n // correct image orientation\n fixImageOrientation(ctx, width, height, orientation);\n\n // draw the image\n ctx.drawImage(data, 0, 0, width, height);\n\n return canvas;\n};\n\nconst isBitmap = file => /^image/.test(file.type) && !/svg/.test(file.type);\n\nconst MAX_WIDTH = 10;\nconst MAX_HEIGHT = 10;\n\nconst calculateAverageColor = image => {\n const scalar = Math.min(MAX_WIDTH / image.width, MAX_HEIGHT / image.height);\n\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const width = (canvas.width = Math.ceil(image.width * scalar));\n const height = (canvas.height = Math.ceil(image.height * scalar));\n ctx.drawImage(image, 0, 0, width, height);\n let data = null;\n try {\n data = ctx.getImageData(0, 0, width, height).data;\n } catch (e) {\n return null;\n }\n const l = data.length;\n\n let r = 0;\n let g = 0;\n let b = 0;\n let i = 0;\n\n for (; i < l; i += 4) {\n r += data[i] * data[i];\n g += data[i + 1] * data[i + 1];\n b += data[i + 2] * data[i + 2];\n }\n\n r = averageColor(r, l);\n g = averageColor(g, l);\n b = averageColor(b, l);\n\n return { r, g, b };\n};\n\nconst averageColor = (c, l) => Math.floor(Math.sqrt(c / (l / 4)));\n\nconst cloneCanvas = (origin, target) => {\n target = target || document.createElement('canvas');\n target.width = origin.width;\n target.height = origin.height;\n const ctx = target.getContext('2d');\n ctx.drawImage(origin, 0, 0);\n return target;\n};\n\nconst cloneImageData = imageData => {\n let id;\n try {\n id = new ImageData(imageData.width, imageData.height);\n } catch (e) {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n id = ctx.createImageData(imageData.width, imageData.height);\n }\n id.data.set(new Uint8ClampedArray(imageData.data));\n return id;\n};\n\nconst loadImage = url =>\n new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onload = () => {\n resolve(img);\n };\n img.onerror = e => {\n reject(e);\n };\n img.src = url;\n });\n\nconst createImageWrapperView = _ => {\n // create overlay view\n const OverlayView = createImageOverlayView(_);\n\n const ImageView = createImageView(_);\n\n const { createWorker } = _.utils;\n\n const applyFilter = (root, filter, target) =>\n new Promise(resolve => {\n // will store image data for future filter updates\n if (!root.ref.imageData) {\n root.ref.imageData = target\n .getContext('2d')\n .getImageData(0, 0, target.width, target.height);\n }\n\n // get image data reference\n const imageData = cloneImageData(root.ref.imageData);\n\n if (!filter || filter.length !== 20) {\n target.getContext('2d').putImageData(imageData, 0, 0);\n return resolve();\n }\n\n const worker = createWorker(ColorMatrixWorker);\n worker.post(\n {\n imageData,\n colorMatrix: filter\n },\n response => {\n // apply filtered colors\n target.getContext('2d').putImageData(response, 0, 0);\n\n // stop worker\n worker.terminate();\n\n // done!\n resolve();\n },\n [imageData.data.buffer]\n );\n });\n\n const removeImageView = (root, imageView) => {\n root.removeChildView(imageView);\n imageView.image.width = 1;\n imageView.image.height = 1;\n imageView._destroy();\n };\n\n // remove an image\n const shiftImage = ({ root }) => {\n const imageView = root.ref.images.shift();\n imageView.opacity = 0;\n imageView.translateY = -15;\n root.ref.imageViewBin.push(imageView);\n return imageView;\n };\n\n // add new image\n const pushImage = ({ root, props, image }) => {\n const id = props.id;\n const item = root.query('GET_ITEM', { id });\n if (!item) return;\n\n const crop = item.getMetadata('crop') || {\n center: {\n x: 0.5,\n y: 0.5\n },\n flip: {\n horizontal: false,\n vertical: false\n },\n zoom: 1,\n rotation: 0,\n aspectRatio: null\n };\n\n const background = root.query(\n 'GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR'\n );\n\n let markup;\n let resize;\n let dirty = false;\n if (root.query('GET_IMAGE_PREVIEW_MARKUP_SHOW')) {\n markup = item.getMetadata('markup') || [];\n resize = item.getMetadata('resize');\n dirty = true;\n }\n\n // append image presenter\n const imageView = root.appendChildView(\n root.createChildView(ImageView, {\n id,\n image,\n crop,\n resize,\n markup,\n dirty,\n background,\n opacity: 0,\n scaleX: 1.15,\n scaleY: 1.15,\n translateY: 15\n }),\n root.childViews.length\n );\n root.ref.images.push(imageView);\n\n // reveal the preview image\n imageView.opacity = 1;\n imageView.scaleX = 1;\n imageView.scaleY = 1;\n imageView.translateY = 0;\n\n // the preview is now ready to be drawn\n setTimeout(() => {\n root.dispatch('DID_IMAGE_PREVIEW_SHOW', { id });\n }, 250);\n };\n\n const updateImage = ({ root, props }) => {\n const item = root.query('GET_ITEM', { id: props.id });\n if (!item) return;\n const imageView = root.ref.images[root.ref.images.length - 1];\n imageView.crop = item.getMetadata('crop');\n imageView.background = root.query(\n 'GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR'\n );\n if (root.query('GET_IMAGE_PREVIEW_MARKUP_SHOW')) {\n imageView.dirty = true;\n imageView.resize = item.getMetadata('resize');\n imageView.markup = item.getMetadata('markup');\n }\n };\n\n // replace image preview\n const didUpdateItemMetadata = ({ root, props, action }) => {\n // only filter and crop trigger redraw\n if (!/crop|filter|markup|resize/.test(action.change.key)) return;\n\n // no images to update, exit\n if (!root.ref.images.length) return;\n\n // no item found, exit\n const item = root.query('GET_ITEM', { id: props.id });\n if (!item) return;\n\n // for now, update existing image when filtering\n if (/filter/.test(action.change.key)) {\n const imageView = root.ref.images[root.ref.images.length - 1];\n applyFilter(root, action.change.value, imageView.image);\n return;\n }\n\n if (/crop|markup|resize/.test(action.change.key)) {\n const crop = item.getMetadata('crop');\n const image = root.ref.images[root.ref.images.length - 1];\n\n // if aspect ratio has changed, we need to create a new image\n if (\n crop &&\n crop.aspectRatio &&\n image.crop &&\n image.crop.aspectRatio &&\n Math.abs(crop.aspectRatio - image.crop.aspectRatio) > 0.00001\n ) {\n const imageView = shiftImage({ root });\n pushImage({ root, props, image: cloneCanvas(imageView.image) });\n }\n // if not, we can update the current image\n else {\n updateImage({ root, props });\n }\n }\n };\n\n const canCreateImageBitmap = file => {\n // Firefox versions before 58 will freeze when running createImageBitmap\n // in a Web Worker so we detect those versions and return false for support\n const userAgent = window.navigator.userAgent;\n const isFirefox = userAgent.match(/Firefox\\/([0-9]+)\\./);\n const firefoxVersion = isFirefox ? parseInt(isFirefox[1]) : null;\n if (firefoxVersion <= 58) return false;\n\n return 'createImageBitmap' in window && isBitmap(file);\n };\n\n /**\n * Write handler for when preview container has been created\n */\n const didCreatePreviewContainer = ({ root, props }) => {\n const { id } = props;\n\n // we need to get the file data to determine the eventual image size\n const item = root.query('GET_ITEM', id);\n if (!item) return;\n\n // get url to file (we'll revoke it later on when done)\n const fileURL = URL.createObjectURL(item.file);\n\n // determine image size of this item\n getImageSize(fileURL, (width, height) => {\n // we can now scale the panel to the final size\n root.dispatch('DID_IMAGE_PREVIEW_CALCULATE_SIZE', {\n id,\n width,\n height\n });\n });\n };\n\n const drawPreview = ({ root, props }) => {\n const { id } = props;\n\n // we need to get the file data to determine the eventual image size\n const item = root.query('GET_ITEM', id);\n if (!item) return;\n\n // get url to file (we'll revoke it later on when done)\n const fileURL = URL.createObjectURL(item.file);\n\n // fallback\n const loadPreviewFallback = () => {\n // let's scale the image in the main thread :(\n loadImage(fileURL).then(previewImageLoaded);\n };\n\n // image is now ready\n const previewImageLoaded = imageData => {\n // the file url is no longer needed\n URL.revokeObjectURL(fileURL);\n\n // draw the scaled down version here and use that as source so bitmapdata can be closed\n // orientation info\n const exif = item.getMetadata('exif') || {};\n const orientation = exif.orientation || -1;\n\n // get width and height from action, and swap if orientation is incorrect\n let { width, height } = imageData;\n\n // if no width or height, just return early.\n if (!width || !height) return;\n\n if (orientation >= 5 && orientation <= 8) {\n [width, height] = [height, width];\n }\n\n // scale canvas based on pixel density\n // we multiply by .75 as that creates smaller but still clear images on screens with high res displays\n const pixelDensityFactor = Math.max(1, window.devicePixelRatio * 0.75);\n\n // we want as much pixels to work with as possible,\n // this multiplies the minimum image resolution,\n // so when zooming in it doesn't get too blurry\n const zoomFactor = root.query('GET_IMAGE_PREVIEW_ZOOM_FACTOR');\n\n // imaeg scale factor\n const scaleFactor = zoomFactor * pixelDensityFactor;\n\n // calculate scaled preview image size\n const previewImageRatio = height / width;\n\n // calculate image preview height and width\n const previewContainerWidth = root.rect.element.width;\n const previewContainerHeight = root.rect.element.height;\n\n let imageWidth = previewContainerWidth;\n let imageHeight = imageWidth * previewImageRatio;\n\n if (previewImageRatio > 1) {\n imageWidth = Math.min(width, previewContainerWidth * scaleFactor);\n imageHeight = imageWidth * previewImageRatio;\n } else {\n imageHeight = Math.min(height, previewContainerHeight * scaleFactor);\n imageWidth = imageHeight / previewImageRatio;\n }\n\n // transfer to image tag so no canvas memory wasted on iOS\n const previewImage = createPreviewImage(\n imageData,\n imageWidth,\n imageHeight,\n orientation\n );\n\n // done\n const done = () => {\n // calculate average image color, disabled for now\n const averageColor = root.query(\n 'GET_IMAGE_PREVIEW_CALCULATE_AVERAGE_IMAGE_COLOR'\n )\n ? calculateAverageColor(data)\n : null;\n item.setMetadata('color', averageColor, true);\n\n // data has been transferred to canvas ( if was ImageBitmap )\n if ('close' in imageData) {\n imageData.close();\n }\n\n // show the overlay\n root.ref.overlayShadow.opacity = 1;\n\n // create the first image\n pushImage({ root, props, image: previewImage });\n };\n\n // apply filter\n const filter = item.getMetadata('filter');\n if (filter) {\n applyFilter(root, filter, previewImage).then(done);\n } else {\n done();\n }\n };\n\n // if we support scaling using createImageBitmap we use a worker\n if (canCreateImageBitmap(item.file)) {\n // let's scale the image in a worker\n const worker = createWorker(BitmapWorker);\n\n worker.post(\n {\n file: item.file\n },\n imageBitmap => {\n // destroy worker\n worker.terminate();\n\n // no bitmap returned, must be something wrong,\n // try the oldschool way\n if (!imageBitmap) {\n loadPreviewFallback();\n return;\n }\n\n // yay we got our bitmap, let's continue showing the preview\n previewImageLoaded(imageBitmap);\n }\n );\n } else {\n // create fallback preview\n loadPreviewFallback();\n }\n };\n\n /**\n * Write handler for when the preview image is ready to be animated\n */\n const didDrawPreview = ({ root }) => {\n // get last added image\n const image = root.ref.images[root.ref.images.length - 1];\n image.translateY = 0;\n image.scaleX = 1.0;\n image.scaleY = 1.0;\n image.opacity = 1;\n };\n\n /**\n * Write handler for when the preview has been loaded\n */\n const restoreOverlay = ({ root }) => {\n root.ref.overlayShadow.opacity = 1;\n root.ref.overlayError.opacity = 0;\n root.ref.overlaySuccess.opacity = 0;\n };\n\n const didThrowError = ({ root }) => {\n root.ref.overlayShadow.opacity = 0.25;\n root.ref.overlayError.opacity = 1;\n };\n\n const didCompleteProcessing = ({ root }) => {\n root.ref.overlayShadow.opacity = 0.25;\n root.ref.overlaySuccess.opacity = 1;\n };\n\n /**\n * Constructor\n */\n const create = ({ root }) => {\n // image view\n root.ref.images = [];\n\n // the preview image data (we need this to filter the image)\n root.ref.imageData = null;\n\n // image bin\n root.ref.imageViewBin = [];\n\n // image overlays\n root.ref.overlayShadow = root.appendChildView(\n root.createChildView(OverlayView, {\n opacity: 0,\n status: 'idle'\n })\n );\n\n root.ref.overlaySuccess = root.appendChildView(\n root.createChildView(OverlayView, {\n opacity: 0,\n status: 'success'\n })\n );\n\n root.ref.overlayError = root.appendChildView(\n root.createChildView(OverlayView, {\n opacity: 0,\n status: 'failure'\n })\n );\n };\n\n return _.utils.createView({\n name: 'image-preview-wrapper',\n create,\n styles: ['height'],\n apis: ['height'],\n destroy: ({ root }) => {\n // we resize the image so memory on iOS 12 is released more quickly (it seems)\n root.ref.images.forEach(imageView => {\n imageView.image.width = 1;\n imageView.image.height = 1;\n });\n },\n didWriteView: ({ root }) => {\n root.ref.images.forEach(imageView => {\n imageView.dirty = false;\n });\n },\n write: _.utils.createRoute(\n {\n // image preview stated\n DID_IMAGE_PREVIEW_DRAW: didDrawPreview,\n DID_IMAGE_PREVIEW_CONTAINER_CREATE: didCreatePreviewContainer,\n DID_FINISH_CALCULATE_PREVIEWSIZE: drawPreview,\n DID_UPDATE_ITEM_METADATA: didUpdateItemMetadata,\n\n // file states\n DID_THROW_ITEM_LOAD_ERROR: didThrowError,\n DID_THROW_ITEM_PROCESSING_ERROR: didThrowError,\n DID_THROW_ITEM_INVALID: didThrowError,\n DID_COMPLETE_ITEM_PROCESSING: didCompleteProcessing,\n DID_START_ITEM_PROCESSING: restoreOverlay,\n DID_REVERT_ITEM_PROCESSING: restoreOverlay\n },\n ({ root }) => {\n // views on death row\n const viewsToRemove = root.ref.imageViewBin.filter(\n imageView => imageView.opacity === 0\n );\n\n // views to retain\n root.ref.imageViewBin = root.ref.imageViewBin.filter(\n imageView => imageView.opacity > 0\n );\n\n // remove these views\n viewsToRemove.forEach(imageView => removeImageView(root, imageView));\n viewsToRemove.length = 0;\n }\n )\n });\n};\n\n/**\n * Image Preview Plugin\n */\nconst plugin = fpAPI => {\n const { addFilter, utils } = fpAPI;\n const { Type, createRoute, isFile } = utils;\n\n // imagePreviewView\n const imagePreviewView = createImageWrapperView(fpAPI);\n\n // called for each view that is created right after the 'create' method\n addFilter('CREATE_VIEW', viewAPI => {\n // get reference to created view\n const { is, view, query } = viewAPI;\n\n // only hook up to item view and only if is enabled for this cropper\n if (!is('file') || !query('GET_ALLOW_IMAGE_PREVIEW')) return;\n\n // create the image preview plugin, but only do so if the item is an image\n const didLoadItem = ({ root, props }) => {\n const { id } = props;\n const item = query('GET_ITEM', id);\n\n // item could theoretically have been removed in the mean time\n if (!item || !isFile(item.file) || item.archived) return;\n\n // get the file object\n const file = item.file;\n\n // exit if this is not an image\n if (!isPreviewableImage(file)) return;\n\n // test if is filtered\n if (!query('GET_IMAGE_PREVIEW_FILTER_ITEM')(item)) return;\n\n // exit if image size is too high and no createImageBitmap support\n // this would simply bring the browser to its knees and that is not what we want\n const supportsCreateImageBitmap = 'createImageBitmap' in (window || {});\n const maxPreviewFileSize = query('GET_IMAGE_PREVIEW_MAX_FILE_SIZE');\n if (\n !supportsCreateImageBitmap &&\n (maxPreviewFileSize && file.size > maxPreviewFileSize)\n )\n return;\n\n // set preview view\n root.ref.imagePreview = view.appendChildView(\n view.createChildView(imagePreviewView, { id })\n );\n\n // update height if is fixed\n const fixedPreviewHeight = root.query('GET_IMAGE_PREVIEW_HEIGHT');\n if (fixedPreviewHeight) {\n root.dispatch('DID_UPDATE_PANEL_HEIGHT', {\n id: item.id,\n height: fixedPreviewHeight\n });\n }\n\n // now ready\n const queue =\n !supportsCreateImageBitmap &&\n file.size > query('GET_IMAGE_PREVIEW_MAX_INSTANT_PREVIEW_FILE_SIZE');\n root.dispatch('DID_IMAGE_PREVIEW_CONTAINER_CREATE', { id }, queue);\n };\n\n const rescaleItem = (root, props) => {\n if (!root.ref.imagePreview) return;\n\n let { id } = props;\n\n // get item\n const item = root.query('GET_ITEM', { id });\n if (!item) return;\n\n // if is fixed height or panel has aspect ratio, exit here, height has already been defined\n const panelAspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\n const itemPanelAspectRatio = root.query('GET_ITEM_PANEL_ASPECT_RATIO');\n const fixedHeight = root.query('GET_IMAGE_PREVIEW_HEIGHT');\n if (panelAspectRatio || itemPanelAspectRatio || fixedHeight) return;\n\n // no data!\n let { imageWidth, imageHeight } = root.ref;\n if (!imageWidth || !imageHeight) return;\n\n // get height min and max\n const minPreviewHeight = root.query('GET_IMAGE_PREVIEW_MIN_HEIGHT');\n const maxPreviewHeight = root.query('GET_IMAGE_PREVIEW_MAX_HEIGHT');\n\n // orientation info\n const exif = item.getMetadata('exif') || {};\n const orientation = exif.orientation || -1;\n\n // get width and height from action, and swap of orientation is incorrect\n if (orientation >= 5 && orientation <= 8)\n [imageWidth, imageHeight] = [imageHeight, imageWidth];\n\n // scale up width and height when we're dealing with an SVG\n if (!isBitmap(item.file) || root.query('GET_IMAGE_PREVIEW_UPSCALE')) {\n const scalar = 2048 / imageWidth;\n imageWidth *= scalar;\n imageHeight *= scalar;\n }\n\n // image aspect ratio\n const imageAspectRatio = imageHeight / imageWidth;\n\n // we need the item to get to the crop size\n const previewAspectRatio =\n (item.getMetadata('crop') || {}).aspectRatio || imageAspectRatio;\n\n // preview height range\n let previewHeightMax = Math.max(\n minPreviewHeight,\n Math.min(imageHeight, maxPreviewHeight)\n );\n const itemWidth = root.rect.element.width;\n const previewHeight = Math.min(\n itemWidth * previewAspectRatio,\n previewHeightMax\n );\n\n // request update to panel height\n root.dispatch('DID_UPDATE_PANEL_HEIGHT', {\n id: item.id,\n height: previewHeight\n });\n };\n\n const didResizeView = ({ root }) => {\n // actions in next write operation\n root.ref.shouldRescale = true;\n };\n\n const didUpdateItemMetadata = ({ root, action }) => {\n if (action.change.key !== 'crop') return;\n\n // actions in next write operation\n root.ref.shouldRescale = true;\n };\n\n const didCalculatePreviewSize = ({ root, action }) => {\n // remember dimensions\n root.ref.imageWidth = action.width;\n root.ref.imageHeight = action.height;\n\n // actions in next write operation\n root.ref.shouldRescale = true;\n root.ref.shouldDrawPreview = true;\n\n // as image load could take a while and fire when draw loop is resting we need to give it a kick\n root.dispatch('KICK');\n };\n\n // start writing\n view.registerWriter(\n createRoute(\n {\n DID_RESIZE_ROOT: didResizeView,\n DID_STOP_RESIZE: didResizeView,\n DID_LOAD_ITEM: didLoadItem,\n DID_IMAGE_PREVIEW_CALCULATE_SIZE: didCalculatePreviewSize,\n DID_UPDATE_ITEM_METADATA: didUpdateItemMetadata\n },\n ({ root, props }) => {\n // no preview view attached\n if (!root.ref.imagePreview) return;\n\n // don't do anything while hidden\n if (root.rect.element.hidden) return;\n\n // resize the item panel\n if (root.ref.shouldRescale) {\n rescaleItem(root, props);\n root.ref.shouldRescale = false;\n }\n\n if (root.ref.shouldDrawPreview) {\n // queue till next frame so we're sure the height has been applied this forces the draw image call inside the wrapper view to use the correct height\n requestAnimationFrame(() => {\n // this requestAnimationFrame nesting is horrible but it fixes an issue with 100hz displays on Chrome\n // https://github.com/pqina/filepond-plugin-image-preview/issues/57\n requestAnimationFrame(() => {\n root.dispatch('DID_FINISH_CALCULATE_PREVIEWSIZE', {\n id: props.id\n });\n });\n });\n\n root.ref.shouldDrawPreview = false;\n }\n }\n )\n );\n });\n\n // expose plugin\n return {\n options: {\n // Enable or disable image preview\n allowImagePreview: [true, Type.BOOLEAN],\n\n // filters file items to determine which are shown as preview\n imagePreviewFilterItem: [() => true, Type.FUNCTION],\n\n // Fixed preview height\n imagePreviewHeight: [null, Type.INT],\n\n // Min image height\n imagePreviewMinHeight: [44, Type.INT],\n\n // Max image height\n imagePreviewMaxHeight: [256, Type.INT],\n\n // Max size of preview file for when createImageBitmap is not supported\n imagePreviewMaxFileSize: [null, Type.INT],\n\n // The amount of extra pixels added to the image preview to allow comfortable zooming\n imagePreviewZoomFactor: [2, Type.INT],\n\n // Should we upscale small images to fit the max bounding box of the preview area\n imagePreviewUpscale: [false, Type.BOOLEAN],\n\n // Max size of preview file that we allow to try to instant preview if createImageBitmap is not supported, else image is queued for loading\n imagePreviewMaxInstantPreviewFileSize: [1000000, Type.INT],\n\n // Style of the transparancy indicator used behind images\n imagePreviewTransparencyIndicator: [null, Type.STRING],\n\n // Enables or disables reading average image color\n imagePreviewCalculateAverageImageColor: [false, Type.BOOLEAN],\n\n // Enables or disables the previewing of markup\n imagePreviewMarkupShow: [true, Type.BOOLEAN],\n\n // Allows filtering of markup to only show certain shapes\n imagePreviewMarkupFilter: [() => true, Type.FUNCTION]\n }\n };\n};\n\n// fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\nconst isBrowser =\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\nif (isBrowser) {\n document.dispatchEvent(\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\n );\n}\n\nexport default plugin;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.style)?_c('div',{ref:\"lavContainer\",style:(_vm.style)}):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--13-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--1-0!../../vue-loader/lib/index.js??vue-loader-options!./LottieAnimation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--13-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--1-0!../../vue-loader/lib/index.js??vue-loader-options!./LottieAnimation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./LottieAnimation.vue?vue&type=template&id=4524c918&\"\nimport script from \"./LottieAnimation.vue?vue&type=script&lang=js&\"\nexport * from \"./LottieAnimation.vue?vue&type=script&lang=js&\"\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 null,\n null\n \n)\n\nexport default component.exports","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Function equal to merge with the difference being that no reference\n * to original objects is kept.\n *\n * @see merge\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction deepMerge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = deepMerge(result[key], val);\n } else if (typeof val === 'object') {\n result[key] = deepMerge({}, val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n deepMerge: deepMerge,\n extend: extend,\n trim: trim\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n"],"sourceRoot":""}