{"version":3,"sources":["webpack:///./node_modules/vue-filepond/dist/vue-filepond.js","webpack:///./node_modules/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js","webpack:///./node_modules/filepond-plugin-file-encode/dist/filepond-plugin-file-encode.js","webpack:///./src/componentes/Uploads/DocUpload.vue?4255","webpack:///src/componentes/Uploads/DocUpload.vue","webpack:///./src/componentes/Uploads/DocUpload.vue?31a6","webpack:///./src/componentes/Uploads/DocUpload.vue"],"names":["global","factory","globalThis","self","_exports","_vue","_filepond","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","setOptions","filteredComponentMethods","isSupported","supported","getNativeConstructorFromType","type","string","String","boolean","Boolean","array","Array","function","Function","int","Number","serverapi","object","props","events","watch","instances","globalOptions","options","assign","forEach","instance","_default","registerPlugin","apply","arguments","length","_loop","prop","test","push","OptionTypes","this","_pond","component","name","render","h","attrs","id","className","required","multiple","allowMultiple","accept","acceptedFileTypes","capture","captureMethod","mounted","_this","_element","$el","querySelector","reduce","$emit","getFiles","_len","args","_key","substr","concat","$attrs","create","$options","propsData","keys","filter","key","includes","destroyed","_this2","detached","offsetParent","mutationHandler","mutations","observer","removedNodes","removedNode","contains","disconnect","call","MutationObserver","observe","document","documentElement","childList","subtree","destroy","index","indexOf","splice","module","exports","isPreviewableImage","file","_AwaitValue","wrapped","_AsyncGenerator","gen","front","back","send","arg","Promise","resolve","reject","request","next","resume","result","wrappedAwait","then","settle","done","err","_invoke","return","undefined","Symbol","asyncIterator","prototype","throw","_slicedToArray","arr","i","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","isArray","_arr","_n","_d","_e","_s","_i","iterator","TypeError","vectorMultiply","v","amount","createVector","x","y","vectorAdd","a","b","vectorNormalize","l","Math","sqrt","vectorRotate","radians","origin","cos","sin","t","getMarkupValue","size","scalar","axis","parseFloat","min","width","height","getMarkupStyles","markup","scale","lineStyle","borderStyle","fill","backgroundColor","fontColor","stroke","borderColor","lineColor","strokeWidth","borderWidth","lineWidth","lineCap","lineJoin","dashes","map","join","opacity","isDefined","getMarkupRect","rect","left","top","right","bottom","pointsToPathShape","points","point","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","line","childNodes","begin","end","target","x1","y1","x2","y2","lineDecoration","style","display","arrowBeginRotationPoint","arrowBeginCenter","arrowBeginA","arrowBeginB","d","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","_markup","prev","curr","zIndex","sortMarkupByZIndex","createMarkupView","_","utils","createView","ignoreRect","mixins","apis","write","_ref","root","dirty","crop","resize","viewWidth","viewHeight","cropWidth","cropHeight","_size","outputWidth","outputHeight","outputFit","mode","outputUpscale","upscale","shouldUpscale","scalarWidth","scalarHeight","max","innerHTML","markupFilter","query","sort","settings","createVector$1","vectorDot","vectorSubtract","vectorDistanceSquared","vectorDistance","getOffsetPointOnEdge","rotation","A","B","C","sinA","sinB","sinC","cosC","ratio","c","getRotatedRectSize","w","hor","ver","tl","abs","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","round","IMAGE_SCALE_SPRING_PROPS","stiffness","damping","mass","createBitmapView","createImageCanvasWrapper","animations","originX","originY","scaleX","scaleY","translateX","translateY","rotateZ","_ref2","ref","bitmap","appendChildView","createChildView","_ref3","flip","horizontal","vertical","createClipView","duration","didWriteView","_ref4","background","_ref5","createMarkup","destroyMarkup","removeChildView","transparencyIndicator","dataset","_ref6","shouldOptimize","translation","PI","cropAspectRatio","imageView","createImageView","_ref7","clip","_ref8","hidden","containerWidth","inner","containerHeight","fixedPreviewHeight","minPreviewHeight","maxPreviewHeight","panelAspectRatio","clipHeight","clipWidth","SVG_MASK","SVGMaskUniqueId","createImageOverlayView","fpAPI","mask","url","window","location","href","replace","hash","classList","add","status","BitmapWorker","onmessage","e","createImageBitmap","data","message","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","r","g","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","ceil","getImageData","averageColor","floor","cloneCanvas","cloneImageData","ImageData","createImageData","set","Uint8ClampedArray","loadImage","img","crossOrigin","onerror","createImageWrapperView","OverlayView","ImageView","createWorker","applyFilter","putImageData","worker","post","response","terminate","removeImageView","_destroy","shiftImage","images","shift","imageViewBin","pushImage","item","getMetadata","childViews","setTimeout","dispatch","didUpdateItemMetadata","action","change","_imageView","canCreateImageBitmap","userAgent","navigator","isFirefox","match","firefoxVersion","parseInt","didCreatePreviewContainer","fileURL","URL","createObjectURL","drawPreview","loadPreviewFallback","previewImageLoaded","revokeObjectURL","exif","pixelDensityFactor","devicePixelRatio","zoomFactor","scaleFactor","previewImageRatio","previewContainerWidth","previewContainerHeight","previewImage","setMetadata","close","overlayShadow","imageBitmap","didDrawPreview","restoreOverlay","_ref9","overlayError","overlaySuccess","didThrowError","_ref10","didCompleteProcessing","_ref11","_ref12","_ref13","_ref14","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","_ref15","viewsToRemove","plugin","addFilter","Type","isFile","imagePreviewView","viewAPI","is","view","didLoadItem","archived","supportsCreateImageBitmap","maxPreviewFileSize","imagePreview","queue","rescaleItem","itemPanelAspectRatio","fixedHeight","_root$ref","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","BOOLEAN","imagePreviewFilterItem","FUNCTION","imagePreviewHeight","INT","imagePreviewMinHeight","imagePreviewMaxHeight","imagePreviewMaxFileSize","imagePreviewZoomFactor","imagePreviewUpscale","imagePreviewMaxInstantPreviewFileSize","imagePreviewTransparencyIndicator","STRING","imagePreviewCalculateAverageImageColor","imagePreviewMarkupShow","imagePreviewMarkupFilter","isBrowser","dispatchEvent","CustomEvent","detail","DataURIWorker","convert","reader","FileReader","onloadend","readAsDataURL","encode","base64Cache","extend","fileType","shouldPrepareOutput","metadata","all","Blob","dataItems","DID_PREPARE_OUTPUT","cache","JSON","stringify","DID_REMOVE_ITEM","allowFileEncode","_vm","_h","$createElement","_c","_self","on","handleUpload","staticRenderFns","methods","components","FilePond"],"mappings":"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","file":"js/chunk-f4b66b30.94687a18.js","sourcesContent":["/*!\n * vue-filepond v6.0.3\n * A handy FilePond adapter component for Vue\n * \n * Copyright (c) 2020 PQINA\n * https://pqina.nl/filepond\n * \n * Licensed under the MIT license.\n */\n\n(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(\"vueFilePond\", [\"exports\", \"vue\", \"filepond\"], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports, require(\"vue\"), require(\"filepond\"));\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports, global.Vue, global.FilePond);\n global.vueFilePond = mod.exports;\n }\n})(typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : this, function (_exports, _vue, _filepond) {\n \"use strict\";\n\n Object.defineProperty(_exports, \"__esModule\", {\n value: true\n });\n _exports.default = _exports.setOptions = void 0;\n _vue = _interopRequireDefault(_vue);\n\n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n // Methods not made available to the component\n var filteredComponentMethods = ['setOptions', 'on', 'off', 'onOnce', 'appendTo', 'insertAfter', 'insertBefore', 'isAttachedTo', 'replaceElement', 'restoreElement', 'destroy']; // Test if is supported on this client\n\n var isSupported = (0, _filepond.supported)(); // Setup initial prop types and update when plugins are added\n\n var getNativeConstructorFromType = function getNativeConstructorFromType(type) {\n return {\n string: String,\n boolean: Boolean,\n array: Array,\n function: Function,\n int: Number,\n serverapi: Object,\n object: Object\n }[type];\n }; // Activated props\n\n\n var props = {}; // Events that need to be mapped to emitters\n\n var events = []; // Props to watch\n\n var watch = {}; // all active instances\n\n var instances = []; // global options\n\n var globalOptions = {};\n\n var setOptions = function setOptions(options) {\n globalOptions = Object.assign(globalOptions, options);\n instances.forEach(function (instance) {\n instance.setOptions(globalOptions);\n });\n };\n\n _exports.setOptions = setOptions;\n\n var _default = function _default() {\n // register plugins in FilePond\n _filepond.registerPlugin.apply(void 0, arguments); // build events and props array\n\n\n events.length = 0;\n\n var _loop = function _loop(prop) {\n // don't add events to the props array\n if (/^on/.test(prop)) {\n events.push(prop);\n return \"continue\";\n } // get property type ( can be either a String or the type defined within FilePond )\n\n\n props[prop] = [String, getNativeConstructorFromType(_filepond.OptionTypes[prop])]; // setup watcher\n\n watch[prop] = function (value) {\n this._pond[prop] = value;\n };\n };\n\n for (var prop in _filepond.OptionTypes) {\n var _ret = _loop(prop);\n\n if (_ret === \"continue\") continue;\n } // create \n\n\n return _vue.default.component('FilePond', {\n name: 'FilePond',\n props: props,\n watch: watch,\n render: function render(h) {\n return h('div', {\n 'class': {\n 'filepond--wrapper': true\n }\n }, [h('input', {\n attrs: {\n id: this.id,\n name: this.name,\n type: 'file',\n 'class': this.className,\n required: this.required,\n multiple: this.allowMultiple,\n accept: this.acceptedFileTypes,\n capture: this.captureMethod\n }\n })]);\n },\n // Will setup FilePond instance when mounted\n mounted: function mounted() {\n var _this = this;\n\n // exit here if not supported\n if (!isSupported) {\n return;\n } // get pond element\n\n\n this._element = this.$el.querySelector('input'); // Map FilePond callback methods to Vue $emitters\n\n var options = events.reduce(function (obj, value) {\n obj[value] = function () {\n _this.$emit('input', _this._pond ? _this._pond.getFiles() : []);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this.$emit.apply(_this, [value.substr(2)].concat(args));\n };\n\n return obj;\n }, {}); // Scoop up attributes that might not have been caught by Vue ( because the props object is extended dynamically )\n\n var attrs = Object.assign({}, this.$attrs); // Create our pond\n\n this._pond = (0, _filepond.create)(this._element, Object.assign({}, globalOptions, options, attrs, this.$options.propsData)); // Copy instance method references to component instance\n\n Object.keys(this._pond).filter(function (key) {\n return !filteredComponentMethods.includes(key);\n }).forEach(function (key) {\n _this[key] = _this._pond[key];\n }); // Add to instances so we can apply global options when used\n\n instances.push(this._pond);\n },\n // Will clean up FilePond instance when unmounted\n destroyed: function destroyed() {\n var _this2 = this;\n\n // reference to detached method\n var detached = this.$options.detached; // no longer attached, clean up\n\n if (!this.$el.offsetParent) {\n detached.call(this);\n return;\n } // if we're still attached it's likely a transition is running, we need to \n // determine the moment when we're no longer attached to the DOM so we can \n // clean up properly\n\n\n var mutationHandler = function mutationHandler(mutations, observer) {\n var removedNodes = (mutations[0] || {}).removedNodes || [];\n var removedNode = removedNodes[0];\n if (!removedNode || !removedNode.contains(_this2.$el)) return;\n observer.disconnect();\n detached.call(_this2);\n }; // start observing parent element for changes to the DOM\n\n\n var observer = new MutationObserver(mutationHandler);\n observer.observe(document.documentElement, {\n childList: true,\n subtree: true\n });\n },\n // called when the component root node has been detached\n detached: function detached() {\n // exit when no pond defined\n if (!this._pond) return; // bye bye pond\n\n this._pond.destroy(); // remove from instances\n\n\n var index = instances.indexOf(this._pond);\n\n if (index >= 0) {\n instances.splice(index, 1);\n } // clear reference\n\n\n this._pond = null;\n }\n });\n };\n\n _exports.default = _default;\n});\n\n\n","/*!\n * FilePondPluginImagePreview 4.6.10\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n\n(function(global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? (module.exports = factory())\n : typeof define === 'function' && define.amd\n ? define(factory)\n : ((global = global || self),\n (global.FilePondPluginImagePreview = factory()));\n})(this, function() {\n 'use strict';\n\n // test if file is of type image and can be viewed in canvas\n var isPreviewableImage = function isPreviewableImage(file) {\n return /^image/.test(file.type);\n };\n\n function _typeof(obj) {\n if (typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol') {\n _typeof = function(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function(obj) {\n return obj &&\n typeof Symbol === 'function' &&\n obj.constructor === Symbol &&\n obj !== Symbol.prototype\n ? 'symbol'\n : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var REACT_ELEMENT_TYPE;\n\n function _jsx(type, props, key, children) {\n if (!REACT_ELEMENT_TYPE) {\n REACT_ELEMENT_TYPE =\n (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n }\n\n var defaultProps = type && type.defaultProps;\n var childrenLength = arguments.length - 3;\n\n if (!props && childrenLength !== 0) {\n props = {\n children: void 0\n };\n }\n\n if (props && defaultProps) {\n for (var propName in defaultProps) {\n if (props[propName] === void 0) {\n props[propName] = defaultProps[propName];\n }\n }\n } else if (!props) {\n props = defaultProps || {};\n }\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = new Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 3];\n }\n\n props.children = childArray;\n }\n\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key === undefined ? null : '' + key,\n ref: null,\n props: props,\n _owner: null\n };\n }\n\n function _asyncIterator(iterable) {\n var method;\n\n if (typeof Symbol === 'function') {\n if (Symbol.asyncIterator) {\n method = iterable[Symbol.asyncIterator];\n if (method != null) return method.call(iterable);\n }\n\n if (Symbol.iterator) {\n method = iterable[Symbol.iterator];\n if (method != null) return method.call(iterable);\n }\n }\n\n throw new TypeError('Object is not async iterable');\n }\n\n function _AwaitValue(value) {\n this.wrapped = value;\n }\n\n function _AsyncGenerator(gen) {\n var front, back;\n\n function send(key, arg) {\n return new Promise(function(resolve, reject) {\n var request = {\n key: key,\n arg: arg,\n resolve: resolve,\n reject: reject,\n next: null\n };\n\n if (back) {\n back = back.next = request;\n } else {\n front = back = request;\n resume(key, arg);\n }\n });\n }\n\n function resume(key, arg) {\n try {\n var result = gen[key](arg);\n var value = result.value;\n var wrappedAwait = value instanceof _AwaitValue;\n Promise.resolve(wrappedAwait ? value.wrapped : value).then(\n function(arg) {\n if (wrappedAwait) {\n resume('next', arg);\n return;\n }\n\n settle(result.done ? 'return' : 'normal', arg);\n },\n function(err) {\n resume('throw', err);\n }\n );\n } catch (err) {\n settle('throw', err);\n }\n }\n\n function settle(type, value) {\n switch (type) {\n case 'return':\n front.resolve({\n value: value,\n done: true\n });\n break;\n\n case 'throw':\n front.reject(value);\n break;\n\n default:\n front.resolve({\n value: value,\n done: false\n });\n break;\n }\n\n front = front.next;\n\n if (front) {\n resume(front.key, front.arg);\n } else {\n back = null;\n }\n }\n\n this._invoke = send;\n\n if (typeof gen.return !== 'function') {\n this.return = undefined;\n }\n }\n\n if (typeof Symbol === 'function' && Symbol.asyncIterator) {\n _AsyncGenerator.prototype[Symbol.asyncIterator] = function() {\n return this;\n };\n }\n\n _AsyncGenerator.prototype.next = function(arg) {\n return this._invoke('next', arg);\n };\n\n _AsyncGenerator.prototype.throw = function(arg) {\n return this._invoke('throw', arg);\n };\n\n _AsyncGenerator.prototype.return = function(arg) {\n return this._invoke('return', arg);\n };\n\n function _wrapAsyncGenerator(fn) {\n return function() {\n return new _AsyncGenerator(fn.apply(this, arguments));\n };\n }\n\n function _awaitAsyncGenerator(value) {\n return new _AwaitValue(value);\n }\n\n function _asyncGeneratorDelegate(inner, awaitWrap) {\n var iter = {},\n waiting = false;\n\n function pump(key, value) {\n waiting = true;\n value = new Promise(function(resolve) {\n resolve(inner[key](value));\n });\n return {\n done: false,\n value: awaitWrap(value)\n };\n }\n\n if (typeof Symbol === 'function' && Symbol.iterator) {\n iter[Symbol.iterator] = function() {\n return this;\n };\n }\n\n iter.next = function(value) {\n if (waiting) {\n waiting = false;\n return value;\n }\n\n return pump('next', value);\n };\n\n if (typeof inner.throw === 'function') {\n iter.throw = function(value) {\n if (waiting) {\n waiting = false;\n throw value;\n }\n\n return pump('throw', value);\n };\n }\n\n if (typeof inner.return === 'function') {\n iter.return = function(value) {\n return pump('return', value);\n };\n }\n\n return iter;\n }\n\n function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n }\n\n function _asyncToGenerator(fn) {\n return function() {\n var self = this,\n args = arguments;\n return new Promise(function(resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(\n gen,\n resolve,\n reject,\n _next,\n _throw,\n 'next',\n value\n );\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, 'throw', err);\n }\n\n _next(undefined);\n });\n };\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError('Cannot call a class as a function');\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if ('value' in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _defineEnumerableProperties(obj, descs) {\n for (var key in descs) {\n var desc = descs[key];\n desc.configurable = desc.enumerable = true;\n if ('value' in desc) desc.writable = true;\n Object.defineProperty(obj, key, desc);\n }\n\n if (Object.getOwnPropertySymbols) {\n var objectSymbols = Object.getOwnPropertySymbols(descs);\n\n for (var i = 0; i < objectSymbols.length; i++) {\n var sym = objectSymbols[i];\n var desc = descs[sym];\n desc.configurable = desc.enumerable = true;\n if ('value' in desc) desc.writable = true;\n Object.defineProperty(obj, sym, desc);\n }\n }\n\n return obj;\n }\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _extends() {\n _extends =\n Object.assign ||\n function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(\n Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n })\n );\n }\n\n ownKeys.forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function');\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n\n function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf\n ? Object.getPrototypeOf\n : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n\n function _setPrototypeOf(o, p) {\n _setPrototypeOf =\n Object.setPrototypeOf ||\n function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n }\n\n function isNativeReflectConstruct() {\n if (typeof Reflect === 'undefined' || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === 'function') return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function() {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n }\n\n function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf('[native code]') !== -1;\n }\n\n function _wrapNativeSuper(Class) {\n var _cache = typeof Map === 'function' ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== 'function') {\n throw new TypeError(\n 'Super expression must either be null or a function'\n );\n }\n\n if (typeof _cache !== 'undefined') {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n }\n\n function _instanceof(left, right) {\n if (\n right != null &&\n typeof Symbol !== 'undefined' &&\n right[Symbol.hasInstance]\n ) {\n return right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n }\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule\n ? obj\n : {\n default: obj\n };\n }\n\n function _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc =\n Object.defineProperty && Object.getOwnPropertyDescriptor\n ? Object.getOwnPropertyDescriptor(obj, key)\n : {};\n\n if (desc.get || desc.set) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n }\n\n function _newArrowCheck(innerThis, boundThis) {\n if (innerThis !== boundThis) {\n throw new TypeError('Cannot instantiate an arrow function');\n }\n }\n\n function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError('Cannot destructure undefined');\n }\n\n function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n\n function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n\n function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\n \"this hasn't been initialised - super() hasn't been called\"\n );\n }\n\n return self;\n }\n\n function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === 'object' || typeof call === 'function')) {\n return call;\n }\n\n return _assertThisInitialized(self);\n }\n\n function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n }\n\n function _get(target, property, receiver) {\n if (typeof Reflect !== 'undefined' && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n }\n\n function set(target, property, value, receiver) {\n if (typeof Reflect !== 'undefined' && Reflect.set) {\n set = Reflect.set;\n } else {\n set = function set(target, property, value, receiver) {\n var base = _superPropBase(target, property);\n\n var desc;\n\n if (base) {\n desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.set) {\n desc.set.call(receiver, value);\n return true;\n } else if (!desc.writable) {\n return false;\n }\n }\n\n desc = Object.getOwnPropertyDescriptor(receiver, property);\n\n if (desc) {\n if (!desc.writable) {\n return false;\n }\n\n desc.value = value;\n Object.defineProperty(receiver, property, desc);\n } else {\n _defineProperty(receiver, property, value);\n }\n\n return true;\n };\n }\n\n return set(target, property, value, receiver);\n }\n\n function _set(target, property, value, receiver, isStrict) {\n var s = set(target, property, value, receiver || target);\n\n if (!s && isStrict) {\n throw new Error('failed to set property');\n }\n\n return value;\n }\n\n function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n return Object.freeze(\n Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n })\n );\n }\n\n function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n }\n\n function _temporalRef(val, name) {\n if (val === _temporalUndefined) {\n throw new ReferenceError(name + ' is not defined - temporal dead zone');\n } else {\n return val;\n }\n }\n\n function _readOnlyError(name) {\n throw new Error('\"' + name + '\" is read-only');\n }\n\n function _classNameTDZError(name) {\n throw new Error(\n 'Class \"' + name + '\" cannot be referenced in computed property keys.'\n );\n }\n\n var _temporalUndefined = {};\n\n function _slicedToArray(arr, i) {\n return (\n _arrayWithHoles(arr) ||\n _iterableToArrayLimit(arr, i) ||\n _nonIterableRest()\n );\n }\n\n function _slicedToArrayLoose(arr, i) {\n return (\n _arrayWithHoles(arr) ||\n _iterableToArrayLimitLoose(arr, i) ||\n _nonIterableRest()\n );\n }\n\n function _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return (\n _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread()\n );\n }\n\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++)\n arr2[i] = arr[i];\n\n return arr2;\n }\n }\n\n function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n\n function _iterableToArray(iter) {\n if (\n Symbol.iterator in Object(iter) ||\n Object.prototype.toString.call(iter) === '[object Arguments]'\n )\n return Array.from(iter);\n }\n\n function _iterableToArrayLimit(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (\n var _i = arr[Symbol.iterator](), _s;\n !(_n = (_s = _i.next()).done);\n _n = true\n ) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i['return'] != null) _i['return']();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n function _iterableToArrayLimitLoose(arr, i) {\n var _arr = [];\n\n for (\n var _iterator = arr[Symbol.iterator](), _step;\n !(_step = _iterator.next()).done;\n\n ) {\n _arr.push(_step.value);\n\n if (i && _arr.length === i) break;\n }\n\n return _arr;\n }\n\n function _nonIterableSpread() {\n throw new TypeError('Invalid attempt to spread non-iterable instance');\n }\n\n function _nonIterableRest() {\n throw new TypeError('Invalid attempt to destructure non-iterable instance');\n }\n\n function _skipFirstGeneratorNext(fn) {\n return function() {\n var it = fn.apply(this, arguments);\n it.next();\n return it;\n };\n }\n\n function _toPrimitive(input, hint) {\n if (typeof input !== 'object' || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n\n if (prim !== undefined) {\n var res = prim.call(input, hint || 'default');\n if (typeof res !== 'object') return res;\n throw new TypeError('@@toPrimitive must return a primitive value.');\n }\n\n return (hint === 'string' ? String : Number)(input);\n }\n\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, 'string');\n\n return typeof key === 'symbol' ? key : String(key);\n }\n\n function _initializerWarningHelper(descriptor, context) {\n throw new Error(\n 'Decorating class property failed. Please ensure that ' +\n 'proposal-class-properties is enabled and set to use loose mode. ' +\n 'To use proposal-class-properties in spec mode with decorators, wait for ' +\n 'the next major version of decorators in stage 2.'\n );\n }\n\n function _initializerDefineProperty(target, property, descriptor, context) {\n if (!descriptor) return;\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer\n ? descriptor.initializer.call(context)\n : void 0\n });\n }\n\n function _applyDecoratedDescriptor(\n target,\n property,\n decorators,\n descriptor,\n context\n ) {\n var desc = {};\n Object.keys(descriptor).forEach(function(key) {\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n\n if ('value' in desc || desc.initializer) {\n desc.writable = true;\n }\n\n desc = decorators\n .slice()\n .reverse()\n .reduce(function(desc, decorator) {\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0) {\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0) {\n Object.defineProperty(target, property, desc);\n desc = null;\n }\n\n return desc;\n }\n\n var id = 0;\n\n function _classPrivateFieldLooseKey(name) {\n return '__private_' + id++ + '_' + name;\n }\n\n function _classPrivateFieldLooseBase(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError('attempted to use private field on non-instance');\n }\n\n return receiver;\n }\n\n function _classPrivateFieldGet(receiver, privateMap) {\n if (!privateMap.has(receiver)) {\n throw new TypeError('attempted to get private field on non-instance');\n }\n\n var descriptor = privateMap.get(receiver);\n\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n\n return descriptor.value;\n }\n\n function _classPrivateFieldSet(receiver, privateMap, value) {\n if (!privateMap.has(receiver)) {\n throw new TypeError('attempted to set private field on non-instance');\n }\n\n var descriptor = privateMap.get(receiver);\n\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n throw new TypeError('attempted to set read only private field');\n }\n\n descriptor.value = value;\n }\n\n return value;\n }\n\n function _classStaticPrivateFieldSpecGet(\n receiver,\n classConstructor,\n descriptor\n ) {\n if (receiver !== classConstructor) {\n throw new TypeError('Private static access of wrong provenance');\n }\n\n return descriptor.value;\n }\n\n function _classStaticPrivateFieldSpecSet(\n receiver,\n classConstructor,\n descriptor,\n value\n ) {\n if (receiver !== classConstructor) {\n throw new TypeError('Private static access of wrong provenance');\n }\n\n if (!descriptor.writable) {\n throw new TypeError('attempted to set read only private field');\n }\n\n descriptor.value = value;\n return value;\n }\n\n function _classStaticPrivateMethodGet(receiver, classConstructor, method) {\n if (receiver !== classConstructor) {\n throw new TypeError('Private static access of wrong provenance');\n }\n\n return method;\n }\n\n function _classStaticPrivateMethodSet() {\n throw new TypeError('attempted to set read only static private field');\n }\n\n function _decorate(decorators, factory, superClass, mixins) {\n var api = _getDecoratorsApi();\n\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n api = mixins[i](api);\n }\n }\n\n var r = factory(function initialize(O) {\n api.initializeInstanceElements(O, decorated.elements);\n }, superClass);\n var decorated = api.decorateClass(\n _coalesceClassElements(r.d.map(_createElementDescriptor)),\n decorators\n );\n api.initializeClassElements(r.F, decorated.elements);\n return api.runClassFinishers(r.F, decorated.finishers);\n }\n\n function _getDecoratorsApi() {\n _getDecoratorsApi = function() {\n return api;\n };\n\n var api = {\n elementsDefinitionOrder: [['method'], ['field']],\n initializeInstanceElements: function(O, elements) {\n ['method', 'field'].forEach(function(kind) {\n elements.forEach(function(element) {\n if (element.kind === kind && element.placement === 'own') {\n this.defineClassElement(O, element);\n }\n }, this);\n }, this);\n },\n initializeClassElements: function(F, elements) {\n var proto = F.prototype;\n ['method', 'field'].forEach(function(kind) {\n elements.forEach(function(element) {\n var placement = element.placement;\n\n if (\n element.kind === kind &&\n (placement === 'static' || placement === 'prototype')\n ) {\n var receiver = placement === 'static' ? F : proto;\n this.defineClassElement(receiver, element);\n }\n }, this);\n }, this);\n },\n defineClassElement: function(receiver, element) {\n var descriptor = element.descriptor;\n\n if (element.kind === 'field') {\n var initializer = element.initializer;\n descriptor = {\n enumerable: descriptor.enumerable,\n writable: descriptor.writable,\n configurable: descriptor.configurable,\n value: initializer === void 0 ? void 0 : initializer.call(receiver)\n };\n }\n\n Object.defineProperty(receiver, element.key, descriptor);\n },\n decorateClass: function(elements, decorators) {\n var newElements = [];\n var finishers = [];\n var placements = {\n static: [],\n prototype: [],\n own: []\n };\n elements.forEach(function(element) {\n this.addElementPlacement(element, placements);\n }, this);\n elements.forEach(function(element) {\n if (!_hasDecorators(element)) return newElements.push(element);\n var elementFinishersExtras = this.decorateElement(\n element,\n placements\n );\n newElements.push(elementFinishersExtras.element);\n newElements.push.apply(newElements, elementFinishersExtras.extras);\n finishers.push.apply(finishers, elementFinishersExtras.finishers);\n }, this);\n\n if (!decorators) {\n return {\n elements: newElements,\n finishers: finishers\n };\n }\n\n var result = this.decorateConstructor(newElements, decorators);\n finishers.push.apply(finishers, result.finishers);\n result.finishers = finishers;\n return result;\n },\n addElementPlacement: function(element, placements, silent) {\n var keys = placements[element.placement];\n\n if (!silent && keys.indexOf(element.key) !== -1) {\n throw new TypeError('Duplicated element (' + element.key + ')');\n }\n\n keys.push(element.key);\n },\n decorateElement: function(element, placements) {\n var extras = [];\n var finishers = [];\n\n for (\n var decorators = element.decorators, i = decorators.length - 1;\n i >= 0;\n i--\n ) {\n var keys = placements[element.placement];\n keys.splice(keys.indexOf(element.key), 1);\n var elementObject = this.fromElementDescriptor(element);\n var elementFinisherExtras = this.toElementFinisherExtras(\n (0, decorators[i])(elementObject) || elementObject\n );\n element = elementFinisherExtras.element;\n this.addElementPlacement(element, placements);\n\n if (elementFinisherExtras.finisher) {\n finishers.push(elementFinisherExtras.finisher);\n }\n\n var newExtras = elementFinisherExtras.extras;\n\n if (newExtras) {\n for (var j = 0; j < newExtras.length; j++) {\n this.addElementPlacement(newExtras[j], placements);\n }\n\n extras.push.apply(extras, newExtras);\n }\n }\n\n return {\n element: element,\n finishers: finishers,\n extras: extras\n };\n },\n decorateConstructor: function(elements, decorators) {\n var finishers = [];\n\n for (var i = decorators.length - 1; i >= 0; i--) {\n var obj = this.fromClassDescriptor(elements);\n var elementsAndFinisher = this.toClassDescriptor(\n (0, decorators[i])(obj) || obj\n );\n\n if (elementsAndFinisher.finisher !== undefined) {\n finishers.push(elementsAndFinisher.finisher);\n }\n\n if (elementsAndFinisher.elements !== undefined) {\n elements = elementsAndFinisher.elements;\n\n for (var j = 0; j < elements.length - 1; j++) {\n for (var k = j + 1; k < elements.length; k++) {\n if (\n elements[j].key === elements[k].key &&\n elements[j].placement === elements[k].placement\n ) {\n throw new TypeError(\n 'Duplicated element (' + elements[j].key + ')'\n );\n }\n }\n }\n }\n }\n\n return {\n elements: elements,\n finishers: finishers\n };\n },\n fromElementDescriptor: function(element) {\n var obj = {\n kind: element.kind,\n key: element.key,\n placement: element.placement,\n descriptor: element.descriptor\n };\n var desc = {\n value: 'Descriptor',\n configurable: true\n };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n if (element.kind === 'field') obj.initializer = element.initializer;\n return obj;\n },\n toElementDescriptors: function(elementObjects) {\n if (elementObjects === undefined) return;\n return _toArray(elementObjects).map(function(elementObject) {\n var element = this.toElementDescriptor(elementObject);\n this.disallowProperty(\n elementObject,\n 'finisher',\n 'An element descriptor'\n );\n this.disallowProperty(\n elementObject,\n 'extras',\n 'An element descriptor'\n );\n return element;\n }, this);\n },\n toElementDescriptor: function(elementObject) {\n var kind = String(elementObject.kind);\n\n if (kind !== 'method' && kind !== 'field') {\n throw new TypeError(\n 'An element descriptor\\'s .kind property must be either \"method\" or' +\n ' \"field\", but a decorator created an element descriptor with' +\n ' .kind \"' +\n kind +\n '\"'\n );\n }\n\n var key = _toPropertyKey(elementObject.key);\n\n var placement = String(elementObject.placement);\n\n if (\n placement !== 'static' &&\n placement !== 'prototype' &&\n placement !== 'own'\n ) {\n throw new TypeError(\n 'An element descriptor\\'s .placement property must be one of \"static\",' +\n ' \"prototype\" or \"own\", but a decorator created an element descriptor' +\n ' with .placement \"' +\n placement +\n '\"'\n );\n }\n\n var descriptor = elementObject.descriptor;\n this.disallowProperty(\n elementObject,\n 'elements',\n 'An element descriptor'\n );\n var element = {\n kind: kind,\n key: key,\n placement: placement,\n descriptor: Object.assign({}, descriptor)\n };\n\n if (kind !== 'field') {\n this.disallowProperty(\n elementObject,\n 'initializer',\n 'A method descriptor'\n );\n } else {\n this.disallowProperty(\n descriptor,\n 'get',\n 'The property descriptor of a field descriptor'\n );\n this.disallowProperty(\n descriptor,\n 'set',\n 'The property descriptor of a field descriptor'\n );\n this.disallowProperty(\n descriptor,\n 'value',\n 'The property descriptor of a field descriptor'\n );\n element.initializer = elementObject.initializer;\n }\n\n return element;\n },\n toElementFinisherExtras: function(elementObject) {\n var element = this.toElementDescriptor(elementObject);\n\n var finisher = _optionalCallableProperty(elementObject, 'finisher');\n\n var extras = this.toElementDescriptors(elementObject.extras);\n return {\n element: element,\n finisher: finisher,\n extras: extras\n };\n },\n fromClassDescriptor: function(elements) {\n var obj = {\n kind: 'class',\n elements: elements.map(this.fromElementDescriptor, this)\n };\n var desc = {\n value: 'Descriptor',\n configurable: true\n };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n return obj;\n },\n toClassDescriptor: function(obj) {\n var kind = String(obj.kind);\n\n if (kind !== 'class') {\n throw new TypeError(\n 'A class descriptor\\'s .kind property must be \"class\", but a decorator' +\n ' created a class descriptor with .kind \"' +\n kind +\n '\"'\n );\n }\n\n this.disallowProperty(obj, 'key', 'A class descriptor');\n this.disallowProperty(obj, 'placement', 'A class descriptor');\n this.disallowProperty(obj, 'descriptor', 'A class descriptor');\n this.disallowProperty(obj, 'initializer', 'A class descriptor');\n this.disallowProperty(obj, 'extras', 'A class descriptor');\n\n var finisher = _optionalCallableProperty(obj, 'finisher');\n\n var elements = this.toElementDescriptors(obj.elements);\n return {\n elements: elements,\n finisher: finisher\n };\n },\n runClassFinishers: function(constructor, finishers) {\n for (var i = 0; i < finishers.length; i++) {\n var newConstructor = (0, finishers[i])(constructor);\n\n if (newConstructor !== undefined) {\n if (typeof newConstructor !== 'function') {\n throw new TypeError('Finishers must return a constructor.');\n }\n\n constructor = newConstructor;\n }\n }\n\n return constructor;\n },\n disallowProperty: function(obj, name, objectType) {\n if (obj[name] !== undefined) {\n throw new TypeError(\n objectType + \" can't have a .\" + name + ' property.'\n );\n }\n }\n };\n return api;\n }\n\n function _createElementDescriptor(def) {\n var key = _toPropertyKey(def.key);\n\n var descriptor;\n\n if (def.kind === 'method') {\n descriptor = {\n value: def.value,\n writable: true,\n configurable: true,\n enumerable: false\n };\n } else if (def.kind === 'get') {\n descriptor = {\n get: def.value,\n configurable: true,\n enumerable: false\n };\n } else if (def.kind === 'set') {\n descriptor = {\n set: def.value,\n configurable: true,\n enumerable: false\n };\n } else if (def.kind === 'field') {\n descriptor = {\n configurable: true,\n writable: true,\n enumerable: true\n };\n }\n\n var element = {\n kind: def.kind === 'field' ? 'field' : 'method',\n key: key,\n placement: def.static\n ? 'static'\n : def.kind === 'field'\n ? 'own'\n : 'prototype',\n descriptor: descriptor\n };\n if (def.decorators) element.decorators = def.decorators;\n if (def.kind === 'field') element.initializer = def.value;\n return element;\n }\n\n function _coalesceGetterSetter(element, other) {\n if (element.descriptor.get !== undefined) {\n other.descriptor.get = element.descriptor.get;\n } else {\n other.descriptor.set = element.descriptor.set;\n }\n }\n\n function _coalesceClassElements(elements) {\n var newElements = [];\n\n var isSameElement = function(other) {\n return (\n other.kind === 'method' &&\n other.key === element.key &&\n other.placement === element.placement\n );\n };\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i];\n var other;\n\n if (\n element.kind === 'method' &&\n (other = newElements.find(isSameElement))\n ) {\n if (\n _isDataDescriptor(element.descriptor) ||\n _isDataDescriptor(other.descriptor)\n ) {\n if (_hasDecorators(element) || _hasDecorators(other)) {\n throw new ReferenceError(\n 'Duplicated methods (' + element.key + \") can't be decorated.\"\n );\n }\n\n other.descriptor = element.descriptor;\n } else {\n if (_hasDecorators(element)) {\n if (_hasDecorators(other)) {\n throw new ReferenceError(\n \"Decorators can't be placed on different accessors with for \" +\n 'the same property (' +\n element.key +\n ').'\n );\n }\n\n other.decorators = element.decorators;\n }\n\n _coalesceGetterSetter(element, other);\n }\n } else {\n newElements.push(element);\n }\n }\n\n return newElements;\n }\n\n function _hasDecorators(element) {\n return element.decorators && element.decorators.length;\n }\n\n function _isDataDescriptor(desc) {\n return (\n desc !== undefined &&\n !(desc.value === undefined && desc.writable === undefined)\n );\n }\n\n function _optionalCallableProperty(obj, name) {\n var value = obj[name];\n\n if (value !== undefined && typeof value !== 'function') {\n throw new TypeError(\"Expected '\" + name + \"' to be a function\");\n }\n\n return value;\n }\n\n function _classPrivateMethodGet(receiver, privateSet, fn) {\n if (!privateSet.has(receiver)) {\n throw new TypeError('attempted to get private field on non-instance');\n }\n\n return fn;\n }\n\n function _classPrivateMethodSet() {\n throw new TypeError('attempted to reassign private method');\n }\n\n function _wrapRegExp(re, groups) {\n _wrapRegExp = function(re, groups) {\n return new BabelRegExp(re, groups);\n };\n\n var _RegExp = _wrapNativeSuper(RegExp);\n\n var _super = RegExp.prototype;\n\n var _groups = new WeakMap();\n\n function BabelRegExp(re, groups) {\n var _this = _RegExp.call(this, re);\n\n _groups.set(_this, groups);\n\n return _this;\n }\n\n _inherits(BabelRegExp, _RegExp);\n\n BabelRegExp.prototype.exec = function(str) {\n var result = _super.exec.call(this, str);\n\n if (result) result.groups = buildGroups(result, this);\n return result;\n };\n\n BabelRegExp.prototype[Symbol.replace] = function(str, substitution) {\n if (typeof substitution === 'string') {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(\n this,\n str,\n substitution.replace(/\\$<([^>]+)>/g, function(_, name) {\n return '$' + groups[name];\n })\n );\n } else if (typeof substitution === 'function') {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function() {\n var args = [];\n args.push.apply(args, arguments);\n\n if (typeof args[args.length - 1] !== 'object') {\n args.push(buildGroups(args, _this));\n }\n\n return substitution.apply(this, args);\n });\n } else {\n return _super[Symbol.replace].call(this, str, substitution);\n }\n };\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function(groups, name) {\n groups[name] = result[g[name]];\n return groups;\n }, Object.create(null));\n }\n\n return _wrapRegExp.apply(this, arguments);\n }\n\n var vectorMultiply = function vectorMultiply(v, amount) {\n return createVector(v.x * amount, v.y * amount);\n };\n\n var vectorAdd = function vectorAdd(a, b) {\n return createVector(a.x + b.x, a.y + b.y);\n };\n\n var vectorNormalize = function vectorNormalize(v) {\n var 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\n var vectorRotate = function vectorRotate(v, radians, origin) {\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n var 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\n var createVector = function createVector() {\n var x =\n arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return { x: x, y: y };\n };\n\n var getMarkupValue = function getMarkupValue(value, size) {\n var scalar =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\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\n var getMarkupStyles = function getMarkupStyles(markup, size, scale) {\n var lineStyle = markup.borderStyle || markup.lineStyle || 'solid';\n var fill = markup.backgroundColor || markup.fontColor || 'transparent';\n var stroke = markup.borderColor || markup.lineColor || 'transparent';\n var strokeWidth = getMarkupValue(\n markup.borderWidth || markup.lineWidth,\n size,\n scale\n );\n var lineCap = markup.lineCap || 'round';\n var lineJoin = markup.lineJoin || 'round';\n var dashes =\n typeof lineStyle === 'string'\n ? ''\n : lineStyle\n .map(function(v) {\n return getMarkupValue(v, size, scale);\n })\n .join(',');\n var 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: stroke,\n fill: fill,\n opacity: opacity\n };\n };\n\n var isDefined = function isDefined(value) {\n return value != null;\n };\n\n var getMarkupRect = function getMarkupRect(rect, size) {\n var scalar =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n var left =\n getMarkupValue(rect.x, size, scalar, 'width') ||\n getMarkupValue(rect.left, size, scalar, 'width');\n var top =\n getMarkupValue(rect.y, size, scalar, 'height') ||\n getMarkupValue(rect.top, size, scalar, 'height');\n var width = getMarkupValue(rect.width, size, scalar, 'width');\n var height = getMarkupValue(rect.height, size, scalar, 'height');\n var right = getMarkupValue(rect.right, size, scalar, 'width');\n var 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\n var pointsToPathShape = function pointsToPathShape(points) {\n return points\n .map(function(point, index) {\n return ''\n .concat(index === 0 ? 'M' : 'L', ' ')\n .concat(point.x, ' ')\n .concat(point.y);\n })\n .join(' ');\n };\n\n var setAttributes = function setAttributes(element, attr) {\n return Object.keys(attr).forEach(function(key) {\n return element.setAttribute(key, attr[key]);\n });\n };\n\n var ns = 'http://www.w3.org/2000/svg';\n var svg = function svg(tag, attr) {\n var element = document.createElementNS(ns, tag);\n if (attr) {\n setAttributes(element, attr);\n }\n return element;\n };\n\n var updateRect = function updateRect(element) {\n return setAttributes(\n element,\n Object.assign({}, element.rect, element.styles)\n );\n };\n\n var updateEllipse = function updateEllipse(element) {\n var cx = element.rect.x + element.rect.width * 0.5;\n var cy = element.rect.y + element.rect.height * 0.5;\n var rx = element.rect.width * 0.5;\n var ry = element.rect.height * 0.5;\n return setAttributes(\n element,\n Object.assign(\n {\n cx: cx,\n cy: cy,\n rx: rx,\n ry: ry\n },\n element.styles\n )\n );\n };\n\n var IMAGE_FIT_STYLE = {\n contain: 'xMidYMid meet',\n cover: 'xMidYMid slice'\n };\n\n var updateImage = function updateImage(element, markup) {\n setAttributes(\n element,\n Object.assign({}, element.rect, element.styles, {\n preserveAspectRatio: IMAGE_FIT_STYLE[markup.fit] || 'none'\n })\n );\n };\n\n var TEXT_ANCHOR = {\n left: 'start',\n center: 'middle',\n right: 'end'\n };\n\n var updateText = function updateText(element, markup, size, scale) {\n var fontSize = getMarkupValue(markup.fontSize, size, scale);\n var fontFamily = markup.fontFamily || 'sans-serif';\n var fontWeight = markup.fontWeight || 'normal';\n var textAlign = TEXT_ANCHOR[markup.textAlign] || 'start';\n\n setAttributes(\n element,\n Object.assign({}, element.rect, 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\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\n var updateLine = function updateLine(element, markup, size, scale) {\n setAttributes(\n element,\n Object.assign({}, element.rect, element.styles, {\n fill: 'none'\n })\n );\n\n var line = element.childNodes[0];\n var begin = element.childNodes[1];\n var end = element.childNodes[2];\n\n var origin = element.rect;\n\n var 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 var v = vectorNormalize({\n x: target.x - origin.x,\n y: target.y - origin.y\n });\n\n var l = getMarkupValue(0.05, size, scale);\n\n if (markup.lineDecoration.indexOf('arrow-begin') !== -1) {\n var arrowBeginRotationPoint = vectorMultiply(v, l);\n var arrowBeginCenter = vectorAdd(origin, arrowBeginRotationPoint);\n var arrowBeginA = vectorRotate(origin, 2, arrowBeginCenter);\n var arrowBeginB = vectorRotate(origin, -2, arrowBeginCenter);\n\n setAttributes(begin, {\n style: 'display:block;',\n d: 'M'\n .concat(arrowBeginA.x, ',')\n .concat(arrowBeginA.y, ' L')\n .concat(origin.x, ',')\n .concat(origin.y, ' L')\n .concat(arrowBeginB.x, ',')\n .concat(arrowBeginB.y)\n });\n }\n\n if (markup.lineDecoration.indexOf('arrow-end') !== -1) {\n var arrowEndRotationPoint = vectorMultiply(v, -l);\n var arrowEndCenter = vectorAdd(target, arrowEndRotationPoint);\n var arrowEndA = vectorRotate(target, 2, arrowEndCenter);\n var arrowEndB = vectorRotate(target, -2, arrowEndCenter);\n\n setAttributes(end, {\n style: 'display:block;',\n d: 'M'\n .concat(arrowEndA.x, ',')\n .concat(arrowEndA.y, ' L')\n .concat(target.x, ',')\n .concat(target.y, ' L')\n .concat(arrowEndB.x, ',')\n .concat(arrowEndB.y)\n });\n }\n };\n\n var updatePath = function updatePath(element, markup, size, scale) {\n setAttributes(\n element,\n Object.assign({}, element.styles, {\n fill: 'none',\n d: pointsToPathShape(\n markup.points.map(function(point) {\n return {\n x: getMarkupValue(point.x, size, scale, 'width'),\n y: getMarkupValue(point.y, size, scale, 'height')\n };\n })\n )\n })\n );\n };\n\n var createShape = function createShape(node) {\n return function(markup) {\n return svg(node, { id: markup.id });\n };\n };\n\n var createImage = function createImage(markup) {\n var shape = svg('image', {\n id: markup.id,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round',\n opacity: '0'\n });\n\n shape.onload = function() {\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\n var createLine = function createLine(markup) {\n var shape = svg('g', {\n id: markup.id,\n 'stroke-linecap': 'round',\n 'stroke-linejoin': 'round'\n });\n\n var line = svg('line');\n shape.appendChild(line);\n\n var begin = svg('path');\n shape.appendChild(begin);\n\n var end = svg('path');\n shape.appendChild(end);\n\n return shape;\n };\n\n var 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\n var UPDATE_TYPE_ROUTES = {\n rect: updateRect,\n ellipse: updateEllipse,\n image: updateImage,\n text: updateText,\n path: updatePath,\n line: updateLine\n };\n\n var createMarkupByType = function createMarkupByType(type, markup) {\n return CREATE_TYPE_ROUTES[type](markup);\n };\n\n var updateMarkupByType = function updateMarkupByType(\n element,\n type,\n markup,\n size,\n scale\n ) {\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\n var MARKUP_RECT = [\n 'x',\n 'y',\n 'left',\n 'top',\n 'right',\n 'bottom',\n 'width',\n 'height'\n ];\n\n var toOptionalFraction = function toOptionalFraction(value) {\n return typeof value === 'string' && /%/.test(value)\n ? parseFloat(value) / 100\n : value;\n };\n\n // adds default markup properties, clones markup\n var prepareMarkup = function prepareMarkup(markup) {\n var _markup = _slicedToArray(markup, 2),\n type = _markup[0],\n props = _markup[1];\n\n var rect = props.points\n ? {}\n : MARKUP_RECT.reduce(function(prev, curr) {\n prev[curr] = toOptionalFraction(props[curr]);\n return prev;\n }, {});\n\n return [\n type,\n Object.assign(\n {\n zIndex: 0\n },\n props,\n rect\n )\n ];\n };\n\n var sortMarkupByZIndex = function 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\n var createMarkupView = function createMarkupView(_) {\n return _.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\n write: function write(_ref) {\n var root = _ref.root,\n props = _ref.props;\n\n if (!props.dirty) return;\n var crop = props.crop,\n resize = props.resize,\n markup = props.markup;\n\n var viewWidth = props.width;\n var viewHeight = props.height;\n\n var cropWidth = crop.width;\n var cropHeight = crop.height;\n\n if (resize) {\n var _size = resize.size;\n\n var outputWidth = _size && _size.width;\n var outputHeight = _size && _size.height;\n var outputFit = resize.mode;\n var outputUpscale = resize.upscale;\n\n if (outputWidth && !outputHeight) outputHeight = outputWidth;\n if (outputHeight && !outputWidth) outputWidth = outputHeight;\n\n var shouldUpscale =\n cropWidth < outputWidth && cropHeight < outputHeight;\n\n if (!shouldUpscale || (shouldUpscale && outputUpscale)) {\n var scalarWidth = outputWidth / cropWidth;\n var scalarHeight = outputHeight / cropHeight;\n\n if (outputFit === 'force') {\n cropWidth = outputWidth;\n cropHeight = outputHeight;\n } else {\n var 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 var 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 var scale = Math.min(viewWidth / cropWidth, viewHeight / cropHeight);\n\n // clear\n root.element.innerHTML = '';\n\n // get filter\n var 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(function(markup) {\n var _markup = _slicedToArray(markup, 2),\n type = _markup[0],\n settings = _markup[1];\n\n // create\n var 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 };\n\n var createVector$1 = function createVector(x, y) {\n return { x: x, y: y };\n };\n\n var vectorDot = function vectorDot(a, b) {\n return a.x * b.x + a.y * b.y;\n };\n\n var vectorSubtract = function vectorSubtract(a, b) {\n return createVector$1(a.x - b.x, a.y - b.y);\n };\n\n var vectorDistanceSquared = function vectorDistanceSquared(a, b) {\n return vectorDot(vectorSubtract(a, b), vectorSubtract(a, b));\n };\n\n var vectorDistance = function vectorDistance(a, b) {\n return Math.sqrt(vectorDistanceSquared(a, b));\n };\n\n var getOffsetPointOnEdge = function getOffsetPointOnEdge(length, rotation) {\n var a = length;\n\n var A = 1.5707963267948966;\n var B = rotation;\n var C = 1.5707963267948966 - rotation;\n\n var sinA = Math.sin(A);\n var sinB = Math.sin(B);\n var sinC = Math.sin(C);\n var cosC = Math.cos(C);\n var ratio = a / sinA;\n var b = ratio * sinB;\n var c = ratio * sinC;\n\n return createVector$1(cosC * b, cosC * c);\n };\n\n var getRotatedRectSize = function getRotatedRectSize(rect, rotation) {\n var w = rect.width;\n var h = rect.height;\n\n var hor = getOffsetPointOnEdge(w, rotation);\n var ver = getOffsetPointOnEdge(h, rotation);\n\n var tl = createVector$1(rect.x + Math.abs(hor.x), rect.y - Math.abs(hor.y));\n\n var tr = createVector$1(\n rect.x + rect.width + Math.abs(ver.y),\n rect.y + Math.abs(ver.x)\n );\n\n var 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\n var calculateCanvasSize = function calculateCanvasSize(\n image,\n canvasAspectRatio\n ) {\n var zoom =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n var imageAspectRatio = image.height / image.width;\n\n // determine actual pixels on x and y axis\n var canvasWidth = 1;\n var canvasHeight = canvasAspectRatio;\n var imgWidth = 1;\n var imgHeight = imageAspectRatio;\n if (imgHeight > canvasHeight) {\n imgHeight = canvasHeight;\n imgWidth = imgHeight / imageAspectRatio;\n }\n\n var scalar = Math.max(canvasWidth / imgWidth, canvasHeight / imgHeight);\n var width = image.width / (zoom * scalar * imgWidth);\n var height = width * canvasAspectRatio;\n\n return {\n width: width,\n height: height\n };\n };\n\n var getImageRectZoomFactor = function getImageRectZoomFactor(\n imageRect,\n cropRect,\n rotation,\n center\n ) {\n // calculate available space round image center position\n var cx = center.x > 0.5 ? 1 - center.x : center.x;\n var cy = center.y > 0.5 ? 1 - center.y : center.y;\n var imageWidth = cx * 2 * imageRect.width;\n var imageHeight = cy * 2 * imageRect.height;\n\n // calculate rotated crop rectangle size\n var 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\n var getCenteredCropRect = function getCenteredCropRect(\n container,\n aspectRatio\n ) {\n var width = container.width;\n var height = width * aspectRatio;\n if (height > container.height) {\n height = container.height;\n width = height / aspectRatio;\n }\n var x = (container.width - width) * 0.5;\n var y = (container.height - height) * 0.5;\n\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n };\n\n var getCurrentCropSize = function getCurrentCropSize(imageSize) {\n var crop =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var zoom = crop.zoom,\n rotation = crop.rotation,\n center = crop.center,\n aspectRatio = crop.aspectRatio;\n\n if (!aspectRatio) aspectRatio = imageSize.height / imageSize.width;\n\n var canvasSize = calculateCanvasSize(imageSize, aspectRatio, zoom);\n\n var canvasCenter = {\n x: canvasSize.width * 0.5,\n y: canvasSize.height * 0.5\n };\n\n var stage = {\n x: 0,\n y: 0,\n width: canvasSize.width,\n height: canvasSize.height,\n center: canvasCenter\n };\n\n var shouldLimit = typeof crop.scaleToFit === 'undefined' || crop.scaleToFit;\n\n var stageZoomFactor = getImageRectZoomFactor(\n imageSize,\n getCenteredCropRect(stage, aspectRatio),\n rotation,\n shouldLimit ? center : { x: 0.5, y: 0.5 }\n );\n\n var 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\n var 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\n var createBitmapView = function createBitmapView(_) {\n return _.utils.createView({\n name: 'image-bitmap',\n ignoreRect: true,\n mixins: { styles: ['scaleX', 'scaleY'] },\n create: function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.appendChild(props.image);\n }\n });\n };\n\n // shifts and rotates image\n var createImageCanvasWrapper = function createImageCanvasWrapper(_) {\n return _.utils.createView({\n name: 'image-canvas-wrapper',\n tag: 'div',\n ignoreRect: true,\n mixins: {\n apis: ['crop', 'width', 'height'],\n\n styles: [\n 'originX',\n 'originY',\n 'translateX',\n 'translateY',\n 'scaleX',\n 'scaleY',\n 'rotateZ'\n ],\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\n create: function create(_ref2) {\n var root = _ref2.root,\n props = _ref2.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: function write(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n var flip = props.crop.flip;\n var bitmap = root.ref.bitmap;\n bitmap.scaleX = flip.horizontal ? -1 : 1;\n bitmap.scaleY = flip.vertical ? -1 : 1;\n }\n });\n };\n\n // clips canvas to correct aspect ratio\n var createClipView = function createClipView(_) {\n return _.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\n styles: ['width', 'height', 'opacity'],\n animations: {\n opacity: { type: 'tween', duration: 250 }\n }\n },\n\n didWriteView: function didWriteView(_ref4) {\n var root = _ref4.root,\n props = _ref4.props;\n if (!props.background) return;\n root.element.style.backgroundColor = props.background;\n },\n create: function create(_ref5) {\n var root = _ref5.root,\n props = _ref5.props;\n\n root.ref.image = root.appendChildView(\n root.createChildView(\n createImageCanvasWrapper(_),\n Object.assign({}, props)\n )\n );\n\n root.ref.createMarkup = function() {\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 = function() {\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 var 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: function write(_ref6) {\n var root = _ref6.root,\n props = _ref6.props,\n shouldOptimize = _ref6.shouldOptimize;\n var crop = props.crop,\n markup = props.markup,\n resize = props.resize,\n dirty = props.dirty,\n width = props.width,\n height = props.height;\n\n root.ref.image.crop = crop;\n\n var stage = {\n x: 0,\n y: 0,\n width: width,\n height: height,\n center: {\n x: width * 0.5,\n y: height * 0.5\n }\n };\n\n var image = {\n width: root.ref.image.width,\n height: root.ref.image.height\n };\n\n var origin = {\n x: crop.center.x * image.width,\n y: crop.center.y * image.height\n };\n\n var translation = {\n x: stage.center.x - image.width * crop.center.x,\n y: stage.center.y - image.height * crop.center.y\n };\n\n var rotation = Math.PI * 2 + (crop.rotation % (Math.PI * 2));\n\n var cropAspectRatio = crop.aspectRatio || image.height / image.width;\n\n var shouldLimit =\n typeof crop.scaleToFit === 'undefined' || crop.scaleToFit;\n\n var stageZoomFactor = getImageRectZoomFactor(\n image,\n getCenteredCropRect(stage, cropAspectRatio),\n\n rotation,\n shouldLimit ? crop.center : { x: 0.5, y: 0.5 }\n );\n\n var 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 var 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 };\n\n var createImageView = function createImageView(_) {\n return _.utils.createView({\n name: 'image-preview',\n tag: 'div',\n ignoreRect: true,\n mixins: {\n apis: ['image', 'crop', 'markup', 'resize', 'dirty', 'background'],\n\n styles: ['translateY', 'scaleX', 'scaleY', 'opacity'],\n\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\n create: function create(_ref7) {\n var root = _ref7.root,\n props = _ref7.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: function write(_ref8) {\n var root = _ref8.root,\n props = _ref8.props,\n shouldOptimize = _ref8.shouldOptimize;\n var clip = root.ref.clip;\n var image = props.image,\n crop = props.crop,\n markup = props.markup,\n resize = props.resize,\n dirty = props.dirty;\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 var imageAspectRatio = image.height / image.width;\n var aspectRatio = crop.aspectRatio || imageAspectRatio;\n\n // calculate container size\n var containerWidth = root.rect.inner.width;\n var containerHeight = root.rect.inner.height;\n\n var fixedPreviewHeight = root.query('GET_IMAGE_PREVIEW_HEIGHT');\n var minPreviewHeight = root.query('GET_IMAGE_PREVIEW_MIN_HEIGHT');\n var maxPreviewHeight = root.query('GET_IMAGE_PREVIEW_MAX_HEIGHT');\n\n var panelAspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\n var 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 var clipHeight =\n fixedPreviewHeight !== null\n ? fixedPreviewHeight\n : Math.max(\n minPreviewHeight,\n Math.min(containerWidth * aspectRatio, maxPreviewHeight)\n );\n\n var 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 };\n\n var SVG_MASK =\n '';\n\n var SVGMaskUniqueId = 0;\n\n var createImageOverlayView = function createImageOverlayView(fpAPI) {\n return fpAPI.utils.createView({\n name: 'image-preview-overlay',\n tag: 'div',\n ignoreRect: true,\n create: function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n var mask = SVG_MASK;\n if (document.querySelector('base')) {\n var 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-'.concat(props.status)\n );\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 /**\n * Bitmap Worker\n */\n var BitmapWorker = function BitmapWorker() {\n self.onmessage = function(e) {\n createImageBitmap(e.data.message.file).then(function(bitmap) {\n self.postMessage({ id: e.data.id, message: bitmap }, [bitmap]);\n });\n };\n };\n\n /**\n * ColorMatrix Worker\n */\n var ColorMatrixWorker = function ColorMatrixWorker() {\n self.onmessage = function(e) {\n var imageData = e.data.message.imageData;\n var matrix = e.data.message.colorMatrix;\n\n var data = imageData.data;\n var l = data.length;\n\n var m11 = matrix[0];\n var m12 = matrix[1];\n var m13 = matrix[2];\n var m14 = matrix[3];\n var m15 = matrix[4];\n\n var m21 = matrix[5];\n var m22 = matrix[6];\n var m23 = matrix[7];\n var m24 = matrix[8];\n var m25 = matrix[9];\n\n var m31 = matrix[10];\n var m32 = matrix[11];\n var m33 = matrix[12];\n var m34 = matrix[13];\n var m35 = matrix[14];\n\n var m41 = matrix[15];\n var m42 = matrix[16];\n var m43 = matrix[17];\n var m44 = matrix[18];\n var m45 = matrix[19];\n\n var 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\n var getImageSize = function getImageSize(url, cb) {\n var image = new Image();\n image.onload = function() {\n var width = image.naturalWidth;\n var height = image.naturalHeight;\n image = null;\n cb(width, height);\n };\n image.src = url;\n };\n\n var transforms = {\n 1: function _() {\n return [1, 0, 0, 1, 0, 0];\n },\n 2: function _(width) {\n return [-1, 0, 0, 1, width, 0];\n },\n 3: function _(width, height) {\n return [-1, 0, 0, -1, width, height];\n },\n 4: function _(width, height) {\n return [1, 0, 0, -1, 0, height];\n },\n 5: function _() {\n return [0, 1, 1, 0, 0, 0];\n },\n 6: function _(width, height) {\n return [0, 1, -1, 0, height, 0];\n },\n 7: function _(width, height) {\n return [0, -1, -1, 0, height, width];\n },\n 8: function _(width) {\n return [0, -1, 1, 0, 0, width];\n }\n };\n\n var fixImageOrientation = function fixImageOrientation(\n ctx,\n width,\n height,\n orientation\n ) {\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\n var createPreviewImage = function createPreviewImage(\n data,\n width,\n height,\n orientation\n ) {\n // can't draw on half pixels\n width = Math.round(width);\n height = Math.round(height);\n\n // draw image\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n var ctx = canvas.getContext('2d');\n\n // if is rotated incorrectly swap width and height\n if (orientation >= 5 && orientation <= 8) {\n var _ref = [height, width];\n width = _ref[0];\n height = _ref[1];\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\n var isBitmap = function isBitmap(file) {\n return /^image/.test(file.type) && !/svg/.test(file.type);\n };\n\n var MAX_WIDTH = 10;\n var MAX_HEIGHT = 10;\n\n var calculateAverageColor = function calculateAverageColor(image) {\n var scalar = Math.min(MAX_WIDTH / image.width, MAX_HEIGHT / image.height);\n\n var canvas = document.createElement('canvas');\n var ctx = canvas.getContext('2d');\n var width = (canvas.width = Math.ceil(image.width * scalar));\n var height = (canvas.height = Math.ceil(image.height * scalar));\n ctx.drawImage(image, 0, 0, width, height);\n var data = null;\n try {\n data = ctx.getImageData(0, 0, width, height).data;\n } catch (e) {\n return null;\n }\n var l = data.length;\n\n var r = 0;\n var g = 0;\n var b = 0;\n var 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: r, g: g, b: b };\n };\n\n var averageColor = function averageColor(c, l) {\n return Math.floor(Math.sqrt(c / (l / 4)));\n };\n\n var cloneCanvas = function cloneCanvas(origin, target) {\n target = target || document.createElement('canvas');\n target.width = origin.width;\n target.height = origin.height;\n var ctx = target.getContext('2d');\n ctx.drawImage(origin, 0, 0);\n return target;\n };\n\n var cloneImageData = function cloneImageData(imageData) {\n var id;\n try {\n id = new ImageData(imageData.width, imageData.height);\n } catch (e) {\n var canvas = document.createElement('canvas');\n var 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\n var loadImage = function loadImage(url) {\n return new Promise(function(resolve, reject) {\n var img = new Image();\n img.crossOrigin = 'Anonymous';\n img.onload = function() {\n resolve(img);\n };\n img.onerror = function(e) {\n reject(e);\n };\n img.src = url;\n });\n };\n\n var createImageWrapperView = function createImageWrapperView(_) {\n // create overlay view\n var OverlayView = createImageOverlayView(_);\n\n var ImageView = createImageView(_);\n var createWorker = _.utils.createWorker;\n\n var applyFilter = function applyFilter(root, filter, target) {\n return new Promise(function(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 var 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 var worker = createWorker(ColorMatrixWorker);\n worker.post(\n {\n imageData: imageData,\n colorMatrix: filter\n },\n\n function(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\n var removeImageView = function 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 var shiftImage = function shiftImage(_ref) {\n var root = _ref.root;\n var 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 var pushImage = function pushImage(_ref2) {\n var root = _ref2.root,\n props = _ref2.props,\n image = _ref2.image;\n var id = props.id;\n var item = root.query('GET_ITEM', { id: id });\n if (!item) return;\n\n var crop = item.getMetadata('crop') || {\n center: {\n x: 0.5,\n y: 0.5\n },\n\n flip: {\n horizontal: false,\n vertical: false\n },\n\n zoom: 1,\n rotation: 0,\n aspectRatio: null\n };\n\n var background = root.query(\n 'GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR'\n );\n\n var markup;\n var resize;\n var 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 var imageView = root.appendChildView(\n root.createChildView(ImageView, {\n id: id,\n image: image,\n crop: crop,\n resize: resize,\n markup: markup,\n dirty: dirty,\n background: background,\n opacity: 0,\n scaleX: 1.15,\n scaleY: 1.15,\n translateY: 15\n }),\n\n root.childViews.length\n );\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(function() {\n root.dispatch('DID_IMAGE_PREVIEW_SHOW', { id: id });\n }, 250);\n };\n\n var updateImage = function updateImage(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n var item = root.query('GET_ITEM', { id: props.id });\n if (!item) return;\n var 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\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 var didUpdateItemMetadata = function didUpdateItemMetadata(_ref4) {\n var root = _ref4.root,\n props = _ref4.props,\n action = _ref4.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 var 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 var 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 var crop = item.getMetadata('crop');\n var 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 var _imageView = shiftImage({ root: root });\n pushImage({\n root: root,\n props: props,\n image: cloneCanvas(_imageView.image)\n });\n }\n // if not, we can update the current image\n else {\n updateImage({ root: root, props: props });\n }\n }\n };\n\n var canCreateImageBitmap = function 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 var userAgent = window.navigator.userAgent;\n var isFirefox = userAgent.match(/Firefox\\/([0-9]+)\\./);\n var 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 var didCreatePreviewContainer = function didCreatePreviewContainer(_ref5) {\n var root = _ref5.root,\n props = _ref5.props;\n var id = props.id;\n\n // we need to get the file data to determine the eventual image size\n var 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 var fileURL = URL.createObjectURL(item.file);\n\n // determine image size of this item\n getImageSize(fileURL, function(width, height) {\n // we can now scale the panel to the final size\n root.dispatch('DID_IMAGE_PREVIEW_CALCULATE_SIZE', {\n id: id,\n width: width,\n height: height\n });\n });\n };\n\n var drawPreview = function drawPreview(_ref6) {\n var root = _ref6.root,\n props = _ref6.props;\n var id = props.id;\n\n // we need to get the file data to determine the eventual image size\n var 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 var fileURL = URL.createObjectURL(item.file);\n\n // fallback\n var loadPreviewFallback = function loadPreviewFallback() {\n // let's scale the image in the main thread :(\n loadImage(fileURL).then(previewImageLoaded);\n };\n\n // image is now ready\n var previewImageLoaded = function 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 var exif = item.getMetadata('exif') || {};\n var orientation = exif.orientation || -1;\n\n // get width and height from action, and swap if orientation is incorrect\n var width = imageData.width,\n height = imageData.height;\n\n // if no width or height, just return early.\n if (!width || !height) return;\n\n if (orientation >= 5 && orientation <= 8) {\n var _ref7 = [height, width];\n width = _ref7[0];\n height = _ref7[1];\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 var 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 var zoomFactor = root.query('GET_IMAGE_PREVIEW_ZOOM_FACTOR');\n\n // imaeg scale factor\n var scaleFactor = zoomFactor * pixelDensityFactor;\n\n // calculate scaled preview image size\n var previewImageRatio = height / width;\n\n // calculate image preview height and width\n var previewContainerWidth = root.rect.element.width;\n var previewContainerHeight = root.rect.element.height;\n\n var imageWidth = previewContainerWidth;\n var 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 var previewImage = createPreviewImage(\n imageData,\n imageWidth,\n imageHeight,\n orientation\n );\n\n // done\n var done = function done() {\n // calculate average image color, disabled for now\n var 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: root, props: props, image: previewImage });\n };\n\n // apply filter\n var 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 var worker = createWorker(BitmapWorker);\n\n worker.post(\n {\n file: item.file\n },\n\n function(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 var didDrawPreview = function didDrawPreview(_ref8) {\n var root = _ref8.root;\n // get last added image\n var 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 var restoreOverlay = function restoreOverlay(_ref9) {\n var root = _ref9.root;\n root.ref.overlayShadow.opacity = 1;\n root.ref.overlayError.opacity = 0;\n root.ref.overlaySuccess.opacity = 0;\n };\n\n var didThrowError = function didThrowError(_ref10) {\n var root = _ref10.root;\n root.ref.overlayShadow.opacity = 0.25;\n root.ref.overlayError.opacity = 1;\n };\n\n var didCompleteProcessing = function didCompleteProcessing(_ref11) {\n var root = _ref11.root;\n root.ref.overlayShadow.opacity = 0.25;\n root.ref.overlaySuccess.opacity = 1;\n };\n\n /**\n * Constructor\n */\n var create = function create(_ref12) {\n var root = _ref12.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: create,\n styles: ['height'],\n apis: ['height'],\n destroy: function destroy(_ref13) {\n var root = _ref13.root;\n // we resize the image so memory on iOS 12 is released more quickly (it seems)\n root.ref.images.forEach(function(imageView) {\n imageView.image.width = 1;\n imageView.image.height = 1;\n });\n },\n didWriteView: function didWriteView(_ref14) {\n var root = _ref14.root;\n root.ref.images.forEach(function(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\n function(_ref15) {\n var root = _ref15.root;\n // views on death row\n var viewsToRemove = root.ref.imageViewBin.filter(function(imageView) {\n return imageView.opacity === 0;\n });\n\n // views to retain\n root.ref.imageViewBin = root.ref.imageViewBin.filter(function(\n imageView\n ) {\n return imageView.opacity > 0;\n });\n\n // remove these views\n viewsToRemove.forEach(function(imageView) {\n return removeImageView(root, imageView);\n });\n viewsToRemove.length = 0;\n }\n )\n });\n };\n\n /**\n * Image Preview Plugin\n */\n var plugin = function plugin(fpAPI) {\n var addFilter = fpAPI.addFilter,\n utils = fpAPI.utils;\n var Type = utils.Type,\n createRoute = utils.createRoute,\n isFile = utils.isFile;\n\n // imagePreviewView\n var imagePreviewView = createImageWrapperView(fpAPI);\n\n // called for each view that is created right after the 'create' method\n addFilter('CREATE_VIEW', function(viewAPI) {\n // get reference to created view\n var is = viewAPI.is,\n view = viewAPI.view,\n query = viewAPI.query;\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 var didLoadItem = function didLoadItem(_ref) {\n var root = _ref.root,\n props = _ref.props;\n var id = props.id;\n var 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 var 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 var supportsCreateImageBitmap = 'createImageBitmap' in (window || {});\n var maxPreviewFileSize = query('GET_IMAGE_PREVIEW_MAX_FILE_SIZE');\n if (\n !supportsCreateImageBitmap &&\n maxPreviewFileSize &&\n file.size > maxPreviewFileSize\n )\n return;\n\n // set preview view\n root.ref.imagePreview = view.appendChildView(\n view.createChildView(imagePreviewView, { id: id })\n );\n\n // update height if is fixed\n var 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 var queue =\n !supportsCreateImageBitmap &&\n file.size > query('GET_IMAGE_PREVIEW_MAX_INSTANT_PREVIEW_FILE_SIZE');\n root.dispatch('DID_IMAGE_PREVIEW_CONTAINER_CREATE', { id: id }, queue);\n };\n\n var rescaleItem = function rescaleItem(root, props) {\n if (!root.ref.imagePreview) return;\n var id = props.id;\n\n // get item\n var item = root.query('GET_ITEM', { id: id });\n if (!item) return;\n\n // if is fixed height or panel has aspect ratio, exit here, height has already been defined\n var panelAspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\n var itemPanelAspectRatio = root.query('GET_ITEM_PANEL_ASPECT_RATIO');\n var fixedHeight = root.query('GET_IMAGE_PREVIEW_HEIGHT');\n if (panelAspectRatio || itemPanelAspectRatio || fixedHeight) return;\n\n // no data!\n var _root$ref = root.ref,\n imageWidth = _root$ref.imageWidth,\n imageHeight = _root$ref.imageHeight;\n if (!imageWidth || !imageHeight) return;\n\n // get height min and max\n var minPreviewHeight = root.query('GET_IMAGE_PREVIEW_MIN_HEIGHT');\n var maxPreviewHeight = root.query('GET_IMAGE_PREVIEW_MAX_HEIGHT');\n\n // orientation info\n var exif = item.getMetadata('exif') || {};\n var 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 var _ref2 = [imageHeight, imageWidth];\n imageWidth = _ref2[0];\n imageHeight = _ref2[1];\n }\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 var scalar = 2048 / imageWidth;\n imageWidth *= scalar;\n imageHeight *= scalar;\n }\n\n // image aspect ratio\n var imageAspectRatio = imageHeight / imageWidth;\n\n // we need the item to get to the crop size\n var previewAspectRatio =\n (item.getMetadata('crop') || {}).aspectRatio || imageAspectRatio;\n\n // preview height range\n var previewHeightMax = Math.max(\n minPreviewHeight,\n Math.min(imageHeight, maxPreviewHeight)\n );\n\n var itemWidth = root.rect.element.width;\n var 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 var didResizeView = function didResizeView(_ref3) {\n var root = _ref3.root;\n // actions in next write operation\n root.ref.shouldRescale = true;\n };\n\n var didUpdateItemMetadata = function didUpdateItemMetadata(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n if (action.change.key !== 'crop') return;\n\n // actions in next write operation\n root.ref.shouldRescale = true;\n };\n\n var didCalculatePreviewSize = function didCalculatePreviewSize(_ref5) {\n var root = _ref5.root,\n action = _ref5.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\n function(_ref6) {\n var root = _ref6.root,\n props = _ref6.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(function() {\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(function() {\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: [\n function() {\n return true;\n },\n Type.FUNCTION\n ],\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: [\n function() {\n return true;\n },\n Type.FUNCTION\n ]\n }\n };\n };\n\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\n var isBrowser =\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\n if (isBrowser) {\n document.dispatchEvent(\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\n );\n }\n\n return plugin;\n});\n","/*!\n * FilePondPluginFileEncode 2.1.10\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n\n(function(global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? (module.exports = factory())\n : typeof define === 'function' && define.amd\n ? define(factory)\n : ((global = global || self),\n (global.FilePondPluginFileEncode = factory()));\n})(this, function() {\n 'use strict';\n\n var DataURIWorker = function DataURIWorker() {\n // route messages\n self.onmessage = function(e) {\n convert(e.data.message, function(response) {\n self.postMessage({ id: e.data.id, message: response });\n });\n };\n\n // convert file to data uri\n var convert = function convert(options, cb) {\n var file = options.file;\n\n var reader = new FileReader();\n reader.onloadend = function() {\n cb(reader.result.replace('data:', '').replace(/^.+,/, ''));\n };\n reader.readAsDataURL(file);\n };\n };\n\n var plugin = function plugin(_ref) {\n var addFilter = _ref.addFilter,\n utils = _ref.utils;\n\n // get quick reference to Type utils\n var Type = utils.Type,\n createWorker = utils.createWorker,\n createRoute = utils.createRoute,\n isFile = utils.isFile;\n\n var encode = function encode(_ref2) {\n var name = _ref2.name,\n file = _ref2.file;\n return new Promise(function(resolve) {\n var worker = createWorker(DataURIWorker);\n worker.post({ file: file }, function(data) {\n resolve({ name: name, data: data });\n worker.terminate();\n });\n });\n };\n\n // holds base64 strings till can be moved to item\n var base64Cache = [];\n addFilter('DID_CREATE_ITEM', function(item, _ref3) {\n var query = _ref3.query;\n\n if (!query('GET_ALLOW_FILE_ENCODE')) return;\n\n item.extend('getFileEncodeBase64String', function() {\n return base64Cache[item.id] && base64Cache[item.id].data;\n });\n item.extend('getFileEncodeDataURL', function() {\n return 'data:'\n .concat(item.fileType, ';base64,')\n .concat(base64Cache[item.id].data);\n });\n });\n\n addFilter('SHOULD_PREPARE_OUTPUT', function(shouldPrepareOutput, _ref4) {\n var query = _ref4.query;\n return new Promise(function(resolve) {\n resolve(query('GET_ALLOW_FILE_ENCODE'));\n });\n });\n\n addFilter('COMPLETE_PREPARE_OUTPUT', function(file, _ref5) {\n var item = _ref5.item,\n query = _ref5.query;\n return new Promise(function(resolve) {\n // if it's not a file or a list of files, continue\n if (\n !query('GET_ALLOW_FILE_ENCODE') ||\n (!isFile(file) && !Array.isArray(file))\n ) {\n return resolve(file);\n }\n\n // store metadata settings for this cache\n base64Cache[item.id] = {\n metadata: item.getMetadata(),\n data: null\n };\n\n // wait for all file items to be encoded\n Promise.all(\n (file instanceof Blob ? [{ name: null, file: file }] : file).map(\n encode\n )\n ).then(function(dataItems) {\n base64Cache[item.id].data =\n file instanceof Blob ? dataItems[0].data : dataItems;\n resolve(file);\n });\n });\n });\n\n // called for each view that is created right after the 'create' method\n addFilter('CREATE_VIEW', function(viewAPI) {\n // get reference to created view\n var is = viewAPI.is,\n view = viewAPI.view,\n query = viewAPI.query;\n\n // only hook up to item view\n if (!is('file-wrapper') || !query('GET_ALLOW_FILE_ENCODE')) {\n return;\n }\n\n view.registerWriter(\n createRoute({\n DID_PREPARE_OUTPUT: function DID_PREPARE_OUTPUT(_ref6) {\n var root = _ref6.root,\n action = _ref6.action;\n\n // only do this if is not uploading async\n if (query('IS_ASYNC')) {\n return;\n }\n\n var item = query('GET_ITEM', action.id);\n if (!item) return;\n\n // extract base64 string\n var cache = base64Cache[item.id];\n var metadata = cache.metadata;\n var data = cache.data;\n\n // create JSON string from encoded data\n var value = JSON.stringify({\n id: item.id,\n name: item.file.name,\n type: item.file.type,\n size: item.file.size,\n metadata: metadata,\n data: data\n });\n\n // for filepond < 4.13.0\n if (root.ref.data) {\n root.ref.data.value = value;\n }\n // newer versions\n else {\n root.dispatch('DID_DEFINE_VALUE', {\n id: item.id,\n value: value\n });\n }\n },\n DID_REMOVE_ITEM: function DID_REMOVE_ITEM(_ref7) {\n var action = _ref7.action;\n var item = query('GET_ITEM', action.id);\n if (!item) return;\n delete base64Cache[item.id];\n }\n })\n );\n });\n\n return {\n options: {\n // Enable or disable file encoding\n allowFileEncode: [true, Type.BOOLEAN]\n }\n };\n };\n\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\n var isBrowser =\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\n if (isBrowser) {\n document.dispatchEvent(\n new CustomEvent('FilePond:pluginloaded', { detail: plugin })\n );\n }\n\n return plugin;\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('file-pond',{ref:\"pond\",attrs:{\"name\":\"test\",\"label-idle\":\"Arrastra tus archivos aquí...\",\"allow-multiple\":_vm.multiple},on:{\"addfile\":_vm.handleUpload}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n \r\n \r\n
\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocUpload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DocUpload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./DocUpload.vue?vue&type=template&id=18b9cdb0&\"\nimport script from \"./DocUpload.vue?vue&type=script&lang=js&\"\nexport * from \"./DocUpload.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}