{"version":3,"sources":["webpack:///./node_modules/core-js/internals/to-index.js","webpack:///./node_modules/core-js/modules/web.dom-exception.constructor.js","webpack:///./node_modules/core-js/modules/es.string.split.js","webpack:///./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack:///./node_modules/core-js/internals/array-copy-within.js","webpack:///./node_modules/vue-filepond/dist/vue-filepond.js","webpack:///./node_modules/core-js/modules/es.typed-array.subarray.js","webpack:///./node_modules/core-js/internals/to-offset.js","webpack:///./node_modules/core-js/modules/es.string.anchor.js","webpack:///./node_modules/filepond-plugin-file-validate-type/dist/filepond-plugin-file-validate-type.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-last-index.js","webpack:///./node_modules/core-js/modules/es.typed-array.sort.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack:///./node_modules/core-js/modules/es.typed-array.slice.js","webpack:///./node_modules/core-js/modules/es.math.sign.js","webpack:///./node_modules/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.js","webpack:///./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack:///./node_modules/filepond-plugin-image-resize/dist/filepond-plugin-image-resize.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-index.js","webpack:///./node_modules/filepond-plugin-file-validate-size/dist/filepond-plugin-file-validate-size.js","webpack:///./node_modules/core-js/modules/es.typed-array.set.js","webpack:///./node_modules/core-js/modules/es.array.unshift.js","webpack:///./node_modules/core-js/modules/es.typed-array.map.js","webpack:///./node_modules/filepond-plugin-media-preview/dist/filepond-plugin-media-preview.js","webpack:///./node_modules/core-js/modules/es.string.trim.js","webpack:///./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack:///./node_modules/core-js/modules/es.string.sub.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.join.js","webpack:///./node_modules/core-js/modules/es.typed-array.iterator.js","webpack:///./node_modules/core-js/internals/array-buffer.js","webpack:///./node_modules/core-js/modules/es.typed-array.some.js","webpack:///./src/components/FileUpload.vue","webpack:///./src/services/doka/doka.esm.min.js","webpack:///src/components/FileUpload.vue","webpack:///./src/components/FileUpload.vue?d105","webpack:///./src/components/FileUpload.vue?f7ba","webpack:///./node_modules/core-js/modules/es.math.log10.js","webpack:///./node_modules/core-js/modules/es.object.get-own-property-names.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-string.js","webpack:///./node_modules/core-js/modules/es.typed-array.fill.js","webpack:///./node_modules/core-js/internals/typed-array-constructor.js","webpack:///./node_modules/core-js/internals/ieee754.js","webpack:///./node_modules/core-js/internals/try-node-require.js","webpack:///./node_modules/core-js/modules/web.atob.js","webpack:///./node_modules/core-js/modules/es.typed-array.includes.js","webpack:///./node_modules/core-js/internals/math-log10.js","webpack:///./node_modules/core-js/modules/es.typed-array.uint8-clamped-array.js","webpack:///./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack:///./node_modules/core-js/modules/web.dom-exception.to-string-tag.js","webpack:///./node_modules/core-js/modules/es.typed-array.at.js","webpack:///./node_modules/filepond-plugin-image-crop/dist/filepond-plugin-image-crop.js","webpack:///./node_modules/core-js/modules/es.typed-array.find-last.js","webpack:///./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack:///./node_modules/filepond-plugin-image-transform/dist/filepond-plugin-image-transform.js","webpack:///./node_modules/core-js/internals/typed-array-from.js","webpack:///./node_modules/core-js/modules/es.array.join.js","webpack:///./node_modules/core-js/internals/array-iteration-from-last.js","webpack:///./node_modules/core-js/modules/es.typed-array.every.js","webpack:///./node_modules/core-js/internals/error-to-string.js","webpack:///./node_modules/core-js/modules/es.array-buffer.slice.js","webpack:///./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack:///./node_modules/core-js/internals/typed-array-species-constructor.js","webpack:///./node_modules/core-js/modules/web.dom-exception.stack.js","webpack:///./node_modules/core-js/internals/base64-map.js","webpack:///./node_modules/core-js/internals/is-big-int-array.js","webpack:///./node_modules/filepond/dist/filepond.js","webpack:///./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack:///./node_modules/core-js/modules/es.typed-array.filter.js","webpack:///./node_modules/core-js/internals/string-trim-forced.js","webpack:///./node_modules/core-js/modules/es.typed-array.reduce.js","webpack:///./node_modules/core-js/modules/es.typed-array.reverse.js","webpack:///./node_modules/core-js/internals/dom-exception-constants.js","webpack:///./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack:///./node_modules/core-js/modules/es.typed-array.find.js","webpack:///./node_modules/core-js/modules/es.typed-array.for-each.js","webpack:///./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack:///./src/components/FileUpload.vue?b8ba","webpack:///./node_modules/core-js/internals/array-last-index-of.js","webpack:///./node_modules/core-js/modules/es.typed-array.index-of.js","webpack:///./node_modules/core-js/internals/array-buffer-view-core.js","webpack:///./node_modules/core-js/internals/to-big-int.js","webpack:///./node_modules/core-js/internals/math-sign.js","webpack:///./node_modules/core-js/internals/to-positive-integer.js","webpack:///./node_modules/filepond-plugin-image-edit/dist/filepond-plugin-image-edit.js"],"names":["toIntegerOrInfinity","toLength","$RangeError","RangeError","module","exports","it","undefined","number","length","$","tryNodeRequire","getBuiltIn","fails","create","createPropertyDescriptor","defineProperty","f","defineBuiltIn","defineBuiltInAccessor","hasOwn","anInstance","anObject","errorToString","normalizeStringArgument","DOMExceptionConstants","clearErrorStack","InternalStateModule","DESCRIPTORS","IS_PURE","DOM_EXCEPTION","DATA_CLONE_ERR","Error","NativeDOMException","MessageChannel","port1","postMessage","WeakMap","error","name","code","constructor","NativeDOMExceptionPrototype","prototype","ErrorPrototype","setInternalState","set","getInternalState","getterFor","HAS_STACK","codeFor","m","c","$DOMException","this","DOMExceptionPrototype","argumentsLength","arguments","message","type","stack","createGetterDescriptor","get","enumerable","configurable","key","INCORRECT_CONSTRUCTOR","INCORRECT_TO_STRING","toString","String","INCORRECT_CODE","MISSED_CONSTANTS","FORCED_CONSTRUCTOR","global","forced","DOMException","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constant","constantName","s","descriptor","apply","call","uncurryThis","fixRegExpWellKnownSymbolLogic","isNullOrUndefined","isRegExp","requireObjectCoercible","speciesConstructor","advanceStringIndex","getMethod","arraySlice","callRegExpExec","regexpExec","stickyHelpers","UNSUPPORTED_Y","MAX_UINT32","min","Math","$push","push","exec","stringSlice","slice","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","re","originalExec","result","split","SPLIT","nativeSplit","maybeCallNative","internalSplit","separator","limit","string","lim","match","lastIndex","lastLength","output","flags","ignoreCase","multiline","unicode","sticky","lastLastIndex","separatorCopy","RegExp","source","index","O","splitter","rx","S","res","done","value","C","unicodeMatching","p","q","A","e","z","i","arrayFromConstructorAndList","typedArraySpeciesConstructor","instance","list","toObject","toAbsoluteIndex","lengthOfArrayLike","deletePropertyOrThrow","copyWithin","target","start","len","to","from","end","count","inc","factory","globalThis","self","_exports","_vue","_filepond","_interopRequireDefault","obj","__esModule","default","Object","setOptions","filteredComponentMethods","isSupported","supported","getNativeConstructorFromType","boolean","Boolean","array","Array","function","Function","int","Number","serverapi","object","props","events","watch","instances","globalOptions","options","assign","forEach","_default","registerPlugin","_loop","prop","test","OptionTypes","_pond","component","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","$options","propsData","keys","filter","includes","destroyed","_this2","detached","offsetParent","mutationHandler","mutations","observer","removedNodes","removedNode","contains","disconnect","MutationObserver","observe","document","documentElement","childList","subtree","destroy","indexOf","splice","ArrayBufferViewCore","aTypedArray","exportTypedArrayMethod","begin","beginIndex","buffer","byteOffset","BYTES_PER_ELEMENT","toPositiveInteger","BYTES","offset","createHTML","forcedStringHTMLMethod","proto","anchor","plugin","_ref","addFilter","utils","Type","isString","replaceInString","guesstimateMimeType","getExtensionFromFilename","getFilenameFromURL","mimeTypeMatchesWildCard","mimeType","wildcard","mimeTypeGroup","pop","wildcardGroup","isValidMimeType","acceptedTypes","userInputType","some","acceptedType","getItemType","item","filename","extension","validateFile","typeDetector","Promise","resolve","reject","then","detectedType","catch","applyMimeTypeMap","map","acceptedFileType","file","_ref2","query","_ref3","validationResult","handleRejection","acceptedFileTypesMapped","label","acceptedFileTypesMapped_unique","status","main","sub","allTypes","join","allButLastType","lastType","allowFileTypeValidation","BOOLEAN","ARRAY","labelFileTypeNotAllowed","STRING","fileValidateTypeLabelExpectedTypes","fileValidateTypeLabelExpectedTypesMap","OBJECT","fileValidateTypeDetectType","FUNCTION","isBrowser","window","dispatchEvent","CustomEvent","detail","$findLastIndex","findLastIndex","predicate","aCallable","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","Uint16Array","nativeSort","sort","ACCEPT_INCORRECT_ARGUMENTS","STABLE_SORT","mod","expected","a","b","getSortCompare","comparefn","x","y","$reduceRight","right","callbackfn","FORCED","Int8Array","sign","stat","isPreviewableImage","_AwaitValue","wrapped","_AsyncGenerator","gen","front","back","send","arg","request","next","resume","wrappedAwait","settle","err","_invoke","return","Symbol","asyncIterator","throw","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","isArray","_arr","_n","_d","_e","_s","_i","iterator","TypeError","vectorMultiply","v","amount","createVector","vectorAdd","vectorNormalize","l","sqrt","vectorRotate","radians","origin","cos","sin","t","getMarkupValue","size","scalar","axis","parseFloat","width","height","getMarkupStyles","markup","scale","lineStyle","borderStyle","fill","backgroundColor","fontColor","stroke","borderColor","lineColor","strokeWidth","borderWidth","lineWidth","lineCap","lineJoin","dashes","opacity","isDefined","getMarkupRect","rect","left","top","bottom","pointsToPathShape","points","point","setAttributes","element","attr","setAttribute","ns","svg","tag","createElementNS","updateRect","styles","updateEllipse","cx","cy","ry","IMAGE_FIT_STYLE","contain","cover","updateImage","preserveAspectRatio","fit","TEXT_ANCHOR","center","updateText","fontSize","fontFamily","fontWeight","textAlign","text","textContent","updateLine","line","childNodes","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","_","createView","ignoreRect","mixins","apis","write","root","dirty","crop","resize","viewWidth","viewHeight","cropWidth","cropHeight","_size","outputWidth","outputHeight","outputFit","mode","outputUpscale","upscale","shouldUpscale","scalarWidth","scalarHeight","max","innerHTML","markupFilter","settings","createVector$1","vectorDot","vectorSubtract","vectorDistanceSquared","vectorDistance","getOffsetPointOnEdge","rotation","B","sinA","sinB","sinC","cosC","ratio","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","ref","bitmap","appendChildView","createChildView","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","URL","location","href","replace","hash","classList","add","BitmapWorker","onmessage","createImageBitmap","data","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","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","Uint8ClampedArray","loadImage","img","crossOrigin","onerror","createImageWrapperView","OverlayView","ImageView","createWorker","applyFilter","putImageData","worker","post","response","terminate","removeImageView","_destroy","shiftImage","images","shift","imageViewBin","pushImage","getMetadata","childViews","setTimeout","dispatch","didUpdateItemMetadata","action","change","_imageView","canCreateImageBitmap","userAgent","navigator","isFirefox","firefoxVersion","parseInt","didCreatePreviewContainer","fileURL","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","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","imagePreviewFilterItem","imagePreviewHeight","INT","imagePreviewMinHeight","imagePreviewMaxHeight","imagePreviewMaxFileSize","imagePreviewZoomFactor","imagePreviewUpscale","imagePreviewMaxInstantPreviewFileSize","imagePreviewTransparencyIndicator","imagePreviewCalculateAverageImageColor","imagePreviewMarkupShow","imagePreviewMarkupFilter","$lastIndexOf","searchElement","isImage","targetWidth","targetHeight","allowImageResize","imageResizeMode","imageResizeUpscale","imageResizeTargetWidth","imageResizeTargetHeight","$findIndex","findIndex","toNaturalFileSize","sizeMax","sizeMin","fileFilter","filesize","totalSizeMax","currentTotalSize","total","fileSize","allowFileSizeValidation","maxFileSize","minFileSize","maxTotalFileSize","fileValidateSizeFilter","labelMinFileSizeExceeded","labelMinFileSize","labelMaxFileSizeExceeded","labelMaxFileSize","labelMaxTotalFileSizeExceeded","labelMaxTotalFileSize","toOffset","toIndexedObject","Int8ArrayPrototype","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","0","TO_OBJECT_BUG","NATIVE_ARRAY_BUFFER_VIEWS","arrayLike","setArrayLength","doesNotExceedSafeInteger","INCORRECT_RESULT","unshift","SILENT_ON_NON_WRITABLE_LENGTH","writable","arity","argCount","k","j","$map","mapfn","isPreviewableVideo","isPreviewableAudio","AudioPlayer","mediaEl","audioElems","onplayhead","timelineWidth","timeline","offsetWidth","playhead","moveplayheadFn","moveplayhead","bind","registerListeners","addEventListener","timeUpdate","timelineClicked","button","play","mouseDown","mouseUp","paused","pause","toggle","playPercent","currentTime","marginLeft","event","newMargLeft","clientX","getPosition","clickPercent","removeEventListener","el","getBoundingClientRect","createMediaView","tagName","media","docfrag","createDocumentFragment","audio","DID_MEDIA_PREVIEW_LOAD","webkitURL","blob","Blob","mock","factor","videoWidth","videoHeight","createMediaWrapperView","DID_MEDIA_PREVIEW_CONTAINER_CREATE","mediaWrapperView","allowVideoPreview","allowAudioPreview","mediaPreview","$trim","trim","forcedStringTrimMethod","ArrayBuffer","DataView","createTypedArrayConstructor","init","$join","ArrayIterators","wellKnownSymbol","ITERATOR","Uint8Array","arrayValues","values","arrayKeys","arrayEntries","entries","TypedArrayPrototype","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","NATIVE_ARRAY_BUFFER","FunctionName","createNonEnumerableProperty","defineBuiltIns","toIndex","IEEE754","getPrototypeOf","setPrototypeOf","getOwnPropertyNames","arrayFill","setToStringTag","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","ARRAY_BUFFER","DATA_VIEW","PROTOTYPE","WRONG_LENGTH","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","ObjectPrototype","reverse","packIEEE754","pack","unpackIEEE754","unpack","packInt8","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","Constructor","isLittleEndian","intIndex","store","byteLength","bytes","conversion","INCORRECT_ARRAY_BUFFER_NAME","NaN","testView","$setInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","$some","_vm","_c","_self","types","serverConfig","maxSize","doka","disableEdit","filterTransform","maxFiles","imageCropAspectRatio","on","updateHandler","onRemove","onProcessFilesFinish","hasError","staticClass","errorMessages","errorLimitFile","staticRenderFns","_typeof","_defineProperty","_objectSpread","n","getOwnPropertySymbols","getOwnPropertyDescriptor","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","o","isNode","HTMLElement","insertBefore","parentNode","insertAfter","nextSibling","isObject","createStore","u","getState","processActionQueue","processDispatchQueue","forin","hasOwnProperty","createObject","getAttribute","hasAttribute","svgElements","isSVGElement","children","removeChild","getViewRect","outer","isRectIgnored","expandRect","calculateRectSize","marginBottom","marginRight","isNumber","thereYet","spring","delay","interpolate","onupdate","oncomplete","resting","position","easeInOutQuad","tween","easing","animator","createAnimator","addGetSet","getter","setter","mixinConfig","viewProps","viewInternalAPI","viewExternalAPI","addEvent","removeEvent","listeners","fn","off","defaults","rotateX","rotateY","propsHaveChanged","applyStyles","perspective","nodeName","elementCurrentStyle","cssText","Mixins","layoutCalculated","paddingTop","marginTop","offsetLeft","offsetTop","offsetHeight","scrollTop","IS_BROWSER","testElement","getChildCount","attributes","read","filterFrameActionsForChild","didCreateView","E","T","shouldUpdateChildViews","R","I","ignoreRectUpdate","getComputedStyle","M","L","P","linkView","unlinkView","registerReader","registerDestroyer","invalidateLayout","G","_read","D","_write","actions","timestamp","viewState","U","createPainter","readers","writers","performance","now","clearTimeout","cancelAnimationFrame","isEmpty","toArray","isBoolean","toBoolean","toNumber","toInt","toFloat","isInt","isFinite","toBytes","isFunction","toFunctionReference","isNull","getType","replaceSingleQuotes","conversionTable","float","JSON","parse","convertTo","getValueByType","createOption","createOptions","resetState","activeView","markupToolValues","rootRect","stageOffset","zoomTimeoutId","instantUpdate","filePromise","fileLoader","instructions","color","filterName","filterValue","colorValues","colorMatrices","aspectRatioLocked","aspectRatioPrevious","rectangle","isRotating","isDirty","limitToImageBounds","draft","createInitialState","noImageTimeout","fromCamels","toLowerCase","createOptionAPI","toUpperCase","createOptionActions","prevValue","createOptionQueries","getUniqueId","random","arrayRemove","fire","onOnce","NUMBER","FILE","testResult","isIOS","platform","maxTouchPoints","MSStream","getOptions","defaultOptions","setOption","correctDeprecatedOption","storageName","maxImagePreviewWidth","maxImagePreviewHeight","imagePreviewScaleMode","allowPreviewFitToView","allowButtonCancel","allowButtonConfirm","allowButtonReset","allowDropFiles","allowBrowseFiles","allowAutoClose","allowAutoDestroy","util","initialState","outputData","outputFile","outputCorrectImageExifOrientation","outputStripImageHead","outputType","outputQuality","outputCanvasBackgroundColor","outputCanvasMemoryLimit","outputCanvasSyncTarget","filters","original","chrome","fade","mono","noir","cropShowSize","cropZoomTimeout","cropMask","cropMaskInset","cropAllowResizeRect","cropAllowImageTurnLeft","cropAllowImageTurnRight","cropAllowImageFlipHorizontal","cropAllowImageFlipVertical","cropAllowToggleLimit","cropLimitToImageBounds","cropAllowInstructionZoom","cropAllowRotate","cropResizeMatchImageAspectRatio","cropResizeKeyCodes","cropResizeScrollRectOnly","cropAspectRatioOptions","cropMinImageWidth","cropMinImageHeight","colorBrightness","colorBrightnessRange","colorContrast","colorContrastRange","colorExposure","colorExposureRange","colorSaturation","colorSaturationRange","markupUtil","markupAllowAddMarkup","markupAllowCustomColor","markupDrawDistance","beforeAddMarkup","beforeRemoveMarkup","onselectmarkup","onremovemarkup","onaddmarkup","markupColor","markupColorOptions","markupFontSize","markupFontSizeOptions","markupFontFamily","markupFontFamilyOptions","markupShapeStyle","markupShapeStyleOptions","markupLineStyle","markupLineStyleOptions","markupLineDecoration","markupLineDecorationOptions","stickers","afterUpdateStickerItem","beforeReset","beforeLoadImage","beforeCreateBlob","afterCreateBlob","afterCreateOutput","onconfirm","oncancel","onclose","onloadstart","onloaderror","oninit","onready","ondestroy","labelButtonReset","labelButtonCancel","labelButtonConfirm","labelButtonUtilCrop","labelButtonUtilResize","labelButtonUtilFilter","labelButtonUtilColor","labelButtonUtilMarkup","labelButtonUtilSticker","labelStatusMissingWebGL","labelStatusAwaitingImage","labelStatusLoadImageError","labelStatusLoadingImage","labelStatusProcessingImage","labelColorBrightness","labelColorContrast","labelColorExposure","labelColorSaturation","labelMarkupTypeRectangle","labelMarkupTypeEllipse","labelMarkupTypeText","labelMarkupTypeLine","labelMarkupSelectFontSize","labelMarkupSelectFontFamily","labelMarkupSelectLineDecoration","labelMarkupSelectLineStyle","labelMarkupSelectShapeStyle","labelMarkupRemoveShape","labelMarkupToolSelect","labelMarkupToolDraw","labelMarkupToolLine","labelMarkupToolText","labelMarkupToolRect","labelMarkupToolEllipse","labelResizeWidth","labelResizeHeight","labelResizeApplyChanges","labelCropInstructionZoom","labelButtonCropZoom","labelButtonCropRotateLeft","labelButtonCropRotateRight","labelButtonCropRotateCenter","labelButtonCropFlipHorizontal","labelButtonCropFlipVertical","labelButtonCropAspectRatio","labelButtonCropToggleLimit","labelButtonCropToggleLimitEnable","labelButtonCropToggleLimitDisable","pointerEventsPolyfillScope","styleCropCorner","styleFullscreenSafeArea","styleLayoutMode","roundFloat","toFixed","vectorEqual","roundVector","vectorAngleBetween","atan2","vectorLimit","rectEqualsRect","rectFitsInRect","rectBounds","rotateRectCorners","br","rectRotate","rectCorners","createRect","rectScale","rectTranslate","TRANSFORM_MAP","translate","rotate","rectTransform","rectClone","rectFromBounds","rectCenter","getNumericAspectRatioFromString","vectorDot$1","vectorSubtract$1","vectorDistanceSquared$1","vectorDistance$1","getAxisAlignedImageRect","getOffsetPointOnEdge$1","getRotatedRectCorners","getAxisAlignedCropRect","getCropFromView","getCropFromStateRounded","getCropFromState","limitSize","dotColorMatrix","toRGBColorArray","viewCache","getColorMatrixFromMatrices","getImageScalar","getMinCropSize","getMaxCropSize","getWidth","getHeight","getOutputSizeWidth","getOutputSizeHeight","getAspectRatioOptions","getCropStageRect","getImageStageRect","queries","GET_SIZE","GET_SIZE_INPUT","GET_SIZE_ASPECT_RATIO_LOCK","IS_ACTIVE_VIEW","GET_ACTIVE_VIEW","GET_STYLES","GET_FILE","GET_IMAGE","GET_STAGE","GET_STAGE_RECT","fits","GET_IMAGE_STAGE_RECT","GET_ROOT","GET_ROOT_SIZE","GET_MIN_IMAGE_SIZE","GET_IMAGE_PREVIEW_SCALE_FACTOR","GET_MIN_PREVIEW_IMAGE_SIZE","GET_MIN_CROP_SIZE","GET_MAX_CROP_SIZE","GET_MIN_PIXEL_CROP_SIZE","GET_MAX_PIXEL_CROP_SIZE","GET_CROP_ASPECT_RATIO_OPTIONS","GET_ACTIVE_CROP_ASPECT_RATIO","GET_CROP_ASPECT_RATIO","find","GET_CROP_RECTANGLE_ASPECT_RATIO","GET_CROP_RECT","GET_CROP","ts","getCropView","GET_COLOR_MATRIX","GET_COLOR_VALUES","exposure","brightness","contrast","saturation","GET_MARKUP_TOOL_VALUES","shapeStyle","GET_PREVIEW_IMAGE_DATA","preview","GET_THUMB_IMAGE_DATA","thumb","GET_FILTER","GET_UID","uid","GET_MARKUP_BY_ID","GET_BACKGROUND_COLOR","COLOR_TRANSPARENT","ColorTable","getCurrentImageSize","canZoom","free","limited","interaction","currentWidth","currentHeight","log10","canRecenter","canReset","isDraft","isLimitedToImageBounds","translationBand","scaleBand","rotationBand","cropStatus","previewSize","MATRICES","getImageOrientationMatrix","canvasRelease","clearRect","isFlipped","getBitmap","imageToImageData","canvasMemoryLimit","fillStyle","fillRect","IS_BROWSER$1","HTMLCanvasElement","toBlob","toDataURL","atob","charCodeAt","canvasToBlob","quality","vectorMultiply$1","createVector$2","vectorAdd$1","vectorNormalize$1","vectorRotate$1","ns$1","updateRect$1","createPath","cropSVG","FileReader","onloadend","body","getBBox","overflow","removeAttribute","outerHTML","readAsText","objectToImageData","TransformWorker","V","N","F","W","stringify","correctOrientation","readData","getImageHead","readAsArrayBuffer","getBlobBuilder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","createBlob","append","getBlob","getUniqueId$1","Worker","transfer","chain","canvasApplyMarkup","TYPE_DRAW_ROUTES","applyMarkupStyles","beginPath","setLineDash","strokeStyle","globalAlpha","drawMarkupStyles","drawRect","drawEllipse","moveTo","bezierCurveTo","drawText","font","fillText","drawPath","lineTo","drawLine","imageDataToCanvas","transformImage","stripImageHead","readExif","readData$1","getImageOrientation","Direction","HORIZONTAL","VERTICAL","getImageTransformsFromCrop","copyImageTransforms","limitImageTransformsToCropRect","getTransformOrigin","EdgeMap","getEdgeCenterCoordinates","getImageTransformsFromRect","H","Y","X","Z","K","Q","J","ee","te","getEdgeTargetRect","CornerMap","nw","ne","se","sw","getCornerCoordinates","getCornerTargetRect","getTargetRect","TURN","PI_QUARTER","splitRotation","clearInterval","setInterval","scaleImageSize","leftPad","getDateString","Date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getBaseCropInstructions","capitalizeFirstLetter","charAt","guesstimateExtension","getFileFromBlob","lastModifiedDate","getFilenameWithoutExtension","lastIndexOf","ExtensionMap","jpeg","renameFileToMatchMimeType","getValidOutputMimeType","isColorMatrix","getUniqueId$2","allowSelect","allowMove","allowResize","allowInput","allowDestroy","allowEdit","isDestroyed","isSelected","getFilenameFromHeader","decodeURI","testSrc","shouldCorrect","testImage","shouldCorrectImageExifOrientation","testResult$1","isIE","COLOR_TOOLS","getColorProperty","getColor","TURN$1","getOutputSize","getPreparedImageSize","getActiveMarkupFromState","cleanMarkupForExport","prepareOutput","resetRotationScale","rotateMinScale","storeRotationScale","getRotateTransforms","resetCrop","reset","clearCenterTimeout","silent","recenter","startCenterTimeout","resetCenterTimeout","confirmCropDraft","confirmImageDraft","copyConfirmed","getMinScale","getResizeTransforms","getTranslateTransforms","correctCropRectangleByResize","targetSize","getResponseHeaderSilent","getAllResponseHeaders","getResponseHeader","ImageExtensionMap","jpg","getImageMimeType","loadImageFromURL","progress","load","XMLHttpRequest","onprogress","lengthComputable","loaded","open","responseType","dataURIToBlob","isDataURI","loadImage$1","fileInstructions","complete","shouldAbortImageLoad","SET_UID","AWAIT_IMAGE","REQUEST_REMOVE_IMAGE","DID_UNLOAD_IMAGE","REQUEST_ABORT_IMAGE","queuedFile","DID_SET_SRC","ABORT_IMAGE","REQUEST_LOAD_IMAGE","success","failure","resolveOnConfirm","LOAD_IMAGE","all","minImageSize","CHANGE_VIEW","UPDATE_ROOT_RECT","DID_RESIZE_STAGE","animate","RESIZE_SET_OUTPUT_SIZE_ASPECT_RATIO_LOCK","RESIZE_SET_OUTPUT_SIZE","CROP_SET_ASPECT_RATIO","DID_SET_CROP_ASPECT_RATIO","CROP_ZOOM","DID_SET_CROP_LIMIT_TO_IMAGE_BOUNDS","CROP_ENABLED_LIMIT_TO_IMAGE_BOUNDS","CROP_SET_LIMIT","CROP_IMAGE_RESIZE_GRAB","CROP_IMAGE_ROTATE_GRAB","CROP_RECT_DRAG_GRAB","CROP_RECT_DRAG_RELEASE","CROP_RECT_EDGE_DRAG","CROP_RECT_CORNER_DRAG","CROP_IMAGE_DRAG_GRAB","CROP_IMAGE_DRAG_RELEASE","CROP_IMAGE_ROTATE_RELEASE","CROP_IMAGE_DRAG","CROP_IMAGE_RESIZE_RELEASE","CROP_IMAGE_RESIZE","CROP_IMAGE_RESIZE_SET","CROP_IMAGE_RESIZE_MULTIPLY","CROP_IMAGE_RESIZE_AMOUNT","CROP_IMAGE_ROTATE","CROP_IMAGE_ROTATE_ADJUST","CROP_IMAGE_ROTATE_CENTER","CROP_IMAGE_ROTATE_LEFT","CROP_IMAGE_ROTATE_RIGHT","CROP_IMAGE_FLIP_HORIZONTAL","CROP_IMAGE_FLIP_VERTICAL","DID_RECEIVE_IMAGE_DATA","previewData","thumbData","MARKUP_SET_VALUE","MARKUP_ADD_DEFAULT","MARKUP_ADD","MARKUP_SELECT","MARKUP_ELEMENT_DRAG","MARKUP_ELEMENT_RESIZE","corner","MARKUP_DELETE","MARKUP_UPDATE","DID_SET_CROP","COLOR_SET_COLOR_VALUE","COLOR_SET_VALUE","SET_COLOR_MATRIX","FILTER_SET_FILTER","FILTER_SET_VALUE","DID_SET_UTIL","DID_SET_FILTER","DID_SET_SIZE","DID_SET_MARKUP_UTIL","DID_SET_MARKUP","SET_DATA","DID_SET_INITIAL_STATE","GET_DATA","REQUEST_PREPARE_OUTPUT","PREPARE_OUTPUT","EDIT_RESET","EDIT_CONFIRM","console","EDIT_CANCEL","EDIT_CLOSE","EDIT_DESTROY","SET_OPTIONS","createIcon","icon","handleClick","handlePointer","stopPropagation","textNode","progressIndicator","circle","updateStroke","DID_MAKE_PROGRESS","statusBubbleInner","onClose","statusBubble","hideBusyIndicators","viewStatus","hideBusyIndicatorsAnimated","busyIndicators","markedForRemoval","showBusyIndicator","addBusyIndicator","editStatus","MISSING_WEBGL","AWAITING_IMAGE","DID_PRESENT_IMAGE","DID_LOAD_IMAGE_ERROR","DID_REQUEST_LOAD_IMAGE","DID_REQUEST_PREPARE_OUTPUT","DID_REQUEST_POSTPROCESS_OUTPUT","DID_REQUEST_POSTPROCESS_OUTPUT_ERROR","DID_PREPARE_OUTPUT","Interaction","down","move","up","createPointerRegistry","pointerId","update","active","addEvent$1","removeEvent$1","createDragger","cancelOnMultiple","enabled","cancel","cancelled","pointers","pageX","pageY","isPrimary","preventDefault","stopImmediatePropagation","enable","disable","imageOverlaySpring","activateMarkupUtil","drawInput","drawState","viewSize","offsetX","stageOffsetX","pageXOffset","offsetY","stageOffsetY","pageYOffset","markupX","markupY","getColor$1","MARKUP_MARGIN","setAttributes$1","ns$2","svg$1","LINE_CORNERS","RECT_CORNERS","CORNER_CURSOR","CORNER_COORDINATES","HITBOX_OFFSET","HITBOX_COORDINATES","imageMarkup","markupWidth","markupHeight","onSelect","onUpdate","xmlns","autocomplete","autocapitalize","keyCode","blur","input","selected","elements","resetSelected","handleDeselect","removeButton","manipulatorGroup","isMarkupUtil","handleTextInput","handleAttemptDelete","class","shapeGroup","manipulatorPath","manipulatorRect","manipulators","visual","hitbox","dragger","shapeOffsetGroup","bbox","SHOW_VIEW","previousScale","SWITCH_MARKUP_UTIL","onDrag","stateHasChanged","drawLength","clipPath","webkitClipPath","previousDrawLength","previousX","previousY","previousCurrentHeight","previousCurrentWidth","previousMarkupLength","focus","setSelectionRange","allowInteraction","destroyElementControls","setupElementControls","onResize","markAllAsDirty","KEY_MAP","38","40","37","39","189","187","72","76","81","82","84","86","90","219","221","createKeyboard","save","restore","loadImage$2","compileShader","createShader","shaderSource","createProgram","attachShader","VERTEX_SHADER","FRAGMENT_SHADER","linkProgram","createTexture","activeTexture","TEXTURE0","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_MIN_FILTER","LINEAR","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","uniform1i","uniform2f","texImage2D","RGBA","UNSIGNED_BYTE","Float32Array","tan","mat4","degToRad","imageFragmentShader","imageVertexShader","backgroundFragmentShader","outlineFragmentShader","simpleVertexShader","setup","antialias","alpha","BLEND","blendFunc","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","getUniformLocation","getAttribLocation","createBuffer","bindBuffer","bufferData","STATIC_DRAW","useProgram","release","viewport","ie","oe","ae","ce","le","ue","de","pe","fe","clearColor","clear","COLOR_BUFFER_BIT","he","ge","me","ve","ye","Ee","Te","uniform3fv","uniform4fv","vertexAttribPointer","FLOAT","enableVertexAttribArray","drawArrays","TRIANGLE_STRIP","bindFramebuffer","FRAMEBUFFER","uniformMatrix4fv","uniform1f","uniform4f","createSpringRect","setTarget","getRect","isStable","createSpringColor","ColorSpring","IdentityMatrix","imageGL","xTranslation","yTranslation","xOrigin","yOrigin","xRotation","yRotation","zRotation","colorOpacity","overlayOpacity","introScale","outlineWidth","gl","isPreview","shouldZoom","didZoom","backgroundColorSpring","backgroundColorCenter","backgroundColorCenterSpring","overlaySpring","stageSpring","outlineSpring","colorMatrixSpring","colorMatrixStable","colorMatrixStableCount","colorMatrixPositions","keyboard","plus","minus","left_bracket","right_bracket","canvasStyle","previousBackgroundColor","previousLeft","previousTop","previousWidth","previousHeight","showInteractionIndicator","handleFocus","handleBlur","previousOutlineColor","outlineColor","overlay","isModal","createGroup","controls","activeOptions","activeSelectedValue","selectedValue","dropdown","handleBodyClick","relatedTarget","direction","MAGIC","createDiv","cropRotatorLine","cropRotator","setAllowInteraction","prevRotation","corners","getOppositeCorner","edges","getOppositeEdge","autoPrecision","createEdge","createCorner","wasRotating","lines","animationDir","previousRotating","previousRect","previousEnabled","previousDraft","rotating","indicatorSize","transformTranslate","transformTranslateScale","setInnerHTML","namespaceURI","firstChild","maskWidth","maskHeight","writer","writerFn","updateText$1","nodeValue","createTextNode","sizeSpring","cropSize","sizeWidth","sizeHeight","resizePercentage","previousValues","percentage","wrapper","warn","log","getData","localStorage","getItem","setStoredValue","setItem","getStoredValue","canHover","matchMedia","matches","instructionsBubble","iconBefore","seen","SPRING_TRANSLATE","cropSubject","timestampOffset","maskView","cropView","btnZoom","getCropSizeOffset","throttle","climb","nodeType","isMyTarget","updateIndicators","pivotPoint","indicatorA","indicatorB","getPositionFromEvent","cropResize","isActive","isCropping","hasEnabledResizeModifier","selecting","scrollY","state","resizeStart","resizeEnd","resizeMove","wheelDelta","deltaY","wheel","scrollRect","leftScroll","topScroll","passive","select","confirm","keyDown","keyUp","RESIZER_SHOW","RESIZER_CANCEL","RESIZER_MOVE","setOpacity","updateImageBoundsIcon","querySelectorAll","updateAspectRatioIcon","updateTurnIcons","previousElementSibling","createRectangle","cropRoot","viewId","isHiding","aspectRatioDropdown","cropToggleLimitDropdown","menu","menuItemsRequiredWidth","subject","rotator","resizer","updateControls","stagePosition","UNLOAD_IMAGE","layout","sizeInput","placeholder","onChange","onBlur","step","for","isNaN","handleInput","hasFocus","activeElement","getValue","setValue","setPlaceholder","checkboxInput","checked","onSetValue","handleChange","testResult$2","isAndroid","resizeForm","shouldBlurKeyboard","axisLock","enforceLimits","inputImageWidth","inputImageHeight","buttonConfirm","createFieldGroup","aspectRatioLock","confirmForm","resizeRoot","form","rangeInput","centered","handleRecenter","COLOR_TOOLS$1","colorForm","tools","tilePreviewWorker","tilePreviewWorkerTerminationTimeout","updateColors","imageOverlay","colorKeys","colorEquals","createFilterTile","imageWrapper","activeColors","arrayEqual","every","filterList","tiles","activeFilter","filterOpacity","createScroller","content","isScrollContainer","handleMouseWheel","scrollLeft","scrollWidth","deltaX","dragState","contentOpacity","createSelectionView","filterRoot","colorRoot","supportsColorPicker","selectionStart","toHSL","colors","inputs","title","handleCustomColorChange","handleCustomColorSelect","customInput","showDrawTool","colorSelect","fontFamilySelect","fontSizeSelect","shapeStyleSelect","lineStyleSelect","lineDecorationSelect","ALL_SETTINGS","createSVG","createShapeStyleIcon","createLineStyleIcon","markupTools","getColor$2","markupRoot","utilsList","positions","hasNoPosition","getRandomRange","isEmoji","stickerList","sticker","alt","viewBox","updateStickers","DID_SET_STICKERS","stickerRoot","hasStagePositionChanged","VIEW_MAP","viewStack","activeStagePosition","shouldFocus","viewActive","DID_SET_UTILS","previousStagePosition","viewHidden","preventScroll","editContent","DID_LOAD_IMAGE","updateResizeButton","scaleDirection","editUtils","utilMenuRequiredWidth","utilCount","util_button_resize","HAS_WEBGL","WebGLRenderingContext","hasWebGL","editContainer","btnReset","btnCancel","btnConfirm","handleFocusOut","handleFocusIn","previousState","limitOverflow","hasStateChanged","createPointerEvents","pointersPolyfilled","UIEvent","bubbles","changedTouches","identifier","prevent","editor","pointerPolyfill","createTouchDetector","createFileCatcher","browseEnabled","files","enableBrowse","disableBrowse","click","dataTransfer","items","getAsFile","kind","createFocusTrap","visibility","tabIndex","shiftKey","isFullscreen","shouldBeFullscreen","isFloating","mayBeAutoClosed","canBeAutoClosed","canBeClosed","updateStyleViewport","environment","isSingleUtil","canBeControlled","styleViewport","getViewportBySize","preventNavSwipe","touches","innerWidth","setupFullscreenMode","handleFullscreenUpdate","handleEscapeKey","focusTrap","clientWidth","defaultViewportContent","head","cleanFullscreenMode","remove","shouldBeDestroyed","isClosing","isClosed","catcher","touchDetector","updateViewport","measure","initialScreenMeasureHeight","styleFullscreen","innerHeight","clientRect","handleModalTap","scrollX","ENTER_FULLSCREEN","EXIT_FULLSCREEN","DID_SET_STYLE_LAYOUT_MODE","DID_CANCEL","DID_CONFIRM","createApp","DID_SHOW_IMAGE","DID_UPDATE","DID_CLOSE","DID_DESTROY","DID_INIT","cancelable","composed","setData","edit","interact","interactEnd","appendTo","replaceElement","restoreElement","isAttachedTo","createAppObject","toCamels","lowerCaseFirstLetter","attributeNameToPropertyName","mapObject","group","mapping","getAttributesAsObject","createAppAtElement","dokaSrc","createApp$1","copyObjectPropertiesToObject","PRIVATE_METHODS","createAppAPI","isOperaMini","operamini","hasPromises","hasBlobSlice","hasCreateObjectURL","hasVisibility","hasTiming","apps","create$1","getOptions$1","setOptions$1","readyState","updateOptionTypes","components","Errors","FilePond","FilePondPluginFileValidateType","FilePondPluginFileValidateSize","FilePondPluginImagePreview","FilePondPluginImageEdit","FilePondPluginMediaPreview","FilePondPluginImageCrop","FilePondPluginImageResize","FilePondPluginImageTransform","inject","storeType","dontFetchFile","computed","outputSize","uploadUrl","documents","process","formData","axios","headers","Authorization","filePath","blobFile","handler","methods","reader","frames","initDokaLoad","updateDoka","addInitialFile","fileValidationErrors","fileUploaded","serverFile","checkAllFilesIsUpload","FAILS_ON_PRIMITIVES","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","$fill","toBigInt","classof","CONVERSION_BUG","valueOf","actualValue","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferModule","isIntegralNumber","toPropertyKey","isSymbol","isPrototypeOf","typedArrayFrom","setSpecies","definePropertyModule","getOwnPropertyDescriptorModule","inheritIfRequired","enforceInternalState","enforce","nativeDefineProperty","nativeGetOwnPropertyDescriptor","TYPED_ARRAY_TAG","TypedArray","aTypedArrayConstructor","isTypedArray","fromList","isArrayBuffer","klass","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","TYPE","CLAMPED","CONSTRUCTOR_NAME","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructor","TypedArrayConstructorPrototype","exported","that","addElement","dummy","typedArrayOffset","$length","$len","sham","$Array","pow","LN2","mantissaLength","exponent","mantissa","exponentLength","eMax","eBias","rt","Infinity","nBits","IS_NODE","validateArgumentsLength","ctoi","disallowed","whitespaces","finalEq","$atob","fromCharCode","NO_SPACES_IGNORE","NO_ENCODING_CHECK","NO_ARG_RECEIVING_CHECK","WRONG_ARITY","chr","bs","bc","$includes","LOG10E","checkCorrectnessOfIteration","iterable","relativeIndex","allowCrop","updateCrop","extend","newAspectRatio","currentCrop","newCrop","humanAspectRatio","allowImageCrop","$findLast","findLast","$ArrayCopyWithin","u$ArrayCopyWithin","isImage$1","swapped","imageElement","_options$background","requiredMemory","imageOffset","callback","dataURL","binStr","promisedImage","fr","originalNode","bBox","titleNode","viewBoxAttribute","widthAttribute","heightAttribute","widthUnits","heightUnits","viewBoxList","markupSVG","cropCenterX","cropCenterY","canvasZoomFactor","cropTransforms","cropFlipHorizontal","cropFlipVertical","flipTransforms","transformed","TRANSFORMS","applyTransforms","resizeTransform","bg","bb","applyFilterMatrix","ir","ig","ib","ia","mr","mg","mb","ma","or","og","ob","identityMatrix","isIdentityMatrix","_data$mode","_data$upscale","originWidth","originHeight","inputData","ratioWidth","ratioHeight","ratioWidthHalf","ratioHeightHalf","weight","weights","weightsAlpha","centerY","yy","dy","centerX","w0","xx","dx","intelByteAligned","tags","marker","markerLength","orientationCorrected","isData","arrayBuffer","BB","workerBlob","workerURL","trips","transferList","funcs","promise","func","drawers","kappa","ox","oy","xe","xm","ym","isCrossOriginImage","ar","_width","_height","_x","_y","qualityAsPercentage","resolveWithBlob","promisedBlob","promisedCanvas","imageHead","outputFormat","hasSize","intervalId","TRANSFORM_LIST","createVariantCreator","updateMetadata","metadata","isDefaultCrop","shouldPrepareOutput","shouldTransformFile","filterResult","handleRevert","shouldTransform","variants","variantsDefinition","createVariant","qualityMode","clientTransforms","client","filteredMetadata","instruction","willChangeType","canChangeQuality","willChangeQuality","willModifyImageData","out","variantPromises","allowImageTransform","imageTransformImageFilter","imageTransformOutputMimeType","imageTransformOutputQuality","imageTransformOutputStripImageHead","imageTransformClientTransforms","imageTransformOutputQualityMode","imageTransformVariants","imageTransformVariantsIncludeDefault","imageTransformVariantsDefaultName","imageTransformVariantsIncludeOriginal","imageTransformVariantsOriginalName","imageTransformBeforeCreateBlob","imageTransformAfterCreateBlob","imageTransformCanvasMemoryLimit","imageTransformCanvasBackgroundColor","aConstructor","getIterator","getIteratorMethod","isArrayIteratorMethod","isBigIntArray","thisIsBigIntArray","iteratorMethod","IndexedObject","arrayMethodIsStrict","nativeJoin","ES3_STRINGS","STRICT_METHOD","createMethod","IS_FIND_LAST_INDEX","$this","boundFunction","$every","nativeErrorToString","nativeArrayBufferSlice","INCORRECT_SLICE","first","fin","viewSource","viewTarget","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","getTypedArrayConstructor","originalArray","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","itoc","actionQueue","dispatchQueue","isBlocking","actionHandlers","str","_queryHandles","queryHandles","api","property","definition","parent","child","elementRect","childView","childViewRect","destination","velocity","errorMargin","_ref$stiffness","_ref$damping","_ref$mass","skipToEndState","_ref$duration","_ref$easing","_ref$delay","category","def","overwrite","initialProps","animation","currentProps","getOffset","getScale","newProps","_ref$tag","_ref$name","_ref$attributes","_ref$read","_ref$write","_ref$create","_ref$destroy","_ref$filterFrameActio","_ref$didCreateView","_ref$didWriteView","_ref$ignoreRect","_ref$ignoreRectUpdate","_ref$mixins","frameRect","isResting","activeMixins","destroyers","getElement","getChildViews","getReference","getStyle","shouldUpdate","internalAPI","frameActions","writerResting","mixin","mixinResting","childResting","destroyer","sharedAPIDefinition","internalAPIDefinition","needle","externalAPIDefinition","mixinAPIDefinition","mixinAPI","childCount","fps","painter","interval","last","requestTick","cancelTick","setTimerType","tick","delta","routes","_ref$actions","newNode","referenceNode","base","naturalFileSize","levels","level","patch","revert","fetch","createServerAPI","outline","timeout","createAction","method","withCredentials","ondata","parts","header","toServerAPI","isAPI","newValue","defaultValue","valueType","newValueType","convertedValue","option","currentValue","optionDefinition","listUpdateTimeout","itemUpdateTimeout","processingQueue","part","InteractionMethod","API","DROP","BROWSE","PASTE","NONE","substring","_objectWithoutPropertiesLoose","excluded","sourceKeys","_objectWithoutProperties","sourceSymbolKeys","propertyIsEnumerable","arr2","iter","run","sync","listener","_fire","fireSync","_len2","_key2","_cb","PRIVATE","createItemAPI","removeReleasedItems","released","ItemStatus","INIT","IDLE","PROCESSING_QUEUED","PROCESSING","PROCESSING_COMPLETE","PROCESSING_ERROR","PROCESSING_REVERT_ERROR","LOADING","LOAD_ERROR","FileOrigin","INPUT","LIMBO","LOCAL","getNonNumeric","getDecimalSeparator","getThousandsSeparator","decimalSeparator","thousandsStringWithSeparator","thousandsStringWithoutSeparator","ACTION","SERVER_API","REGEX","applyFilterChain","matchingFilters","initialFilter","current","applyFilters","extendDefaultOptions","additionalOptions","opts","disabled","allowSyncAcceptAttribute","allowDrop","allowBrowse","allowPaste","allowReplace","allowRevert","allowRemove","allowProcess","allowReorder","allowDirectoriesOnly","storeAsFile","forceRevert","checkValidity","itemInsertLocationFreedom","itemInsertLocation","itemInsertInterval","dropOnPage","dropOnElement","dropValidation","ignoredFiles","instantUpload","maxParallelUploads","allowMinimumUploadDuration","chunkUploads","chunkForce","chunkSize","chunkRetryDelays","server","fileSizeBase","labelFileSizeBytes","labelFileSizeKilobytes","labelFileSizeMegabytes","labelFileSizeGigabytes","labelDecimalSeparator","labelThousandsSeparator","labelIdle","labelInvalidField","labelFileWaitingForSize","labelFileSizeNotAvailable","labelFileCountSingular","labelFileCountPlural","labelFileLoading","labelFileAdded","labelFileLoadError","labelFileRemoved","labelFileRemoveError","labelFileProcessing","labelFileProcessingComplete","labelFileProcessingAborted","labelFileProcessingError","labelFileProcessingRevertError","labelTapToCancel","labelTapToRetry","labelTapToUndo","labelButtonRemoveItem","labelButtonAbortItemLoad","labelButtonRetryItemLoad","labelButtonAbortItemProcessing","labelButtonUndoItemProcessing","labelButtonRetryItemProcessing","labelButtonProcessItem","iconRemove","iconProcess","iconRetry","iconUndo","iconDone","onwarning","onactivatefile","oninitfile","onaddfilestart","onaddfileprogress","onaddfile","onprocessfilestart","onprocessfileprogress","onprocessfileabort","onprocessfilerevert","onprocessfile","onprocessfiles","onremovefile","onpreparefile","onupdatefiles","onreorderfiles","beforeDropFile","beforeAddFile","beforeRemoveFile","beforePrepareFile","stylePanelLayout","stylePanelAspectRatio","styleItemPanelAspectRatio","styleButtonRemoveItemPosition","styleButtonProcessItemPosition","styleLoadIndicatorPosition","styleProgressIndicatorPosition","styleButtonRemoveItemAlign","credits","getItemByQuery","getActiveItems","Status","EMPTY","ERROR","BUSY","READY","canUpdateFileInput","DataTransfer","File","ITEM_ERROR","ITEM_BUSY","ITEM_READY","isItemInErrorState","isItemInBusyState","isItemInReadyState","isAsync","GET_STATUS","GET_ITEM","GET_ACTIVE_ITEM","GET_ACTIVE_ITEMS","GET_ITEMS","GET_ITEM_NAME","GET_ITEM_SIZE","GET_PANEL_ASPECT_RATIO","isShapeCircle","GET_ITEM_PANEL_ASPECT_RATIO","GET_ITEMS_BY_STATUS","GET_TOTAL_ITEMS","SHOULD_UPDATE_FILE_INPUT","IS_ASYNC","GET_FILE_SIZE_LABELS","labelBytes","labelKilobytes","labelMegabytes","labelGigabytes","hasRoomForItem","maxFileCount","arrayInsert","insertItem","isBase64DataURI","subtype","padding","date","_relativePath","getBlobFromByteStringWithMimeType","byteString","ab","getMimeTypeFromBase64DataURI","dataURI","getBase64DataFromBase64DataURI","getByteStringFromBase64DataURI","getBlobFromBase64DataURI","getFileFromBase64DataURI","getFileNameFromHeader","getFileSizeFromHeader","getTranfserIdFromHeader","getFileInfoFromHeaders","info","rows","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","createFileLoader","fetchFn","getProgress","abort","loadURL","computable","fileinfo","setSource","isGet","sendRequest","onheaders","ontimeout","onabort","aborted","xhr","headersReceived","encodeURI","encodeURIComponent","upload","onreadystatechange","unescape","setRequestHeader","createResponse","createTimeoutResponse","hasQS","buildURL","createFetchFunction","apiUrl","statusText","ChunkStatus","QUEUED","COMPLETE","WAITING","processFileChunked","chunks","chunkTransferId","chunkServer","serverId","fd","requestTransferId","FormData","requestParams","requestTransferOffset","requestUrl","lastChunkIndex","retries","completeProcessingChunks","canProcessChunk","chunk","processChunk","processChunks","updateTotalProgress","retryProcessChunk","totalBytesTransfered","totalSize","totalProcessing","abortChunks","createFileProcessorFunction","canChunkUpload","shouldChunkUpload","willChunkUpload","createProcessorFunction","params","createRevertFunction","uniqueFileId","getRandomNumber","createPerceivedPerformanceUpdater","tickMin","tickMax","runtime","createFileProcessor","processFn","perceivedProgress","perceivedPerformanceUpdater","perceivedDuration","progressFn","completeFn","transferId","getDuration","createFileStub","deepCloneObject","createItem","serverFileReference","frozen","processingAborted","activeLoader","activeProcessor","abortProcessingRequestComplete","setStatus","getFileExtension","getFileType","getFileSize","getFile","loader","meta","retryLoad","abortLoad","processor","onprocess","requestProcessing","abortProcessing","revertFileUpload","serverTransferId","_setMetadata","filenameWithoutExtension","fileExtension","fileType","relativePath","itemAPI","freeze","archive","getItemIndexByQuery","getItemById","itemId","fetchBlob","getDomainFromURL","protocol","isExternalURL","dynamicLabel","isMockItem","listUpdated","optionalPromise","sortItems","compare","getItemByQueryFromState","itemHandler","_ref$success","_ref$failure","ABORT_ALL","DID_SET_FILES","_ref2$value","activeItems","interactionMethod","doUpload","MOVE_ITEM","currentIndex","SORT","ADD_ITEMS","_ref6$success","_ref6$failure","insertLocation","totalItems","isValidFile","validItems","promises","ADD_ITEM","_ref7$index","_ref7$success","_ref7$failure","_ref7$options","_item","mainStatus","handleAdd","shouldAdd","loadComplete","_ref9$failure","COMPLETE_LOAD_ITEM","RETRY_ITEM_LOAD","REQUEST_ITEM_PREPARE","_success","REQUEST_ITEM_PROCESSING","itemCanBeQueuedForProcessing","processNow","PROCESS_ITEM","totalCurrentUploads","processNext","queueEntry","itemReference","noop","allItemsProcessed","RETRY_ITEM_PROCESSING","REQUEST_REMOVE_ITEM","shouldRemove","RELEASE_ITEM","REMOVE_ITEM","removeFromView","ABORT_ITEM_LOAD","ABORT_ITEM_PROCESSING","REQUEST_REVERT_ITEM_PROCESSING","shouldRevert","requestRemoveResult","REVERT_ITEM_PROCESSING","optionKeys","prioritizedOptionKeys","PrioritizedOptions","orderedOptionKeys","formatFilename","createElement$1","polarToCartesian","radius","angleInDegrees","angleInRadians","describeArc","startAngle","endAngle","arcSweep","percentageArc","spin","align","ringStrokeWidth","ringFrom","ringTo","coordinates","isDisabled","write$1","shouldDisable","fileActionButton","_options$labelBytes","_options$labelKilobyt","_options$labelMegabyt","_options$labelGigabyt","KB","MB","GB","removeDecimalsWhenZero","decimalCount","create$2","fileName","updateFile","updateFileSizeOnError","fileInfo","DID_UPDATE_ITEM_META","toPercentage","create$3","didSetItemLoadProgress","didSetItemProcessProgress","didRequestItemProcessing","didAbortItemProcessing","didCompleteItemProcessing","fileStatus","DID_REQUEST_ITEM_PROCESSING","DID_ABORT_ITEM_PROCESSING","DID_UPDATE_ITEM_PROCESS_PROGRESS","DID_UPDATE_ITEM_LOAD_PROGRESS","DID_THROW_ITEM_PROCESSING_REVERT_ERROR","DID_THROW_ITEM_REMOVE_ERROR","Buttons","AbortItemLoad","RetryItemLoad","RemoveItem","ProcessItem","AbortItemProcessing","RetryItemProcessing","RevertItemProcessing","ButtonKeys","calculateFileInfoOffset","getRemoveIndicatorAligment","buttonRect","buttonRemoveItem","calculateButtonWidth","buttonAbortItemLoad","calculateFileVerticalCenterOffset","calculateFileHorizontalCenterOffset","getLoadIndicatorAlignment","getProcessIndicatorAlignment","DefaultStyle","buttonRetryItemLoad","buttonProcessItem","buttonAbortItemProcessing","buttonRetryItemProcessing","buttonRevertItemProcessing","loadProgressIndicator","processProgressIndicator","processingCompleteIndicator","IdleStyle","ProcessingStyle","StyleMap","DID_START_ITEM_LOAD","DID_START_ITEM_REMOVE","DID_LOAD_LOCAL_ITEM","processingCompleteIndicatorView","create$4","buttonFilter","LocalButtons","alignRemoveItemButton","enabledButtons","_map","buttonView","loadIndicatorView","progressIndicatorView","activeStyles","write$2","route","stylesToApply","defaultStyles","control","DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING","DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD","DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL","buttonAbortItemRemoval","create$5","fileWrapper","PANEL_SPRING_PROPS","create$6","section","createSection","scalable","viewConstructor","write$3","topRect","bottomRect","panel","heightCurrent","createDragHelper","itemIds","prevIndex","setIndex","getIndex","getItemIndex","ITEM_TRANSLATE_SPRING","ITEM_SCALE_SPRING","StateMap","create$7","grab","removedActivateListener","dragOrigin","dragCenter","drag","dragOffset","dist","drop","route$1","DID_UPDATE_PANEL_HEIGHT","write$4","DID_GRAB_ITEM","DID_DRAG_ITEM","DID_DROP_ITEM","currentState","filepondItemState","getItemsPerRow","horizontalSpace","getItemIndexByPosition","positionInView","itemRect","itemHorizontalMargin","itemsPerRow","childMid","itemVerticalMargin","itemHeight","_index","indexX","indexY","itemTop","itemRight","itemBottom","dropAreaDimensions","val","setDimensions","create$8","lastItemSpanwDate","addItemView","addIndex","spawnDate","cooldown","moveItem","vx","vy","introItemView","removeItemView","getItemHeight","getItemWidth","dragItem","numItems","oldIndex","dragPosition","dragHeight","dragWidth","cols","setHeight","setWidth","getGridIndex","getColIndex","visibleChildren","idx","childHeight","childBottom","childTop","route$2","DID_ADD_ITEM","DID_REMOVE_ITEM","write$5","dragCoordinates","dragIndex","dragIndexOffset","removeIndexOffset","addIndexOffset","childRect","visualHeight","prevX","prevY","visualIndex","vectorX","vectorY","filterSetItemActions","create$9","overflowing","storeDragCoordinates","scopeLeft","scopeTop","clearDragCoordinates","route$3","DID_DRAG","DID_END_DRAG","write$6","newHeight","listScroller","attrToggle","enabledValue","resetFileInput","create$a","setAcceptedFileTypes","toggleAllowMultiple","toggleDirectoryFilter","toggleDisabled","toggleRequired","setCaptureMethod","webkitRelativePath","doesAllowBrowse","disableField","updateRequiredStatus","shouldCheckValidity","setCustomValidity","updateFieldValidityStatus","browser","DID_SET_DISABLED","DID_SET_ALLOW_BROWSE","DID_SET_ALLOW_DIRECTORIES_ONLY","DID_SET_ALLOW_MULTIPLE","DID_SET_ACCEPTED_FILE_TYPES","DID_SET_CAPTURE_METHOD","DID_SET_REQUIRED","Key","ENTER","SPACE","create$b","handleKeyDown","isActivationKey","isLabelClick","updateLabelValue","caption","clickable","dropLabel","DID_SET_LABEL_IDLE","addBlob","moveBlob","hideBlob","explodeBlob","write$7","route$4","DID_DROP","drip","setInputFiles","create$c","fields","getField","syncFieldPositionsWithItems","didReorderItems","didAddItem","fileItem","isLocalFile","shouldUseFileInput","dataContainer","didLoadItem$1","field","didPrepareOutput","didSetDisabled","didRemoveItem","didDefineValue","write$8","DID_DEFINE_VALUE","DID_REORDER_ITEMS","DID_SORT_ITEMS","getRootNode","text$1","zip","epub","requestDataTransferItems","links","getLinks","hasFiles","promisedFiles","isFileSystemItem","getFilesFromItem","returnedFileGroups","isEntry","entry","getAsEntry","isDirectory","isDirectoryEntry","getFilesInDirectory","dirCounter","fileCounter","resolveIfDone","readEntries","dirEntry","directoryReader","createReader","readBatch","correctedFile","correctMissingFileType","fullPath","webkitGetAsEntry","getLinksFromTransferMetaData","getLinksFromTransferURLData","dragNDropObservers","eventPosition","pageLeft","pageTop","layerX","layerY","createDragNDropClient","scopeToObserve","filterElement","getDragNDropObserver","ondrop","onenter","ondrag","onexit","allowdrop","addListener","newObserver","createDragNDropObserver","clients","dragenter","dragover","dragleave","handlers","createHandler","elementFromPoint","isEventTarget","elementAtPosition","initialTarget","setDropEffect","effect","dropEffect","overDropTarget","allowsTransfer","createHopper","scope","validateItems","catchesDropsOnPage","requiresDropOnElement","_options$filterItems","filterItems","lastState","filteredItems","ondragend","ondragstart","updateHopperState","hopperState","listening","listeners$1","handlePaste","activeEl","inScope","clipboardData","listen","unlisten","createPaster","create$d","addFilesNotificationTimeout","notificationClearTimeout","filenames","assist","clear$1","listModified","isUsingFilePond","itemAdded","itemRemoved","itemProcessed","itemProcessedUndo","itemError","assistant","debounce","immidiateOnly","MAX_FILES_LIMIT","create$e","bounds","widthPrevious","widthUpdated","updateHistory","previousAspectRatio","hasPointerEvents","hasCredits","frag","tabindex","rel","write$9","route$5","calculateRootBoundingBoxHeight","hopper","isMultiItem","maxItems","atMaxCapacity","addAction","listItemMargin","calculateListItemMargin","listHeight","calculateListHeight","labelHeight","currentLabelHeight","listMarginTop","listMarginBottom","boundsHeight","history","MAX_BOUNCES","bounces","listAvailableHeight","_listAvailableHeight","cappedHeight","isCappedHeight","panelHeight","_listAvailableHeight2","itemMargin","scrollList","itemList","newItem","removedItem","verticalItemCount","measureHeight","maxHeight","exceedsMaxFiles","totalBrowseItems","hasMaxItems","getDragIndex","toggleDrop","isAllowed","toggleBrowse","togglePaste","paster","DID_SET_ALLOW_DROP","DID_SET_ALLOW_PASTE","initialOptions","originalElement","visibilityHandler","resizeDoneTimer","isResizing","isResizingHorizontally","initialWindowWidth","currentWindowWidth","resizeHandler","isHidden","readWriteApi","routeActionsToEvents","createEvent","eventRoutes","DID_THROW_MAX_FILES","DID_INIT_ITEM","DID_COMPLETE_ITEM_PROCESSING_ALL","DID_UPDATE_ITEMS","DID_ACTIVATE_ITEM","exposeEvent","pond","filtered","prepareFile","addFile","addFiles","isFilePondFile","removeFile","sources","lastArgument","processFile","prepareFiles","processFiles","_len3","_key3","removeFiles","_len4","_key4","mappedQueries","moveFile","browse","customOptions","app","attributeName","propertyMap","selector","selectorRegExp","attributeMapping","attribute","mergedOptions","attributeOptions","replacements","renameFile","renamedFile","copyFile","registeredPlugins","createAppPlugin","pluginOutline","views","hasCSSSupports","CSS","isIE11","FileStatus","hook","indexToRemove","context","matchedHooks","newHooks","newHook","plugins","arrayBufferModule","$filter","fromSpeciesAndList","non","METHOD_NAME","$reduce","middle","IndexSizeError","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","$find","$forEach","NEGATIVE_ZERO","$indexOf","NAME","Prototype","isCallable","tryToString","Uint8ClampedArrayPrototype","TO_STRING_TAG","TYPED_ARRAY_CONSTRUCTOR","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Int32Array","Uint32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","isView","KEY","error2","exportTypedArrayStaticMethod","toPrimitive","$TypeError","argument","prim","BigInt","_utils$createItemAPI","canEdit","createEditorResponseHandler","userDidConfirm","editRequestQueue","requestEdit","_editRequestQueue$","handleEditorResponse","queueEditRequest","editRequest","canShowImagePreview","shouldExtendView","filepondCallbackBridge","openEditor","cropDefault","imageParameters","initialSize","handleEdit","buttonEditItem","filenameElement","editButton","EDIT_ITEM","didPreviewUpdate","DID_IMAGE_PREVIEW_SHOW","allowImageEdit","styleImageEditButtonEditItemPosition","imageEditInstantEdit","imageEditAllowEdit","imageEditIconEdit","imageEditEditor"],"mappings":"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","file":"js/chunk-3e1e48e6.41db705b.js","sourcesContent":["var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw $RangeError('Wrong length or index');\n return length;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar tryNodeRequire = require('../internals/try-node-require');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar errorToString = require('../internals/error-to-string');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar InternalStateModule = require('../internals/internal-state');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar DATA_CLONE_ERR = 'DATA_CLONE_ERR';\nvar Error = getBuiltIn('Error');\n// NodeJS < 17.0 does not expose `DOMException` to global\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION) || (function () {\n try {\n // NodeJS < 15.0 does not expose `MessageChannel` to global\n var MessageChannel = getBuiltIn('MessageChannel') || tryNodeRequire('worker_threads').MessageChannel;\n // eslint-disable-next-line es/no-weak-map, unicorn/require-post-message-target-origin -- safe\n new MessageChannel().port1.postMessage(new WeakMap());\n } catch (error) {\n if (error.name == DATA_CLONE_ERR && error.code == 25) return error.constructor;\n }\n})();\nvar NativeDOMExceptionPrototype = NativeDOMException && NativeDOMException.prototype;\nvar ErrorPrototype = Error.prototype;\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(DOM_EXCEPTION);\nvar HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\n\nvar codeFor = function (name) {\n return hasOwn(DOMExceptionConstants, name) && DOMExceptionConstants[name].m ? DOMExceptionConstants[name].c : 0;\n};\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var code = codeFor(name);\n setInternalState(this, {\n type: DOM_EXCEPTION,\n name: name,\n message: message,\n code: code\n });\n if (!DESCRIPTORS) {\n this.name = name;\n this.message = message;\n this.code = code;\n }\n if (HAS_STACK) {\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(this, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n }\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = create(ErrorPrototype);\n\nvar createGetterDescriptor = function (get) {\n return { enumerable: true, configurable: true, get: get };\n};\n\nvar getterFor = function (key) {\n return createGetterDescriptor(function () {\n return getInternalState(this)[key];\n });\n};\n\nif (DESCRIPTORS) {\n defineBuiltInAccessor(DOMExceptionPrototype, 'code', getterFor('code'));\n defineBuiltInAccessor(DOMExceptionPrototype, 'message', getterFor('message'));\n defineBuiltInAccessor(DOMExceptionPrototype, 'name', getterFor('name'));\n}\n\ndefineProperty(DOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, $DOMException));\n\n// FF36- DOMException is a function, but can't be constructed\nvar INCORRECT_CONSTRUCTOR = fails(function () {\n return !(new NativeDOMException() instanceof Error);\n});\n\n// Safari 10.1 / Chrome 32- / IE8- DOMException.prototype.toString bugs\nvar INCORRECT_TO_STRING = INCORRECT_CONSTRUCTOR || fails(function () {\n return ErrorPrototype.toString !== errorToString || String(new NativeDOMException(1, 2)) !== '2: 1';\n});\n\n// Deno 1.6.3- DOMException.prototype.code just missed\nvar INCORRECT_CODE = INCORRECT_CONSTRUCTOR || fails(function () {\n return new NativeDOMException(1, 'DataCloneError').code !== 25;\n});\n\n// Deno 1.6.3- DOMException constants just missed\nvar MISSED_CONSTANTS = INCORRECT_CONSTRUCTOR\n || NativeDOMException[DATA_CLONE_ERR] !== 25\n || NativeDOMExceptionPrototype[DATA_CLONE_ERR] !== 25;\n\nvar FORCED_CONSTRUCTOR = IS_PURE ? INCORRECT_TO_STRING || INCORRECT_CODE || MISSED_CONSTANTS : INCORRECT_CONSTRUCTOR;\n\n// `DOMException` constructor\n// https://webidl.spec.whatwg.org/#idl-DOMException\n$({ global: true, constructor: true, forced: FORCED_CONSTRUCTOR }, {\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (INCORRECT_TO_STRING && (IS_PURE || NativeDOMException === PolyfilledDOMException)) {\n defineBuiltIn(PolyfilledDOMExceptionPrototype, 'toString', errorToString);\n}\n\nif (INCORRECT_CODE && DESCRIPTORS && NativeDOMException === PolyfilledDOMException) {\n defineBuiltInAccessor(PolyfilledDOMExceptionPrototype, 'code', createGetterDescriptor(function () {\n return codeFor(anObject(this).name);\n }));\n}\n\nfor (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n var descriptor = createPropertyDescriptor(6, constant.c);\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, descriptor);\n }\n if (!hasOwn(PolyfilledDOMExceptionPrototype, constantName)) {\n defineProperty(PolyfilledDOMExceptionPrototype, constantName, descriptor);\n }\n}\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isRegExp = require('../internals/is-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar speciesConstructor = require('../internals/species-constructor');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar getMethod = require('../internals/get-method');\nvar arraySlice = require('../internals/array-slice-simple');\nvar callRegExpExec = require('../internals/regexp-exec-abstract');\nvar regexpExec = require('../internals/regexp-exec');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar fails = require('../internals/fails');\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\nvar MAX_UINT32 = 0xFFFFFFFF;\nvar min = Math.min;\nvar $push = [].push;\nvar exec = uncurryThis(/./.exec);\nvar push = uncurryThis($push);\nvar stringSlice = uncurryThis(''.slice);\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\n// @@split logic\nfixRegExpWellKnownSymbolLogic('split', function (SPLIT, nativeSplit, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'.split(/(b)*/)[1] == 'c' ||\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n 'test'.split(/(?:)/, -1).length != 4 ||\n 'ab'.split(/(?:ab)*/).length != 2 ||\n '.'.split(/(.?)(.?)/).length != 4 ||\n // eslint-disable-next-line regexp/no-empty-capturing-group, regexp/no-empty-group -- required for testing\n '.'.split(/()()/).length > 1 ||\n ''.split(/.?/).length\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = toString(requireObjectCoercible(this));\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (separator === undefined) return [string];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) {\n return call(nativeSplit, string, separator, lim);\n }\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = call(regexpExec, separatorCopy, string)) {\n lastIndex = separatorCopy.lastIndex;\n if (lastIndex > lastLastIndex) {\n push(output, stringSlice(string, lastLastIndex, match.index));\n if (match.length > 1 && match.index < string.length) apply($push, output, arraySlice(match, 1));\n lastLength = match[0].length;\n lastLastIndex = lastIndex;\n if (output.length >= lim) break;\n }\n if (separatorCopy.lastIndex === match.index) separatorCopy.lastIndex++; // Avoid an infinite loop\n }\n if (lastLastIndex === string.length) {\n if (lastLength || !exec(separatorCopy, '')) push(output, '');\n } else push(output, stringSlice(string, lastLastIndex));\n return output.length > lim ? arraySlice(output, 0, lim) : output;\n };\n // Chakra, V8\n } else if ('0'.split(undefined, 0).length) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : call(nativeSplit, this, separator, limit);\n };\n } else internalSplit = nativeSplit;\n\n return [\n // `String.prototype.split` method\n // https://tc39.es/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = requireObjectCoercible(this);\n var splitter = isNullOrUndefined(separator) ? undefined : getMethod(separator, SPLIT);\n return splitter\n ? call(splitter, separator, O, limit)\n : call(internalSplit, toString(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (string, limit) {\n var rx = anObject(this);\n var S = toString(string);\n var res = maybeCallNative(internalSplit, rx, S, limit, internalSplit !== nativeSplit);\n\n if (res.done) return res.value;\n\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (UNSUPPORTED_Y ? 'g' : 'y');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(UNSUPPORTED_Y ? '^(?:' + rx.source + ')' : rx, flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = UNSUPPORTED_Y ? 0 : q;\n var z = callRegExpExec(splitter, UNSUPPORTED_Y ? stringSlice(S, q) : S);\n var e;\n if (\n z === null ||\n (e = min(toLength(splitter.lastIndex + (UNSUPPORTED_Y ? q : 0)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n push(A, stringSlice(S, p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n push(A, z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n push(A, stringSlice(S, p));\n return A;\n }\n ];\n}, !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC, UNSUPPORTED_Y);\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n to += inc;\n from += inc;\n } return O;\n};\n","/*!\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","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw $RangeError('Wrong offset');\n return offset;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.anchor` method\n// https://tc39.es/ecma262/#sec-string.prototype.anchor\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('anchor') }, {\n anchor: function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n }\n});\n","/*!\n * FilePondPluginFileValidateType 1.2.8\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.FilePondPluginFileValidateType = factory()));\n})(this, function() {\n 'use strict';\n\n var plugin = function plugin(_ref) {\n var addFilter = _ref.addFilter,\n utils = _ref.utils;\n // get quick reference to Type utils\n var Type = utils.Type,\n isString = utils.isString,\n replaceInString = utils.replaceInString,\n guesstimateMimeType = utils.guesstimateMimeType,\n getExtensionFromFilename = utils.getExtensionFromFilename,\n getFilenameFromURL = utils.getFilenameFromURL;\n\n var mimeTypeMatchesWildCard = function mimeTypeMatchesWildCard(\n mimeType,\n wildcard\n ) {\n var mimeTypeGroup = (/^[^/]+/.exec(mimeType) || []).pop(); // image/png -> image\n var wildcardGroup = wildcard.slice(0, -2); // image/* -> image\n return mimeTypeGroup === wildcardGroup;\n };\n\n var isValidMimeType = function isValidMimeType(\n acceptedTypes,\n userInputType\n ) {\n return acceptedTypes.some(function(acceptedType) {\n // accepted is wildcard mime type\n if (/\\*$/.test(acceptedType)) {\n return mimeTypeMatchesWildCard(userInputType, acceptedType);\n }\n\n // is normal mime type\n return acceptedType === userInputType;\n });\n };\n\n var getItemType = function getItemType(item) {\n // if the item is a url we guess the mime type by the extension\n var type = '';\n if (isString(item)) {\n var filename = getFilenameFromURL(item);\n var extension = getExtensionFromFilename(filename);\n if (extension) {\n type = guesstimateMimeType(extension);\n }\n } else {\n type = item.type;\n }\n\n return type;\n };\n\n var validateFile = function validateFile(\n item,\n acceptedFileTypes,\n typeDetector\n ) {\n // no types defined, everything is allowed \\o/\n if (acceptedFileTypes.length === 0) {\n return true;\n }\n\n // gets the item type\n var type = getItemType(item);\n\n // no type detector, test now\n if (!typeDetector) {\n return isValidMimeType(acceptedFileTypes, type);\n }\n\n // use type detector\n return new Promise(function(resolve, reject) {\n typeDetector(item, type)\n .then(function(detectedType) {\n if (isValidMimeType(acceptedFileTypes, detectedType)) {\n resolve();\n } else {\n reject();\n }\n })\n .catch(reject);\n });\n };\n\n var applyMimeTypeMap = function applyMimeTypeMap(map) {\n return function(acceptedFileType) {\n return map[acceptedFileType] === null\n ? false\n : map[acceptedFileType] || acceptedFileType;\n };\n };\n\n // setup attribute mapping for accept\n addFilter('SET_ATTRIBUTE_TO_OPTION_MAP', function(map) {\n return Object.assign(map, {\n accept: 'acceptedFileTypes'\n });\n });\n\n // filtering if an item is allowed in hopper\n addFilter('ALLOW_HOPPER_ITEM', function(file, _ref2) {\n var query = _ref2.query;\n // if we are not doing file type validation exit\n if (!query('GET_ALLOW_FILE_TYPE_VALIDATION')) {\n return true;\n }\n\n // we validate the file against the accepted file types\n return validateFile(file, query('GET_ACCEPTED_FILE_TYPES'));\n });\n\n // called for each file that is loaded\n // right before it is set to the item state\n // should return a promise\n addFilter('LOAD_FILE', function(file, _ref3) {\n var query = _ref3.query;\n return new Promise(function(resolve, reject) {\n if (!query('GET_ALLOW_FILE_TYPE_VALIDATION')) {\n resolve(file);\n return;\n }\n\n var acceptedFileTypes = query('GET_ACCEPTED_FILE_TYPES');\n\n // custom type detector method\n var typeDetector = query('GET_FILE_VALIDATE_TYPE_DETECT_TYPE');\n\n // if invalid, exit here\n var validationResult = validateFile(\n file,\n acceptedFileTypes,\n typeDetector\n );\n\n var handleRejection = function handleRejection() {\n var acceptedFileTypesMapped = acceptedFileTypes\n .map(\n applyMimeTypeMap(\n query('GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES_MAP')\n )\n )\n .filter(function(label) {\n return label !== false;\n });\n\n var acceptedFileTypesMapped_unique = acceptedFileTypesMapped.filter(\n function(item, index) {\n return acceptedFileTypesMapped.indexOf(item) === index;\n }\n );\n\n reject({\n status: {\n main: query('GET_LABEL_FILE_TYPE_NOT_ALLOWED'),\n sub: replaceInString(\n query('GET_FILE_VALIDATE_TYPE_LABEL_EXPECTED_TYPES'),\n {\n allTypes: acceptedFileTypesMapped_unique.join(', '),\n allButLastType: acceptedFileTypesMapped_unique\n .slice(0, -1)\n .join(', '),\n lastType:\n acceptedFileTypesMapped_unique[\n acceptedFileTypesMapped.length - 1\n ]\n }\n )\n }\n });\n };\n\n // has returned new filename immidiately\n if (typeof validationResult === 'boolean') {\n if (!validationResult) {\n return handleRejection();\n }\n return resolve(file);\n }\n\n // is promise\n validationResult\n .then(function() {\n resolve(file);\n })\n .catch(handleRejection);\n });\n });\n\n // expose plugin\n return {\n // default options\n options: {\n // Enable or disable file type validation\n allowFileTypeValidation: [true, Type.BOOLEAN],\n\n // What file types to accept\n acceptedFileTypes: [[], Type.ARRAY],\n // - must be comma separated\n // - mime types: image/png, image/jpeg, image/gif\n // - extensions: .png, .jpg, .jpeg ( not enabled yet )\n // - wildcards: image/*\n\n // label to show when a type is not allowed\n labelFileTypeNotAllowed: ['File is of invalid type', Type.STRING],\n\n // nicer label\n fileValidateTypeLabelExpectedTypes: [\n 'Expects {allButLastType} or {lastType}',\n Type.STRING\n ],\n\n // map mime types to extensions\n fileValidateTypeLabelExpectedTypesMap: [{}, Type.OBJECT],\n\n // Custom function to detect type of file\n fileValidateTypeDetectType: [null, Type.FUNCTION]\n }\n };\n };\n\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\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","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLastIndex = require('../internals/array-iteration-from-last').findLastIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLastIndex` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLastIndex', function findLastIndex(predicate /* , thisArg */) {\n return $findLastIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {\n nativeSort(new Uint16Array(2), null);\n}) && fails(function () {\n nativeSort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n nativeSort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return nativeSort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","var $ = require('../internals/export');\nvar sign = require('../internals/math-sign');\n\n// `Math.sign` method\n// https://tc39.es/ecma262/#sec-math.sign\n$({ target: 'Math', stat: true }, {\n sign: sign\n});\n","/*!\n * FilePondPluginImagePreview 4.6.11\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 \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\n \\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 = new URL(\n window.location.href.replace(window.location.hash, '')\n ).href;\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","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","/*!\n * FilePondPluginImageResize 2.0.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), (global.FilePondPluginImageResize = factory()));\n})(this, function() {\n 'use strict';\n\n // test if file is of type image\n var isImage = function isImage(file) {\n return /^image/.test(file.type);\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: width, height: height });\n };\n image.onerror = function() {\n return cb(null);\n };\n image.src = url;\n };\n\n /**\n * Image Auto Resize Plugin\n */\n var plugin = function plugin(_ref) {\n var addFilter = _ref.addFilter,\n utils = _ref.utils;\n var Type = utils.Type;\n\n // subscribe to file load and append required transformations\n addFilter('DID_LOAD_ITEM', function(item, _ref2) {\n var query = _ref2.query;\n return new Promise(function(resolve, reject) {\n // get file reference\n var file = item.file;\n\n // if this is not an image we do not have any business cropping it\n if (!isImage(file) || !query('GET_ALLOW_IMAGE_RESIZE')) {\n // continue with the unaltered dataset\n return resolve(item);\n }\n\n var mode = query('GET_IMAGE_RESIZE_MODE');\n var width = query('GET_IMAGE_RESIZE_TARGET_WIDTH');\n var height = query('GET_IMAGE_RESIZE_TARGET_HEIGHT');\n var upscale = query('GET_IMAGE_RESIZE_UPSCALE');\n\n // no resizing to be done\n if (width === null && height === null) return resolve(item);\n\n var targetWidth = width === null ? height : width;\n var targetHeight = height === null ? targetWidth : height;\n\n // if should not upscale, we need to determine the size of the file\n var fileURL = URL.createObjectURL(file);\n getImageSize(fileURL, function(size) {\n URL.revokeObjectURL(fileURL);\n\n // something went wrong\n if (!size) return resolve(item);\n var imageWidth = size.width,\n imageHeight = size.height;\n\n // get exif orientation\n var orientation = (item.getMetadata('exif') || {}).orientation || -1;\n\n // swap width and height if orientation needs correcting\n if (orientation >= 5 && orientation <= 8) {\n var _ref3 = [imageHeight, imageWidth];\n imageWidth = _ref3[0];\n imageHeight = _ref3[1];\n }\n\n // image is already perfect size, no transformations required\n if (imageWidth === targetWidth && imageHeight === targetHeight)\n return resolve(item);\n\n // already contained?\n // can't upscale image, so if already at correct scale, exit\n if (!upscale) {\n // covering target size\n if (mode === 'cover') {\n // if one of edges is smaller than target size, exit\n if (imageWidth <= targetWidth || imageHeight <= targetHeight)\n return resolve(item);\n }\n\n // not covering target size, if image is contained in target size, exit\n else if (imageWidth <= targetWidth && imageHeight <= targetWidth) {\n return resolve(item);\n }\n }\n\n // the image needs to be resized\n item.setMetadata('resize', {\n mode: mode,\n upscale: upscale,\n size: {\n width: targetWidth,\n height: targetHeight,\n },\n });\n\n resolve(item);\n });\n });\n });\n\n // Expose plugin options\n return {\n options: {\n // Enable or disable image resizing\n allowImageResize: [true, Type.BOOLEAN],\n\n // the method of rescaling\n // - force => force set size\n // - cover => pick biggest dimension\n // - contain => pick smaller dimension\n imageResizeMode: ['cover', Type.STRING],\n\n // set to false to disable upscaling of image smaller than the target width / height\n imageResizeUpscale: [true, Type.BOOLEAN],\n\n // target width\n imageResizeTargetWidth: [null, Type.INT],\n\n // target height\n imageResizeTargetHeight: [null, Type.INT],\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 = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n if (isBrowser) {\n document.dispatchEvent(new CustomEvent('FilePond:pluginloaded', { detail: plugin }));\n }\n\n return plugin;\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","/*!\n * FilePondPluginFileValidateSize 2.2.8\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), (global.FilePondPluginFileValidateSize = factory()));\n})(this, function() {\n 'use strict';\n\n var plugin = function plugin(_ref) {\n var addFilter = _ref.addFilter,\n utils = _ref.utils;\n // get quick reference to Type utils\n var Type = utils.Type,\n replaceInString = utils.replaceInString,\n toNaturalFileSize = utils.toNaturalFileSize;\n\n // filtering if an item is allowed in hopper\n addFilter('ALLOW_HOPPER_ITEM', function(file, _ref2) {\n var query = _ref2.query;\n if (!query('GET_ALLOW_FILE_SIZE_VALIDATION')) {\n return true;\n }\n\n var sizeMax = query('GET_MAX_FILE_SIZE');\n if (sizeMax !== null && file.size > sizeMax) {\n return false;\n }\n\n var sizeMin = query('GET_MIN_FILE_SIZE');\n if (sizeMin !== null && file.size < sizeMin) {\n return false;\n }\n\n return true;\n });\n\n // called for each file that is loaded\n // right before it is set to the item state\n // should return a promise\n addFilter('LOAD_FILE', function(file, _ref3) {\n var query = _ref3.query;\n return new Promise(function(resolve, reject) {\n // if not allowed, all fine, exit\n if (!query('GET_ALLOW_FILE_SIZE_VALIDATION')) {\n return resolve(file);\n }\n\n // check if file should be filtered\n var fileFilter = query('GET_FILE_VALIDATE_SIZE_FILTER');\n if (fileFilter && !fileFilter(file)) {\n return resolve(file);\n }\n\n // reject or resolve based on file size\n var sizeMax = query('GET_MAX_FILE_SIZE');\n if (sizeMax !== null && file.size > sizeMax) {\n reject({\n status: {\n main: query('GET_LABEL_MAX_FILE_SIZE_EXCEEDED'),\n sub: replaceInString(query('GET_LABEL_MAX_FILE_SIZE'), {\n filesize: toNaturalFileSize(\n sizeMax,\n '.',\n query('GET_FILE_SIZE_BASE'),\n query('GET_FILE_SIZE_LABELS', query)\n ),\n }),\n },\n });\n\n return;\n }\n\n // reject or resolve based on file size\n var sizeMin = query('GET_MIN_FILE_SIZE');\n if (sizeMin !== null && file.size < sizeMin) {\n reject({\n status: {\n main: query('GET_LABEL_MIN_FILE_SIZE_EXCEEDED'),\n sub: replaceInString(query('GET_LABEL_MIN_FILE_SIZE'), {\n filesize: toNaturalFileSize(\n sizeMin,\n '.',\n query('GET_FILE_SIZE_BASE'),\n query('GET_FILE_SIZE_LABELS', query)\n ),\n }),\n },\n });\n\n return;\n }\n\n // returns the current option value\n var totalSizeMax = query('GET_MAX_TOTAL_FILE_SIZE');\n if (totalSizeMax !== null) {\n // get the current total file size\n var currentTotalSize = query('GET_ACTIVE_ITEMS').reduce(function(total, item) {\n return total + item.fileSize;\n }, 0);\n\n // get the size of the new file\n if (currentTotalSize > totalSizeMax) {\n reject({\n status: {\n main: query('GET_LABEL_MAX_TOTAL_FILE_SIZE_EXCEEDED'),\n sub: replaceInString(query('GET_LABEL_MAX_TOTAL_FILE_SIZE'), {\n filesize: toNaturalFileSize(\n totalSizeMax,\n '.',\n query('GET_FILE_SIZE_BASE'),\n query('GET_FILE_SIZE_LABELS', query)\n ),\n }),\n },\n });\n\n return;\n }\n }\n\n // file is fine, let's pass it back\n resolve(file);\n });\n });\n\n return {\n options: {\n // Enable or disable file type validation\n allowFileSizeValidation: [true, Type.BOOLEAN],\n\n // Max individual file size in bytes\n maxFileSize: [null, Type.INT],\n\n // Min individual file size in bytes\n minFileSize: [null, Type.INT],\n\n // Max total file size in bytes\n maxTotalFileSize: [null, Type.INT],\n\n // Filter the files that need to be validated for size\n fileValidateSizeFilter: [null, Type.FUNCTION],\n\n // error labels\n labelMinFileSizeExceeded: ['File is too small', Type.STRING],\n labelMinFileSize: ['Minimum file size is {filesize}', Type.STRING],\n\n labelMaxFileSizeExceeded: ['File is too large', Type.STRING],\n labelMaxFileSize: ['Maximum file size is {filesize}', Type.STRING],\n\n labelMaxTotalFileSizeExceeded: ['Maximum total size exceeded', Type.STRING],\n labelMaxTotalFileSize: ['Maximum total file size is {filesize}', Type.STRING],\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 = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n if (isBrowser) {\n document.dispatchEvent(new CustomEvent('FilePond:pluginloaded', { detail: plugin }));\n }\n\n return plugin;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\n\n// IE8-\nvar INCORRECT_RESULT = [].unshift(0) !== 1;\n\n// V8 ~ Chrome < 71 and Safari <= 15.4, FF < 23 throws InternalError\nvar SILENT_ON_NON_WRITABLE_LENGTH = !function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).unshift();\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\n// `Array.prototype.unshift` method\n// https://tc39.es/ecma262/#sec-array.prototype.unshift\n$({ target: 'Array', proto: true, arity: 1, forced: INCORRECT_RESULT || SILENT_ON_NON_WRITABLE_LENGTH }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n unshift: function unshift(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n if (argCount) {\n doesNotExceedSafeInteger(len + argCount);\n var k = len;\n while (k--) {\n var to = k + argCount;\n if (k in O) O[to] = O[k];\n else deletePropertyOrThrow(O, to);\n }\n for (var j = 0; j < argCount; j++) {\n O[j] = arguments[j];\n }\n } return setArrayLength(O, len + argCount);\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","/*!\n * FilePondPluginMediaPreview 1.0.11\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit undefined 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 =\n typeof globalThis !== 'undefined' ? globalThis : global || self),\n (global.FilePondPluginMediaPreview = factory()));\n})(this, function () {\n 'use strict';\n\n const isPreviewableVideo = (file) => /^video/.test(file.type);\n\n const isPreviewableAudio = (file) => /^audio/.test(file.type);\n\n ('use strict');\n\n class AudioPlayer {\n constructor(mediaEl, audioElems) {\n this.mediaEl = mediaEl;\n this.audioElems = audioElems;\n this.onplayhead = false;\n this.duration = 0;\n this.timelineWidth =\n this.audioElems.timeline.offsetWidth -\n this.audioElems.playhead.offsetWidth;\n this.moveplayheadFn = this.moveplayhead.bind(this);\n this.registerListeners();\n }\n\n registerListeners() {\n this.mediaEl.addEventListener(\n 'timeupdate',\n this.timeUpdate.bind(this),\n false\n );\n this.mediaEl.addEventListener(\n 'canplaythrough',\n () => (this.duration = this.mediaEl.duration),\n false\n );\n this.audioElems.timeline.addEventListener(\n 'click',\n this.timelineClicked.bind(this),\n false\n );\n this.audioElems.button.addEventListener('click', this.play.bind(this));\n this.audioElems.playhead.addEventListener(\n 'mousedown',\n this.mouseDown.bind(this),\n false\n );\n window.addEventListener('mouseup', this.mouseUp.bind(this), false);\n }\n\n play() {\n if (this.mediaEl.paused) {\n this.mediaEl.play();\n } else {\n this.mediaEl.pause();\n }\n\n this.audioElems.button.classList.toggle('play');\n this.audioElems.button.classList.toggle('pause');\n }\n\n timeUpdate() {\n let playPercent = (this.mediaEl.currentTime / this.duration) * 100;\n this.audioElems.playhead.style.marginLeft = playPercent + '%';\n\n if (this.mediaEl.currentTime === this.duration) {\n this.audioElems.button.classList.toggle('play');\n this.audioElems.button.classList.toggle('pause');\n }\n }\n\n moveplayhead(event) {\n let newMargLeft =\n event.clientX - this.getPosition(this.audioElems.timeline);\n\n if (newMargLeft >= 0 && newMargLeft <= this.timelineWidth) {\n this.audioElems.playhead.style.marginLeft = newMargLeft + 'px';\n }\n\n if (newMargLeft < 0) {\n this.audioElems.playhead.style.marginLeft = '0px';\n }\n\n if (newMargLeft > this.timelineWidth) {\n this.audioElems.playhead.style.marginLeft =\n this.timelineWidth - 4 + 'px';\n }\n }\n\n timelineClicked(event) {\n this.moveplayhead(event);\n this.mediaEl.currentTime = this.duration * this.clickPercent(event);\n }\n\n mouseDown() {\n this.onplayhead = true;\n window.addEventListener('mousemove', this.moveplayheadFn, true);\n this.mediaEl.removeEventListener(\n 'timeupdate',\n this.timeUpdate.bind(this),\n false\n );\n }\n\n mouseUp(event) {\n window.removeEventListener('mousemove', this.moveplayheadFn, true);\n\n if (this.onplayhead == true) {\n this.moveplayhead(event); // change current time\n\n this.mediaEl.currentTime = this.duration * this.clickPercent(event);\n this.mediaEl.addEventListener(\n 'timeupdate',\n this.timeUpdate.bind(this),\n false\n );\n }\n\n this.onplayhead = false;\n }\n\n clickPercent(event) {\n return (\n (event.clientX - this.getPosition(this.audioElems.timeline)) /\n this.timelineWidth\n );\n }\n\n getPosition(el) {\n return el.getBoundingClientRect().left;\n }\n }\n\n const createMediaView = (_) =>\n _.utils.createView({\n name: 'media-preview',\n tag: 'div',\n ignoreRect: true,\n create: ({ root, props }) => {\n const { id } = props; // get item\n\n const item = root.query('GET_ITEM', {\n id: props.id,\n });\n let tagName = isPreviewableAudio(item.file) ? 'audio' : 'video';\n root.ref.media = document.createElement(tagName);\n root.ref.media.setAttribute('controls', true);\n root.element.appendChild(root.ref.media);\n\n if (isPreviewableAudio(item.file)) {\n let docfrag = document.createDocumentFragment();\n root.ref.audio = [];\n (root.ref.audio.container = document.createElement('div')),\n (root.ref.audio.button = document.createElement('span')),\n (root.ref.audio.timeline = document.createElement('div')),\n (root.ref.audio.playhead = document.createElement('div'));\n root.ref.audio.container.className = 'audioplayer';\n root.ref.audio.button.className = 'playpausebtn play';\n root.ref.audio.timeline.className = 'timeline';\n root.ref.audio.playhead.className = 'playhead';\n root.ref.audio.timeline.appendChild(root.ref.audio.playhead);\n root.ref.audio.container.appendChild(root.ref.audio.button);\n root.ref.audio.container.appendChild(root.ref.audio.timeline);\n docfrag.appendChild(root.ref.audio.container);\n root.element.appendChild(docfrag);\n }\n },\n write: _.utils.createRoute({\n DID_MEDIA_PREVIEW_LOAD: ({ root, props }) => {\n const { id } = props; // get item\n\n const item = root.query('GET_ITEM', {\n id: props.id,\n });\n if (!item) return;\n let URL = window.URL || window.webkitURL;\n let blob = new Blob([item.file], {\n type: item.file.type,\n });\n root.ref.media.type = item.file.type;\n root.ref.media.src =\n (item.file.mock && item.file.url) || URL.createObjectURL(blob); // create audio player in case of audio file\n\n if (isPreviewableAudio(item.file)) {\n new AudioPlayer(root.ref.media, root.ref.audio);\n } // determine dimensions and update panel accordingly\n\n root.ref.media.addEventListener(\n 'loadeddata',\n () => {\n let height = 75; // default height for audio panel\n\n if (isPreviewableVideo(item.file)) {\n let containerWidth = root.ref.media.offsetWidth;\n let factor = root.ref.media.videoWidth / containerWidth;\n height = root.ref.media.videoHeight / factor;\n }\n\n root.dispatch('DID_UPDATE_PANEL_HEIGHT', {\n id: props.id,\n height: height,\n });\n },\n false\n );\n },\n }),\n });\n\n const createMediaWrapperView = (_) => {\n /**\n * Write handler for when preview container has been created\n */\n const didCreatePreviewContainer = ({ root, props }) => {\n const { id } = props;\n const item = root.query('GET_ITEM', id);\n if (!item) return; // the preview is now ready to be drawn\n\n root.dispatch('DID_MEDIA_PREVIEW_LOAD', {\n id,\n });\n };\n /**\n * Constructor\n */\n\n const create = ({ root, props }) => {\n const media = createMediaView(_); // append media presenter\n\n root.ref.media = root.appendChildView(\n root.createChildView(media, {\n id: props.id,\n })\n );\n };\n\n return _.utils.createView({\n name: 'media-preview-wrapper',\n create,\n write: _.utils.createRoute({\n // media preview stated\n DID_MEDIA_PREVIEW_CONTAINER_CREATE: didCreatePreviewContainer,\n }),\n });\n };\n\n /**\n * Media Preview Plugin\n */\n\n const plugin = (fpAPI) => {\n const { addFilter, utils } = fpAPI;\n const { Type, createRoute } = utils;\n const mediaWrapperView = createMediaWrapperView(fpAPI); // called for each view that is created right after the 'create' method\n\n addFilter('CREATE_VIEW', (viewAPI) => {\n // get reference to created view\n const { is, view, query } = viewAPI; // only hook up to item view\n\n if (!is('file')) {\n return;\n } // create the media preview plugin, but only do so if the item is video or audio\n\n const didLoadItem = ({ root, props }) => {\n const { id } = props;\n const item = query('GET_ITEM', id);\n const allowVideoPreview = query('GET_ALLOW_VIDEO_PREVIEW');\n const allowAudioPreview = query('GET_ALLOW_AUDIO_PREVIEW');\n\n if (\n !item ||\n item.archived ||\n ((!isPreviewableVideo(item.file) || !allowVideoPreview) &&\n (!isPreviewableAudio(item.file) || !allowAudioPreview))\n ) {\n return;\n } // set preview view\n\n root.ref.mediaPreview = view.appendChildView(\n view.createChildView(mediaWrapperView, {\n id,\n })\n ); // now ready\n\n root.dispatch('DID_MEDIA_PREVIEW_CONTAINER_CREATE', {\n id,\n });\n }; // start writing\n\n view.registerWriter(\n createRoute(\n {\n DID_LOAD_ITEM: didLoadItem,\n },\n ({ root, props }) => {\n const { id } = props;\n const item = query('GET_ITEM', id);\n const allowVideoPreview = root.query('GET_ALLOW_VIDEO_PREVIEW');\n const allowAudioPreview = root.query('GET_ALLOW_AUDIO_PREVIEW'); // don't do anything while not a video or audio file or hidden\n\n if (\n !item ||\n ((!isPreviewableVideo(item.file) || !allowVideoPreview) &&\n (!isPreviewableAudio(item.file) || !allowAudioPreview)) ||\n root.rect.element.hidden\n )\n return;\n }\n )\n );\n }); // expose plugin\n\n return {\n options: {\n allowVideoPreview: [true, Type.BOOLEAN],\n allowAudioPreview: [true, Type.BOOLEAN],\n },\n };\n }; // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\n\n const isBrowser =\n typeof window !== 'undefined' && typeof window.document !== 'undefined';\n\n if (isBrowser) {\n document.dispatchEvent(\n new CustomEvent('FilePond:pluginloaded', {\n detail: plugin,\n })\n );\n }\n\n return plugin;\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trim = require('../internals/string-trim').trim;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\n// `String.prototype.trim` method\n// https://tc39.es/ecma262/#sec-string.prototype.trim\n$({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, {\n trim: function trim() {\n return $trim(this);\n }\n});\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.length != 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('file-pond',{ref:\"filepond\",attrs:{\"label-idle\":_vm.label,\"accepted-file-types\":_vm.types,\"server\":_vm.serverConfig,\"max-file-size\":_vm.maxSize,\"image-edit-editor\":_vm.doka,\"image-edit-instant-edit\":!_vm.disableEdit,\"image-transform-image-filter\":_vm.filterTransform,\"max-files\":_vm.maxFiles,\"image-crop-aspect-ratio\":_vm.imageCropAspectRatio,\"allow-multiple\":_vm.allowMultiple,\"max-parallel-uploads\":_vm.maxFiles},on:{\"updatefiles\":_vm.updateHandler,\"removefile\":_vm.onRemove,\"processfiles\":_vm.onProcessFilesFinish}}),(_vm.hasError)?_c('errors',{staticClass:\"mb-4\",attrs:{\"error-count\":\"3\",\"error-messages\":[..._vm.errorMessages, ..._vm.errorLimitFile]}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * Doka Image Editor 6.18.0\n * (c) 2018-2020 PQINA Inc. - All Rights Reserved\n * License: https://pqina.nl/doka/license/\n */\n/* eslint-disable */\n\n\nfunction _typeof(e){return(_typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function _defineProperty(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _objectSpread(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],n=_objectSpread({},e),i=[],o=[],a=function(e,t,r){r?o.push({type:e,data:t}):(s[e]&&s[e](t),i.push({type:e,data:t}))},c=function(e){for(var t,r=arguments.length,n=new Array(r>1?r-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:null;if(null===r)return e.getAttribute(t)||e.hasAttribute(t);e.setAttribute(t,r)},ns=\"http://www.w3.org/2000/svg\",svgElements=[\"svg\",\"path\"],isSVGElement=function(e){return svgElements.includes(e)},createElement=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};\"object\"===_typeof(t)&&(r=t,t=null);var n=isSVGElement(e)?document.createElementNS(ns,e):document.createElement(e);return t&&(isSVGElement(e)?attr(n,\"class\",t):n.className=t),forin(r,function(e,t){attr(n,e,t)}),n},appendChild=function(e){return function(t,r){void 0!==r&&e.children[r]?e.insertBefore(t,e.children[r]):e.appendChild(t)}},appendChildView=function(e,t){return function(e,r){return void 0!==r?t.splice(r,0,e):t.push(e),e}},removeChildView=function(e,t){return function(r){var n=t.splice(t.indexOf(r),1);return n.length&&n[0]._destroy(),r.element.parentNode&&e.removeChild(r.element),r}},getViewRect=function(e,t,r,n){var i=r[0]||e.left,o=r[1]||e.top,a=i+e.width,c=o+e.height*(n[1]||1),l={element:_objectSpread({},e),inner:{left:e.left,top:e.top,right:e.right,bottom:e.bottom},outer:{left:i,top:o,right:a,bottom:c}};return t.filter(function(e){return!e.isRectIgnored()}).map(function(e){return e.rect}).forEach(function(e){expandRect(l.inner,_objectSpread({},e.inner)),expandRect(l.outer,_objectSpread({},e.outer))}),calculateRectSize(l.inner),l.outer.bottom+=l.element.marginBottom,l.outer.right+=l.element.marginRight,calculateRectSize(l.outer),l},expandRect=function(e,t){t.top+=e.top,t.right+=e.left,t.bottom+=e.top,t.left+=e.left,t.bottom>e.bottom&&(e.bottom=t.bottom),t.right>e.right&&(e.right=t.right)},calculateRectSize=function(e){e.width=e.right-e.left,e.height=e.bottom-e.top},isNumber=function(e){return\"number\"==typeof e},thereYet=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.001;return Math.abs(e-t)0&&void 0!==arguments[0]?arguments[0]:{},t=e.stiffness,r=void 0===t?.5:t,n=e.damping,i=void 0===n?.75:n,o=e.mass,a=void 0===o?10:o,c=e.delay,l=void 0===c?0:c,u=null,s=null,d=0,p=!1,f=null,h=createObject({interpolate:function(e){if(null===f&&(f=e),!(e-l0&&void 0!==arguments[0]?arguments[0]:{},n=r.duration,i=void 0===n?500:n,o=r.easing,a=void 0===o?easeInOutQuad:o,c=r.delay,l=void 0===c?0:c,u=null,s=!0,d=!1,p=null,f=createObject({interpolate:function(r){s||null===p||(null===u&&(u=r),r-u=0?a(d?1-t:t):0)*p)):(e=1,t=d?0:1,f.onupdate(t*p),f.oncomplete(t*p),s=!0)))},target:{get:function(){return d?0:p},set:function(e){if(null===p)return p=e,f.onupdate(e),void f.oncomplete(e);e3&&void 0!==arguments[3]&&arguments[3];(t=Array.isArray(t)?t:[t]).forEach(function(t){e.forEach(function(e){var i=e,o=function(){return r[e]},a=function(t){return r[e]=t};\"object\"===_typeof(e)&&(i=e.key,o=e.getter||o,a=e.setter||a),t[i]&&!n||(t[i]={get:o,set:a})})})},animations=function(e){var t=e.mixinConfig,r=e.viewProps,n=e.viewInternalAPI,i=e.viewExternalAPI,o=_objectSpread({},r),a=[];return forin(t,function(e,t){var c=createAnimator(t);c&&(c.onupdate=function(t){r[e]=t},c.target=o[e],addGetSet([{key:e,setter:function(e){c.target!==e&&(c.target=e)},getter:function(){return r[e]}}],[n,i],r,!0),a.push(c))}),{write:function(e){var t=!0;return a.forEach(function(r){r.resting||(t=!1),r.interpolate(e)}),t},destroy:function(){}}},addEvent=function(e){return function(t,r){e.addEventListener(t,r)}},removeEvent=function(e){return function(t,r){e.removeEventListener(t,r)}},listeners=function(e){var t=e.viewExternalAPI,r=e.view,n=[],i=addEvent(r.element),o=removeEvent(r.element);return t.on=function(e,t){n.push({type:e,fn:t}),i(e,t)},t.off=function(e,t){n.splice(n.findIndex(function(r){return r.type===e&&r.fn===t}),1),o(e,t)},{write:function(){return!0},destroy:function(){n.forEach(function(e){o(e.type,e.fn)})}}},apis=function(e){var t=e.mixinConfig,r=e.viewProps,n=e.viewExternalAPI;addGetSet(t,n,r)},defaults={opacity:1,scaleX:1,scaleY:1,translateX:0,translateY:0,rotateX:0,rotateY:0,rotateZ:0,originX:0,originY:0},styles=function(e){var t=e.mixinConfig,r=e.viewProps,n=e.viewInternalAPI,i=e.viewExternalAPI,o=e.view,a=_objectSpread({},r),c={};addGetSet(t,[n,i],r);var l=function(){return o.rect?getViewRect(o.rect,o.childViews,[r.translateX||0,r.translateY||0],[r.scaleX||0,r.scaleY||0]):null};return n.rect={get:l},i.rect={get:l},t.forEach(function(e){r[e]=void 0===a[e]?defaults[e]:a[e]}),{write:function(){if(propsHaveChanged(c,r))return applyStyles(o.element,r),Object.assign(c,_objectSpread({},r)),!0},destroy:function(){}}},propsHaveChanged=function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!0;for(var r in t)if(t[r]!==e[r])return!0;return!1},applyStyles=function(e,t){var r=t.opacity,n=t.perspective,i=t.translateX,o=t.translateY,a=t.scaleX,c=t.scaleY,l=t.rotateX,u=t.rotateY,s=t.rotateZ,d=t.originX,p=t.originY,f=t.width,h=t.height,g=\"\",m=\"\";null==d&&null==p||(m+=\"transform-origin: \".concat(d||0,\"px \").concat(p||0,\"px;\")),null!=n&&(g+=\"perspective(\".concat(n,\"px) \")),null==i&&null==o||(g+=\"translate3d(\".concat(i||0,\"px, \").concat(o||0,\"px, 0) \")),null==a&&null==c||(g+=\"scale3d(\".concat(null!=a?a:1,\", \").concat(null!=c?c:1,\", 1) \")),null!=s&&(g+=\"rotateZ(\".concat(s,\"rad) \")),null!=l&&(g+=\"rotateX(\".concat(l,\"rad) \")),null!=u&&(g+=\"rotateY(\".concat(u,\"rad) \")),\"\"!=g&&(m+=\"transform:\".concat(g,\";\")),null!=r&&(m+=\"opacity:\".concat(r,\";\"),r<1&&(m+=\"pointer-events:none;\"),0===r&&\"BUTTON\"===e.nodeName&&(m+=\"visibility:hidden;\")),null!=f&&(m+=\"width:\".concat(f,\"px;\")),null!=h&&(m+=\"height:\".concat(h,\"px;\"));var v=e.elementCurrentStyle||\"\";m.length===v.length&&m===v||(e.style.cssText=m,e.elementCurrentStyle=m)},Mixins={styles:styles,listeners:listeners,animations:animations,apis:apis},updateRect=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return t.layoutCalculated||(e.paddingTop=parseInt(r.paddingTop,10)||0,e.marginTop=parseInt(r.marginTop,10)||0,e.marginRight=parseInt(r.marginRight,10)||0,e.marginBottom=parseInt(r.marginBottom,10)||0,e.marginLeft=parseInt(r.marginLeft,10)||0,t.layoutCalculated=!0),e.left=t.offsetLeft||0,e.top=t.offsetTop||0,e.width=t.offsetWidth||0,e.height=t.offsetHeight||0,e.right=e.left+e.width,e.bottom=e.top+e.height,e.scrollTop=t.scrollTop,e.hidden=null===t.offsetParent&&\"fixed\"!==r.position,e},IS_BROWSER=\"undefined\"!=typeof window&&void 0!==window.document,isBrowser=function(){return IS_BROWSER},testElement=isBrowser()?createElement(\"svg\"):{},getChildCount=\"children\"in testElement?function(e){return e.children.length}:function(e){return e.childNodes.length},createView=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.tag,r=void 0===t?\"div\":t,n=e.name,i=void 0===n?null:n,o=e.attributes,a=void 0===o?{}:o,c=e.read,l=void 0===c?function(){}:c,u=e.write,s=void 0===u?function(){}:u,d=e.create,p=void 0===d?function(){}:d,f=e.destroy,h=void 0===f?function(){}:f,g=e.filterFrameActionsForChild,m=void 0===g?function(e,t){return t}:g,v=e.didCreateView,y=void 0===v?function(){}:v,E=e.didWriteView,T=void 0===E?function(){}:E,_=e.shouldUpdateChildViews,R=void 0===_?function(){return!0}:_,w=e.ignoreRect,A=void 0!==w&&w,I=e.ignoreRectUpdate,S=void 0!==I&&I,C=e.mixins,O=void 0===C?[]:C;return function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=createElement(r,i?\"doka--\".concat(i):null,a),o=window.getComputedStyle(n,null),c=updateRect(),u=null,d=!1,f=[],g=[],v={},E={},_=[s],w=[l],I=[h],C=function(){return n},x=function(){return[].concat(f)},b=function(){return u||(u=getViewRect(c,f,[0,0],[1,1]))},M=function(){return n.layoutCalculated=!1},L={element:{get:C},style:{get:function(){return o}},childViews:{get:x}},P=_objectSpread({},L,{rect:{get:b},ref:{get:function(){return v}},is:function(e){return i===e},appendChild:appendChild(n),createChildView:function(e){return function(t,r){return t(e,r)}}(e),linkView:function(e){return f.push(e),e},unlinkView:function(e){f.splice(f.indexOf(e),1)},appendChildView:appendChildView(n,f),removeChildView:removeChildView(n,f),registerWriter:function(e){return _.push(e)},registerReader:function(e){return w.push(e)},registerDestroyer:function(e){return I.push(e)},invalidateLayout:M,dispatch:e.dispatch,query:e.query}),G={element:{get:C},childViews:{get:x},rect:{get:b},resting:{get:function(){return d}},isRectIgnored:function(){return A},invalidateLayout:M,_read:function(){u=null,R({root:D,props:t})&&f.forEach(function(e){return e._read()}),!(S&&c.width&&c.height)&&updateRect(c,n,o);var e={root:D,props:t,rect:c};w.forEach(function(t){return t(e)})},_write:function(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=0===r.length;return _.forEach(function(i){!1===i({props:t,root:D,actions:r,timestamp:e})&&(n=!1)}),g.forEach(function(t){!1===t.write(e)&&(n=!1)}),R({props:t,root:D,actions:r,timestamp:e})&&(f.filter(function(e){return!!e.element.parentNode}).forEach(function(t){t._write(e,m(t,r))||(n=!1)}),f.forEach(function(t,i){t.element.parentNode||(D.appendChild(t.element,i),t._read(),t._write(e,m(t,r)),n=!1)})),d=n,T({props:t,root:D,actions:r,timestamp:e}),n},_destroy:function(){g.forEach(function(e){return e.destroy()}),I.forEach(function(e){e({root:D})}),f.forEach(function(e){return e._destroy()})}},k=_objectSpread({},L,{rect:{get:function(){return c}}});Object.keys(O).sort(function(e,t){return\"styles\"===e?1:\"styles\"===t?-1:0}).forEach(function(e){var r=Mixins[e]({mixinConfig:O[e],viewProps:t,viewState:E,viewInternalAPI:P,viewExternalAPI:G,view:createObject(k)});r&&g.push(r)});var D=createObject(P);p({root:D,props:t});var U=getChildCount(n)||0;return f.forEach(function(e,t){D.appendChild(e.element,U+t)}),y(D),createObject(G,t)}},createPainter=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:60,n=\"__framePainter\";if(window[n])return window[n].readers.push(e),void window[n].writers.push(t);window[n]={readers:[e],writers:[t]};var i=window[n],o=1e3/r,a=null,c=null,l=null,u=null,s=function(){document.hidden?(l=function(){return window.setTimeout(function(){return d(performance.now())},o)},u=function(){return window.clearTimeout(c)}):(l=function(){return window.requestAnimationFrame(d)},u=function(){return window.cancelAnimationFrame(c)})};document.addEventListener(\"visibilitychange\",function(){u&&u(),s(),d(performance.now())});var d=function e(t){c=l(e),a||(a=t);var r=t-a;r<=o||(a=t-r%o,i.readers.forEach(function(e){return e()}),i.writers.forEach(function(e){return e(t)}))};return s(),d(performance.now()),{pause:function(){u(c)}}},createRoute=function(e,t){return function(r){var n=r.root,i=r.props,o=r.actions,a=void 0===o?[]:o,c=r.timestamp;if(a.filter(function(t){return e[t.type]}).forEach(function(t){return e[t.type]({root:n,props:i,action:t.data,timestamp:c})}),t)return t({root:n,props:i,actions:a,timestamp:c})}},isArray=function(e){return Array.isArray(e)},isEmpty=function(e){return null==e},trim=function(e){return e.trim()},toString=function(e){return\"\"+e},toArray=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\",\";return isEmpty(e)?[]:isArray(e)?e:toString(e).split(t).map(trim).filter(function(e){return e.length})},isBoolean=function(e){return\"boolean\"==typeof e},toBoolean=function(e){return isBoolean(e)?e:\"true\"===e},isString=function(e){return\"string\"==typeof e},toNumber=function(e){return isNumber(e)?e:isString(e)?toString(e).replace(/[a-z]+/gi,\"\"):0},toInt=function(e){return parseInt(toNumber(e),10)},toFloat=function(e){return parseFloat(toNumber(e))},isInt=function(e){return isNumber(e)&&isFinite(e)&&Math.floor(e)===e},toBytes=function(e){if(isInt(e))return e;var t=toString(e).trim();return/MB$/i.test(t)?(t=t.replace(/MB$i/,\"\").trim(),1e3*toInt(t)*1e3):/KB/i.test(t)?(t=t.replace(/KB$i/,\"\").trim(),1e3*toInt(t)):toInt(t)},isFunction=function(e){return\"function\"==typeof e},toFunctionReference=function(e){for(var t=self,r=e.split(\".\"),n=null;n=r.shift();)if(!(t=t[n]))return null;return t},isNull=function(e){return null===e},getType=function(e){return isArray(e)?\"array\":isNull(e)?\"null\":isInt(e)?\"int\":/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(e)?\"bytes\":_typeof(e)},replaceSingleQuotes=function(e){return e.replace(/{\\s*'/g,'{\"').replace(/'\\s*}/g,'\"}').replace(/'\\s*:/g,'\":').replace(/:\\s*'/g,':\"').replace(/,\\s*'/g,',\"').replace(/'\\s*,/g,'\",')},conversionTable={array:toArray,boolean:toBoolean,int:function(e){return\"bytes\"===getType(e)?toBytes(e):toInt(e)},float:toFloat,bytes:toBytes,number:toFloat,string:function(e){return isFunction(e)?e:toString(e)},object:function(e){try{return JSON.parse(replaceSingleQuotes(e))}catch(t){return e}},file:function(e){return e},function:function(e){return toFunctionReference(e)}},convertTo=function(e,t){return conversionTable[t](e)},getValueByType=function(e,t,r){if(e===t)return e;var n=getType(e);if(n!==r){var i=convertTo(e,r);if(n=getType(i),null===i)throw'Trying to assign value with incorrect type, allowed type: \"'.concat(r,'\"');e=i}return e},createOption=function(e,t){var r=e;return{enumerable:!0,get:function(){return r},set:function(n){r=getValueByType(n,e,t)}}},createOptions=function(e){var t={};return forin(e,function(r){var n=isString(e[r])?e[r]:r,i=e[n];t[r]=n===r?createOption(i[0],i[1]):t[n]}),createObject(t)},resetState=function(e){e.file=null,e.activeView=null,e.markup=[],e.markupToolValues={},e.rootRect={x:0,y:0,left:0,top:0,width:0,height:0},e.stage=null,e.stageOffset=null,e.image=null,e.zoomTimeoutId=null,e.instantUpdate=!1,e.filePromise=null,e.fileLoader=null,e.instructions={size:null,crop:null,filter:null,color:null},e.filter=null,e.filterName=null,e.filterValue=null,e.colorValues={},e.colorMatrices={},e.size={width:!1,height:!1,aspectRatioLocked:!0,aspectRatioPrevious:!1},e.crop={rectangle:null,transforms:null,rotation:null,flip:null,aspectRatio:null,isRotating:!1,isDirty:!1,limitToImageBounds:!0,draft:{rectangle:null,transforms:null}}},createInitialState=function(e){var t={noImageTimeout:null,options:createOptions(e)};return resetState(t),t},fromCamels=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"-\";return e.split(/(?=[A-Z])/).map(function(e){return e.toLowerCase()}).join(t)},createOptionAPI=function(e,t){var r={};return forin(t,function(n){var i=isString(t[n])?t[n]:n;r[n]={get:function(){return e.getState().options[i]},set:function(t){e.dispatch(\"SET_\".concat(fromCamels(i,\"_\").toUpperCase()),{value:t})}}}),r},createOptionActions=function(e){return function(t,r,n){var i={};return forin(e,function(e){var r=fromCamels(e,\"_\").toUpperCase();i[\"SET_\".concat(r)]=function(i){var o;try{o=n.options[e],n.options[e]=i.value}catch(e){}t(\"DID_SET_\".concat(r),{value:n.options[e],prevValue:o})}}),i}},createOptionQueries=function(e){return function(t){var r={};return forin(e,function(e){r[\"GET_\".concat(fromCamels(e,\"_\").toUpperCase())]=function(){return t.options[e]}}),r}},getUniqueId=function(){return Math.random().toString(36).substr(2,9)},arrayRemove=function(e,t){return e.splice(t,1)},on=function(){var e=[],t=function(t,r){arrayRemove(e,e.findIndex(function(e){return e.event===t&&(e.cb===r||!r)}))};return{fire:function(t){for(var r=arguments.length,n=new Array(r>1?r-1:0),i=1;i1)&&!window.MSStream),testResult},getOptions=function(){return _objectSpread({},defaultOptions)},setOptions=function(e){forin(e,function(e,t){defaultOptions[e]&&setOption(e,t)})},correctDeprecatedOption=function(e){return isString(defaultOptions[e])?defaultOptions[e]:e},setOption=function(e,t){e=correctDeprecatedOption(e),defaultOptions[e][0]=getValueByType(t,defaultOptions[e][0],defaultOptions[e][1])},defaultOptions={id:[null,Type.STRING],className:[null,Type.STRING],src:[null,Type.FILE],storageName:[\"doka\",Type.STRING],maxImagePreviewWidth:[1500,Type.INT],maxImagePreviewHeight:[1500,Type.INT],imagePreviewScaleMode:[\"stage\",Type.STRING],allowPreviewFitToView:[!0,Type.BOOLEAN],allowButtonCancel:[!0,Type.BOOLEAN],allowButtonConfirm:[!0,Type.BOOLEAN],allowButtonReset:[!0,Type.BOOLEAN],allowDropFiles:[!1,Type.BOOLEAN],allowBrowseFiles:[!0,Type.BOOLEAN],allowAutoClose:[!0,Type.BOOLEAN],allowAutoDestroy:[!1,Type.BOOLEAN],utils:[[\"crop\",\"filter\",\"color\",\"markup\"],Type.ARRAY],util:[null,Type.STRING],initialState:[null,Type.OBJECT],outputData:[!1,Type.BOOLEAN],outputFile:[!0,Type.BOOLEAN],outputCorrectImageExifOrientation:[!0,Type.BOOLEAN],outputStripImageHead:[!0,Type.BOOLEAN],outputType:[null,Type.STRING],outputQuality:[null,Type.INT],outputFit:[\"cover\",Type.STRING],outputUpscale:[!0,Type.BOOLEAN],outputWidth:[null,Type.INT],outputHeight:[null,Type.INT],outputCanvasBackgroundColor:[null,Type.STRING],outputCanvasMemoryLimit:[isBrowser()&&isIOS()?16777216:null,Type.INT],outputCanvasSyncTarget:[null,Type.OBJECT],size:[null,Type.OBJECT],sizeMin:[{width:1,height:1},Type.OBJECT],sizeMax:[{width:9999,height:9999},Type.OBJECT],filter:[null,Type.OBJECT],filters:[{original:{label:\"Original\",matrix:function(){return null}},chrome:{label:\"Chrome\",matrix:function(){return[1.398,-.316,.065,-.273,.201,-.051,1.278,-.08,-.273,.201,-.051,.119,1.151,-.29,.215,0,0,0,1,0]}},fade:{label:\"Fade\",matrix:function(){return[1.073,-.015,.092,-.115,-.017,.107,.859,.184,-.115,-.017,.015,.077,1.104,-.115,-.017,0,0,0,1,0]}},mono:{label:\"Mono\",matrix:function(){return[.212,.715,.114,0,0,.212,.715,.114,0,0,.212,.715,.114,0,0,0,0,0,1,0]}},noir:{label:\"Noir\",matrix:function(){return[.15,1.3,-.25,.1,-.2,.15,1.3,-.25,.1,-.2,.15,1.3,-.25,.1,-.2,0,0,0,1,0]}}},Type.OBJECT],crop:[null,Type.OBJECT],cropShowSize:[!1,Type.BOOLEAN],cropZoomTimeout:[null,Type.INT],cropMask:[null,Type.FUNCTION],cropMaskInset:[0,Type.INT],cropAllowResizeRect:[!0,Type.BOOLEAN],cropAllowImageTurnLeft:[!0,Type.BOOLEAN],cropAllowImageTurnRight:[!1,Type.BOOLEAN],cropAllowImageFlipHorizontal:[!0,Type.BOOLEAN],cropAllowImageFlipVertical:[!0,Type.BOOLEAN],cropAllowToggleLimit:[!1,Type.BOOLEAN],cropLimitToImageBounds:[!0,Type.BOOLEAN],cropAllowInstructionZoom:[!1,Type.BOOLEAN],cropAllowRotate:[!0,Type.BOOLEAN],cropResizeMatchImageAspectRatio:[!1,Type.BOOLEAN],cropResizeKeyCodes:[[18,91,92,93],Type.ARRAY],cropResizeScrollRectOnly:[!1,Type.BOOLEAN],cropAspectRatio:[null,Type.STRING],cropAspectRatioOptions:[null,Type.ARRAY],cropMinImageWidth:[1,Type.INT],cropMinImageHeight:[1,Type.INT],color:[void 0,Type.OBJECT],colorBrightness:[0,Type.NUMBER],colorBrightnessRange:[[-.25,.25],Type.ARRAY],colorContrast:[1,Type.NUMBER],colorContrastRange:[[.5,1.5],Type.ARRAY],colorExposure:[1,Type.NUMBER],colorExposureRange:[[.5,1.5],Type.ARRAY],colorSaturation:[1,Type.NUMBER],colorSaturationRange:[[0,2],Type.ARRAY],markup:[null,Type.ARRAY],markupUtil:[\"select\",Type.STRING],markupFilter:[function(){return!0},Type.FUNCTION],markupAllowAddMarkup:[!0,Type.BOOLEAN],markupAllowCustomColor:[!0,Type.BOOLEAN],markupDrawDistance:[4,Type.NUMBER],beforeAddMarkup:[null,Type.FUNCTION],beforeRemoveMarkup:[null,Type.FUNCTION],onselectmarkup:[null,Type.FUNCTION],onremovemarkup:[null,Type.FUNCTION],onaddmarkup:[null,Type.FUNCTION],markupColor:[\"#000\",Type.STRING],markupColorOptions:[[[\"White\",\"#fff\",\"#f6f6f6\"],[\"Silver\",\"#9e9e9e\"],[\"Black\",\"#000\",\"#333\"],[\"Red\",\"#f44336\"],[\"Orange\",\"#ff9800\"],[\"Yellow\",\"#ffeb3b\"],[\"Green\",\"#4caf50\"],[\"Blue\",\"#2196f3\"],[\"Violet\",\"#3f51b5\"],[\"Purple\",\"#9c27b0\"]],Type.ARRAY],markupFontSize:[.1,Type.NUMBER],markupFontSizeOptions:[[[\"XL\",.15],[\"L\",.125],[\"M\",.1],[\"S\",.075],[\"XS\",.05]],Type.ARRAY],markupFontFamily:[\"Helvetica, Arial, Verdana\",Type.STRING],markupFontFamilyOptions:[[[\"Serif\",\"Palatino, 'Times New Roman', serif\"],[\"Sans Serif\",\"Helvetica, Arial, Verdana\"],[\"Monospaced\",\"Monaco, 'Lucida Console', monospaced\"]],Type.ARRAY],markupShapeStyle:[[.015,null],Type.ARRAY],markupShapeStyleOptions:[[[\"Fill\",0,null,0],[\"Outline thick\",.025,null,4],[\"Outline default\",.015,null,2],[\"Outline thin\",.005,null,1],[\"Outline dashed\",.005,[.01],1]],Type.ARRAY],markupLineStyle:[[.015,null],Type.ARRAY],markupLineStyleOptions:[[[\"Thick\",.025,null,4],[\"Default\",.015,null,2],[\"Thin\",.005,null,1],[\"Dashed\",.005,[.01],1]],Type.ARRAY],markupLineDecoration:[[\"arrow-end\"],Type.ARRAY],markupLineDecorationOptions:[[[\"None\",[]],[\"Single arrow\",[\"arrow-end\"]],[\"Double arrow\",[\"arrow-begin\",\"arrow-end\"]]],Type.ARRAY],stickers:[null,Type.ARRAY],afterUpdateStickerItem:[null,Type.FUNCTION],beforeReset:[null,Type.FUNCTION],beforeLoadImage:[null,Type.FUNCTION],beforeCreateBlob:[null,Type.FUNCTION],afterCreateBlob:[null,Type.FUNCTION],afterCreateOutput:[null,Type.FUNCTION],onconfirm:[null,Type.FUNCTION],oncancel:[null,Type.FUNCTION],onclose:[null,Type.FUNCTION],onloadstart:[null,Type.FUNCTION],onload:[null,Type.FUNCTION],onloaderror:[null,Type.FUNCTION],oninit:[null,Type.FUNCTION],onready:[null,Type.FUNCTION],onupdate:[null,Type.FUNCTION],ondestroy:[null,Type.FUNCTION],labelButtonReset:[\"Reset\",Type.STRING],labelButtonCancel:[\"Cancel\",Type.STRING],labelButtonConfirm:[\"Done\",Type.STRING],labelButtonUtilCrop:[\"Crop\",Type.STRING],labelButtonUtilResize:[\"Resize\",Type.STRING],labelButtonUtilFilter:[\"Filter\",Type.STRING],labelButtonUtilColor:[\"Colors\",Type.STRING],labelButtonUtilMarkup:[\"Markup\",Type.STRING],labelButtonUtilSticker:[\"Stickers\",Type.STRING],labelStatusMissingWebGL:[\"WebGL is required but is disabled on your browser\",Type.STRING],labelStatusAwaitingImage:[\"Waiting for image…\",Type.STRING],labelStatusLoadImageError:[\"Error loading image…\",Type.STRING],labelStatusLoadingImage:[\"Loading image…\",Type.STRING],labelStatusProcessingImage:[\"Processing image…\",Type.STRING],labelColorBrightness:[\"Brightness\",Type.STRING],labelColorContrast:[\"Contrast\",Type.STRING],labelColorExposure:[\"Exposure\",Type.STRING],labelColorSaturation:[\"Saturation\",Type.STRING],labelMarkupTypeRectangle:[\"Square\",Type.STRING],labelMarkupTypeEllipse:[\"Circle\",Type.STRING],labelMarkupTypeText:[\"Text\",Type.STRING],labelMarkupTypeLine:[\"Arrow\",Type.STRING],labelMarkupSelectFontSize:[\"Size\",Type.STRING],labelMarkupSelectFontFamily:[\"Font\",Type.STRING],labelMarkupSelectLineDecoration:[\"Decoration\",Type.STRING],labelMarkupSelectLineStyle:[\"Style\",Type.STRING],labelMarkupSelectShapeStyle:[\"Style\",Type.STRING],labelMarkupRemoveShape:[\"Remove\",Type.STRING],labelMarkupToolSelect:[\"Select\",Type.STRING],labelMarkupToolDraw:[\"Draw\",Type.STRING],labelMarkupToolLine:[\"Arrow\",Type.STRING],labelMarkupToolText:[\"Text\",Type.STRING],labelMarkupToolRect:[\"Square\",Type.STRING],labelMarkupToolEllipse:[\"Circle\",Type.STRING],labelResizeWidth:[\"Width\",Type.STRING],labelResizeHeight:[\"Height\",Type.STRING],labelResizeApplyChanges:[\"Apply\",Type.STRING],labelCropInstructionZoom:[\"Zoom in and out with your scroll wheel or touchpad.\",Type.STRING],labelButtonCropZoom:[\"Zoom\",Type.STRING],labelButtonCropRotateLeft:[\"Rotate left\",Type.STRING],labelButtonCropRotateRight:[\"Rotate right\",Type.STRING],labelButtonCropRotateCenter:[\"Center rotation\",Type.STRING],labelButtonCropFlipHorizontal:[\"Flip horizontal\",Type.STRING],labelButtonCropFlipVertical:[\"Flip vertical\",Type.STRING],labelButtonCropAspectRatio:[\"Aspect ratio\",Type.STRING],labelButtonCropToggleLimit:[\"Crop selection\",Type.STRING],labelButtonCropToggleLimitEnable:[\"Limited to image\",Type.STRING],labelButtonCropToggleLimitDisable:[\"Select outside image\",Type.STRING],pointerEventsPolyfillScope:[\"root\",Type.STRING],styleCropCorner:[\"circle\",Type.STRING],styleFullscreenSafeArea:[isBrowser()&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream?\"bottom\":\"none\",Type.STRING],styleLayoutMode:[null,Type.STRING]},limit=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return Math.min(r,Math.max(t,e))},roundFloat=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;return parseFloat(e.toFixed(t))},vectorEqual=function(e,t){return roundFloat(e.x)===roundFloat(t.x)&&roundFloat(e.y)===roundFloat(t.y)},roundVector=function(e,t){return{x:roundFloat(e.x,t),y:roundFloat(e.y,t)}},vectorSubtract=function(e,t){return createVector(e.x-t.x,e.y-t.y)},vectorDot=function(e,t){return e.x*t.x+e.y*t.y},vectorDistanceSquared=function(e,t){return vectorDot(vectorSubtract(e,t),vectorSubtract(e,t))},vectorDistance=function(e,t){return Math.sqrt(vectorDistanceSquared(e,t))},vectorAngleBetween=function(e,t){var r=vectorSubtract(e,t);return Math.atan2(r.y,r.x)},vectorLimit=function(e,t){return createVector(limit(e.x,t.x,t.x+t.width),limit(e.y,t.y,t.y+t.height))},vectorRotate=function(e,t,r){var n=Math.cos(t),i=Math.sin(t),o=createVector(e.x-r.x,e.y-r.y);return createVector(r.x+n*o.x-i*o.y,r.y+i*o.x+n*o.y)},createVector=function(){return{x:arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,y:arguments.length>1&&void 0!==arguments[1]?arguments[1]:0}},rectEqualsRect=function(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height},rectFitsInRect=function(e,t){var r=rectBounds(e),n=rectBounds(t);return r.left>=n.left&&r.top>=n.top&&r.bottom<=n.bottom&&r.right<=n.right},rotateRectCorners=function(e,t,r){return 0===t?{tl:e.tl,tr:e.tr,br:e.br,bl:e.bl}:{tl:vectorRotate(e.tl,t,r),tr:vectorRotate(e.tr,t,r),br:vectorRotate(e.br,t,r),bl:vectorRotate(e.bl,t,r)}},rectRotate=function(e,t,r){var n=rotateRectCorners(rectCorners(e),t,r),i=n.tl,o=n.tr,a=n.br,c=n.bl,l=Math.min(i.x,o.x,a.x,c.x),u=Math.min(i.y,o.y,a.y,c.y),s=Math.max(i.x,o.x,a.x,c.x),d=Math.max(i.y,o.y,a.y,c.y);return createRect(l,u,s-l,d-u)},rectScale=function(e,t,r){return createRect(t*(e.x-r.x)+r.x,t*(e.y-r.y)+r.y,t*e.width,t*e.height)},rectTranslate=function(e,t){return createRect(e.x+t.x,e.y+t.y,e.width,e.height)},TRANSFORM_MAP={translate:rectTranslate,rotate:rectRotate,scale:rectScale},rectTransform=function(e,t,r){return t.reduce(function(e,t){return(0,TRANSFORM_MAP[t[0]])(e,t[1],r)},e)},rectClone=function(e){return createRect(e.x,e.y,e.width,e.height)},rectBounds=function(e){return{top:e.y,right:e.x+e.width,bottom:e.y+e.height,left:e.x}},rectFromBounds=function(e){var t=e.top,r=e.right,n=e.bottom,i=e.left;return{x:i,y:t,width:r-i,height:n-t}},rectCenter=function(e){return createVector(e.x+.5*e.width,e.y+.5*e.height)},rectCorners=function(e){return{tl:{x:e.x,y:e.y},tr:{x:e.x+e.width,y:e.y},br:{x:e.x+e.width,y:e.y+e.height},bl:{x:e.x,y:e.y+e.height}}},createRect=function(e,t,r,n){return{x:e,y:t,width:r,height:n}},getNumericAspectRatioFromString=function(e){if(isEmpty(e))return e;if(/:/.test(e)){var t=e.split(\":\"),r=t[0];return t[1]/r}return parseFloat(e)},getCenteredCropRect=function(e,t){var r=e.width,n=r*t;return n>e.height&&(r=(n=e.height)/t),{x:.5*(e.width-r),y:.5*(e.height-n),width:r,height:n}},calculateCanvasSize=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=e.height/e.width,i=t,o=1,a=n;a>i&&(o=(a=i)/n);var c=Math.max(1/o,i/a),l=e.width/(r*c*o);return{width:l,height:l*t}},createVector$1=function(e,t){return{x:e,y:t}},vectorDot$1=function(e,t){return e.x*t.x+e.y*t.y},vectorSubtract$1=function(e,t){return createVector$1(e.x-t.x,e.y-t.y)},vectorDistanceSquared$1=function(e,t){return vectorDot$1(vectorSubtract$1(e,t),vectorSubtract$1(e,t))},vectorDistance$1=function(e,t){return Math.sqrt(vectorDistanceSquared$1(e,t))},getOffsetPointOnEdge=function(e,t){var r=e,n=t,i=1.5707963267948966-t,o=Math.sin(1.5707963267948966),a=Math.sin(n),c=Math.sin(i),l=Math.cos(i),u=r/o;return createVector$1(l*(u*a),l*(u*c))},getRotatedRectSize=function(e,t){var r=e.width,n=e.height,i=getOffsetPointOnEdge(r,t),o=getOffsetPointOnEdge(n,t),a=createVector$1(e.x+Math.abs(i.x),e.y-Math.abs(i.y)),c=createVector$1(e.x+e.width+Math.abs(o.y),e.y+Math.abs(o.x)),l=createVector$1(e.x-Math.abs(o.y),e.y+e.height-Math.abs(o.x));return{width:vectorDistance$1(a,c),height:vectorDistance$1(a,l)}},getImageRectZoomFactor=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{x:.5,y:.5},i=n.x>.5?1-n.x:n.x,o=n.y>.5?1-n.y:n.y,a=2*i*e.width,c=2*o*e.height,l=getRotatedRectSize(t,r);return Math.max(l.width/a,l.height/c)},getAxisAlignedImageRect=function(e,t){var r=t.origin,n=t.translation,i=t.scale;return rectTransform(e,[[\"scale\",i],[\"translate\",n]],r)},getOffsetPointOnEdge$1=function(e,t){var r=e,n=t,i=1.5707963267948966-t,o=Math.sin(1.5707963267948966),a=Math.sin(n),c=Math.sin(i),l=Math.cos(i),u=r/o;return createVector(l*(u*a),l*(u*c))},getRotatedRectCorners=function(e,t){var r=e.width,n=e.height,i=t%(Math.PI/2),o=getOffsetPointOnEdge$1(r,i),a=getOffsetPointOnEdge$1(n,i),c=rectCorners(e);return{tl:createVector(c.tl.x+Math.abs(o.x),c.tl.y-Math.abs(o.y)),tr:createVector(c.tr.x+Math.abs(a.y),c.tr.y+Math.abs(a.x)),br:createVector(c.br.x-Math.abs(o.x),c.br.y+Math.abs(o.y)),bl:createVector(c.bl.x-Math.abs(a.y),c.bl.y-Math.abs(a.x))}},getAxisAlignedCropRect=function(e,t,r,n){var i={x:e.x+t.x,y:e.y+t.y},o=getRotatedRectCorners(n,r),a=vectorRotate(o.tl,-r,i),c=vectorRotate(o.tr,-r,i),l=vectorRotate(o.br,-r,i);return createRect(Math.min(a.x,c.x,l.x),Math.min(a.y,c.y,l.y),Math.max(a.x,c.x,l.x)-Math.min(a.x,c.x,l.x),Math.max(a.y,c.y,l.y)-Math.min(a.y,c.y,l.y))},getCropFromView=function(e,t,r){var n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],i=r.origin,o=r.translation,a=getAxisAlignedImageRect(e,r),c=2*Math.PI+r.rotation%(2*Math.PI),l=getAxisAlignedCropRect(i,o,c,t),u=rectCenter(l),s=t.height/t.width,d={x:(u.x-a.x)/a.width,y:(u.y-a.y)/a.height},p=d.y>.5?1-d.y:d.y,f=2*(d.x>.5?1-d.x:d.x)*a.width,h=2*p*a.height;return{center:d,zoom:n?Math.min(f/l.width,h/l.height):Math.min(a.width/l.width,a.height/l.height),rotation:r.rotation,aspectRatio:s,scaleToFit:n}},getCropFromStateRounded=function(e,t){var r=getCropFromState(e,t);return{center:{x:roundFloat(r.center.x),y:roundFloat(r.center.y)},rotation:roundFloat(r.rotation),zoom:roundFloat(r.zoom),aspectRatio:roundFloat(r.aspectRatio),flip:_objectSpread({},t.flip),scaleToFit:r.scaleToFit}},getCropFromState=function(e,t){var r=getCropFromView(e,t.rectangle,t.transforms,t.limitToImageBounds);return{center:{x:r.center.x,y:r.center.y},rotation:r.rotation,zoom:r.zoom,aspectRatio:r.aspectRatio,flip:_objectSpread({},t.flip),scaleToFit:r.scaleToFit}},limitSize=function(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:\"width\",o=e.width,a=e.height;if(!o&&!a)return{width:o,height:a};if(o=o&&limit(o,t.width,r.width),a=a&&limit(a,t.height,r.height),!n)return{width:o,height:a};if(a)if(o)\"width\"===i?a=o/n:\"height\"===i?o=a*n:(a*nr.width?a=(o=r.width)/n:o/n>r.height&&(o=(a=r.height)*n));else{a=limit(a*n,t.width,r.width)/n}else o=limit(o/n,t.height,r.height)*n;return{width:o,height:a}},dotColorMatrix=function(e,t){var r=new Array(20);return r[0]=e[0]*t[0]+e[1]*t[5]+e[2]*t[10]+e[3]*t[15],r[1]=e[0]*t[1]+e[1]*t[6]+e[2]*t[11]+e[3]*t[16],r[2]=e[0]*t[2]+e[1]*t[7]+e[2]*t[12]+e[3]*t[17],r[3]=e[0]*t[3]+e[1]*t[8]+e[2]*t[13]+e[3]*t[18],r[4]=e[0]*t[4]+e[1]*t[9]+e[2]*t[14]+e[3]*t[19]+e[4],r[5]=e[5]*t[0]+e[6]*t[5]+e[7]*t[10]+e[8]*t[15],r[6]=e[5]*t[1]+e[6]*t[6]+e[7]*t[11]+e[8]*t[16],r[7]=e[5]*t[2]+e[6]*t[7]+e[7]*t[12]+e[8]*t[17],r[8]=e[5]*t[3]+e[6]*t[8]+e[7]*t[13]+e[8]*t[18],r[9]=e[5]*t[4]+e[6]*t[9]+e[7]*t[14]+e[8]*t[19]+e[9],r[10]=e[10]*t[0]+e[11]*t[5]+e[12]*t[10]+e[13]*t[15],r[11]=e[10]*t[1]+e[11]*t[6]+e[12]*t[11]+e[13]*t[16],r[12]=e[10]*t[2]+e[11]*t[7]+e[12]*t[12]+e[13]*t[17],r[13]=e[10]*t[3]+e[11]*t[8]+e[12]*t[13]+e[13]*t[18],r[14]=e[10]*t[4]+e[11]*t[9]+e[12]*t[14]+e[13]*t[19]+e[14],r[15]=e[15]*t[0]+e[16]*t[5]+e[17]*t[10]+e[18]*t[15],r[16]=e[15]*t[1]+e[16]*t[6]+e[17]*t[11]+e[18]*t[16],r[17]=e[15]*t[2]+e[16]*t[7]+e[17]*t[12]+e[18]*t[17],r[18]=e[15]*t[3]+e[16]*t[8]+e[17]*t[13]+e[18]*t[18],r[19]=e[15]*t[4]+e[16]*t[9]+e[17]*t[14]+e[18]*t[19]+e[19],r},toRGBColorArray=function(e){var t;if(/^#/.test(e)){if(4===e.length){var r=e.split(\"\");e=\"#\"+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]}var n=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(e);t=[parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)]}else if(/^rgb/.test(e)){(t=e.match(/\\d+/g).map(function(e){return parseInt(e,10)})).length=3}return t},viewCache=[],getColorMatrixFromMatrices=function(e){var t=[];return forin(e,function(e,r){return t.push(r)}),t.length?t.reduce(function(e,t){return dotColorMatrix(_toConsumableArray(e),t)},t.shift()):[]},getImageScalar=function(e){return e.crop.draft.transforms?e.crop.draft.transforms.scale:e.crop.transforms.scale},getMinCropSize=function(e){var t=e.image.width/e.image.naturalWidth,r=getImageScalar(e);return{width:e.options.cropMinImageWidth*r*t,height:e.options.cropMinImageHeight*r*t}},getMaxCropSize=function(e){var t=getImageScalar(e);return{width:e.image.width*t,height:e.image.height*t}},getWidth=function(e){return e.options.size?e.options.size.width:null},getHeight=function(e){return e.options.size?e.options.size.height:null},getOutputSizeWidth=function(e){return!1===e.size.width?getWidth(e):e.size.width},getOutputSizeHeight=function(e){return!1===e.size.height?getHeight(e):e.size.height},getAspectRatioOptions=function(e){return e.options.cropAspectRatioOptions?e.options.cropAspectRatioOptions.map(function(e){var t={aspectRatio:null,width:null,height:null};return\"number\"==typeof e.value&&(t.aspectRatio=e.value),\"string\"==typeof e.value&&(t.aspectRatio=getNumericAspectRatioFromString(e.value)),\"object\"===_typeof(e.value)&&null!==e.value&&(t.width=e.value.width,t.height=e.value.height,t.aspectRatio=t.height/t.width),{label:e.label,value:t}}):null},getCropStageRect=function(e,t){t.aspectRatio||(t.aspectRatio=e.image.height/e.image.width);var r=getCurrentCropSize(e.image,t,t.scaleToFit),n=r.width/r.height;return e.stage.width1&&void 0!==arguments[1]?arguments[1]:{},r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],n=t.zoom,i=t.rotation,o=t.center,a=t.aspectRatio,c=calculateCanvasSize(e,a,n),l={x:.5*c.width,y:.5*c.height},u={x:0,y:0,width:c.width,height:c.height,center:l},s=n*getImageRectZoomFactor(e,getCenteredCropRect(u,a),i,r?o:{x:.5,y:.5});return{widthFloat:c.width/s,heightFloat:c.height/s,width:Math.round(c.width/s),height:Math.round(c.height/s)}},canZoom=function(e,t){var r=rectCenter(t),n=rectCenter(e);return!vectorEqual(n,r)},getCropView=function(e){if(!e.stage||!e.image)return null;var t=e.crop.draft.rectangle||{free:e.crop.rectangle,limited:e.crop.rectangle},r=e.crop.draft.transforms||e.crop.transforms,n=r.origin,i=r.translation,o=r.scale,a=r.interaction,c=e.crop.rotation,l=e.crop.flip,u=!(!e.crop.draft.rectangle&&!e.crop.draft.transforms),s=u||e.instantUpdate,d=canZoom(t.limited,e.stage),p=e.crop.isDirty||u,f=e.crop.isRotating,h=void 0===e.crop.limitToImageBounds||e.crop.limitToImageBounds,g={width:e.image.naturalWidth,height:e.image.naturalHeight},m=getColorMatrixFromMatrices(e.colorMatrices),v=getCropFromState(e.image,{rectangle:t.limited,transforms:{origin:n,translation:i,scale:o,rotation:c.main+c.sub},flip:l,limitToImageBounds:e.crop.limitToImageBounds}),y={props:v,crop:getCurrentCropSize(g,v,e.crop.limitToImageBounds),image:getCurrentImageSize(e,t.limited)},E=y.image,T=y.crop,_=T.width,R=T.height,w=T.widthFloat/T.heightFloat;E.width&&E.height?(_=E.width,R=E.height):E.width&&!E.height?(_=E.width,R=E.width/w):E.height&&!E.width&&(R=E.height,_=E.height*w),y.currentWidth=Math.round(_),y.currentHeight=Math.round(R);var A={x:0,y:0},I=0,S=0;if(s&&a){if(a.translation){var C=a.translation.x-i.x,O=a.translation.y-i.y;A.x=100*Math.sign(C)*Math.log10(1+Math.abs(C)/100),A.y=100*Math.sign(O)*Math.log10(1+Math.abs(O)/100)}if(a.scale){var x=a.scale-o;I=.25*Math.sign(x)*Math.log10(1+Math.abs(x)/.25)}if(a.rotation){var b=a.rotation-(c.main+c.sub);S=.05*Math.sign(b)*Math.log10(1+Math.abs(b)/.05)}}var M={},L=t.free,P=rectBounds(L),G=rectBounds(t.limited);return forin(P,function(e){var t=P[e]-G[e];M[e]=G[e]+5*Math.sign(t)*Math.log10(1+Math.abs(t)/5)}),{canRecenter:d,canReset:p,isDraft:s,isRotating:f,isLimitedToImageBounds:h,cropRect:{x:M.left,y:M.top,width:M.right-M.left,height:M.bottom-M.top},origin:n,translation:i,translationBand:A,scale:o,scaleBand:I,rotation:c,rotationBand:S,flip:l,interaction:a,cropStatus:y,colorMatrix:m,markup:e.markup,previewSize:{width:e.image.width,height:e.image.height}}},isImage=function(e){return/^image/.test(e)},MATRICES={1:function(){return[1,0,0,1,0,0]},2:function(e){return[-1,0,0,1,e,0]},3:function(e,t){return[-1,0,0,-1,e,t]},4:function(e,t){return[1,0,0,-1,0,t]},5:function(){return[0,1,1,0,0,0]},6:function(e,t){return[0,1,-1,0,t,0]},7:function(e,t){return[0,-1,-1,0,t,e]},8:function(e){return[0,-1,1,0,0,e]}},getImageOrientationMatrix=function(e,t,r){return-1===r&&(r=1),MATRICES[r](e,t)},canvasRelease=function(e){e.width=1,e.height=1,e.getContext(\"2d\").clearRect(0,0,1,1)},isFlipped=function(e){return e&&(e.horizontal||e.vertical)},getBitmap=function(e,t,r){if(t<=1&&!isFlipped(r))return e.width=e.naturalWidth,e.height=e.naturalHeight,e;var n=document.createElement(\"canvas\"),i=e.naturalWidth,o=e.naturalHeight,a=t>=5&&t<=8;a?(n.width=o,n.height=i):(n.width=i,n.height=o);var c=n.getContext(\"2d\");if(t&&c.transform.apply(c,getImageOrientationMatrix(i,o,t)),isFlipped(r)){var l=[1,0,0,1,0,0];(!a&&r.horizontal||a&r.vertical)&&(l[0]=-1,l[4]=i),(!a&&r.vertical||a&&r.horizontal)&&(l[3]=-1,l[5]=o),c.transform.apply(c,l)}return c.drawImage(e,0,0,i,o),n},imageToImageData=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=n.canvasMemoryLimit,o=n.background,a=void 0===o?null:o,c=r.zoom||1,l=getBitmap(e,t,r.flip),u={width:l.width,height:l.height},s=r.aspectRatio||u.height/u.width,d=calculateCanvasSize(u,s,c);if(i){var p=d.width*d.height;if(p>i){var f=Math.sqrt(i)/Math.sqrt(p);u.width=Math.floor(u.width*f),u.height=Math.floor(u.height*f),d=calculateCanvasSize(u,s,c)}}var h=document.createElement(\"canvas\"),g={x:.5*d.width,y:.5*d.height},m={x:0,y:0,width:d.width,height:d.height,center:g},v=void 0===r.scaleToFit||r.scaleToFit,y=c*getImageRectZoomFactor(u,getCenteredCropRect(m,s),r.rotation,v?r.center:{x:.5,y:.5});h.width=Math.round(d.width/y),h.height=Math.round(d.height/y),g.x/=y,g.y/=y;var E=g.x-u.width*(r.center?r.center.x:.5),T=g.y-u.height*(r.center?r.center.y:.5),_=h.getContext(\"2d\");a&&(_.fillStyle=a,_.fillRect(0,0,h.width,h.height)),_.translate(g.x,g.y),_.rotate(r.rotation||0),_.drawImage(l,E-g.x,T-g.y,u.width,u.height);var R=_.getImageData(0,0,h.width,h.height);return canvasRelease(h),R},IS_BROWSER$1=\"undefined\"!=typeof window&&void 0!==window.document;IS_BROWSER$1&&(HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,\"toBlob\",{value:function(e,t,r){var n=this.toDataURL(t,r).split(\",\")[1];setTimeout(function(){for(var r=atob(n),i=r.length,o=new Uint8Array(i),a=0;a2&&void 0!==arguments[2]?arguments[2]:null;return new Promise(function(n){var i=r?r(e):e;Promise.resolve(i).then(function(e){e.toBlob(n,t.type,t.quality)})})},vectorMultiply$1=function(e,t){return createVector$2(e.x*t,e.y*t)},vectorAdd$1=function(e,t){return createVector$2(e.x+t.x,e.y+t.y)},vectorNormalize$1=function(e){var t=Math.sqrt(e.x*e.x+e.y*e.y);return 0===t?{x:0,y:0}:createVector$2(e.x/t,e.y/t)},vectorRotate$1=function(e,t,r){var n=Math.cos(t),i=Math.sin(t),o=createVector$2(e.x-r.x,e.y-r.y);return createVector$2(r.x+n*o.x-i*o.y,r.y+i*o.x+n*o.y)},createVector$2=function(){return{x:arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,y:arguments.length>1&&void 0!==arguments[1]?arguments[1]:0}},getMarkupValue=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3?arguments[3]:void 0;return\"string\"==typeof e?parseFloat(e)*r:\"number\"==typeof e?e*(n?t[n]:Math.min(t.width,t.height)):void 0},getMarkupStyles=function(e,t,r){var n=e.borderStyle||e.lineStyle||\"solid\",i=e.backgroundColor||e.fontColor||\"transparent\",o=e.borderColor||e.lineColor||\"transparent\",a=getMarkupValue(e.borderWidth||e.lineWidth,t,r);return{\"stroke-linecap\":e.lineCap||\"round\",\"stroke-linejoin\":e.lineJoin||\"round\",\"stroke-width\":a||0,\"stroke-dasharray\":\"string\"==typeof n?\"\":n.map(function(e){return getMarkupValue(e,t,r)}).join(\",\"),stroke:o,fill:i,opacity:e.opacity||1}},isDefined=function(e){return null!=e},getMarkupRect=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=getMarkupValue(e.x,t,r,\"width\")||getMarkupValue(e.left,t,r,\"width\"),i=getMarkupValue(e.y,t,r,\"height\")||getMarkupValue(e.top,t,r,\"height\"),o=getMarkupValue(e.width,t,r,\"width\"),a=getMarkupValue(e.height,t,r,\"height\"),c=getMarkupValue(e.right,t,r,\"width\"),l=getMarkupValue(e.bottom,t,r,\"height\");return isDefined(i)||(i=isDefined(a)&&isDefined(l)?t.height-a-l:l),isDefined(n)||(n=isDefined(o)&&isDefined(c)?t.width-o-c:c),isDefined(o)||(o=isDefined(n)&&isDefined(c)?t.width-n-c:0),isDefined(a)||(a=isDefined(i)&&isDefined(l)?t.height-i-l:0),{x:n||0,y:i||0,width:o||0,height:a||0}},pointsToPathShape=function(e){return e.map(function(e,t){return\"\".concat(0===t?\"M\":\"L\",\" \").concat(e.x,\" \").concat(e.y)}).join(\" \")},setAttributes=function(e,t){return Object.keys(t).forEach(function(r){return e.setAttribute(r,t[r])})},ns$1=\"http://www.w3.org/2000/svg\",svg=function(e,t){var r=document.createElementNS(ns$1,e);return t&&setAttributes(r,t),r},updateRect$1=function(e){return setAttributes(e,_objectSpread({},e.rect,e.styles))},updateEllipse=function(e){var t=e.rect.x+.5*e.rect.width,r=e.rect.y+.5*e.rect.height,n=.5*e.rect.width,i=.5*e.rect.height;return setAttributes(e,_objectSpread({cx:t,cy:r,rx:n,ry:i},e.styles))},IMAGE_FIT_STYLE={contain:\"xMidYMid meet\",cover:\"xMidYMid slice\"},updateImage=function(e,t){setAttributes(e,_objectSpread({},e.rect,e.styles,{preserveAspectRatio:IMAGE_FIT_STYLE[t.fit]||\"none\"}))},TEXT_ANCHOR={left:\"start\",center:\"middle\",right:\"end\"},updateText=function(e,t,r,n){var i=getMarkupValue(t.fontSize,r,n),o=t.fontFamily||\"sans-serif\",a=t.fontWeight||\"normal\",c=TEXT_ANCHOR[t.textAlign]||\"start\";setAttributes(e,_objectSpread({},e.rect,e.styles,{\"stroke-width\":0,\"font-weight\":a,\"font-size\":i,\"font-family\":o,\"text-anchor\":c})),e.text!==t.text&&(e.text=t.text,e.textContent=t.text.length?t.text:\" \")},updateLine=function(e,t,r,n){setAttributes(e,_objectSpread({},e.rect,e.styles,{fill:\"none\"}));var i=e.childNodes[0],o=e.childNodes[1],a=e.childNodes[2],c=e.childNodes[3],l=e.rect,u={x:e.rect.x+e.rect.width,y:e.rect.y+e.rect.height};if(setAttributes(i,{x1:l.x,y1:l.y,x2:u.x,y2:u.y}),setAttributes(c,{x1:l.x,y1:l.y,x2:u.x,y2:u.y}),t.lineDecoration){o.style.display=\"none\",a.style.display=\"none\";var s=vectorNormalize$1({x:u.x-l.x,y:u.y-l.y}),d=getMarkupValue(.05,r,n);if(-1!==t.lineDecoration.indexOf(\"arrow-begin\")){var p=vectorMultiply$1(s,d),f=vectorAdd$1(l,p),h=vectorRotate$1(l,2,f),g=vectorRotate$1(l,-2,f);setAttributes(o,{style:\"display:block;\",d:\"M\".concat(h.x,\",\").concat(h.y,\" L\").concat(l.x,\",\").concat(l.y,\" L\").concat(g.x,\",\").concat(g.y)})}if(-1!==t.lineDecoration.indexOf(\"arrow-end\")){var m=vectorMultiply$1(s,-d),v=vectorAdd$1(u,m),y=vectorRotate$1(u,2,v),E=vectorRotate$1(u,-2,v);setAttributes(a,{style:\"display:block;\",d:\"M\".concat(y.x,\",\").concat(y.y,\" L\").concat(u.x,\",\").concat(u.y,\" L\").concat(E.x,\",\").concat(E.y)})}}},updatePath=function(e,t,r,n){setAttributes(e,_objectSpread({},e.styles,{fill:\"none\"}));var i=e.childNodes[0],o=e.childNodes[1],a=pointsToPathShape(t.points.map(function(e){return{x:getMarkupValue(e.x,r,n,\"width\"),y:getMarkupValue(e.y,r,n,\"height\")}}));setAttributes(i,{d:a}),setAttributes(o,{d:a})},createShape=function(e){return function(t){return svg(e,{id:t.id})}},createImage=function(e){var t=svg(\"image\",{id:e.id,\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\",opacity:\"0\"});return t.onload=function(){t.setAttribute(\"opacity\",e.opacity||1)},t.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"xlink:href\",e.src),t},createLine=function(e){var t=svg(\"g\",{id:e.id,\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}),r=svg(\"line\");t.appendChild(r);var n=svg(\"path\");t.appendChild(n);var i=svg(\"path\");t.appendChild(i);var o=svg(\"line\",{style:\"stroke-width: 40; stroke-opacity: 0;\"});return t.appendChild(o),t},createPath=function(e){var t=svg(\"g\",{id:e.id}),r=svg(\"path\");t.appendChild(r);var n=svg(\"path\",{style:\"stroke-width: 40; stroke-opacity: 0;\"});return t.appendChild(n),t},CREATE_TYPE_ROUTES={image:createImage,rect:createShape(\"rect\"),ellipse:createShape(\"ellipse\"),text:createShape(\"text\"),path:createPath,line:createLine},UPDATE_TYPE_ROUTES={rect:updateRect$1,ellipse:updateEllipse,image:updateImage,text:updateText,path:updatePath,line:updateLine},createMarkupByType=function(e,t){return CREATE_TYPE_ROUTES[e](t)},updateMarkupByType=function(e,t,r,n,i){\"path\"!==t&&(e.rect=getMarkupRect(r,n,i)),e.styles=getMarkupStyles(r,n,i),UPDATE_TYPE_ROUTES[t](e,r,n,i)},sortMarkupByZIndex=function(e,t){return e[1].zIndex>t[1].zIndex?1:e[1].zIndex\".concat(_.replace(/ /g,\" \"),\"\\n\\n\")}var w=t.aspectRatio||T/E,A=E,I=A*w,S=void 0===t.scaleToFit||t.scaleToFit,C=getImageRectZoomFactor({width:E,height:T},getCenteredCropRect({width:A,height:I},w),t.rotation,S?t.center:{x:.5,y:.5}),O=t.zoom*C,x=t.rotation*(180/Math.PI),b={x:.5*A,y:.5*I},M={x:b.x-E*t.center.x,y:b.y-T*t.center.y},L=[\"rotate(\".concat(x,\" \").concat(b.x,\" \").concat(b.y,\")\"),\"translate(\".concat(b.x,\" \").concat(b.y,\")\"),\"scale(\".concat(O,\")\"),\"translate(\".concat(-b.x,\" \").concat(-b.y,\")\"),\"translate(\".concat(M.x,\" \").concat(M.y,\")\")],P=[\"scale(\".concat(t.flip.horizontal?-1:1,\" \").concat(t.flip.vertical?-1:1,\")\"),\"translate(\".concat(t.flip.horizontal?-E:0,\" \").concat(t.flip.vertical?-T:0,\")\")],G='\\n\\n\\x3c!-- Generated by PQINA - https://pqina.nl/ --\\x3e\\n').concat(u?u.textContent:\"\",'\\n\\n\\n').concat(o.outerHTML).concat(_,\"\\n\\n\\n\");i(G)},c.readAsText(e)})},objectToImageData=function(e){var t;try{t=new ImageData(e.width,e.height)}catch(r){t=document.createElement(\"canvas\").getContext(\"2d\").createImageData(e.width,e.height)}return t.data.set(e.data),t},TransformWorker=function(){var e={resize:function(e,t){var r=t.mode,n=void 0===r?\"contain\":r,i=t.upscale,a=void 0!==i&&i,u=t.width,s=t.height,d=t.matrix;if(d=!d||c(d)?null:d,!u&&!s)return l(e,d);null===u?u=s:null===s&&(s=u);if(\"force\"!==n){var p=u/e.width,f=s/e.height,h=1;if(\"cover\"===n?h=Math.max(p,f):\"contain\"===n&&(h=Math.min(p,f)),h>1&&!1===a)return l(e,d);u=e.width*h,s=e.height*h}for(var g=e.width,m=e.height,v=Math.round(u),y=Math.round(s),E=e.data,T=new Uint8ClampedArray(v*y*4),_=g/v,R=m/y,w=Math.ceil(.5*_),A=Math.ceil(.5*R),I=0;I=-1&&z<=1&&(O=2*z*z*z-3*z*z+1)>0){var W=E[(F=4*(N+D*g))+3];G+=O*W,b+=O,W<255&&(O=O*W/250),M+=O*E[F],L+=O*E[F+1],P+=O*E[F+2],x+=O}}T[C]=M/x,T[C+1]=L/x,T[C+2]=P/x,T[C+3]=G/b,d&&o(C,T,d)}return{data:T,width:v,height:y}},filter:l},t=function(t,r){var n=t.transforms,i=null;if(n.forEach(function(e){\"filter\"===e.type&&(i=e)}),i){var o=null;n.forEach(function(e){\"resize\"===e.type&&(o=e)}),o&&(o.data.matrix=i.data,n=n.filter(function(e){return\"filter\"!==e.type}))}r(function(t,r){return t.forEach(function(t){r=e[t.type](r,t.data)}),r}(n,t.imageData))};self.onmessage=function(e){t(e.data.message,function(t){self.postMessage({id:e.data.id,message:t},[t.data.buffer])})};var r=1,n=1,i=1;function o(e,t,o){var a=t[e]/255,c=t[e+1]/255,l=t[e+2]/255,u=t[e+3]/255,s=a*o[0]+c*o[1]+l*o[2]+u*o[3]+o[4],d=a*o[5]+c*o[6]+l*o[7]+u*o[8]+o[9],p=a*o[10]+c*o[11]+l*o[12]+u*o[13]+o[14],f=a*o[15]+c*o[16]+l*o[17]+u*o[18]+o[19],h=Math.max(0,s*f)+r*(1-f),g=Math.max(0,d*f)+n*(1-f),m=Math.max(0,p*f)+i*(1-f);t[e]=255*Math.max(0,Math.min(1,h)),t[e+1]=255*Math.max(0,Math.min(1,g)),t[e+2]=255*Math.max(0,Math.min(1,m))}var a=self.JSON.stringify([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]);function c(e){return self.JSON.stringify(e||[])===a}function l(e,t){if(!t||c(t))return e;for(var o=e.data,a=o.length,l=t[0],u=t[1],s=t[2],d=t[3],p=t[4],f=t[5],h=t[6],g=t[7],m=t[8],v=t[9],y=t[10],E=t[11],T=t[12],_=t[13],R=t[14],w=t[15],A=t[16],I=t[17],S=t[18],C=t[19],O=0,x=0,b=0,M=0,L=0,P=0,G=0,k=0,D=0,U=0,B=0,V=0;O=65504&&r<=65519||65534===r))break;if(o||(o=correctOrientation(t,i,n)),i+n>t.byteLength)break;i+=n}return e.slice(0,i)},getImageHead=function(e){return new Promise(function(t){var r=new FileReader;r.onload=function(){return t(readData(r.result)||null)},r.readAsArrayBuffer(e.slice(0,262144))})},getBlobBuilder=function(){return window.BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder},createBlob=function(e,t){var r=getBlobBuilder();if(r){var n=new r;return n.append(e),n.getBlob(t)}return new Blob([e],{type:t})},getUniqueId$1=function(){return Math.random().toString(36).substr(2,9)},createWorker=function(e){var t=new Blob([\"(\",e.toString(),\")()\"],{type:\"application/javascript\"}),r=URL.createObjectURL(t),n=new Worker(r),i=[];return{transfer:function(){},post:function(e,t,r){var o=getUniqueId$1();i[o]=t,n.onmessage=function(e){var t=i[e.data.id];t&&(t(e.data.message),delete i[e.data.id])},n.postMessage({id:o,message:e},r)},terminate:function(){n.terminate(),URL.revokeObjectURL(r)}}},loadImage=function(e){return new Promise(function(t,r){var n=new Image;n.onload=function(){t(n)},n.onerror=function(e){r(e)},n.src=e})},chain=function(e){return e.reduce(function(e,t){return e.then(function(e){return t().then(Array.prototype.concat.bind(e))})},Promise.resolve([]))},canvasApplyMarkup=function(e,t){return new Promise(function(r){var n={width:e.width,height:e.height},i=e.getContext(\"2d\"),o=t.sort(sortMarkupByZIndex).map(function(e){return function(){return new Promise(function(t){TYPE_DRAW_ROUTES[e[0]](i,n,e[1],t)&&t()})}});chain(o).then(function(){return r(e)})})},applyMarkupStyles=function(e,t){e.beginPath(),e.lineCap=t[\"stroke-linecap\"],e.lineJoin=t[\"stroke-linejoin\"],e.lineWidth=t[\"stroke-width\"],t[\"stroke-dasharray\"].length&&e.setLineDash(t[\"stroke-dasharray\"].split(\",\")),e.fillStyle=t.fill,e.strokeStyle=t.stroke,e.globalAlpha=t.opacity||1},drawMarkupStyles=function(e){e.fill(),e.stroke(),e.globalAlpha=1},drawRect=function(e,t,r){var n=getMarkupRect(r,t),i=getMarkupStyles(r,t);return applyMarkupStyles(e,i),e.rect(n.x,n.y,n.width,n.height),drawMarkupStyles(e,i),!0},drawEllipse=function(e,t,r){var n=getMarkupRect(r,t),i=getMarkupStyles(r,t);applyMarkupStyles(e,i);var o=n.x,a=n.y,c=n.width,l=n.height,u=c/2*.5522848,s=l/2*.5522848,d=o+c,p=a+l,f=o+c/2,h=a+l/2;return e.moveTo(o,h),e.bezierCurveTo(o,h-s,f-u,a,f,a),e.bezierCurveTo(f+u,a,d,h-s,d,h),e.bezierCurveTo(d,h+s,f+u,p,f,p),e.bezierCurveTo(f-u,p,o,h+s,o,h),drawMarkupStyles(e,i),!0},drawImage=function(e,t,r,n){var i=getMarkupRect(r,t),o=getMarkupStyles(r,t);applyMarkupStyles(e,o);var a=new Image;new URL(r.src,window.location.href).origin!==window.location.origin&&(a.crossOrigin=\"\"),a.onload=function(){if(\"cover\"===r.fit){var t=i.width/i.height,c=t>1?a.width:a.height*t,l=t>1?a.width/t:a.height,u=.5*a.width-.5*c,s=.5*a.height-.5*l;e.drawImage(a,u,s,c,l,i.x,i.y,i.width,i.height)}else if(\"contain\"===r.fit){var d=Math.min(i.width/a.width,i.height/a.height),p=d*a.width,f=d*a.height,h=i.x+.5*i.width-.5*p,g=i.y+.5*i.height-.5*f;e.drawImage(a,0,0,a.width,a.height,h,g,p,f)}else e.drawImage(a,0,0,a.width,a.height,i.x,i.y,i.width,i.height);drawMarkupStyles(e,o),n()},a.src=r.src},drawText=function(e,t,r){var n=getMarkupRect(r,t),i=getMarkupStyles(r,t);applyMarkupStyles(e,i);var o=getMarkupValue(r.fontSize,t),a=r.fontFamily||\"sans-serif\",c=r.fontWeight||\"normal\",l=r.textAlign||\"left\";return e.font=\"\".concat(c,\" \").concat(o,\"px \").concat(a),e.textAlign=l,e.fillText(r.text,n.x,n.y),drawMarkupStyles(e,i),!0},drawPath=function(e,t,r){var n=getMarkupStyles(r,t);applyMarkupStyles(e,n),e.beginPath();var i=r.points.map(function(e){return{x:getMarkupValue(e.x,t,1,\"width\"),y:getMarkupValue(e.y,t,1,\"height\")}});e.moveTo(i[0].x,i[0].y);for(var o=i.length,a=1;a2&&void 0!==arguments[2]?arguments[2]:{};return new Promise(function(n,i){if(!e||!isImage(e.type))return i({status:\"not an image file\",file:e});var o=r.stripImageHead,a=r.beforeCreateBlob,c=r.afterCreateBlob,l=r.canvasMemoryLimit,u=t.crop,s=t.size,d=t.filter,p=t.markup,f=t.output,h=t.image&&t.image.orientation?Math.max(1,Math.min(8,t.image.orientation)):null,g=f&&f.quality,m=null===g?null:g/100,v=f&&f.type||null,y=f&&f.background||null,E=[];!s||\"number\"!=typeof s.width&&\"number\"!=typeof s.height||E.push({type:\"resize\",data:s}),d&&20===d.length&&E.push({type:\"filter\",data:d});var T=function(e){var t=c?c(e):e;Promise.resolve(t).then(n)},_=function(t,r){var n=imageDataToCanvas(t),c=p.length?canvasApplyMarkup(n,p):n;Promise.resolve(c).then(function(t){canvasToBlob(t,r,a).then(function(r){if(canvasRelease(t),o)return T(r);getImageHead(e).then(function(e){null!==e&&(r=new Blob([e,r.slice(20)],{type:r.type})),T(r)})}).catch(i)})};if(/svg/.test(e.type)&&null===v)return cropSVG(e,u,p,{background:y}).then(function(e){n(createBlob(e,\"image/svg+xml\"))});var R=URL.createObjectURL(e);loadImage(R).then(function(t){URL.revokeObjectURL(R);var r=imageToImageData(t,h,u,{canvasMemoryLimit:l,background:y}),n={quality:m,type:v||e.type};if(!E.length)return _(r,n);var i=createWorker(TransformWorker);i.post({transforms:E,imageData:r},function(e){_(objectToImageData(e),n),i.terminate()},[r.data.buffer])}).catch(i)})},readExif=function(e,t){if(1165519206!==e.getUint32(t+=2,!1))return-1;var r=18761===e.getUint16(t+=6,!1);t+=e.getUint32(t+4,r);var n=e.getUint16(t,r);t+=2;for(var i=0;i3&&void 0!==arguments[3])||arguments[3],i=e.center,o=e.zoom,a=e.aspectRatio,c=rectCenter(t),l={x:c.x-r.width*i.x,y:c.y-r.height*i.y},u=2*Math.PI+e.rotation%(2*Math.PI),s=o*getImageRectZoomFactor(r,getCenteredCropRect(t,a||r.height/r.width),u,n?i:{x:.5,y:.5});return{origin:{x:i.x*r.width,y:i.y*r.height},translation:l,scale:s,rotation:e.rotation}},copyImageTransforms=function(e){return{origin:_objectSpread({},e.origin),translation:_objectSpread({},e.translation),rotation:e.rotation,scale:e.scale}},limitImageTransformsToCropRect=function(e,t,r,n){var i=r.translation,o=r.scale,a=r.rotation,c=r.origin,l={origin:_objectSpread({},c),translation:_objectSpread({},i),scale:o,rotation:2*Math.PI+a%(2*Math.PI)},u=e.height/e.width,s=getAxisAlignedCropRect(c,i,l.rotation,t),d=rectCenter(s),p=rectBounds(s),f=getAxisAlignedImageRect(e,r),h=rectCenter(f),g={x:f.x,y:f.y},m={x:h.x,y:h.y},v=d.x,y=d.y,E={x:g.x,y:g.y,width:f.width,height:f.height};if(!rectFitsInRect(s,f))if(\"moving\"===n){E.y>s.y?E.y=s.y:E.y+E.heights.x?E.x=s.x:E.x+E.widths.y?E.y=s.y:E.y+E.heights.x?E.x=s.x:E.x+E.widths.y?E.y=s.y:E.y+E.heights.x?E.x=s.x:E.x+E.widths.y?E.y=s.y:E.y+E.heights.x?E.x=s.x:E.x+E.widths.y){var x=E.y-s.y;E.y=s.y,E.height+=2*x,O=!0}if(E.y+E.heights.x){var M=E.x-s.x;E.x=s.x,E.width+=2*M,O=!0}if(E.x+E.widths.right||u.bottom>s.bottom||u.left=p.bottom){var y=p.bottom-p.top,E=p.right-p.left,T=Math.max(1,l.height/y),_=y*T,R=E*T-E;p.bottom=u.bottom,p.top=u.bottom-_,p.left-=.5*R,p.right+=.5*R}if(u.left<=p.left){var w=p.bottom-p.top,A=p.right-p.left,I=Math.max(1,l.width/A),S=A*I,C=w*I-w;p.right=u.left+S,p.left=u.left,p.top-=.5*C,p.bottom+=.5*C}if(u.right>=p.right){var O=p.bottom-p.top,x=p.right-p.left,b=Math.max(1,l.width/x),M=x*b,L=O*b-O;p.right=u.right,p.left=u.right-M,p.top-=.5*L,p.bottom+=.5*L}d=createRect(p.left,p.top,p.right-p.left,p.bottom-p.top)}var P=rectCorners(d),G=rectCenter(d),k=vectorRotate(P.tl,o,c),D=vectorRotate(P.br,o,c),U=k.x+.5*(D.x-k.x),B=k.y+.5*(D.y-k.y),V=rectTranslate(d,{x:U-G.x,y:B-G.y}),N=rectTranslate(l,{x:U-G.x,y:B-G.y}),F=rectCenter(N),z={x:V.x,y:V.y},W=V.width,q=V.height,H=(F.x-z.x)/W,Y=(F.y-z.y)/q,j=W/e.width,X={x:H*e.width,y:Y*e.height},Z=1-j,$=X.x*Z,K=X.y*Z,Q={x:z.x+W*H,y:z.y+q*Y},J=vectorRotate(z,o,{x:z.x+.5*W,y:z.y+.5*q}),ee=vectorRotate(z,o,Q),te=J.x-ee.x,re=J.y-ee.y;return{origin:X,translation:{x:z.x-$+te,y:z.y-K+re},scale:j,rotation:r.rotation}},getEdgeTargetRect=function(e,t,r,n,i,o,a,c,l){var u=o.left,s=o.right,d=o.top,p=o.bottom,f=s-u,h=p-d,g=i.left,m=i.right,v=i.top,y=i.bottom;if(r===Direction.VERTICAL){if(v=e.y>0?n.y:Math.min(n.y,Math.max(t.y,d)),y=e.y>0?Math.max(n.y,Math.min(t.y,p)):n.y,a){var E=(y-v)/a;g=n.x-.5*E,m=n.x+.5*E}}else if(g=e.x>0?n.x:Math.min(n.x,Math.max(t.x,u)),m=e.x>0?Math.max(n.x,Math.min(t.x,s)):n.x,a){var T=(m-g)*a;v=n.y-.5*T,y=n.y+.5*T}var _,R,w,A,I=c.width,S=c.height;if(r===Direction.VERTICAL?(_=n.x-.5*I,R=n.x+.5*I,e.y<0?(w=n.y-S,A=n.y):e.y>0&&(w=n.y,A=n.y+S)):(w=n.y-.5*S,A=n.y+.5*S,e.x<0?(_=n.x-I,R=n.x):e.x>0&&(_=n.x,R=n.x+I)),a)if(r===Direction.VERTICAL){var C=Math.min((y-v)/a,f),O=C*a;gs&&(g=(m=s)-C),n.x=g+.5*C,e.y<0?v=n.y-O:e.y>0&&(y=n.y+O)}else{var x=Math.min((m-g)*a,h),b=x/a;vp&&(v=(y=p)-x),n.y=v+.5*x,e.x<0?g=n.x-b:e.x>0&&(m=n.x+b)}var M=rectFromBounds({top:v,right:m,bottom:y,left:g}),L=function(){var t=I*a;r===Direction.HORIZONTAL?(v=n.y-.5*t,y=n.y+.5*t):e.y<0?(y=n.y,v=y-t):e.y>0&&(v=n.y,y=v+t)},P=function(){var t=S/a;r===Direction.VERTICAL?(g=n.x-.5*t,m=n.x+.5*t):e.x<0?(m=n.x,g=m-t):e.x>0&&(g=n.x,m=g+t)};m_&&(g=_,m=_+I,a&&L()),v>w&&(v=w,y=w+S,a&&P()),yG&&(e.x<0?g=n.x-G:m=n.x+G),y-v>k&&(e.y<0?v=n.y-k:y=n.y+k),m-g==0&&(e.x>0?m=n.x+2:g=n.x-2),y-v==0&&(e.y>0?y=n.y+2:v=n.y-2),Math.round(g)s||Math.round(v)p){var D=p-d,U=s-u;if(gs){m=s;var V=Math.min(m-g,U);g=m-V}if(vp){y=p;var F=Math.min(y-v,D);v=y-F}M=rectFromBounds({top:v,right:m,bottom:y,left:g})}return{free:M,limited:rectFromBounds({top:v,right:m,bottom:y,left:g})}},CornerMap={nw:function(e){return{x:e.x,y:e.y}},ne:function(e){return{x:e.x+e.width,y:e.y}},se:function(e){return{x:e.x+e.width,y:e.y+e.height}},sw:function(e){return{x:e.x,y:e.y+e.height}}},getCornerCoordinates=function(e,t){return CornerMap[e](t)},getCornerTargetRect=function(e,t,r,n,i,o,a){var c=rectBounds(n),l=c.left,u=c.right,s=c.top,d=c.bottom,p=vectorLimit({x:t.x,y:t.y},n),f=e.x>0?r.x:Math.min(p.x,r.x),h=e.x>0?Math.max(r.x,p.x):r.x,g=e.y>0?r.y:Math.min(p.y,r.y),m=e.y>0?Math.max(r.y,p.y):r.y;if(i){var v=p.x-r.x;e.x>0?h=Math.max(r.x,r.x+e.x*v):f=Math.min(r.x,r.x-e.x*v),e.y>0?m=Math.max(r.y,r.y+e.x*v*i):g=Math.min(r.y,r.y-e.x*v*i)}var y=rectFromBounds({top:g,right:h,bottom:m,left:f});rectFromBounds({top:g,right:h,bottom:m,left:f});if(o.width&&o.height){var E=o.width,T=o.height;i&&(1===i?T=E=Math.max(E,T):ET?T=E*i:E=T/i),h-f0?h=r.x+E:f=r.x-E),m-g0?m=r.y+T:g=r.y-T);var _=a.width,R=a.height;i&&(i<1?_=R/i:R=_*i),h-f>_&&(e.x<0?f=r.x-_:h=r.x+_),m-g>R&&(e.y<0?g=r.y-R:m=r.y+R)}if(h-f==0&&(e.x>0?h=r.x+2:f=r.x-2),m-g==0&&(e.y>0?m=r.y+2:g=r.y-2),Math.round(f)u||Math.round(g)d){var w=d-s,A=u-l;if(f0&&(m=r.y+I*i),e.y<0&&(g=r.y-I*i))}if(h>u){h=u;var S=Math.min(h-f,A);f=h-S,i&&(e.y>0&&(m=r.y+S*i),e.y<0&&(g=r.y-S*i))}if(g0&&(h=r.x+C/i),e.x<0&&(f=r.x-C/i))}if(m>d){m=d;var O=Math.min(m-g,w);g=m-O,i&&(e.x>0&&(h=r.x+O/i),e.x<0&&(f=r.x-O/i))}y=rectFromBounds({top:g,right:h,bottom:m,left:f})}return{free:y,limited:rectFromBounds({top:g,right:h,bottom:m,left:f})}},getTargetRect=function(e,t,r){var n=rectClone(e);return n.width=Math.min(n.height,n.width),n.height=n.width,n.height=n.width*t,n.heightt&&(o-=r,i+=r),{main:i,sub:o}},getImageSize=function(e){return new Promise(function(t,r){var n=new Image;n.src=URL.createObjectURL(e),n.onerror=function(e){clearInterval(i),r(e)};var i=setInterval(function(){n.naturalWidth&&n.naturalHeight&&(clearInterval(i),URL.revokeObjectURL(n.src),t({width:n.naturalWidth,height:n.naturalHeight}))},1)})},scaleImageSize=function(e,t){var r={width:e.width,height:e.height};if(e.width>t.width||e.height>t.height){var n=e.height/e.width,i=t.width/e.width,o=t.height/e.height;i1&&void 0!==arguments[1]?arguments[1]:\"\";return(t+e).slice(-t.length)},getDateString=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Date;return\"\".concat(e.getFullYear(),\"-\").concat(leftPad(e.getMonth()+1,\"00\"),\"-\").concat(leftPad(e.getDate(),\"00\"),\"_\").concat(leftPad(e.getHours(),\"00\"),\"-\").concat(leftPad(e.getMinutes(),\"00\"),\"-\").concat(leftPad(e.getSeconds(),\"00\"))},getBaseCropInstructions=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=e(\"GET_CROP_ASPECT_RATIO\"),o={center:{x:.5,y:.5},flip:{horizontal:!1,vertical:!1},zoom:1,rotation:0,aspectRatio:null};r?Object.assign(o,r):t.options.crop?Object.assign(o,t.options.crop):o.aspectRatio=i;var a=n.width,c=n.height;if(a&&c)o.aspectRatio=c/a;else if(t.instructions.size){var l=t.instructions.size,u=l.width,s=l.height;u&&s&&(o.aspectRatio=s/u)}return o},capitalizeFirstLetter=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},getExtensionFromFilename=function(e){return e.split(\".\").pop()},guesstimateExtension=function(e){if(\"string\"!=typeof e)return\"\";var t=e.split(\"/\").pop();return/svg/.test(t)?\"svg\":/zip|compressed/.test(t)?\"zip\":/plain/.test(t)?\"txt\":/msword/.test(t)?\"doc\":/[a-z]+/.test(t)?\"jpeg\"===t?\"jpg\":t:\"\"},getFileFromBlob=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,i=\"string\"==typeof r?e.slice(0,e.size,r):e.slice(0,e.size,e.type);return i.lastModifiedDate=new Date,isString(t)||(t=getDateString()),t&&null===n&&getExtensionFromFilename(t)?i.name=t:(n=n||guesstimateExtension(i.type),i.name=t+(n?\".\"+n:\"\")),i},getFilenameWithoutExtension=function(e){return e.substr(0,e.lastIndexOf(\".\"))||e},ExtensionMap={jpeg:\"jpg\",\"svg+xml\":\"svg\"},renameFileToMatchMimeType=function(e,t){var r=getFilenameWithoutExtension(e),n=t.split(\"/\")[1],i=ExtensionMap[n]||n;return\"\".concat(r,\".\").concat(i)},getValidOutputMimeType=function(e){return/jpeg|png|svg\\+xml/.test(e)?e:\"image/jpeg\"},isColorMatrix=function(e){return Array.isArray(e)&&20===e.length},MARKUP_RECT=[\"x\",\"y\",\"left\",\"top\",\"right\",\"bottom\",\"width\",\"height\"],toOptionalFraction=function(e){return\"string\"==typeof e&&/%/.test(e)?parseFloat(e)/100:e},getUniqueId$2=function(){return Math.random().toString(36).substr(2,9)},prepareMarkup=function(e){var t=_slicedToArray(e,2),r=t[0],n=t[1],i=!1!==n.allowSelect,o=!1!==n.allowMove,a=!1!==n.allowResize,c=!1!==n.allowInput,l=!1!==n.allowDestroy,u=void 0===n.allowEdit||n.allowEdit;(!0===n.allowResize||!0===n.allowMove||!0===n.allowInput||n.allowEdit)&&(i=!0),!1===n.allowMove&&(a=!1),!0===n.allowResize&&(o=!0);var s=n.points?{}:MARKUP_RECT.reduce(function(e,t){return e[t]=toOptionalFraction(n[t]),e},{});return n.points&&(a=!1),[r,_objectSpread({zIndex:0,id:getUniqueId$2()},n,s,{isDestroyed:!1,isSelected:!1,isDirty:!0,allowDestroy:l,allowSelect:i,allowMove:o,allowResize:a,allowInput:c,allowEdit:u})]},getFilenameFromHeader=function(e){if(!e)return null;var t=e.split(/filename=|filename\\*=.+''/).splice(1).map(function(e){return e.trim().replace(/^[\"']|[;\"']{0,2}$/g,\"\")}).filter(function(e){return e.length});return t.length?decodeURI(t[t.length-1]):null},brightness=function(e){return[1,0,0,0,e,0,1,0,0,e,0,0,1,0,e,0,0,0,1,0]},contrast=function(e){return[e,0,0,0,.5*(1-e),0,e,0,0,.5*(1-e),0,0,e,0,.5*(1-e),0,0,0,1,0]},saturation=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return[.213+.787*e,.715-.715*e,.072-.072*e,0,0,.213-.213*e,.715+.285*e,.072-.072*e,0,0,.213-.213*e,.715-.715*e,.072+.928*e,0,0,0,0,0,1,0]},exposure=function(e){return[e,0,0,0,0,0,e,0,0,0,0,0,e,0,0,0,0,0,1,0]},testSrc=\"data:image/jpg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/4QA6RXhpZgAATU0AKgAAAAgAAwESAAMAAAABAAYAAAEoAAMAAAABAAIAAAITAAMAAAABAAEAAAAAAAD/2wBDAP//////////////////////////////////////////////////////////////////////////////////////wAALCAABAAIBASIA/8QAJgABAAAAAAAAAAAAAAAAAAAAAxABAAAAAAAAAAAAAAAAAAAAAP/aAAgBAQAAPwBH/9k=\",shouldCorrect=void 0,testImage=isBrowser()?new Image:{};testImage.onload=function(){shouldCorrect=testImage.naturalWidth>testImage.naturalHeight,testImage=void 0},testImage.src=testSrc;var shouldCorrectImageExifOrientation=function(){return shouldCorrect},testResult$1=null,isIE=function(){return null===testResult$1&&(testResult$1=/MSIE|Trident/.test(window.navigator.userAgent)),testResult$1},COLOR_TOOLS={contrast:contrast,exposure:exposure,brightness:brightness,saturation:saturation},getColorProperty=function(e){return e.borderWidth?\"borderColor\":e.lineWidth?\"lineColor\":e.fontColor?\"fontColor\":e.backgroundColor?\"backgroundColor\":void 0},getColor=function(e){var t=e.fontColor,r=e.backgroundColor,n=e.lineColor,i=e.borderColor;return t||r||n||i},TURN$1=Math.PI/2,getOutputSize=function(e){var t={upscale:e(\"GET_OUTPUT_UPSCALE\"),mode:e(\"GET_OUTPUT_FIT\"),width:e(\"GET_OUTPUT_WIDTH\"),height:e(\"GET_OUTPUT_HEIGHT\")},r=e(\"GET_SIZE_INPUT\");if(r.width||r.height){var n=r.width,i=r.height,o=e(\"GET_CROP_RECTANGLE_ASPECT_RATIO\");n&&!i?i=n/o:i&&!n&&(n=i*o),t.width=n,t.height=i,t.upscale=!0,t.mode=\"force\"}return t},getPreparedImageSize=function(e,t){var r=t(\"GET_UID\"),n=t(\"GET_CROP\",r,Date.now()),i={width:n.cropStatus.currentWidth,height:n.cropStatus.currentHeight},o=e.mode,a=e.width,c=e.height,l=e.upscale;if(!a&&!c)return i;if(null===a?a=c:null===c&&(c=a),\"force\"!==o){var u=a/i.width,s=c/i.height,d=1;if(\"cover\"===o?d=Math.max(u,s):\"contain\"===o&&(d=Math.min(u,s)),d>1&&!1===l)return i;a=i.width*d,c=i.height*d}return{width:Math.round(a),height:Math.round(c)}},getActiveMarkupFromState=function(e){return e.markup.filter(function(e){return!e[1].isDestroyed})},cleanMarkupForExport=function(e){return e.map(function(e){var t=_objectSpread({},e[1]);return Object.keys(t).forEach(function(e){void 0===t[e]&&delete t[e]}),delete t.isDestroyed,delete t.isSelected,delete t.isDirty,[e[0],t]})},prepareOutput=function(e,t,r){return new Promise(function(n,i){var o={data:null,file:null},a=getCropFromStateRounded(t.image,t.crop),c=getOutputSize(r),l={crop:a,image:_objectSpread({},getPreparedImageSize(c,r),{orientation:t.file.orientation}),size:c,output:{type:r(\"GET_OUTPUT_TYPE\"),quality:r(\"GET_OUTPUT_QUALITY\"),background:t.options.outputCanvasBackgroundColor},filter:t.colorMatrices.filter?{id:t.filterName,value:t.filterValue,matrix:t.colorMatrices.filter}:null,color:Object.keys(t.colorValues).length?Object.keys(t.colorValues).reduce(function(e,r){return e[r]={value:t.colorValues[r],matrix:t.colorMatrices[r].map(function(e){return roundFloat(e,5)})},e},{}):null,markup:cleanMarkupForExport(getActiveMarkupFromState(t).map(function(e){return[e[0],_objectSpread({},e[1])]})),colorMatrix:r(\"GET_COLOR_MATRIX\")};if(e.data&&(o.data=l),e.file){var u={beforeCreateBlob:r(\"GET_BEFORE_CREATE_BLOB\"),afterCreateBlob:r(\"GET_AFTER_CREATE_BLOB\"),stripImageHead:r(\"GET_OUTPUT_STRIP_IMAGE_HEAD\"),canvasMemoryLimit:r(\"GET_OUTPUT_CANVAS_MEMORY_LIMIT\")},s=t.file.data,d=_objectSpread({},l,{filter:l.colorMatrix,markup:l.markup});transformImage(s,d,u).then(function(e){o.file=getFileFromBlob(e,renameFileToMatchMimeType(s.name,getValidOutputMimeType(e.type))),n(o)}).catch(i)}else n(o)})},resetRotationScale=function(e){e.crop.draft.rotateMinScale=null},storeRotationScale=function(e){e.crop.draft.rotateMinScale||(e.crop.draft.rotateMinScale=e.crop.transforms.scale)},rotate=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];storeRotationScale(e);var o=_objectSpread({},e.crop.transforms,{scale:e.crop.draft.rotateMinScale});e.crop.draft.transforms=getRotateTransforms(e.image,e.crop.rectangle,o,t.main+t.sub,r,e.crop.draft.transforms?e.crop.draft.transforms.rotation:e.crop.rotation.main+e.crop.rotation.sub,n,i),e.crop.rotation=splitRotation(e.crop.draft.transforms.rotation)},resetCrop=function(e,t){if(null!==e.stage){var r=void 0===e.instructions.crop.scaleToFit?void 0===e.crop.limitToImageBounds?e.options.cropLimitToImageBounds:e.crop.limitToImageBounds:e.instructions.crop.scaleToFit,n=t(\"GET_STAGE_RECT\",e.instructions.crop);e.crop.rectangle=getCenteredCropRect(n.fits?n:e.stage,e.instructions.crop.aspectRatio||e.image.aspectRatio),e.crop.draft.rectangle=null,\"stage\"!==n.mode&&n.fits&&(e.crop.rectangle.x=n.x,e.crop.rectangle.y=n.y),e.crop.transforms=getImageTransformsFromCrop(e.instructions.crop,n,e.image,r),e.crop.draft.transforms=null,e.crop.rotation=splitRotation(e.instructions.crop.rotation),e.crop.flip=_objectSpread({},e.instructions.crop.flip);var i=t(\"GET_CROP_ASPECT_RATIO_OPTIONS\")||[],o=i.map(function(e){return e.value.aspectRatio}).find(function(t){return t===e.instructions.crop.aspectRatio}),a=i.find(function(e){return null===e.value.aspectRatio});o?e.crop.aspectRatio=o:a&&i.length?e.crop.aspectRatio=null:e.crop.aspectRatio=t(\"GET_CROP_ASPECT_RATIO\"),e.crop.isDirty=!1}},reset=function(e,t,r){if(null!==e.stage){clearCenterTimeout(e),e.size.width=!!e.instructions.size&&e.instructions.size.width,e.size.height=!!e.instructions.size&&e.instructions.size.height,e.size.aspectRatioLocked=!0,e.size.aspectRatioPrevious=!1;var n=void 0===e.instructions.crop.scaleToFit?void 0===e.crop.limitToImageBounds?e.options.cropLimitToImageBounds:e.crop.limitToImageBounds:e.instructions.crop.scaleToFit;resetCrop(e,t),e.instructions.markup&&r(\"MARKUP_SET_VALUE\",{value:e.instructions.markup}),r(\"CROP_SET_LIMIT\",{value:n,silent:!0}),Object.keys(e.instructions.color).forEach(function(t){return r(\"COLOR_SET_VALUE\",{key:t,value:e.instructions.color[t]})}),r(\"FILTER_SET_VALUE\",{value:e.instructions.filter}),resetRotationScale(e)}},recenter=function(e,t){if(e.stage){clearCenterTimeout(e);var r=e.crop.rectangle,n=r.height/r.width,i=e.crop.aspectRatio;if(null!==i&&roundFloat(n,3)!==roundFloat(i,3)){var o=t(\"GET_MIN_CROP_SIZE\");o.width=roundFloat(o.width),o.height=roundFloat(o.height);var a=Math.min(r.width,r.height);Math.min(a*i,a/i)roundFloat(s,5)?(a&&(o+=2*a),_objectSpread({},copyImageTransforms(r),{rotation:o,interaction:{rotation:u.rotation}})):(u.scale=Math.min(s,u.scale),u.interaction={rotation:u.rotation},u)},getResizeTransforms=function(e,t,r,n,i,o){var a=Math.max(1e-10,n),c=_objectSpread({},copyImageTransforms(r),{scale:a}),l=o?limitImageTransformsToCropRect(e,t,c,\"resizing\"):c,u=getMinScale(t,i);return l.scale=Math.min(u,l.scale),l.interaction={scale:a},l},getTranslateTransforms=function(e,t,r,n,i){var o={x:r.translation.x+n.x,y:r.translation.y+n.y},a=_objectSpread({},copyImageTransforms(r),{translation:o}),c=i?limitImageTransformsToCropRect(e,t,a,\"moving\"):a;return c.interaction={translation:o},c},correctCropRectangleByResize=function(e,t){var r=roundFloat(e.crop.draft.transforms.scale,5);if(!(roundFloat(e.crop.draft.targetSize,5)=0?e.getResponseHeader(t):null},ImageExtensionMap={svg:\"svg+xml\",jpg:\"jpeg\"},getImageMimeType=function(e,t){if(isImage(e))return e;if(!t)return e;var r=getExtensionFromFilename(t);return r?\"image/\".concat(ImageExtensionMap[r]||r):e},getFilenameFromURL=function(e){return e.split(\"/\").pop().split(\"?\").shift()},loadImageFromURL=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=t.progress,n=void 0===r?function(e){}:r,i=t.load,o=void 0===i?function(e,t){}:i,a=t.error,c=void 0===a?function(){}:a,l=new XMLHttpRequest;l.onprogress=function(e){return n(e.lengthComputable?e.loaded/e.total:null)},l.onerror=function(){return c(l)},l.onload=function(){var t=l.status>=200&&l.status<300,r=l.response;if(!t||!r)return c(l);var n=getResponseHeaderSilent(l,\"Content-Disposition\"),i=n?getFilenameFromHeader(n):getFilenameFromURL(e),a=getImageMimeType(l.getResponseHeader(\"Content-Type\"),i),u=getResponseHeaderSilent(l,\"Content-Doka\"),s=null;if(u)try{s=JSON.parse(u)}catch(e){}!isImage(r.type)&&a&&(r=r.slice(0,r.size,a)),\"name\"in r||!i||(r.name=i),o(r,s)},l.open(\"GET\",e),l.responseType=\"blob\",l.send()},dataURIToBlob=function(e){for(var t=e.split(\",\"),r=t[0].match(/([a-z]+\\/[a-z]+)/)[0],n=atob(t[1]),i=n.length,o=new ArrayBuffer(n.length),a=new Uint8Array(o),c=0;c-1){var d=u.width,p=u.height;s>=5&&s<=8&&(u.width=p,u.height=d)}var f=t(\"GET_MIN_IMAGE_SIZE\");if(u.width1?.5/o:.5,c=o>1?.5:.5*o,l=function(){return{width:a,height:c,x:.5+.5*i()-.5*a,y:.5+.5*i()-.5*c}},u=function(e){return t(\"GET_MARKUP_TOOL_VALUES\")[e]},s=function(){var e=u(\"shapeStyle\"),t=u(\"color\"),r=e[0]||e[1]?null:t;return{backgroundColor:r,borderWidth:e[0],borderStyle:e[1]?e[1]:null,borderColor:null!==r?null:t}},d={rect:function(){return _objectSpread({},l(),s())},ellipse:function(){return _objectSpread({},l(),s())},text:function(){return{x:.5+.5*i()-.1,y:.5+.5*i(),width:0,height:0,fontColor:u(\"color\"),fontSize:u(\"fontSize\"),fontFamily:u(\"fontFamily\"),text:\"Text\"}},line:function(){var e=u(\"lineStyle\");return _objectSpread({},l(),{lineColor:u(\"color\"),lineWidth:e[0],lineStyle:e[1]?e[1]:null,lineDecoration:u(\"lineDecoration\")})}}[n]();e(\"MARKUP_ADD\",[n,d])},MARKUP_ADD:function(n){var i=t(\"GET_BEFORE_ADD_MARKUP\");if(!i||(n=i(n))){r.markup.forEach(function(e){return e[1].isSelected=!1}),r.markup=r.markup.filter(function(e){return!e[1].isDestroyed});var o=prepareMarkup(n);r.markup.push(o),r.markup.sort(sortMarkupByZIndex);var a=t(\"GET_ONADDMARKUP\");a&&a(o),\"draw\"!==t(\"GET_MARKUP_UTIL\")&&e(\"MARKUP_SELECT\",{id:o[1].id}),r.crop.isDirty=!0}},MARKUP_SELECT:function(e){var n=e.id;r.markup.forEach(function(e){e[1].isSelected=e[1].id===n,e[1].isDirty=!0});var i=t(\"GET_ONSELECTMARKUP\");i&&i(t(\"GET_MARKUP_BY_ID\",n))},MARKUP_ELEMENT_DRAG:function(e){var t=e.id,n=e.origin,i=e.offset,o=e.size,a=r.markup.find(function(e){return e[1].id===t});if(a){var c=a[1],l=n.x/o.width,u=n.y/o.height,s=n.width/o.width,d=n.height/o.height,p=i.x/o.width,f=i.y/o.height;c.x=l+p,c.y=u+f,c.width=s,c.height=d,c.left=void 0,c.top=void 0,c.right=void 0,c.bottom=void 0,c.isDirty=!0,r.crop.isDirty=!0}},MARKUP_ELEMENT_RESIZE:function(e){var t=e.id,n=e.corner,i=e.origin,o=e.offset,a=e.size,c=r.markup.find(function(e){return e[1].id===t});if(c){var l=_slicedToArray(c,2),u=l[0],s=l[1],d=(i.x+o.x)/a.width,p=(i.y+o.y)/a.height;if(/n/.test(n))if(\"line\"===u)s.height=s.height-(p-s.y),s.y=p;else{var f=s.y+s.height;p>f&&(p=f),s.height=s.height-(p-s.y),s.y=p}if(/w/.test(n))if(\"line\"===u)s.width=s.width-(d-s.x),s.x=d;else{var h=s.x+s.width;d>h&&(d=h),s.width=s.width-(d-s.x),s.x=d}/s/.test(n)&&(s.height=\"line\"===u?p-s.y:Math.max(0,p-s.y)),/e/.test(n)&&(s.width=\"line\"===u?d-s.x:Math.max(0,d-s.x)),s.left=void 0,s.top=void 0,s.right=void 0,s.bottom=void 0,s.isDirty=!0,r.crop.isDirty=!0}},MARKUP_DELETE:function(n){var i=n.id,o=r.markup.find(function(e){return e[1].id===i});if(o){var a=t(\"GET_BEFORE_REMOVE_MARKUP\");if(!a||(o=a(o))){var c=o[1];c.allowDestroy&&(c.isDestroyed=!0,c.isSelected=!1,c.isDirty=!0);for(var l=null,u=r.markup.length;u>0;){u--;var s=r.markup[u][1];if(!s.isDestroyed&&s.allowDestroy){l=s.id;break}}var d=t(\"GET_ONREMOVEMARKUP\");d&&d(o),e(\"MARKUP_SELECT\",{id:l})}}},MARKUP_UPDATE:function(e){var t=e.style,n=e.value;r.markupToolValues[t]=n,r.markup.map(function(e){return e[1]}).filter(function(e){return e.isSelected}).forEach(function(e){if(\"color\"===t)e[getColorProperty(e)]=n;else if(\"shapeStyle\"===t){var r=getColor(e);e.borderColor=r,e.borderWidth=n[0],e.borderStyle=n[1],e.backgroundColor=n[0]||n[1]?null:r,null!==e.backgroundColor&&(e.borderColor=null)}else\"lineStyle\"===t?(e.lineWidth=n[0],e.lineStyle=n[1]):e[t]=n;e.isDirty=!0}),r.crop.isDirty=!0}},[\"color\",\"shapeStyle\",\"lineStyle\",\"textDecoration\",\"fontSize\",\"fontFamily\"].reduce(function(t,n){var i=n.split(/(?=[A-Z])/).join(\"_\").toUpperCase(),o=capitalizeFirstLetter(n);return t[\"SET_MARKUP_\"+i]=function(t){var i=t.value;i!==t.prevValue&&(r.options[\"markup\".concat(o)]=i,e(\"MARKUP_UPDATE\",{style:n,value:i}))},t},{}),{DID_SET_CROP:function(t){var r=t.value;r!==t.prevValue&&e(\"SET_DATA\",{crop:r})},COLOR_SET_COLOR_VALUE:function(t){var n=t.key,i=t.value;r.crop.isDirty=!0,e(\"COLOR_SET_VALUE\",{key:n,value:i})},COLOR_SET_VALUE:function(t){var n=t.key,i=t.value;r.colorValues[n]=i,e(\"SET_COLOR_MATRIX\",{key:n,matrix:COLOR_TOOLS[n](i)})}},Object.keys(COLOR_TOOLS).reduce(function(n,i){var o=i.toUpperCase(),a=capitalizeFirstLetter(i);return n[\"SET_COLOR_\".concat(o)]=function(n){var c=n.value;if(c!==n.prevValue){var l=_slicedToArray(t(\"GET_COLOR_\".concat(o,\"_RANGE\")),2),u=l[0],s=l[1],d=limit(c,u,s);r.options[\"color\".concat(a)]=d,r.instructions.color||(r.instructions.color={}),r.instructions.color[i]=d,e(\"COLOR_SET_VALUE\",{key:i,value:d})}},n},{}),{SET_COLOR_MATRIX:function(t){var n=t.key,i=t.matrix;i?r.colorMatrices[n]=_toConsumableArray(i):delete r.colorMatrices[n],e(\"DID_SET_COLOR_MATRIX\",{key:n,matrix:i})},FILTER_SET_FILTER:function(t){var n=t.value;r.crop.isDirty=!0,e(\"FILTER_SET_VALUE\",{value:n})},FILTER_SET_VALUE:function(n){var i=n.value,o=isColorMatrix(i)?i:null;if(isString(i)){var a=t(\"GET_FILTERS\");forin(a,function(e,t){e===i&&(o=t.matrix())})}r.filter=i,r.filterName=isString(i)?i:null,e(\"SET_COLOR_MATRIX\",{key:\"filter\",matrix:o})},DID_SET_UTIL:function(t){var n=t.value;t.prevValue;-1!==r.options.utils.indexOf(n)&&e(\"CHANGE_VIEW\",{id:n})},DID_SET_FILTER:function(t){var r=t.value;r!==t.prevValue&&(r&&r.id&&(r=r.id),e(\"FILTER_SET_VALUE\",{value:r}),e(\"SET_DATA\",{filter:r}))},DID_SET_SIZE:function(t){var r=t.value;r!==t.prevValue&&e(\"SET_DATA\",{size:r})},DID_SET_MARKUP_UTIL:function(t){var r=t.value;r!==t.prevValue&&r&&(/^(draw|line|text|rect|ellipse)$/.test(r)||(r=\"select\"),e(\"SWITCH_MARKUP_UTIL\",{util:r}))},DID_SET_MARKUP:function(t){var r=t.value,n=t.prevValue;r!==n&&JSON.stringify(r)===JSON.stringify(n)||(e(\"MARKUP_SET_VALUE\",{value:r}),e(\"SET_DATA\",{markup:r}))},SET_DATA:function(n){if(n.size){var i=_objectSpread({width:null,height:null},n.size),o=limitSize(i,t(\"GET_SIZE_MIN\"),t(\"GET_SIZE_MAX\"),null);r.instructions.size=_objectSpread({},o),e(\"RESIZE_SET_OUTPUT_SIZE\",o)}n.filter&&(r.instructions.filter=n.filter?n.filter.id||n.filter.matrix:n.colorMatrix),r.instructions.markup=n.markup||[],r.instructions.markup.forEach(function(e){return e[1].isDirty=!0}),r.instructions.color=Object.keys(COLOR_TOOLS).reduce(function(e,t){var i=void 0===n.color||void 0===n.color[t],o=r.options[\"color\".concat(capitalizeFirstLetter(t))];return e[t]=i?o:isNumber(n.color[t])?n.color[t]:n.color[t].value,e},{}),n.crop&&(r.instructions.crop=getBaseCropInstructions(t,r,n.crop,r.size),r.crop.limitToImageBounds=r.options.cropLimitToImageBounds,!1===r.instructions.crop.scaleToFit&&(r.crop.limitToImageBounds=r.instructions.crop.scaleToFit),resetCrop(r,t))},DID_SET_INITIAL_STATE:function(e){var n=e.value||{},i=n.crop,o=n.filter,a=n.color,c=n.size,l=void 0===c?{}:c,u=n.markup,s=void 0===u?[]:u,d=_objectSpread({width:null,height:null},l),p=limitSize(d,t(\"GET_SIZE_MIN\"),t(\"GET_SIZE_MAX\"),null);r.instructions.size=_objectSpread({},p),r.instructions.crop=getBaseCropInstructions(t,r,i),r.crop.limitToImageBounds=r.options.cropLimitToImageBounds,!1===r.instructions.crop.scaleToFit&&(r.crop.limitToImageBounds=r.instructions.crop.scaleToFit),r.instructions.filter=o||null,r.instructions.color=Object.keys(COLOR_TOOLS).reduce(function(e,t){return e[t]=void 0===a||void 0===a[t]?r.options[\"color\".concat(capitalizeFirstLetter(t))]:a[t],e},{}),r.instructions.markup=s,r.crop.isDirty=!0},GET_DATA:function(n){var i=n.success,o=n.failure,a=n.file,c=n.data;if(!r.file)return o(\"no-image-source\");if(!r.stage)return o(\"image-not-fully-loaded\");var l={file:isBoolean(a)?a:t(\"GET_OUTPUT_FILE\"),data:isBoolean(c)?c:t(\"GET_OUTPUT_DATA\"),success:i,failure:o};e(l.file?\"REQUEST_PREPARE_OUTPUT\":\"PREPARE_OUTPUT\",l)},REQUEST_PREPARE_OUTPUT:function(t){var r=t.file,n=t.data,i=t.success,o=t.failure;e(\"PREPARE_OUTPUT\",{file:r,data:n,success:i,failure:o},!0),e(\"DID_REQUEST_PREPARE_OUTPUT\")},PREPARE_OUTPUT:function(n){var i=n.file,o=n.data,a=n.success,c=void 0===a?function(){}:a,l=n.failure,u=void 0===l?function(){}:l;if(shouldAbortImageLoad(r))return e(\"ABORT_IMAGE\");var s=function(t){if(e(\"DID_PREPARE_OUTPUT\"),shouldAbortImageLoad(r))return e(\"ABORT_IMAGE\");c(t)};prepareOutput({file:i,data:o},r,t).then(function(t){var n=r.options.afterCreateOutput,i=n?n(t,function(t,r){return e(\"DID_REQUEST_POSTPROCESS_OUTPUT\",{label:t,progress:r}),function(t){e(\"DID_MAKE_PROGRESS\",{progress:t})}}):t;Promise.resolve(i).then(s).catch(function(t){e(\"DID_REQUEST_POSTPROCESS_OUTPUT_ERROR\",{error:t})})}).catch(function(t){if(shouldAbortImageLoad(r))return e(\"ABORT_IMAGE\");u(t)})},EDIT_RESET:function(){clearCenterTimeout(r),reset(r,t,e)},EDIT_CONFIRM:function(){if(r.file&&r.stage){clearCenterTimeout(r),e(\"CROP_ZOOM\");var n={file:t(\"GET_OUTPUT_FILE\"),data:t(\"GET_OUTPUT_DATA\"),success:function(t){r.filePromise.resolveOnConfirm&&r.filePromise.success(t),e(\"DID_CONFIRM\",{output:t})},failure:console.error};e(n.file?\"REQUEST_PREPARE_OUTPUT\":\"PREPARE_OUTPUT\",n)}},EDIT_CANCEL:function(){r.filePromise&&r.filePromise.success(null),e(\"DID_CANCEL\")},EDIT_CLOSE:function(){clearCenterTimeout(r)},EDIT_DESTROY:function(){resetState(r)},SET_OPTIONS:function(t){var r=t.options;forin(r,function(t,r){e(\"SET_\".concat(fromCamels(t,\"_\").toUpperCase()),{value:r})})}})},createIcon=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:24;return'').concat(e,\"\")},button=createView({ignoreRect:!0,ignoreRectUpdate:!0,name:\"button\",mixins:{styles:[\"opacity\"],animations:{opacity:{type:\"tween\",duration:250}},apis:[\"id\"],listeners:!0},tag:\"button\",create:function(e){var t=e.root,r=e.props;t.element.innerHTML=\"\".concat(r.icon||\"\",\"\").concat(r.label,\"\"),t.element.setAttribute(\"type\",r.type||\"button\"),r.name&&r.name.split(\" \").forEach(function(e){t.element.className+=\" doka--button-\".concat(e)}),t.ref.handleClick=function(){\"string\"==typeof r.action?t.dispatch(r.action):r.action()},t.element.addEventListener(\"click\",t.ref.handleClick),t.ref.handlePointer=function(e){return e.stopPropagation()},t.element.addEventListener(\"pointerdown\",t.ref.handlePointer),r.create&&r.create({root:t,props:r})},destroy:function(e){var t=e.root;t.element.removeEventListener(\"pointerdown\",t.ref.handlePointer),t.element.removeEventListener(\"click\",t.ref.handleClick)}}),textNode=function(e){return createView({ignoreRect:!0,tag:e,create:function(e){var t=e.root,r=e.props;t.element.textContent=r.text}})},progressIndicator=createView({name:\"status-progress\",tag:\"svg\",ignoreRect:!0,ignoreRectUpdate:!0,mixins:{apis:[\"progress\"],animations:{progress:{type:\"spring\",stiffness:.25,damping:.25,mass:2.5}}},create:function(e){var t=e.root,r=e.props;t.element.setAttribute(\"data-value\",0),t.element.setAttribute(\"width\",24),t.element.setAttribute(\"height\",24),t.element.setAttribute(\"viewBox\",\"0 0 20 20\");var n=t.ref.circle=document.createElementNS(\"http://www.w3.org/2000/svg\",\"circle\"),i={r:5,cx:10,cy:10,fill:\"none\",stroke:\"currentColor\",\"stroke-width\":10,transform:\"rotate(-90) translate(-20)\"};t.element.appendChild(n),Object.keys(i).forEach(function(e){n.setAttribute(e,i[e])}),t.ref.updateStroke=function(e){t.ref.circle.setAttribute(\"stroke-dasharray\",\"\".concat(31.42*Math.min(1,e),\" 31.42\"))},\"number\"==typeof r.progress?(t.progress=r.progress,t.element.setAttribute(\"data-value\",Math.max(r.progress,.001)),t.ref.updateStroke(t.progress)):t.progress=0},write:createRoute({DID_MAKE_PROGRESS:function(e){var t=e.root,r=e.action;t.progress=r.progress,t.element.setAttribute(\"data-value\",Math.max(r.progress,.001))}},function(e){var t=e.root;t.ref.updateStroke(t.progress)})}),statusBubbleInner=createView({name:\"status-bubble-inner\",create:function(e){var t=e.root,r=e.props;r.onClose?t.appendChildView(t.createChildView(button,{label:\"Close\",name:\"icon-only status-bubble-close\",icon:createIcon(''),action:r.onClose})):t.ref.progressIndicator=t.appendChildView(t.createChildView(progressIndicator,{progress:r.progress})),t.appendChildView(t.createChildView(textNode(\"p\"),{text:r.label}))}}),statusBubble=createView({name:\"status-bubble\",mixins:{styles:[\"opacity\",\"translateY\"],apis:[\"markedForRemoval\"],animations:{opacity:{type:\"tween\",duration:500},translateY:{type:\"spring\",mass:20}}},create:function(e){var t=e.root,r=e.props;return t.appendChildView(t.createChildView(statusBubbleInner,r))}}),hideBusyIndicators=function(e){e.element.dataset.viewStatus=\"idle\",hideBusyIndicatorsAnimated(e)},hideBusyIndicatorsAnimated=function(e){e.ref.busyIndicators.forEach(function(e){e.translateY=-10,e.opacity=0,e.markedForRemoval=!0})},showBusyIndicator=function(e,t,r,n){e.element.dataset.viewStatus=\"busy\";var i=addBusyIndicator(e,t,r,n);hideBusyIndicatorsAnimated(e),e.ref.busyIndicators.push(i),i.markedForRemoval=!1,i.translateY=0,i.opacity=1},addBusyIndicator=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;return e.appendChildView(e.createChildView(statusBubble,{translateY:20,opacity:0,label:t,onClose:r,progress:n}))},editStatus=createView({name:\"edit-status\",ignoreRect:!0,create:function(e){var t=e.root;t.ref.busyIndicators=[],t.element.setAttribute(\"tabindex\",-1)},write:createRoute({MISSING_WEBGL:function(e){var t=e.root,r=/fullscreen/.test(t.query(\"GET_STYLE_LAYOUT_MODE\"));showBusyIndicator(t,t.query(\"GET_LABEL_STATUS_MISSING_WEB_G_L\"),r?function(){t.dispatch(\"EDIT_CANCEL\")}:null)},AWAITING_IMAGE:function(e){var t=e.root;showBusyIndicator(t,t.query(\"GET_LABEL_STATUS_AWAITING_IMAGE\"))},DID_PRESENT_IMAGE:function(e){var t=e.root;hideBusyIndicators(t)},DID_LOAD_IMAGE_ERROR:function(e){var t=e.root,r=e.action,n=/fullscreen/.test(t.query(\"GET_STYLE_LAYOUT_MODE\")),i=t.query(\"GET_LABEL_STATUS_LOAD_IMAGE_ERROR\"),o=\"function\"==typeof i?i(r.error):i;showBusyIndicator(t,o,n?function(){t.dispatch(\"EDIT_CANCEL\")}:null)},DID_REQUEST_LOAD_IMAGE:function(e){var t=e.root;showBusyIndicator(t,t.query(\"GET_LABEL_STATUS_LOADING_IMAGE\"))},DID_REQUEST_PREPARE_OUTPUT:function(e){var t=e.root;showBusyIndicator(t,t.query(\"GET_LABEL_STATUS_PROCESSING_IMAGE\"))},DID_REQUEST_POSTPROCESS_OUTPUT:function(e){var t=e.root,r=e.action;showBusyIndicator(t,r.label,null,r.progress)},DID_REQUEST_POSTPROCESS_OUTPUT_ERROR:function(e){var t=e.root,r=e.action.error;showBusyIndicator(t,r,function(){return t.dispatch(\"DID_PREPARE_OUTPUT\")})},DID_PREPARE_OUTPUT:function(e){var t=e.root;hideBusyIndicators(t)}}),didWriteView:function(e){var t=e.root;t.ref.busyIndicators=t.ref.busyIndicators.filter(function(e){return!e.markedForRemoval||0!==e.opacity||(t.removeChildView(e),!1)})}}),Interaction={down:\"pointerdown\",move:\"pointermove\",up:\"pointerup\"},createPointerRegistry=function(){var e=[],t=function(t){return e.findIndex(function(e){return e.pointerId===t.pointerId})};return{update:function(r){var n=t(r);n<0||(e[n]=r)},multiple:function(){return e.length>1},count:function(){return e.length},active:function(){return e.concat()},push:function(r){(function(e){return t(e)>=0})(r)||e.push(r)},pop:function(r){var n=t(r);n<0||e.splice(n,1)}}},addEvent$1=function(e,t,r,n){return e.addEventListener(Interaction[t],r,n)},removeEvent$1=function(e,t,r){return e.removeEventListener(Interaction[t],r)},contains=function(e,t){if(\"contains\"in e)return e.contains(t);var r=t;do{if(r===e)return!0}while(r=r.parentNode);return!1},createDragger=function(e,t,r,n){var i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{stopPropagation:!0,cancelOnMultiple:!1},o={x:0,y:0},a={enabled:!0,origin:null,cancel:!1,cancelled:!1,pointers:createPointerRegistry()},c=null,l=function(e,t){t&&(c||u(e,t),cancelAnimationFrame(c),c=requestAnimationFrame(function(){u(e,t),c=null}))},u=function(e,t){return t.apply(null,[e,function(e){return{x:e.pageX-o.x,y:e.pageY-o.y}}(e)])},s=function(r){var n=0===a.pointers.count();n&&(a.active=!1,a.cancel=!1,a.cancelled=!1),(e===r.target||contains(e,r.target))&&(n?r.isPrimary&&(a.pointers.push(r),addEvent$1(document.documentElement,\"up\",p),r.preventDefault(),i.stopPropagation&&(r.stopPropagation(),r.stopImmediatePropagation()),a.active=!0,o.x=r.pageX,o.y=r.pageY,addEvent$1(document.documentElement,\"move\",d),t(r)):i.cancelOnMultiple&&(a.cancel=!0))},d=function(e){e.isPrimary&&(a.cancelled||(e.preventDefault(),i.stopPropagation&&e.stopPropagation(),l(e,r),a.cancel&&(a.cancelled=!0,l(e,n))))},p=function e(t){a.pointers.pop(t),0===a.pointers.count()&&(removeEvent$1(document.documentElement,\"move\",d),removeEvent$1(document.documentElement,\"up\",e)),a.active&&(a.cancelled||(t.preventDefault(),i.stopPropagation&&t.stopPropagation(),l(t,r),l(t,n)))};return addEvent$1(document.documentElement,\"down\",s),{enable:function(){a.enabled||addEvent$1(document.documentElement,\"down\",s),a.enabled=!0},disable:function(){a.enabled&&removeEvent$1(document.documentElement,\"down\",s),a.enabled=!1},destroy:function(){removeEvent$1(document.documentElement,\"up\",p),removeEvent$1(document.documentElement,\"move\",d),removeEvent$1(document.documentElement,\"down\",s)}}},imageOverlaySpring={type:\"spring\",stiffness:.4,damping:.65,mass:7},activateMarkupUtil=function(e,t,r){if(/^(line|text|ellipse|rect)$/.test(r))e.dispatch(\"MARKUP_ADD_DEFAULT\",{value:r}),e.dispatch(\"SET_MARKUP_UTIL\",{value:\"select\"});else if(\"draw\"===r&&!e.ref.drawInput){var n=e.ref,i=n.drawState,o=n.viewSize,a=0,c=0,l={},u=e.query(\"GET_MARKUP_DRAW_DISTANCE\");e.ref.drawInput=createDragger(e.element,function(r){var n=e.query(\"GET_MARKUP_TOOL_VALUES\"),u=n.lineStyle[0],s=n.lineStyle[1];i.lineColor=n.color,i.lineWidth=u,i.lineStyle=s;var d=e.query(\"GET_ROOT\"),p=void 0!==r.offsetX?r.offsetX:r.pageX-d.x-t.stageOffsetX-window.pageXOffset,f=void 0!==r.offsetY?r.offsetY:r.pageY-d.y-t.stageOffsetY-window.pageYOffset;a=p-e.markupX,c=f-e.markupY,l.x=0,l.y=0,i.points.push({x:a/o.width,y:c/o.height})},function(t,r){if(e.dispatch(\"KICK\"),u){var n=vectorDistance(r,l);if(n>u){var s=vectorAngleBetween(l,r)+Math.PI/2,d=u-n;l.x+=Math.sin(s)*d,l.y-=Math.cos(s)*d,i.points.push({x:(a+l.x)/o.width,y:(c+l.y)/o.height})}}else i.points.push({x:(a+r.x)/o.width,y:(c+r.y)/o.height})},function(t,r){i.points.length>1&&e.dispatch(\"MARKUP_ADD\",[\"path\",_objectSpread({},i)]),i.points=[]})}\"draw\"!==r&&e.ref.drawInput&&(e.ref.drawInput.destroy(),e.ref.drawInput=null)},getColor$1=function(e){var t=e.fontColor,r=e.backgroundColor,n=e.lineColor,i=e.borderColor;return t||r||n||i},MARKUP_MARGIN=10,setAttributes$1=function(e,t){return Object.keys(t).forEach(function(r){e.setAttribute(r,t[r])})},ns$2=\"http://www.w3.org/2000/svg\",svg$1=function(e,t){var r=document.createElementNS(ns$2,e);return t&&setAttributes$1(r,t),r},LINE_CORNERS=[\"nw\",\"se\"],RECT_CORNERS=[\"nw\",\"n\",\"ne\",\"w\",\"e\",\"sw\",\"s\",\"se\"],CORNER_CURSOR={nw:\"nwse\",n:\"ns\",ne:\"nesw\",w:\"ew\",e:\"ew\",sw:\"nesw\",s:\"ns\",se:\"nwse\"},CORNER_COORDINATES={nw:function(e){return{x:e.x,y:e.y}},n:function(e){return{x:e.x+.5*e.width,y:e.y}},ne:function(e){return{x:e.x+e.width,y:e.y}},w:function(e){return{x:e.x,y:e.y+.5*e.height}},e:function(e){return{x:e.x+e.width,y:e.y+.5*e.height}},sw:function(e){return{x:e.x,y:e.y+e.height}},s:function(e){return{x:e.x+.5*e.width,y:e.y+e.height}},se:function(e){return{x:e.x+e.width,y:e.y+e.height}}},HITBOX_OFFSET=5,HITBOX_COORDINATES={nw:function(e){return{x:e.x-HITBOX_OFFSET,y:e.y-HITBOX_OFFSET}},n:function(e){return{x:e.x+.5*e.width,y:e.y-HITBOX_OFFSET}},ne:function(e){return{x:e.x+e.width+HITBOX_OFFSET,y:e.y-HITBOX_OFFSET}},w:function(e){return{x:e.x-HITBOX_OFFSET,y:e.y+.5*e.height}},e:function(e){return{x:e.x+e.width+HITBOX_OFFSET,y:e.y+.5*e.height}},sw:function(e){return{x:e.x-HITBOX_OFFSET,y:e.y+e.height+HITBOX_OFFSET}},s:function(e){return{x:e.x+.5*e.width,y:e.y+e.height+HITBOX_OFFSET}},se:function(e){return{x:e.x+e.width+HITBOX_OFFSET,y:e.y+e.height+HITBOX_OFFSET}}},imageMarkup=createView({tag:\"div\",name:\"image-markup\",ignoreRect:!0,mixins:{styles:[\"opacity\"],animations:{opacity:\"spring\",markupX:imageOverlaySpring,markupY:imageOverlaySpring,markupWidth:imageOverlaySpring,markupHeight:imageOverlaySpring},listeners:!0,apis:[\"toolsReference\",\"onSelect\",\"onDrag\",\"markupX\",\"markupY\",\"markupWidth\",\"markupHeight\",\"allowInteraction\",\"stageOffsetX\",\"stageOffsetY\"]},create:function(e){var t=e.root,r=e.props,n=r.onSelect,i=void 0===n?function(){}:n,o=r.onUpdate,a=void 0===o?function(){}:o,c=svg$1(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"});t.ref.canvas=c;var l=t.query(\"GET_ROOT_SIZE\");c.setAttribute(\"width\",l.width),c.setAttribute(\"height\",l.height);var u=document.createElement(\"input\");setAttributes$1(u,{type:\"text\",autocomplete:\"off\",autocapitalize:\"off\"}),u.addEventListener(\"keydown\",function(e){e.stopPropagation(),13===e.keyCode||9===e.keyCode?(e.target.blur(),d()):8!==e.keyCode||t.ref.input.value.length||t.dispatch(\"MARKUP_DELETE\",{id:t.ref.selected.id})}),t.ref.input=u,t.ref.elements=[],t.ref.viewSize={width:0,height:0,scale:0},t.ref.resetSelected=function(){return t.ref.selected={id:null,type:null,settings:{}},t.ref.selected},t.ref.resetSelected();var s=function(e){return e.id?e:e.parentNode},d=function(){t.ref.resetSelected(),i(null)};t.ref.handleDeselect=function(e){var n;(t.query(\"IS_ACTIVE_VIEW\",\"markup\")||t.query(\"IS_ACTIVE_VIEW\",\"sticker\"))&&(t.ref.selected.id&&e.target!==t.ref.removeButton.element&&(n=e.target,t.ref.selected.id!==s(n).id&&(function(e){return contains(t.ref.manipulatorGroup,e)||e===t.ref.input}(e.target)||r.isMarkupUtil(e.target)||d())))},addEvent$1(document.body,\"down\",t.ref.handleDeselect),t.ref.handleTextInput=function(){return a(\"text\",t.ref.input.value)},t.ref.input.addEventListener(\"input\",t.ref.handleTextInput),t.ref.handleAttemptDelete=function(e){(t.query(\"IS_ACTIVE_VIEW\",\"markup\")||t.query(\"IS_ACTIVE_VIEW\",\"sticker\"))&&(!t.ref.selected.id||8!==e.keyCode&&46!==e.keyCode||(e.stopPropagation(),e.preventDefault(),t.dispatch(\"MARKUP_DELETE\",{id:t.ref.selected.id})))},document.body.addEventListener(\"keydown\",t.ref.handleAttemptDelete);var p=svg$1(\"g\"),f=svg$1(\"g\",{class:\"doka--shape-group\"});p.appendChild(f),t.ref.shapeGroup=f;var h=svg$1(\"g\",{fill:\"none\",class:\"doka--manipulator-group\"}),g=svg$1(\"rect\",{x:0,y:0,width:0,height:0,fill:\"none\"}),m=svg$1(\"path\");h.appendChild(m),h.appendChild(g),t.ref.manipulatorPath=m,t.ref.manipulatorRect=g,t.ref.manipulators=[];for(var v=0;v<10;v++){var y=svg$1(\"circle\",{r:6,\"stroke-width\":2}),E=svg$1(\"circle\",{r:22,class:\"doka--hitbox\",style:\"opacity: 0\"});h.appendChild(E),h.appendChild(y),t.ref.manipulators.push({visual:y,hitbox:E,dragger:null})}p.appendChild(h),t.ref.manipulatorGroup=h,c.appendChild(p),t.ref.shapeOffsetGroup=p,t.ref.removeButton=t.appendChildView(t.createChildView(button,{label:t.query(\"GET_LABEL_MARKUP_REMOVE_SHAPE\"),name:\"destroy-shape\",action:function(){t.dispatch(\"MARKUP_DELETE\",{id:t.ref.selected.id})}})),(t.query(\"IS_ACTIVE_VIEW\",\"markup\")||t.query(\"IS_ACTIVE_VIEW\",\"sticker\"))&&(t.element.dataset.active=!0),t.ref.drawInput=null,t.ref.drawState={lineColor:null,lineWidth:null,lineStyle:null,points:[]};var T=svg$1(\"path\",{fill:\"none\",class:\"doka--draw-path\"});t.ref.drawPath=T,c.appendChild(T);var _=createElement(\"div\",\"doka--image-markup-clip\");_.appendChild(u),_.appendChild(c),t.ref.clip=_,t.element.appendChild(_),\"draw\"===t.query(\"GET_MARKUP_UTIL\")&&activateMarkupUtil(t,r,\"draw\")},destroy:function(e){var t=e.root;t.ref.elements.concat(t.ref.manipulators).forEach(function(e){e.dragger&&e.dragger.destroy()}),t.ref.input.removeEventListener(\"input\",t.ref.handleTextInput),document.body.removeEventListener(\"keydown\",t.ref.handleAttemptDelete),removeEvent$1(document.body,\"down\",t.ref.handleDeselect)},read:function(e){var t=e.root;if(!t.rect.element.hidden)for(var r in t.ref.elements){var n=t.ref.elements[r];if(n&&\"text\"===n.nodeName&&n.parentNode){var i=n.getBBox();n.bbox={x:i.x,y:i.y,width:i.width,height:i.height}}}},write:createRoute({SHOW_VIEW:function(e){var t=e.root,r=e.props,n=e.action;\"markup\"===n.id||\"sticker\"===n.id?t.element.dataset.active=!0:(t.element.dataset.active=!1,r.onSelect(null))},MARKUP_SET_VALUE:function(e){var t=e.root;forin(t.ref.elements,function(e,t){t&&t.dragger&&t.dragger.destroy()}),t.ref.elements=[],t.ref.shapeGroup.innerHTML=\"\"},UPDATE_ROOT_RECT:function(e){var t=e.root,r=e.action,n=t.ref.canvas;n.setAttribute(\"width\",r.rect.width),n.setAttribute(\"height\",r.rect.height),t.ref.previousScale=null},SWITCH_MARKUP_UTIL:function(e){var t=e.root,r=e.action,n=e.props,i=r.util;activateMarkupUtil(t,n,i)}},function(e){var t=e.root,r=e.props,n=e.timestamp;if(!(t.opacity<=0)){var i=t.query(\"GET_CROP\",r.id,n);if(i){var o=t.query(\"GET_MARKUP_UTIL\");t.element.dataset.util=o||\"\";var a=i.markup,c=i.cropStatus,l=r.onSelect,u=r.onDrag,s=t.ref,d=s.clip,p=s.manipulatorGroup,f=s.drawPath,h=s.viewSize,g=s.shapeOffsetGroup,m=s.manipulators,v=s.manipulatorPath,y=s.manipulatorRect,E=s.removeButton,T=s.drawState,_=t.query(\"GET_OUTPUT_WIDTH\"),R=t.query(\"GET_OUTPUT_HEIGHT\"),w=c.image,A=c.crop,I=A.width,S=A.height,C=A.widthFloat/A.heightFloat;if(_||R){var O=t.query(\"GET_OUTPUT_FIT\");_&&!R&&(R=_),R&&!_&&(_=R);var x,b=_/I,M=R/S;if(\"force\"===O)I=_,S=R;else\"cover\"===O?x=Math.max(b,M):\"contain\"===O&&(x=Math.min(b,M)),I*=x,S*=x}else w.width&&w.height?(I=w.width,S=w.height):w.width&&!w.height?(I=w.width,S=w.width/C):w.height&&!w.width&&(S=w.height,I=w.height*C);var L=T.points.length,P=roundFloat(t.markupX,3),G=roundFloat(t.markupY,3),k=roundFloat(t.markupWidth,3),D=roundFloat(t.markupHeight,3),U=roundFloat(Math.min(t.markupWidth/I,t.markupHeight/S),4);if(h.width=k,h.height=D,h.scale=U,stateHasChanged(t,{drawLength:L,markupX:P,markupY:G,scale:U,markup:a,currentWidth:I,currentHeight:S})){var B=P,V=t.rect.element.width-P-k,N=G,F=t.rect.element.height-G-D,z=\"inset(\".concat(N,\"px \").concat(V,\"px \").concat(F,\"px \").concat(B,\"px)\");if(d.style.clipPath=z,d.style.webkitClipPath=z,g.setAttribute(\"transform\",\"translate(\".concat(P,\" \").concat(G,\")\")),t.ref.previousDrawLength=L,t.ref.previousX=P,t.ref.previousY=G,t.ref.previousScale=U,t.ref.previousCurrentHeight=S,t.ref.previousCurrentWidth=I,t.ref.previousMarkupLength=a.length,!(h.width<1||h.height<1)){var W,q=a.find(function(e){return e[1].isSelected}),H=q&&t.ref.selected.id!==q[1].id||t.ref.selected.id&&!q;if(W=q?t.ref.selected={id:q[1].id,type:q[0],settings:q[1]}:t.ref.resetSelected(),T.points.length){var Y=getMarkupStyles(T,h,U);return Y.d=pointsToPathShape(T.points.map(function(e){return{x:P+e.x*h.width,y:G+e.y*h.height}})),void setAttributes$1(f,Y)}f.removeAttribute(\"d\"),t.ref.input.hidden=\"text\"!==t.ref.selected.type||!t.ref.selected.settings.allowInput,E.element.dataset.active=null!==t.ref.selected.id,v.setAttribute(\"style\",\"opacity:0\"),y.setAttribute(\"style\",\"opacity:0\"),m.forEach(function(e){e.visual.setAttribute(\"style\",\"opacity:0; pointer-events:none;\"),e.hitbox.setAttribute(\"style\",\"pointer-events:none;\")});var j=t.query(\"GET_MARKUP_FILTER\");a.filter(j).sort(sortMarkupByZIndex).forEach(function(e,n){var i=_slicedToArray(e,2),o=i[0],a=i[1],c=a.id,s=a.isDestroyed,d=a.isDirty,f=a.isSelected,g=a.allowSelect,T=a.allowMove,_=a.allowResize,R=a.allowInput;if(s){var w=t.ref.elements[c];w&&(w.dragger&&w.dragger.destroy(),t.ref.elements[c]=null,w.parentNode.removeChild(w))}else{var A,I,S,C=t.ref.elements[c];if(!C)if(C=createMarkupByType(o,a),t.ref.elements[c]=C,g)C.dragger=createDragger(C,function(){I=Date.now(),A=_objectSpread({},C.rect),(S=c===t.ref.selected.id)||l(c)},function(e,t){T&&u(c,A,t,h,U)},function(e,r){if(R&&\"text\"===o&&S){var n=vectorDistanceSquared({x:0,y:0},r),i=Date.now()-I;if(!(n>10||i>750)){t.ref.input.focus();var a=t.markupX+C.bbox.x,c=C.bbox.width,l=(e.offsetX-a)/c,u=Math.round(t.ref.input.value.length*l);t.ref.input.setSelectionRange(u,u)}}}),C.dragger.disable();else C.setAttribute(\"style\",\"pointer-events:none;\");if(C.dragger&&(r.allowInteraction?C.dragger.enable():C.dragger.disable()),n!==C.index){C.index=n;var O=t.ref.shapeGroup;O.insertBefore(C,O.childNodes[n+1])}if(d&&updateMarkupByType(C,o,a,h,U),f){var x=E.rect.element.width,b=E.rect.element.height,M=t.markupX-.5*x,L=t.markupY-b-15,P=\"text\"===o?C.bbox:C.rect,G=!1,k=getColor$1(a);if(k){var D=toRGBColorArray(k);G=(.2126*D[0]+.7152*D[1]+.0722*D[2])/255>.65,p.setAttribute(\"is-bright-color\",G)}\"line\"===o?(M+=P.x,L+=P.y,setAttributes$1(v,{d:\"M \".concat(P.x,\" \").concat(P.y,\" L \").concat(P.x+P.width,\" \").concat(P.y+P.height),style:\"opacity:1\"})):\"path\"===o?(M+=(P={x:a.points[0].x*h.width,y:a.points[0].y*h.height,width:0,height:0}).x,L+=P.y,setAttributes$1(v,{d:pointsToPathShape(a.points.map(function(e){return{x:e.x*h.width,y:e.y*h.height}})),style:\"opacity:1\"})):P&&(M+=P.x+.5*P.width,L+=P.y,setAttributes$1(y,{x:P.x-(\"text\"===o?5:0),y:P.y,width:P.width+(\"text\"===o?10:0),height:P.height,style:\"opacity:1\"}));var B=t.markupY+MARKUP_MARGIN,V=t.markupY+t.markupHeight-MARKUP_MARGIN,N=t.markupX+MARKUP_MARGIN,F=t.markupX+t.markupWidth-MARKUP_MARGIN;if(LV&&(L=V-b),MF&&(M=F-x),P||(E.element.dataset.active=\"false\"),E.element.setAttribute(\"style\",\"transform: translate3d(\".concat(M,\"px, \").concat(L,\"px, 0)\")),\"text\"===o&&P&&R){var z=P.width+65,W=t.markupWidth-P.x,q=\"\\n width: \".concat(Math.min(z,W),\"px;\\n height: \").concat(P.height,\"px;\\n color: \").concat(C.getAttribute(\"fill\"),\";\\n font-family: \").concat(C.getAttribute(\"font-family\"),\";\\n font-size: \").concat(C.getAttribute(\"font-size\").replace(/px/,\"\"),\"px;\\n font-weight: \").concat(C.getAttribute(\"font-weight\")||\"normal\",\";\\n \");isIOS()?q+=\"\\n left: \".concat(Math.round(t.markupX+P.x),\"px;\\n top: \").concat(Math.round(t.markupY+P.y),\"px;\\n \"):q+=\"\\n transform: translate3d(\".concat(Math.round(t.markupX+P.x),\"px,\").concat(Math.round(t.markupY+P.y),\"px,0);\\n \"),t.ref.input.setAttribute(\"style\",q),C.setAttribute(\"fill\",\"none\")}if(\"text\"===o)return;if(!_)return;var H=\"line\"===o?LINE_CORNERS:RECT_CORNERS;m.forEach(function(e,t){var r=H[t];if(r){var n=\"line\"===o?\"move\":\"\".concat(CORNER_CURSOR[r],\"-resize\"),i=CORNER_COORDINATES[r](C.rect),a=C.rect.width<100||C.rect.height<100,c=2===r.length?1:a?0:1;setAttributes$1(e.visual,{cx:i.x,cy:i.y,style:\"opacity:\".concat(c)});var l=HITBOX_COORDINATES[r](C.rect);setAttributes$1(e.hitbox,{cx:l.x,cy:l.y,style:\"cursor:\".concat(n,\";\")})}})}a.isDirty=!1}}),H&&(destroyElementControls(t),\"text\"===W.type&&t.ref.selected.settings.allowInput?t.ref.input.value=W.settings.text:t.ref.selected.id&&setupElementControls(t,r.onResize))}}}}})}),markAllAsDirty=function(e){return e.forEach(function(e){return e[1].isDirty=!0})},stateHasChanged=function(e,t){var r=t.drawLength,n=t.markup,i=t.markupX,o=t.markupY,a=t.currentWidth,c=t.currentHeight,l=t.scale;return r!==e.ref.previousDrawLength||(i!==e.ref.previousX?(markAllAsDirty(n),!0):o!==e.ref.previousY?(markAllAsDirty(n),!0):l!==e.ref.previousScale?(markAllAsDirty(n),!0):c!==e.ref.previousCurrentHeight?(markAllAsDirty(n),!0):a!==e.ref.previousCurrentWidth?(markAllAsDirty(n),!0):n.length!==e.ref.previousMarkupLength||!!n.find(function(e){return e[1].isDirty}))},setupElementControls=function(e,t){var r=e.ref.selected.id,n=\"g\"===e.ref.elements[r].nodeName?LINE_CORNERS:RECT_CORNERS;e.ref.manipulators.forEach(function(i,o){var a=n[o];if(a){var c=null;i.dragger=createDragger(i.hitbox,function(){c={x:parseFloat(attr(i.hitbox,\"cx\")),y:parseFloat(attr(i.hitbox,\"cy\"))}},function(n,i){t(r,a,c,i,e.ref.viewSize)},null,{stopPropagation:!0})}})},destroyElementControls=function(e){e.ref.manipulators.forEach(function(e){e.dragger&&(e.dragger.destroy(),e.dragger=null)})},KEY_MAP={38:\"up\",40:\"down\",37:\"left\",39:\"right\",189:\"minus\",187:\"plus\",72:\"h\",76:\"l\",81:\"q\",82:\"r\",84:\"t\",86:\"v\",90:\"z\",219:\"left_bracket\",221:\"right_bracket\"},createKeyboard=function(e,t,r,n,i){var o=null,a=!0,c={enabled:!0},l=function(e){var i=KEY_MAP[e.keyCode]||e.keyCode;r[i]&&(e.stopPropagation(),a&&(o=t(i),a=!1),r[i](o),n(o))},u=function(e){var t=KEY_MAP[e.keyCode]||e.keyCode;r[t]&&(e.stopPropagation(),i(o),a=!0)};return e.addEventListener(\"keydown\",l),e.addEventListener(\"keyup\",u),{enable:function(){c.enabled||(e.addEventListener(\"keydown\",l),e.addEventListener(\"keyup\",u)),c.enabled=!0},disable:function(){c.enabled&&(e.removeEventListener(\"keydown\",l),e.removeEventListener(\"keyup\",u)),c.enabled=!1},destroy:function(){e.removeEventListener(\"keydown\",l),e.removeEventListener(\"keyup\",u)}}},createPreviewImage=function(e,t,r){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1,i=arguments.length>4?arguments[4]:void 0;t=Math.round(t),r=Math.round(r);var o=i||document.createElement(\"canvas\"),a=o.getContext(\"2d\");return n>=5&&n<=8?(o.width=r,o.height=t):(o.width=t,o.height=r),a.save(),-1!==n&&a.transform.apply(a,getImageOrientationMatrix(t,r,n)),a.drawImage(e,0,0,t,r),a.restore(),o},BitmapWorker=function(){self.onmessage=function(e){createImageBitmap(e.data.message.file).then(function(t){self.postMessage({id:e.data.id,message:t},[t])})}},isBitmap=function(e){return/^image/.test(e.type)&&!/svg/.test(e.type)},canCreateImageBitmap=function(e){var t=window.navigator.userAgent.match(/Firefox\\/([0-9]+)\\./);return!((t?parseInt(t[1]):null)<=58)&&(\"createImageBitmap\"in window&&isBitmap(e))},loadImage$2=function(e){return new Promise(function(t,r){var n=new Image;n.onload=function(){t(n)},n.onerror=function(e){r(e)},n.src=e})},compileShader=function(e,t,r){var n=e.createShader(r);return e.shaderSource(n,t),e.compileShader(n),n},createProgram=function(e,t,r){var n=e.createProgram();return e.attachShader(n,compileShader(e,t,e.VERTEX_SHADER)),e.attachShader(n,compileShader(e,r,e.FRAGMENT_SHADER)),e.linkProgram(n),n},createTexture=function(e,t,r,n,i){var o=e.createTexture();e.activeTexture(e.TEXTURE0+n),e.bindTexture(e.TEXTURE_2D,o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.uniform1i(t,n),e.uniform2f(r,i.width,i.height);try{e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,i)}catch(t){e.texImage2D(e.TEXTURE_2D,0,e.RGBA,i.width,i.height,0,e.RGBA,e.UNSIGNED_BYTE,null)}return o},create=function(){var e=new Float32Array(16);return e[0]=1,e[5]=1,e[10]=1,e[15]=1,e},perspective=function(e,t,r,n,i){var o=1/Math.tan(t/2),a=1/(n-i);e[0]=o/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,e[10]=(i+n)*a,e[14]=2*i*n*a},translate=function(e,t){var r=t[0],n=t[1],i=t[2];e[12]=e[0]*r+e[4]*n+e[8]*i+e[12],e[13]=e[1]*r+e[5]*n+e[9]*i+e[13],e[14]=e[2]*r+e[6]*n+e[10]*i+e[14],e[15]=e[3]*r+e[7]*n+e[11]*i+e[15]},scale=function(e,t){var r=t[0],n=t[1],i=t[2];e[0]=e[0]*r,e[1]=e[1]*r,e[2]=e[2]*r,e[3]=e[3]*r,e[4]=e[4]*n,e[5]=e[5]*n,e[6]=e[6]*n,e[7]=e[7]*n,e[8]=e[8]*i,e[9]=e[9]*i,e[10]=e[10]*i,e[11]=e[11]*i},rotateX=function(e,t){var r=Math.sin(t),n=Math.cos(t),i=e[4],o=e[5],a=e[6],c=e[7],l=e[8],u=e[9],s=e[10],d=e[11];e[4]=i*n+l*r,e[5]=o*n+u*r,e[6]=a*n+s*r,e[7]=c*n+d*r,e[8]=l*n-i*r,e[9]=u*n-o*r,e[10]=s*n-a*r,e[11]=d*n-c*r},rotateY=function(e,t){var r=Math.sin(t),n=Math.cos(t),i=e[0],o=e[1],a=e[2],c=e[3],l=e[8],u=e[9],s=e[10],d=e[11];e[0]=i*n-l*r,e[1]=o*n-u*r,e[2]=a*n-s*r,e[3]=c*n-d*r,e[8]=i*r+l*n,e[9]=o*r+u*n,e[10]=a*r+s*n,e[11]=c*r+d*n},rotateZ=function(e,t){var r=Math.sin(t),n=Math.cos(t),i=e[0],o=e[1],a=e[2],c=e[3],l=e[4],u=e[5],s=e[6],d=e[7];e[0]=i*n+l*r,e[1]=o*n+u*r,e[2]=a*n+s*r,e[3]=c*n+d*r,e[4]=l*n-i*r,e[5]=u*n-o*r,e[6]=s*n-a*r,e[7]=d*n-c*r},mat4={create:create,perspective:perspective,translate:translate,scale:scale,rotateX:rotateX,rotateY:rotateY,rotateZ:rotateZ},degToRad=function(e){return e*Math.PI/180},imageFragmentShader=\"\\nprecision mediump float;\\n\\nuniform sampler2D uTexture;\\nuniform vec2 uTextureSize;\\n\\nuniform float uColorOpacity;\\nuniform mat4 uColorMatrix;\\nuniform vec4 uColorOffset;\\n\\nuniform vec4 uOverlayColor;\\nuniform vec2 uOverlayLeftTop;\\nuniform vec2 uOverlayRightBottom;\\n\\nvarying vec2 vTexCoord;\\nvarying vec4 vPosition;\\n\\nvoid main () {\\n\\n vec3 cB = vec3(1.0);\\n\\n\\tvec4 cF = texture2D(uTexture, vTexCoord);\\n\\t\\n\\tvec4 cM = (cF * uColorMatrix) + uColorOffset;\\n\\n float r = max(0.0, cM.r * cM.a) + (cB.r * (1.0 - cM.a));\\n float g = max(0.0, cM.g * cM.a) + (cB.g * (1.0 - cM.a));\\n float b = max(0.0, cM.b * cM.a) + (cB.b * (1.0 - cM.a));\\n\\n\\tvec4 color = vec4(r, g, b, cF.a);\\n\\t\\n\\t// test if falls within\\n if ((gl_FragCoord.x < uOverlayLeftTop.x || gl_FragCoord.x > uOverlayRightBottom.x) || \\n (gl_FragCoord.y > uOverlayLeftTop.y || gl_FragCoord.y < uOverlayRightBottom.y)) {\\n\\t\\tcolor *= uOverlayColor;\\n\\t}\\n\\t\\n gl_FragColor = color * uColorOpacity;\\n}\\n\",imageVertexShader=\"\\nattribute vec4 aPosition;\\nattribute vec2 aTexCoord;\\nuniform mat4 uMatrix;\\n\\n// send to fragment shader\\nvarying vec2 vTexCoord;\\nvarying vec4 vPosition;\\n\\nvoid main () {\\n vPosition = uMatrix * aPosition;\\n gl_Position = vPosition;\\n vTexCoord = aTexCoord;\\n}\\n\",backgroundFragmentShader=\"\\nprecision mediump float;\\n\\nuniform vec2 uViewportSize;\\nuniform vec3 uColorStart;\\nuniform vec3 uColorEnd;\\nuniform vec2 uOverlayLeftTop;\\nuniform vec2 uOverlayRightBottom;\\nuniform vec4 uColorCanvasBackground;\\n\\nvoid main() {\\n\\n\\tfloat x = gl_FragCoord.x;\\n\\tfloat y = gl_FragCoord.y;\\n\\n\\tvec2 center = vec2(.5, .5);\\n\\tvec2 st = vec2(x / uViewportSize.x, y / uViewportSize.y);\\n\\tfloat mixValue = distance(st, center) * 1.5; // expand outside view (same as doka--root::after)\\n\\tvec3 color = mix(uColorStart, uColorEnd, mixValue);\\n\\n\\tif (uColorCanvasBackground[3] == 1.0) {\\n\\n\\t\\tfloat innerLeft = uOverlayLeftTop.x;\\n\\t\\tfloat innerRight = uOverlayRightBottom.x;\\n\\t\\tfloat innerTop = uOverlayRightBottom.y;\\n\\t\\tfloat innerBottom = uOverlayLeftTop.y;\\n\\n\\t\\tif (x < innerLeft || x > innerRight || y < innerTop || y > innerBottom) {\\n\\t\\t\\tgl_FragColor = vec4(color, 1.0);\\n\\t\\t\\treturn;\\n\\t\\t}\\n\\n\\t\\tgl_FragColor = uColorCanvasBackground;\\n\\t\\treturn;\\n\\t}\\n\\t\\n\\tgl_FragColor = vec4(color, 1.0);\\n}\\n\",outlineFragmentShader=\"\\nprecision mediump float;\\n\\nuniform vec2 uOverlayLeftTop;\\nuniform vec2 uOverlayRightBottom;\\nuniform vec4 uOutlineColor;\\nuniform float uOutlineWidth;\\n\\nvoid main() {\\n\\n\\tfloat x = gl_FragCoord.x;\\n\\tfloat y = gl_FragCoord.y;\\n\\n\\tfloat innerLeft = uOverlayLeftTop.x;\\n\\tfloat innerRight = uOverlayRightBottom.x;\\n\\tfloat innerTop = uOverlayRightBottom.y;\\n\\tfloat innerBottom = uOverlayLeftTop.y;\\n\\n\\tfloat outerLeft = innerLeft - uOutlineWidth;\\n\\tfloat outerRight = innerRight + uOutlineWidth;\\n\\tfloat outerTop = innerTop - uOutlineWidth;\\n\\tfloat outerBottom = innerBottom + uOutlineWidth;\\n\\t\\n\\tif (x < outerLeft || x >= outerRight || y < outerTop || y >= outerBottom) {\\n\\t\\tdiscard;\\n\\t}\\n\\n\\tif (x < innerLeft || x >= innerRight || y < innerTop || y >= innerBottom) {\\n\\t\\tgl_FragColor = uOutlineColor;\\n\\t}\\n}\\n\",simpleVertexShader=\"\\nattribute vec4 aPosition;\\nvoid main() {\\n\\tgl_Position = aPosition;\\n}\\n\",setup=function(e,t,r){var n={width:0,height:0},i={x:0,y:0},o=null,a=degToRad(30),c=Math.tan(a/2),l={antialias:!1,alpha:!1},u=e.getContext(\"webgl\",l)||e.getContext(\"experimental-webgl\",l);if(!u)return null;u.enable(u.BLEND),u.blendFunc(u.SRC_ALPHA,u.ONE_MINUS_SRC_ALPHA);var s=createProgram(u,simpleVertexShader,backgroundFragmentShader),d=u.getUniformLocation(s,\"uColorStart\"),p=u.getUniformLocation(s,\"uColorEnd\"),f=u.getUniformLocation(s,\"uViewportSize\"),h=u.getAttribLocation(s,\"aPosition\"),g=u.getUniformLocation(s,\"uOverlayLeftTop\"),m=u.getUniformLocation(s,\"uOverlayRightBottom\"),v=u.getUniformLocation(s,\"uColorCanvasBackground\"),y=u.createBuffer(),E=new Float32Array([1,-1,1,1,-1,-1,-1,1]);u.bindBuffer(u.ARRAY_BUFFER,y),u.bufferData(u.ARRAY_BUFFER,E,u.STATIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null);var T=createProgram(u,simpleVertexShader,outlineFragmentShader),_=u.getAttribLocation(T,\"aPosition\"),R=u.getUniformLocation(T,\"uOutlineWidth\"),w=u.getUniformLocation(T,\"uOutlineColor\"),A=u.getUniformLocation(T,\"uOverlayLeftTop\"),I=u.getUniformLocation(T,\"uOverlayRightBottom\"),S=u.createBuffer(),C=new Float32Array([1,-1,1,1,-1,-1,-1,1]);u.bindBuffer(u.ARRAY_BUFFER,S),u.bufferData(u.ARRAY_BUFFER,C,u.STATIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null);var O=createProgram(u,imageVertexShader,imageFragmentShader);u.useProgram(O);var x=u.getUniformLocation(O,\"uMatrix\"),b=u.getUniformLocation(O,\"uTexture\"),M=u.getUniformLocation(O,\"uTextureSize\"),L=u.getUniformLocation(O,\"uOverlayColor\"),P=u.getUniformLocation(O,\"uOverlayLeftTop\"),G=u.getUniformLocation(O,\"uOverlayRightBottom\"),k=u.getUniformLocation(O,\"uColorOpacity\"),D=u.getUniformLocation(O,\"uColorOffset\"),U=u.getUniformLocation(O,\"uColorMatrix\"),B=u.getAttribLocation(O,\"aPosition\"),V=u.getAttribLocation(O,\"aTexCoord\"),N=createTexture(u,b,M,0,t),F=t.width*r,z=t.height*r,W=-.5*F,q=.5*z,H=.5*F,Y=-.5*z,j=new Float32Array([W,q,W,Y,H,q,H,Y]),X=new Float32Array([0,0,0,1,1,0,1,1]),Z=j.length/2,$=u.createBuffer();u.bindBuffer(u.ARRAY_BUFFER,$),u.bufferData(u.ARRAY_BUFFER,j,u.STATIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null);var K=u.createBuffer();u.bindBuffer(u.ARRAY_BUFFER,K),u.bufferData(u.ARRAY_BUFFER,X,u.STATIC_DRAW),u.bindBuffer(u.ARRAY_BUFFER,null);var Q=0,J=0,ee={release:function(){e.width=1,e.height=1},resize:function(t,a){e.width=t*r,e.height=a*r,e.style.width=\"\".concat(t,\"px\"),e.style.height=\"\".concat(a,\"px\"),n.width=t*r,n.height=a*r,i.x=.5*n.width,i.y=.5*n.height,o=n.width/n.height,u.viewport(0,0,u.canvas.width,u.canvas.height)},update:function(e,l,E,C,b,M,F,z,W,q,H,Y,j,X,te,re,ne,ie,oe){var ae=H?H.height*r:n.height;Q=t.width*r,J=t.height*r,e*=r,l*=r,E*=r,C*=r;var ce=J/2/c*(n.height/ae)*-1;ce/=-c*ce*2/n.height;var le=.5*Q,ue=.5*J;e-=le,l-=ue;var se=z,de=-(i.x-le)+E,pe=i.y-ue-C,fe=mat4.create();mat4.perspective(fe,a,o,1,2*-ce),mat4.translate(fe,[de,pe,ce]),mat4.translate(fe,[e,-l,0]),mat4.scale(fe,[se,se,se]),mat4.rotateZ(fe,-F),mat4.translate(fe,[-e,l,0]),mat4.rotateY(fe,M),mat4.rotateX(fe,b),u.clearColor(X[0],X[1],X[2],1),u.clear(u.COLOR_BUFFER_BIT);var he=Y.x*r,ge=Y.y*r,me=Y.width*r,ve=Y.height*r,ye=he,Ee=ye+me,Te=n.height-ge,_e=n.height-(ge+ve);u.useProgram(s),u.uniform3fv(d,te),u.uniform3fv(p,re),u.uniform4fv(v,oe.map(function(e,t){return t<3?e/255:e})),u.uniform2f(f,n.width,n.height),u.uniform2f(g,ye,Te),u.uniform2f(m,Ee,_e),u.bindBuffer(u.ARRAY_BUFFER,y),u.vertexAttribPointer(h,2,u.FLOAT,!1,0,0),u.enableVertexAttribArray(h),u.drawArrays(u.TRIANGLE_STRIP,0,4),u.useProgram(O),u.bindFramebuffer(u.FRAMEBUFFER,null),u.bindTexture(u.TEXTURE_2D,N),u.bindBuffer(u.ARRAY_BUFFER,$),u.vertexAttribPointer(B,2,u.FLOAT,!1,0,0),u.enableVertexAttribArray(B),u.bindBuffer(u.ARRAY_BUFFER,K),u.vertexAttribPointer(V,2,u.FLOAT,!1,0,0),u.enableVertexAttribArray(V),u.uniformMatrix4fv(x,!1,fe),u.uniform2f(P,ye,Te),u.uniform2f(G,Ee,_e),u.uniform4fv(L,j),u.uniform1f(k,q),u.uniform4f(D,W[4],W[9],W[14],W[19]),u.uniformMatrix4fv(U,!1,[].concat(_toConsumableArray(W.slice(0,4)),_toConsumableArray(W.slice(5,9)),_toConsumableArray(W.slice(10,14)),_toConsumableArray(W.slice(15,19)))),u.drawArrays(u.TRIANGLE_STRIP,0,Z),u.useProgram(T),u.uniform1f(R,ne),u.uniform4fv(w,ie),u.uniform2f(A,ye,Te),u.uniform2f(I,Ee,_e),u.bindBuffer(u.ARRAY_BUFFER,S),u.vertexAttribPointer(_,2,u.FLOAT,!1,0,0),u.enableVertexAttribArray(_),u.drawArrays(u.TRIANGLE_STRIP,0,4),ee.onupdate(u)},onupdate:function(){}};return ee},createSpringRect=function(e){var t=0,r={},n=spring(e),i=spring(e),o=spring(e),a=spring(e);return n.onupdate=function(e){return r.x=e},n.oncomplete=function(){return t++},i.onupdate=function(e){return r.y=e},i.oncomplete=function(){return t++},o.onupdate=function(e){return r.width=e},o.oncomplete=function(){return t++},a.onupdate=function(e){return r.height=e},a.oncomplete=function(){return t++},{interpolate:function(e){n.interpolate(e),i.interpolate(e),o.interpolate(e),a.interpolate(e)},setTarget:function(e){t=0,n.target=e?e.x:null,i.target=e?e.y:null,o.target=e?e.width:null,a.target=e?e.height:null},getRect:function(){return r},isStable:function(){return 4===t}}},createSpringColor=function(e){var t=0,r={},n=spring(e),i=spring(e),o=spring(e);return n.onupdate=function(e){return r.r=e},n.oncomplete=function(){return t++},i.onupdate=function(e){return r.g=e},i.oncomplete=function(){return t++},o.onupdate=function(e){return r.b=e},o.oncomplete=function(){return t++},{interpolate:function(e){n.interpolate(e),i.interpolate(e),o.interpolate(e)},setTarget:function(e){t=0,n.target=e?e[0]:null,i.target=e?e[1]:null,o.target=e?e[2]:null},getColor:function(){return[r.r,r.g,r.b]},isStable:function(){return 3===t}}},ColorSpring={stiffness:.25,damping:.25,mass:2.5},IdentityMatrix=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],imageGL=createView({name:\"image-gl\",ignoreRect:!0,ignoreRectUpdate:!0,mixins:{apis:[\"top\",\"left\",\"width\",\"height\",\"xOrigin\",\"yOrigin\",\"xTranslation\",\"yTranslation\",\"xRotation\",\"yRotation\",\"zRotation\",\"scale\",\"overlay\",\"stage\",\"colorMatrix\",\"colorOpacity\",\"overlayOpacity\",\"outlineWidth\",\"isDraft\"],animations:{xTranslation:imageOverlaySpring,yTranslation:imageOverlaySpring,xOrigin:imageOverlaySpring,yOrigin:imageOverlaySpring,scale:imageOverlaySpring,xRotation:{type:\"spring\",stiffness:.25,damping:.25,mass:2.5},yRotation:{type:\"spring\",stiffness:.25,damping:.25,mass:2.5},zRotation:{type:\"spring\",stiffness:.25,damping:.25,mass:2.5},colorOpacity:{type:\"tween\",delay:150,duration:750},overlayOpacity:\"spring\",introScale:{type:\"spring\",stiffness:.25,damping:.75,mass:15},outlineWidth:imageOverlaySpring}},create:function(e){var t=e.root;t.ref.canvas=document.createElement(\"canvas\"),t.ref.canvas.width=0,t.ref.canvas.height=0,t.appendChild(t.ref.canvas),t.ref.gl=null,t.introScale=1,t.ref.isPreview=\"preview\"===t.query(\"GET_STYLE_LAYOUT_MODE\"),t.ref.shouldZoom=!t.ref.isPreview,t.ref.didZoom=!1,t.ref.backgroundColor=null,t.ref.backgroundColorSpring=createSpringColor(ColorSpring),t.ref.backgroundColorCenter=null,t.ref.backgroundColorCenterSpring=createSpringColor(ColorSpring),t.ref.overlaySpring=createSpringRect(imageOverlaySpring),t.ref.stageSpring=createSpringRect(imageOverlaySpring),t.ref.outlineSpring=spring(imageOverlaySpring),t.ref.colorMatrixSpring=[],t.ref.colorMatrixStable=!0,t.ref.colorMatrixStableCount=0,t.ref.colorMatrixPositions=[];for(var r=0;r<20;r++)!function(){var e=r,n=spring(ColorSpring);n.target=IdentityMatrix[e],n.onupdate=function(r){t.ref.colorMatrixPositions[e]=r},n.oncomplete=function(){t.ref.colorMatrixStableCount++},t.ref.colorMatrixSpring[e]=n}();t.ref.dragger=createDragger(t.element,function(){t.dispatch(\"CROP_IMAGE_DRAG_GRAB\")},function(e,r){t.dispatch(\"CROP_IMAGE_DRAG\",{value:r})},function(){t.dispatch(\"CROP_IMAGE_DRAG_RELEASE\")},{cancelOnMultiple:!0});var n=0,i=0;t.ref.keyboard=createKeyboard(t.element,function(){return n=0,i=0,{x:0,y:0}},{up:function(e){e.y-=20},down:function(e){e.y+=20},left:function(e){e.x-=20},right:function(e){e.x+=20},plus:function(){n+=.1,t.dispatch(\"CROP_IMAGE_RESIZE_AMOUNT\",{value:n}),t.dispatch(\"CROP_IMAGE_RESIZE_RELEASE\")},minus:function(){n-=.1,t.dispatch(\"CROP_IMAGE_RESIZE_AMOUNT\",{value:n}),t.dispatch(\"CROP_IMAGE_RESIZE_RELEASE\")},left_bracket:function(){i-=Math.PI/128,t.dispatch(\"CROP_IMAGE_ROTATE_ADJUST\",{value:i})},right_bracket:function(){i+=Math.PI/128,t.dispatch(\"CROP_IMAGE_ROTATE_ADJUST\",{value:i})},h:function(){t.dispatch(\"CROP_IMAGE_FLIP_HORIZONTAL\")},l:function(){t.dispatch(\"CROP_IMAGE_ROTATE_LEFT\")},q:function(){t.dispatch(\"CROP_RESET\")},r:function(){t.dispatch(\"CROP_IMAGE_ROTATE_RIGHT\")},v:function(){t.dispatch(\"CROP_IMAGE_FLIP_VERTICAL\")},z:function(){t.dispatch(\"CROP_ZOOM\")}},function(e){e&&t.dispatch(\"CROP_IMAGE_DRAG\",{value:e})},function(e){e&&t.dispatch(\"CROP_IMAGE_DRAG_RELEASE\")});var o=t.query(\"GET_FILE\"),a=URL.createObjectURL(o.data),c=function(e){var r=scaleImageSize(e,{width:t.query(\"GET_MAX_IMAGE_PREVIEW_WIDTH\"),height:t.query(\"GET_MAX_IMAGE_PREVIEW_HEIGHT\")}),n=createPreviewImage(e,r.width,r.height,o.orientation),i=Math.max(1,.75*window.devicePixelRatio),a=n.height/n.width,c=96*i,l=createPreviewImage(n,a>1?c:c/a,a>1?c*a:c),u=n.getContext(\"2d\").getImageData(0,0,n.width,n.height),s=l.getContext(\"2d\").getImageData(0,0,l.width,l.height);canvasRelease(n),canvasRelease(l),t.ref.gl=setup(t.ref.canvas,u,i);var d=t.query(\"GET_OUTPUT_CANVAS_SYNC_TARGET\");d&&(t.ref.gl.onupdate=function(){var e=t.ref.overlaySpring.getRect();d.getContext(\"2d\").drawImage(t.ref.canvas,e.x*i,e.y*i,e.width*i,e.height*i,0,0,d.width,d.height)}),t.ref.gl?(t.dispatch(\"DID_RECEIVE_IMAGE_DATA\",{previewData:u,thumbData:s}),t.dispatch(\"DID_PRESENT_IMAGE\")):t.dispatch(\"MISSING_WEBGL\")},l=function(){loadImage$2(a).then(c)};if(canCreateImageBitmap(o.data)){var u=createWorker(BitmapWorker);u.post({file:o.data},function(e){u.terminate(),e?c(e):l()})}else l();t.ref.canvasStyle=getComputedStyle(t.ref.canvas),t.ref.previousBackgroundColor,t.ref.previousLeft,t.ref.previousTop,t.ref.previousWidth,t.ref.previousHeight,t.element.dataset.showInteractionIndicator=!1,t.ref.handleFocus=function(e){9===e.keyCode&&(t.element.dataset.showInteractionIndicator=!0)},t.ref.handleBlur=function(e){t.element.dataset.showInteractionIndicator=!1},addEvent(t.element)(\"keyup\",t.ref.handleFocus),addEvent(t.element)(\"blur\",t.ref.handleBlur)},destroy:function(e){var t=e.root;t.ref.gl&&(t.ref.gl.release(),t.ref.gl=null),t.ref.dragger.destroy(),removeEvent(t.element)(\"keyup\",t.ref.handleFocus),removeEvent(t.element)(\"blur\",t.ref.handleBlur)},read:function(e){var t=e.root,r=t.ref.canvasStyle.backgroundColor,n=t.ref.canvasStyle.color;if(\"transparent\"!==n&&\"\"!==n||(n=null),\"transparent\"!==r&&\"\"!==r||(r=null),r&&r!==t.ref.previousBackgroundColor){var i=toRGBColorArray(r).map(function(e){return e/255}),o=(i[0]+i[1]+i[2])/3;t.ref.backgroundColor=i,t.ref.backgroundColorCenter=i.map(function(e){return o>.5?e-.15:e+.15}),t.ref.previousBackgroundColor=r}n&&n!==t.ref.previousOutlineColor&&(t.ref.outlineColor=toRGBColorArray(n).map(function(e){return e/255}).concat(1),t.ref.previousOutlineColor=n)},write:createRoute({SHOW_VIEW:function(e){var t=e.root;\"crop\"===e.action.id?(t.ref.dragger.enable(),t.element.setAttribute(\"tabindex\",\"0\")):(t.ref.dragger.disable(),t.element.removeAttribute(\"tabindex\"))}},function(e){var t=e.root,r=e.props,n=(e.actions,e.timestamp);if(t.ref.gl&&r.width&&r.height){var i=t.ref,o=i.gl,a=i.previousWidth,c=i.previousHeight,l=i.shouldZoom,u=i.stageSpring,s=i.overlaySpring,d=i.backgroundColorSpring,p=i.backgroundColorCenterSpring;r.width===a&&r.height===c||(t.ref.gl.resize(r.width,r.height),t.ref.previousWidth=r.width,t.ref.previousHeight=r.height),r.left===t.ref.previousLeft&&r.top===t.ref.previousTop||(t.ref.canvas.style.transform=\"translate(\".concat(-r.left,\"px, \").concat(-r.top,\"px)\"),t.ref.previousLeft=r.left,t.ref.previousTop=r.top),l&&!t.ref.didZoom&&(t.introScale=null,t.introScale=1.15,t.introScale=1,t.ref.didZoom=!0),d.setTarget(t.ref.backgroundColor),d.interpolate(n);var f=d.isStable();p.setTarget(t.ref.backgroundColorCenter),p.interpolate(n);var h=p.isStable();t.ref.colorMatrixStableCount=0;var g=r.colorMatrix||IdentityMatrix,m=t.ref.colorMatrixSpring.map(function(e,r){return e.target=g[r],e.interpolate(n),t.ref.colorMatrixPositions[r]}),v=20===t.ref.colorMatrixStableCount;r.isDraft&&s.setTarget(null),s.setTarget(r.overlay),s.interpolate(n);var y=s.isStable();r.isDraft&&u.setTarget(null),u.setTarget(r.stage),u.interpolate(n);var E=u.isStable();return o.update(t.xOrigin,t.yOrigin,t.xTranslation+r.left,t.yTranslation+r.top,t.xRotation,t.yRotation,t.zRotation,t.scale*t.introScale,m,t.ref.isPreview?1:t.colorOpacity,u.getRect(),s.getRect(),[1,1,1,1-t.overlayOpacity],d.getColor(),p.getColor(),d.getColor(),t.outlineWidth,t.ref.outlineColor,t.query(\"GET_BACKGROUND_COLOR\")),y&&E&&v&&f&&h}})}),image=createView({name:\"image\",ignoreRect:!0,mixins:{apis:[\"offsetTop\"]},create:function(e){var t=e.root,r=e.props;t.ref.imageGL=t.appendChildView(t.createChildView(imageGL)),/markup|sticker/.test(t.query(\"GET_UTILS\"))&&(t.ref.markup=t.appendChildView(t.createChildView(imageMarkup,{id:r.id,opacity:0,onSelect:function(e){t.dispatch(\"MARKUP_SELECT\",{id:e})},onDrag:function(e,r,n,i,o){t.dispatch(\"MARKUP_ELEMENT_DRAG\",{id:e,origin:r,offset:n,size:i,scale:o})},onResize:function(e,r,n,i,o){t.dispatch(\"MARKUP_ELEMENT_RESIZE\",{id:e,corner:r,origin:n,offset:i,size:o})},onUpdate:function(e,r){t.dispatch(\"MARKUP_UPDATE\",{style:e,value:r})},isMarkupUtil:function(e){var t=e;do{if(\"doka--markup-tools\"===t.className)return!0}while(t=t.parentNode);return!1}}))),t.ref.isModal=/modal/.test(t.query(\"GET_STYLE_LAYOUT_MODE\"))},write:createRoute({DID_PRESENT_IMAGE:function(e){e.root.ref.imageGL.colorOpacity=1}},function(e){var t=e.root,r=e.props,n=e.timestamp,i=t.ref.imageGL,o=t.ref.markup,a=t.query(\"GET_CROP\",r.id,n);if(a){var c=a.isDraft,l=a.cropRect,u=a.cropStatus,s=a.origin,d=a.translation,p=a.translationBand,f=a.scale,h=a.scaleBand,g=a.rotation,m=a.rotationBand,v=a.flip,y=a.colorMatrix,E=t.query(\"GET_ROOT\"),T=t.query(\"GET_STAGE\"),_=T.x,R=T.y;c&&(i.scale=null,i.zRotation=null,i.xTranslation=null,i.yTranslation=null,i.xOrigin=null,i.yOrigin=null),i.colorMatrix=y;var w=t.query(\"IS_ACTIVE_VIEW\",\"crop\"),A=t.query(\"IS_ACTIVE_VIEW\",\"markup\")||t.query(\"IS_ACTIVE_VIEW\",\"sticker\"),I=w?.75:.95,S=_objectSpread({},l),C=1,O=w?1:5;if(t.query(\"IS_ACTIVE_VIEW\",\"resize\")){var x=u.image.width,b=u.image.height;C=null===x&&null===b?u.crop.width/l.width:null===x?b/l.height:x/l.width,C/=window.devicePixelRatio;var M=l.width*C,L=l.height*C;S.x=S.x+(.5*l.width-.5*M),S.y=S.y+(.5*l.height-.5*L),S.width=M,S.height=L}var P=t.ref.isModal?0:E.left,G=t.ref.isModal?0:E.top,k=t.ref.isModal?0:E.width-t.rect.element.width,D=t.ref.isModal?0:E.height-t.rect.element.height-r.offsetTop,U=(f+h)*C;i.isDraft=c,i.overlayOpacity=I,i.xOrigin=s.x,i.yOrigin=s.y,i.xTranslation=d.x+p.x+_,i.yTranslation=d.y+p.y+R,i.left=P,i.top=G+r.offsetTop,i.width=t.rect.element.width+k,i.height=t.rect.element.height+D+r.offsetTop,i.scale=U,i.xRotation=v.vertical?Math.PI:0,i.yRotation=v.horizontal?Math.PI:0,i.zRotation=g.main+g.sub+m,i.stage={x:T.x+P,y:T.y+G+r.offsetTop,width:T.width,height:T.height},i.overlay={x:S.x+_+P,y:S.y+R+G+r.offsetTop,width:S.width,height:S.height},i.outlineWidth=O,o&&(c&&(o.translateX=null,o.translateY=null,o.markupX=null,o.markupY=null,o.markupWidth=null,o.markupHeight=null),o.opacity=w?.3:1,o.stageOffsetX=_,o.stageOffsetY=R,o.markupX=S.x+_,o.markupY=S.y+R,o.markupWidth=S.width,o.markupHeight=S.height,o.allowInteraction=A)}})}),createGroup=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"group\",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[\"opacity\"],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return createView({ignoreRect:!0,name:e,mixins:{styles:[\"opacity\"].concat(_toConsumableArray(t)),animations:_objectSpread({opacity:{type:\"spring\",stiffness:.25,damping:.5,mass:5}},r)},create:function(e){var t=e.root,r=e.props;(r.controls||[]).map(function(e){var r=t.createChildView(e.view,e);e.didCreateView&&e.didCreateView(r),t.appendChildView(r)}),r.element&&t.element.appendChild(r.element)}})},list=createView({ignoreRect:!0,tag:\"div\",name:\"dropdown-list\",mixins:{styles:[\"translateY\",\"opacity\"],apis:[\"selectedValue\",\"options\",\"onSelect\"],animations:{translateY:\"spring\",opacity:{type:\"tween\",duration:250}}},create:function(e){var t=e.root,r=e.props;t.element.setAttribute(\"role\",\"list\"),t.ref.handleClick=function(){return r.action&&r.action()},t.element.addEventListener(\"click\",t.ref.handleClick),t.ref.activeOptions=null,t.ref.activeSelectedValue},write:function(e){var t=e.root,r=e.props;if(r.options!==t.ref.activeOptions&&(t.ref.activeOptions=r.options,t.childViews.forEach(function(e){return t.removeChildView(e)}),r.options.map(function(e){var n=t.createChildView(button,_objectSpread({},e,{action:function(){return r.onSelect(e.value)}}));return t.appendChildView(n)})),r.selectedValue!==t.ref.activeSelectedValue){t.ref.activeSelectedValue=r.selectedValue;var n=r.options.findIndex(function(e){return\"object\"===_typeof(e.value)&&r.selectedValue?e.value[0]===e.label&&JSON.stringify(e.value.slice(1))===JSON.stringify(r.selectedValue)||JSON.stringify(e.value)===JSON.stringify(r.selectedValue):e.value===r.selectedValue});t.childViews.forEach(function(e,t){e.element.setAttribute(\"aria-selected\",t===n)})}},destroy:function(e){var t=e.root;t.element.removeEventListener(\"click\",t.ref.handleClick)}}),dropdown=createView({ignoreRect:!0,tag:\"div\",name:\"dropdown\",mixins:{styles:[\"opacity\"],animations:{opacity:\"spring\"},apis:[\"direction\",\"selectedValue\",\"options\",\"onSelect\"]},create:function(e){var t=e.root,r=e.props;t.ref.open=!1;var n=function(e){t.ref.open=e,t.dispatch(\"KICK\")};t.ref.button=t.appendChildView(t.createChildView(button,_objectSpread({},r,{action:function(){n(!t.ref.open)}}))),t.ref.list=t.appendChildView(t.createChildView(list,_objectSpread({},r,{opacity:0,action:function(){n(!1)}}))),t.ref.handleBodyClick=function(e){contains(t.element,e.target)||n(!1)},t.element.addEventListener(\"focusin\",function(e){e.target!==t.ref.button.element&&n(!0)}),t.element.addEventListener(\"focusout\",function(e){e.relatedTarget&&(contains(t.element,e.relatedTarget)||n(!1))}),document.body.addEventListener(\"click\",t.ref.handleBodyClick)},destroy:function(e){var t=e.root;document.body.removeEventListener(\"click\",t.ref.handleBodyClick)},write:function(e){var t=e.root,r=e.props;if(t.ref.list.opacity=t.ref.open?1:0,t.ref.list.selectedValue=r.selectedValue,t.ref.list.options=r.options,\"up\"===r.direction){var n=t.ref.list.rect.element.height;t.ref.list.translateY=(t.ref.open?-(n+5):-n)-t.rect.element.height}else t.ref.list.translateY=t.ref.open?0:-5}}),MAGIC=312,createDiv=function(e,t){return createView({name:e,ignoreRect:!0,create:t})},cropRotatorLine=createView({name:\"crop-rotator-line\",ignoreRect:!0,ignoreRectUpdate:!0,mixins:{styles:[\"translateX\"],animations:{translateX:\"spring\"}},create:function(e){for(var t=e.root,r='',n=0;n<=180;n+=2){var i=n*(176/180)-90+2,o=n%10==0?.5:.2;if(r+=''),n%10==0)r+='').concat(-90+n,\"°\")}r+=\"\",t.element.innerHTML=r}}),cropRotator=createView({name:\"crop-rotator\",ignoreRect:!0,mixins:{styles:[\"opacity\",\"translateY\"],animations:{opacity:{type:\"spring\",damping:.5,mass:5},translateY:\"spring\"},apis:[\"rotation\",\"animate\",\"setAllowInteraction\"]},create:function(e){var t=e.root,r=e.props;t.element.setAttribute(\"tabindex\",0);var n=document.createElement(\"button\");n.innerHTML=\"\".concat(t.query(\"GET_LABEL_BUTTON_CROP_ROTATE_CENTER\"),\"\"),n.className=\"doka--crop-rotator-center\",n.addEventListener(\"click\",function(){t.dispatch(\"CROP_IMAGE_ROTATE_CENTER\")}),t.appendChild(n);var i=null;t.appendChildView(t.createChildView(createDiv(\"crop-rotator-line-mask\",function(e){var t=e.root,r=e.props;i=t.appendChildView(t.createChildView(cropRotatorLine,{translateX:Math.round(r.rotation*MAGIC)}))}),r)),t.ref.line=i;var o=document.createElement(\"div\");o.className=\"doka--crop-rotator-bar\",t.appendChild(o);var a=Math.PI/4,c=0;t.ref.dragger=createDragger(o,function(){c=i.translateX/MAGIC,t.dispatch(\"CROP_IMAGE_ROTATE_GRAB\")},function(e,r){var n=r.x/t.rect.element.width*(Math.PI/2),i=limit(c+n,-a,a);t.dispatch(\"CROP_IMAGE_ROTATE\",{value:-i})},function(){t.dispatch(\"CROP_IMAGE_ROTATE_RELEASE\")},{stopPropagation:!0}),r.setAllowInteraction=function(e){e?t.ref.dragger.enable():t.ref.dragger.disable()},t.ref.keyboard=createKeyboard(t.element,function(){c=0},{left:function(){c+=Math.PI/128,t.dispatch(\"CROP_IMAGE_ROTATE_ADJUST\",{value:c})},right:function(){c-=Math.PI/128,t.dispatch(\"CROP_IMAGE_ROTATE_ADJUST\",{value:c})}},function(){},function(){}),t.ref.prevRotation},destroy:function(e){var t=e.root;t.ref.dragger.destroy(),t.ref.keyboard.destroy()},write:function(e){var t=e.root,r=e.props,n=e.timestamp,i=r.animate,o=r.rotation;if(t.ref.prevRotation!==o){t.ref.prevRotation=o,i||0===o||(t.ref.line.translateX=null);var a=0,c=t.query(\"GET_CROP\",r.id,n);if(c&&c.interaction&&c.interaction.rotation){var l=splitRotation(c.interaction.rotation).sub-o;a=.025*Math.sign(l)*Math.log10(1+Math.abs(l)/.025)}t.ref.line.translateX=Math.round((-o-a)*MAGIC)}}}),corners=[\"nw\",\"ne\",\"se\",\"sw\"],getOppositeCorner=function(e){return corners[(corners.indexOf(e)+2)%corners.length]},edges=[\"n\",\"e\",\"s\",\"w\"],getOppositeEdge=function(e){return edges[(edges.indexOf(e)+2)%edges.length]},autoPrecision=isBrowser()&&1===window.devicePixelRatio?function(e){return Math.round(e)}:function(e){return e},line=createView({ignoreRect:!0,ignoreRectUpdate:!0,name:\"crop-rect-focal-line\",mixins:{styles:[\"translateX\",\"translateY\",\"scaleX\",\"scaleY\",\"opacity\"],animations:{translateX:\"spring\",translateY:\"spring\",scaleX:\"spring\",scaleY:\"spring\",opacity:\"spring\"}}}),createEdge=function(e){return createView({ignoreRect:!0,ignoreRectUpdate:!0,tag:\"div\",name:\"crop-rect-edge-\".concat(e),mixins:{styles:[\"translateX\",\"translateY\",\"scaleX\",\"scaleY\"],apis:[\"setAllowInteraction\"]},create:function(t){var r=t.root,n=t.props;r.element.classList.add(\"doka--crop-rect-edge\"),r.element.setAttribute(\"tabindex\",0),r.element.setAttribute(\"role\",\"button\");var i=e,o=getOppositeEdge(e);r.ref.dragger=createDragger(r.element,function(){r.dispatch(\"CROP_RECT_DRAG_GRAB\")},function(e,t){return r.dispatch(\"CROP_RECT_EDGE_DRAG\",{offset:t,origin:i,anchor:o})},function(){return r.dispatch(\"CROP_RECT_DRAG_RELEASE\")},{stopPropagation:!0,cancelOnMultiple:!0}),n.setAllowInteraction=function(e){e?r.ref.dragger.enable():r.ref.dragger.disable()},r.ref.keyboard=createKeyboard(r.element,function(){return{x:0,y:0}},{up:function(e){e.y-=20},down:function(e){e.y+=20},left:function(e){e.x-=20},right:function(e){e.x+=20}},function(e){r.dispatch(\"CROP_RECT_DRAG_GRAB\"),r.dispatch(\"CROP_RECT_EDGE_DRAG\",{offset:e,origin:i,anchor:o})},function(){r.dispatch(\"CROP_RECT_DRAG_RELEASE\")})},destroy:function(e){var t=e.root;t.ref.keyboard.destroy(),t.ref.dragger.destroy()}})},createCorner=function(e,t,r){return createView({ignoreRect:!0,ignoreRectUpdate:!0,tag:\"div\",name:\"crop-rect-corner-\".concat(e),mixins:{styles:[\"translateX\",\"translateY\",\"scaleX\",\"scaleY\"],animations:{translateX:imageOverlaySpring,translateY:imageOverlaySpring,scaleX:{type:\"spring\",delay:r},scaleY:{type:\"spring\",delay:r},opacity:{type:\"spring\",delay:t}},apis:[\"setAllowInteraction\"]},create:function(t){var r=t.root,n=t.props;r.element.classList.add(\"doka--crop-rect-corner\"),r.element.setAttribute(\"role\",\"button\"),r.element.setAttribute(\"tabindex\",-1);var i=e,o=getOppositeCorner(e);r.ref.dragger=createDragger(r.element,function(){r.dispatch(\"CROP_RECT_DRAG_GRAB\")},function(e,t){r.dispatch(\"CROP_RECT_CORNER_DRAG\",{offset:t,origin:i,anchor:o})},function(){r.dispatch(\"CROP_RECT_DRAG_RELEASE\")},{stopPropagation:!0,cancelOnMultiple:!0}),n.setAllowInteraction=function(e){e?r.ref.dragger.enable():r.ref.dragger.disable()}},destroy:function(e){e.root.ref.dragger.destroy()}})},cropRect=createView({ignoreRect:!0,ignoreRectUpdate:!0,name:\"crop-rect\",mixins:{apis:[\"rectangle\",\"draft\",\"rotating\",\"enabled\"]},create:function(e){var t=e.root;t.ref.wasRotating=!1;corners.forEach(function(e,r){var n=10*r,i=250+n+50,o=250+n;t.ref[e]=t.appendChildView(t.createChildView(createCorner(e,i,o),{opacity:0,scaleX:.5,scaleY:.5}))}),edges.forEach(function(e){t.ref[e]=t.appendChildView(t.createChildView(createEdge(e)))}),t.ref.lines=[];for(var r=0;r<10;r++)t.ref.lines.push(t.appendChildView(t.createChildView(line,{opacity:0})));t.ref.animationDir=null,t.ref.previousRotating,t.ref.previousRect={},t.ref.previousEnabled,t.ref.previousDraft},write:function(e){var t=e.root,r=e.props,n=r.rectangle,i=r.draft,o=r.rotating,a=r.enabled;if(n&&(!rectEqualsRect(n,t.ref.previousRect)||o!==t.ref.previousRotating||a!==t.ref.previousEnabled||i!==t.ref.previousDraft)){t.ref.previousRect=n,t.ref.previousRotating=o,t.ref.previousEnabled=a,t.ref.previousDraft=i;var c=t.ref,l=c.n,u=c.e,s=c.s,d=c.w,p=c.nw,f=c.ne,h=c.se,g=c.sw,m=c.lines,v=c.animationDir,y=n.x,E=n.y,T=n.x+n.width,_=n.y+n.height,R=_-E,w=T-y,A=Math.min(w,R);t.element.dataset.indicatorSize=A<80?\"none\":\"default\",edges.forEach(function(e){return t.ref[e].setAllowInteraction(a)}),corners.forEach(function(e){return t.ref[e].setAllowInteraction(a)});var I=t.query(\"IS_ACTIVE_VIEW\",\"crop\");if(I&&\"in\"!==v?(t.ref.animationDir=\"in\",corners.map(function(e){return t.ref[e]}).forEach(function(e){e.opacity=1,e.scaleX=1,e.scaleY=1})):I||\"out\"===v||(t.ref.animationDir=\"out\",corners.map(function(e){return t.ref[e]}).forEach(function(e){e.opacity=0,e.scaleX=.5,e.scaleY=.5})),transformTranslate(i,p,y,E),transformTranslate(i,f,T,E),transformTranslate(i,h,T,_),transformTranslate(i,g,y,_),transformTranslateScale(i,l,y,E,w/100,1),transformTranslateScale(i,u,T,E,1,R/100),transformTranslateScale(i,s,y,_,w/100,1),transformTranslateScale(i,d,y,E,1,R/100),o){t.ref.wasRotating=!0;var S=m.slice(0,5),C=1/S.length;S.forEach(function(e,t){transformTranslateScale(i,e,y,E+R*(C+t*C),w/100,.01),e.opacity=.5});var O=m.slice(5);C=1/O.length,O.forEach(function(e,t){transformTranslateScale(i,e,y+w*(C+t*C),E,.01,R/100),e.opacity=.5})}else if(i){t.ref.wasRotating=!1;var x=m[0],b=m[1],M=m[2],L=m[3];transformTranslateScale(i,x,y,E+.333*R,w/100,.01),transformTranslateScale(i,b,y,E+.666*R,w/100,.01),transformTranslateScale(i,M,y+.333*w,E,.01,R/100),transformTranslateScale(i,L,y+.666*w,E,.01,R/100),x.opacity=.5,b.opacity=.5,M.opacity=.5,L.opacity=.5}else{var P=m[0],G=m[1],k=m[2],D=m[3];!t.ref.wasRotating&&P.opacity>0&&(transformTranslateScale(i,P,y,E+.333*R,w/100,.01),transformTranslateScale(i,G,y,E+.666*R,w/100,.01),transformTranslateScale(i,k,y+.333*w,E,.01,R/100),transformTranslateScale(i,D,y+.666*w,E,.01,R/100)),m.forEach(function(e){return e.opacity=0})}}}}),transformTranslateScale=function(e,t,r,n,i,o){e&&(t.translateX=null,t.translateY=null,t.scaleX=null,t.scaleY=null),t.translateX=autoPrecision(r),t.translateY=autoPrecision(n),t.scaleX=i,t.scaleY=o},transformTranslate=function(e,t,r,n){e&&(t.translateX=null,t.translateY=null),t.translateX=autoPrecision(r),t.translateY=autoPrecision(n)},setInnerHTML=function(e,t){if(!/svg/.test(e.namespaceURI)||\"innerHTML\"in e)e.innerHTML=t;else{var r=document.createElement(\"div\");r.innerHTML=\"\"+t+\"\";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}},cropMask=createView({ignoreRect:!0,ignoreRectUpdate:!0,name:\"crop-mask\",tag:\"svg\",mixins:{styles:[\"opacity\",\"translateX\",\"translateY\"],animations:{scale:imageOverlaySpring,maskWidth:imageOverlaySpring,maskHeight:imageOverlaySpring,translateX:imageOverlaySpring,translateY:imageOverlaySpring,opacity:{type:\"tween\",delay:0,duration:1e3}},apis:[\"rectangle\",\"animate\",\"maskWidth\",\"maskHeight\",\"scale\"]},create:function(e){e.root.ref.writer=null},write:function(e){var t=e.root,r=t.query(\"GET_CROP_MASK\");r!==t.ref.writer&&(t.ref.writer=r,t.ref.writerFn=r?r(t.element,setInnerHTML):null,t.ref.writer||setInnerHTML(t.element,\"\"))},didWriteView:function(e){var t=e.root,r=e.props,n=r.maskWidth,i=r.maskHeight,o=r.scale;if(t.ref.writer&&n&&i&&(t.element.setAttribute(\"width\",autoPrecision(n)),t.element.setAttribute(\"height\",autoPrecision(i)),t.ref.writerFn)){var a=t.query(\"GET_CROP_MASK_INSET\");t.ref.writerFn({x:o*a,y:o*a,width:n-o*a*2,height:i-o*a*2},{width:n,height:i})}}}),updateText$1=function(e,t){var r=e.childNodes[0];r?t!==r.nodeValue&&(r.nodeValue=t):(r=document.createTextNode(t),e.appendChild(r))},sizeSpring={type:\"spring\",stiffness:.25,damping:.1,mass:1},cropSize=createView({ignoreRect:!0,name:\"crop-size\",mixins:{styles:[\"translateX\",\"translateY\",\"opacity\"],animations:{translateX:\"spring\",translateY:\"spring\",opacity:\"spring\",sizeWidth:sizeSpring,sizeHeight:sizeSpring},apis:[\"sizeWidth\",\"sizeHeight\"],listeners:!0},create:function(e){var t=e.root,r=createElement(\"span\");r.className=\"doka--crop-size-info doka--crop-resize-percentage\",t.ref.resizePercentage=r,t.appendChild(r);var n=createElement(\"span\");n.className=\"doka--crop-size-info\";var i=createElement(\"span\");i.className=\"doka--crop-size-multiply\",i.textContent=\"×\";var o=createElement(\"span\"),a=createElement(\"span\");t.ref.outputWidth=o,t.ref.outputHeight=a,n.appendChild(o),n.appendChild(i),n.appendChild(a),t.appendChild(n),t.ref.previousValues={width:0,height:0,percentage:0}},write:function(e){var t=e.root,r=e.props,n=e.timestamp;if(!(t.opacity<=0)){var i=t.query(\"GET_CROP\",r.id,n);if(i){var o=i.cropStatus,a=i.isDraft,c=t.ref,l=c.outputWidth,u=c.outputHeight,s=c.resizePercentage,d=c.previousValues,p=o.image,f=o.crop,h=o.currentWidth,g=o.currentHeight,m=p.width?Math.round(p.width/f.width*100):0;a&&(t.sizeWidth=null,t.sizeHeight=null),t.sizeWidth=h,t.sizeHeight=g;var v=Math.round(t.sizeWidth),y=Math.round(t.sizeHeight);v!==d.width&&(updateText$1(l,v),d.width=v),y!==d.height&&(updateText$1(u,y),d.height=y),m!==d.percentage&&(p.width?updateText$1(s,\"\".concat(m,\"%\")):updateText$1(s,\"\"),d.percentage=m)}}}}),wrapper=function(e,t){return createView({ignoreRect:!0,name:e,mixins:t,create:function(e){var t=e.root,r=e.props;r.className&&t.element.classList.add(r.className),r.controls.map(function(e){var r=t.createChildView(e.view,e);e.didCreateView&&e.didCreateView(r),t.appendChildView(r)})}})},warn=function(){return console.log(\"Doka: localStorage not available\")},getData=function(e){try{JSON.parse(localStorage.getItem(e)||\"{}\")}catch(e){warn()}return{}},setStoredValue=function(e,t,r){var n=getData(e);n[t]=r;try{localStorage.setItem(e,JSON.stringify(n))}catch(e){warn()}return r},getStoredValue=function(e,t,r){var n=getData(e);return void 0===n[t]?r:n[t]},canHover=function(){return window.matchMedia(\"(pointer: fine) and (hover: hover)\").matches},instructionsBubble=createView({ignoreRect:!0,ignoreRectUpdate:!0,name:\"instructions-bubble\",mixins:{styles:[\"opacity\",\"translateX\",\"translateY\"],animations:{opacity:{type:\"tween\",duration:400}},apis:[\"seen\"]},create:function(e){var t=e.root,r=e.props;return t.element.innerHTML=(r.iconBefore||\"\")+r.text},write:function(e){var t=e.root;e.props.seen&&(t.opacity=0)}}),SPRING_TRANSLATE={type:\"spring\",stiffness:.4,damping:.65,mass:7},cropSubject=createView({name:\"crop-subject\",ignoreRect:!0,mixins:{styles:[\"opacity\",\"translateX\",\"translateY\"],animations:{opacity:{type:\"tween\",duration:250},translateX:SPRING_TRANSLATE,translateY:SPRING_TRANSLATE}},create:function(e){var t=e.root,r=e.props;(t.opacity=1,t.ref.timestampOffset=null,t.query(\"GET_CROP_ALLOW_INSTRUCTION_ZOOM\")&&canHover())&&(getStoredValue(t.query(\"GET_STORAGE_NAME\"),\"instruction_zoom_shown\",!1)||(t.ref.instructions=t.appendChildView(t.createChildView(instructionsBubble,{opacity:0,seen:!1,text:t.query(\"GET_LABEL_CROP_INSTRUCTION_ZOOM\"),iconBefore:createIcon('')}))));t.ref.maskView=t.appendChildView(t.createChildView(cropMask)),t.query(\"GET_CROP_ALLOW_RESIZE_RECT\")&&(t.ref.cropView=t.appendChildView(t.createChildView(cropRect))),t.query(\"GET_CROP_SHOW_SIZE\")&&(t.ref.cropSize=t.appendChildView(t.createChildView(cropSize,{id:r.id,opacity:1,scaleX:1,scaleY:1,translateX:null}))),t.query(\"GET_CROP_ZOOM_TIMEOUT\")||(t.ref.btnZoom=t.appendChildView(t.createChildView(wrapper(\"zoom-wrapper\",{styles:[\"opacity\",\"translateX\",\"translateY\"],animations:{opacity:{type:\"tween\",duration:250}}}),{opacity:0,controls:[{view:button,label:t.query(\"GET_LABEL_BUTTON_CROP_ZOOM\"),name:\"zoom\",icon:createIcon('',26),action:function(){return t.dispatch(\"CROP_ZOOM\")}}]})))},write:createRoute({CROP_IMAGE_RESIZE_MULTIPLY:function(e){var t=e.root,r=t.ref.instructions;r&&!r.seen&&(r.seen=!0,setStoredValue(t.query(\"GET_STORAGE_NAME\"),\"instruction_zoom_shown\",!0))},CROP_RECT_DRAG_RELEASE:function(e){var t=e.root,r=e.props,n=e.timestamp,i=t.ref.btnZoom;if(i){var o=t.query(\"GET_CROP\",r.id,n).cropRect,a=o.x+.5*o.width,c=o.y+.5*o.height;i.translateX=a,i.translateY=c}}},function(e){var t=e.root,r=e.props,n=e.timestamp,i=t.ref,o=i.cropView,a=i.maskView,c=i.btnZoom,l=i.cropSize,u=i.instructions;if(!t.query(\"IS_ACTIVE_VIEW\",\"crop\")&&o)return o.enabled=!1,t.ref.timestampOffset=null,void(l&&(l.opacity=0));t.ref.timestampOffset||(t.ref.timestampOffset=n);var s=t.query(\"GET_CROP\",r.id,n);if(s){var d=s.cropRect,p=s.isRotating,f=s.isDraft,h=s.scale,g=t.query(\"GET_STAGE\");if(t.translateX=g.x-t.rect.element.left,t.translateY=g.y-t.rect.element.top,o&&(o.draft=f,o.rotating=p,o.rectangle=d,o.enabled=!0),l){l.opacity=1,f&&(l.translateX=null,l.translateY=null);var m=getCropSizeOffset(t.rect.element,l.rect.element,d);l.translateX=f?m.x:autoPrecision(m.x),l.translateY=f?m.y:autoPrecision(m.y)}if(t.query(\"GET_CROP_MASK\")&&(f&&(a.translateX=null,a.translateY=null,a.maskWidth=null,a.maskHeight=null),a.translateX=autoPrecision(d.x),a.translateY=autoPrecision(d.y),a.maskWidth=d.width,a.maskHeight=d.height,a.scale=h),s.canRecenter)u&&(u.opacity=0),c&&(c.opacity=s.isDraft?0:1);else if(c&&(c.opacity=0),u&&!u.seen&&!s.isDraft){var v=d.x+.5*d.width,y=d.y+.5*d.height;u.translateX=Math.round(v-.5*u.rect.element.width),u.translateY=Math.round(y-.5*u.rect.element.height),n-t.ref.timestampOffset>2e3&&(u.opacity=1)}}})}),getCropSizeOffset=function(e,t,r){var n=r.x,i=r.x+r.width,o=r.y+r.height,a=i-t.width-16,c=o-t.height-16;return t.width>r.width-32&&(a=n+(.5*r.width-.5*t.width),(c=o+16)>e.height-t.height&&(c=o-t.height-16)),{x:a=Math.max(0,Math.min(a,e.width-t.width)),y:c}},now=function(){return performance.now()},throttle=function(e,t){var r=null,n=null;return function(){var i=arguments;if(!n)return e.apply(null,Array.from(arguments)),void(n=now());clearTimeout(r),r=setTimeout(function(){now()-n>=t&&(e.apply(null,Array.from(i)),n=now())},t-(now()-n))}},climb=function(e,t){for(;1===e.nodeType&&!t(e);)e=e.parentNode;return 1===e.nodeType?e:null},isMyTarget=function(e,t){var r=climb(t,function(e){return e.classList.contains(\"doka--root\")});return!!r&&contains(r,e)},updateIndicators=function(e){var t=e.root,r=e.props,n=e.action.position,i=r.pivotPoint,o=t.ref,a=o.indicatorA,c=o.indicatorB,l=i.x-n.x,u=i.y-n.y,s={x:i.x+l,y:i.y+u},d={x:i.x-l,y:i.y-u};a.style.cssText=\"transform: translate3d(\".concat(s.x,\"px, \").concat(s.y,\"px, 0)\"),c.style.cssText=\"transform: translate3d(\".concat(d.x,\"px, \").concat(d.y,\"px, 0)\")},getPositionFromEvent=function(e){return{x:e.pageX,y:e.pageY}},cropResize=createView({ignoreRect:!0,ignoreRectUpdate:!0,name:\"crop-resizer\",mixins:{apis:[\"pivotPoint\",\"scrollRect\"]},create:function(e){var t=e.root,r=e.props;t.ref.isActive=!1,t.ref.isCropping=!1,t.ref.indicatorA=document.createElement(\"div\"),t.appendChild(t.ref.indicatorA),t.ref.indicatorB=document.createElement(\"div\"),t.appendChild(t.ref.indicatorB);var n=t.query(\"GET_CROP_RESIZE_KEY_CODES\");t.ref.hasEnabledResizeModifier=n.length>0;var i={origin:{x:null,y:null},position:{x:null,y:null},selecting:!1,enabled:!1,scrollY:0,offsetX:0,offsetY:0},o=now();t.ref.state=i;var a=createPointerRegistry(),c=0,l=!1;t.ref.resizeStart=function(e){if(t.ref.isActive&&(0===a.count()&&(l=!1),isMyTarget(t.element,e.target)&&(a.push(e),addEvent$1(document.documentElement,\"up\",t.ref.resizeEnd),a.multiple()))){e.stopPropagation(),e.preventDefault();var r=a.active(),n=getPositionFromEvent(r[0]),i=getPositionFromEvent(r[1]);c=vectorDistance(n,i),addEvent$1(document.documentElement,\"move\",t.ref.resizeMove),l=!0}},t.ref.resizeMove=function(e){if(t.ref.isActive&&l&&(e.preventDefault(),2===a.count())){a.update(e);var r=a.active(),n=getPositionFromEvent(r[0]),i=getPositionFromEvent(r[1]),o=(vectorDistance(n,i)-c)/c;t.dispatch(\"CROP_IMAGE_RESIZE\",{value:o})}},t.ref.resizeEnd=function(e){if(t.ref.isActive){a.pop(e);var r=0===a.count();r&&(removeEvent$1(document.documentElement,\"move\",t.ref.resizeMove),removeEvent$1(document.documentElement,\"up\",t.ref.resizeEnd)),l&&(e.preventDefault(),r&&t.dispatch(\"CROP_IMAGE_RESIZE_RELEASE\"))}},addEvent$1(document.documentElement,\"down\",t.ref.resizeStart);var u=performance.now(),s=0,d=1,p=throttle(function(e){if(!t.ref.isCropping){var r=Math.sign(e.wheelDelta||e.deltaY),n=now(),i=n-u;u=n,(i>750||s!==r)&&(d=1,s=r),d+=.05*r,t.dispatch(\"CROP_IMAGE_RESIZE_MULTIPLY\",{value:Math.max(.1,d)}),t.dispatch(\"CROP_IMAGE_RESIZE_RELEASE\")}},100);t.ref.wheel=function(e){if(t.ref.isActive&&isMyTarget(t.element,e.target)){if(r.scrollRect){var n=r.scrollRect,i=t.query(\"GET_ROOT\"),o=getPositionFromEvent(e),a={x:o.x-i.leftScroll,y:o.y-i.topScroll};if(a.xn.x+n.width||a.yn.y+n.height)return}e.preventDefault(),p(e)}},document.addEventListener(\"wheel\",t.ref.wheel,{passive:!1}),t.ref.hasEnabledResizeModifier&&(t.ref.move=function(e){if(t.ref.isActive&&!t.ref.isCropping&&(i.position.x=e.pageX-t.ref.state.offsetX,i.position.y=e.pageY-t.ref.state.scrollY-t.ref.state.offsetY,i.enabled))if(isMyTarget(t.element,e.target)){\"idle\"===t.element.dataset.state&&t.dispatch(\"RESIZER_SHOW\",{position:_objectSpread({},i.position)}),e.preventDefault(),t.dispatch(\"RESIZER_MOVE\",{position:_objectSpread({},i.position)});var n=r.pivotPoint,a=n.x-i.position.x,l=n.y-i.position.y,u={x:n.x+a,y:n.y+l},s=_objectSpread({},i.position);if(i.selecting){var d=(vectorDistance(u,s)-c)/c,p=performance.now();p-o>25&&(o=p,t.dispatch(\"CROP_IMAGE_RESIZE\",{value:d}))}}else t.dispatch(\"RESIZER_CANCEL\")},t.ref.select=function(e){if(t.ref.isActive&&isMyTarget(t.element,e.target)){var n=r.pivotPoint,o=n.x-i.position.x,a=n.y-i.position.y,l={x:n.x+o,y:n.y+a},u=i.position;c=vectorDistance(l,u),i.selecting=!0,i.origin.x=e.pageX,i.origin.y=e.pageY,t.dispatch(\"CROP_IMAGE_RESIZE_GRAB\")}},t.ref.confirm=function(e){t.ref.isActive&&isMyTarget(t.element,e.target)&&(i.selecting=!1,t.dispatch(\"CROP_IMAGE_RESIZE_RELEASE\"))},t.ref.blur=function(){t.ref.isActive&&(i.selecting=!1,i.enabled=!1,document.removeEventListener(\"mousedown\",t.ref.select),document.removeEventListener(\"mouseup\",t.ref.confirm),t.dispatch(\"RESIZER_CANCEL\"))},window.addEventListener(\"blur\",t.ref.blur),document.addEventListener(\"mousemove\",t.ref.move),t.ref.keyDown=function(e){t.ref.isActive&&n.includes(e.keyCode)&&i.position&&(i.enabled=!0,document.addEventListener(\"mousedown\",t.ref.select),document.addEventListener(\"mouseup\",t.ref.confirm),t.dispatch(\"RESIZER_SHOW\",{position:_objectSpread({},i.position)}))},t.ref.keyUp=function(e){t.ref.isActive&&n.includes(e.keyCode)&&(i.enabled=!1,document.removeEventListener(\"mousedown\",t.ref.select),document.removeEventListener(\"mouseup\",t.ref.confirm),t.dispatch(\"RESIZER_CANCEL\"))},document.body.addEventListener(\"keydown\",t.ref.keyDown),document.body.addEventListener(\"keyup\",t.ref.keyUp))},destroy:function(e){var t=e.root;document.removeEventListener(\"touchmove\",t.ref.resizeMove),document.removeEventListener(\"touchend\",t.ref.resizeEnd),document.removeEventListener(\"touchstart\",t.ref.resizeStart),document.removeEventListener(\"wheel\",t.ref.wheel),document.removeEventListener(\"mousedown\",t.ref.select),document.removeEventListener(\"mouseup\",t.ref.confirm),t.ref.hasEnabledResizeModifier&&(document.removeEventListener(\"mousemove\",t.ref.move),document.body.removeEventListener(\"keydown\",t.ref.keyDown),document.body.removeEventListener(\"keyup\",t.ref.keyUp),window.removeEventListener(\"blur\",t.ref.blur))},read:function(e){var t=e.root;t.ref.state.scrollY=window.scrollY;var r=t.element.getBoundingClientRect();t.ref.state.offsetX=r.x,t.ref.state.offsetY=r.y},write:createRoute({CROP_RECT_DRAG_GRAB:function(e){e.root.ref.isCropping=!0},CROP_RECT_DRAG_RELEASE:function(e){e.root.ref.isCropping=!1},SHOW_VIEW:function(e){var t=e.root,r=e.action;t.ref.isActive=\"crop\"===r.id},RESIZER_SHOW:function(e){var t=e.root,r=e.props,n=e.action;t.element.dataset.state=\"multi-touch\",updateIndicators({root:t,props:r,action:n})},RESIZER_CANCEL:function(e){e.root.element.dataset.state=\"idle\"},RESIZER_MOVE:updateIndicators})}),setOpacity=function(e,t){return e.style.opacity=t},updateImageBoundsIcon=function(e,t){var r=Array.from(e.element.querySelectorAll(\".doka--icon-crop-limit rect\"));r.length&&(setOpacity(r[0],t?.3:0),setOpacity(r[1],t?1:0),setOpacity(r[2],t?0:.3),setOpacity(r[3],t?0:1))},updateAspectRatioIcon=function(e,t){var r=e.element.querySelectorAll(\".doka--icon-aspect-ratio rect\");if(r.length){if(!t)return setOpacity(r[0],.2),setOpacity(r[1],.3),void setOpacity(r[2],.4);setOpacity(r[0],t>1?1:.3),setOpacity(r[1],1===t?.85:.5),setOpacity(r[2],t<1?1:.3)}},updateTurnIcons=function(e,t){Array.from(e.element.querySelectorAll(\".doka--icon-turn rect\")).forEach(function(e){t>1&&(e.setAttribute(\"x\",e.previousElementSibling?5:4),e.setAttribute(\"width\",9)),t<1&&(e.setAttribute(\"y\",11),e.setAttribute(\"height\",10))})},createRectangle=function(e){var t,r;e>1?(r=14,t=Math.round(r/e)):(t=14,r=Math.round(t*e));var n=Math.round(.5*(23-t)),i=Math.round(.5*(23-r));return'')},cropRoot=createView({name:\"crop\",ignoreRect:!0,mixins:{apis:[\"viewId\",\"stagePosition\",\"hidden\",\"offsetTop\"]},create:function(e){var t=e.root,r=e.props;r.viewId=\"crop\",r.hidden=!1,t.ref.isHiding=!1;var n=[];t.query(\"GET_CROP_ALLOW_IMAGE_TURN_LEFT\")&&n.push({view:button,name:\"tool\",label:t.query(\"GET_LABEL_BUTTON_CROP_ROTATE_LEFT\"),icon:createIcon('',26),action:function(){return t.dispatch(\"CROP_IMAGE_ROTATE_LEFT\")}}),t.query(\"GET_CROP_ALLOW_IMAGE_TURN_RIGHT\")&&n.push({view:button,name:\"tool\",label:t.query(\"GET_LABEL_BUTTON_CROP_ROTATE_RIGHT\"),icon:createIcon('',26),action:function(){return t.dispatch(\"CROP_IMAGE_ROTATE_RIGHT\")}}),t.query(\"GET_CROP_ALLOW_IMAGE_FLIP_HORIZONTAL\")&&n.push({view:button,name:\"tool\",label:t.query(\"GET_LABEL_BUTTON_CROP_FLIP_HORIZONTAL\"),icon:createIcon('',26),action:function(){return t.dispatch(\"CROP_IMAGE_FLIP_HORIZONTAL\")}}),t.query(\"GET_CROP_ALLOW_IMAGE_FLIP_VERTICAL\")&&n.push({view:button,name:\"tool\",label:t.query(\"GET_LABEL_BUTTON_CROP_FLIP_VERTICAL\"),icon:createIcon('',26),action:function(){return t.dispatch(\"CROP_IMAGE_FLIP_VERTICAL\")}});var i=t.query(\"GET_CROP_ASPECT_RATIO_OPTIONS\");i&&i.length&&n.push({view:dropdown,name:\"tool\",label:t.query(\"GET_LABEL_BUTTON_CROP_ASPECT_RATIO\"),icon:createIcon('',26),options:null,onSelect:function(e){e.width&&e.height?t.dispatch(\"RESIZE_SET_OUTPUT_SIZE\",{width:e.width,height:e.height}):(t.query(\"GET_CROP_ASPECT_RATIO_OPTIONS\").find(function(e){return e.value&&e.value.width||e.value.height})&&t.dispatch(\"RESIZE_SET_OUTPUT_SIZE\",{width:null,height:null}),t.dispatch(\"CROP_SET_ASPECT_RATIO\",{value:e.aspectRatio}))},didCreateView:function(e){t.ref.aspectRatioDropdown=e}}),t.query(\"GET_CROP_ALLOW_TOGGLE_LIMIT\")&&n.push({view:dropdown,name:\"tool\",label:t.query(\"GET_LABEL_BUTTON_CROP_TOGGLE_LIMIT\"),icon:createIcon('\\n \\n \\n \\n \\n ',26),options:[{value:!0,label:t.query(\"GET_LABEL_BUTTON_CROP_TOGGLE_LIMIT_ENABLE\"),icon:''},{value:!1,label:t.query(\"GET_LABEL_BUTTON_CROP_TOGGLE_LIMIT_DISABLE\"),icon:''}],onSelect:function(e){t.dispatch(\"CROP_SET_LIMIT\",{value:e})},didCreateView:function(e){t.ref.cropToggleLimitDropdown=e}}),t.ref.menu=t.appendChildView(t.createChildView(createGroup(\"toolbar\",[\"opacity\"],{opacity:{type:\"spring\",mass:15,delay:50}}),{opacity:0,controls:n})),t.ref.menuItemsRequiredWidth=null,t.ref.subject=t.appendChildView(t.createChildView(cropSubject,_objectSpread({},r))),t.query(\"GET_CROP_ALLOW_ROTATE\")&&(t.ref.rotator=t.appendChildView(t.createChildView(cropRotator,{rotation:0,opacity:0,translateY:20,id:r.id}))),t.ref.resizer=t.appendChildView(t.createChildView(cropResize,{pivotPoint:{x:0,y:0}})),t.ref.updateControls=function(){var e=t.query(\"GET_IMAGE\");if(updateTurnIcons(t,e.height/e.width),t.ref.cropToggleLimitDropdown&&(t.ref.isLimitedToImageBounds=t.query(\"GET_CROP_LIMIT_TO_IMAGE_BOUNDS\"),updateImageBoundsIcon(t,t.ref.isLimitedToImageBounds),t.ref.cropToggleLimitDropdown.selectedValue=t.ref.isLimitedToImageBounds),t.ref.aspectRatioDropdown){var r=t.query(\"GET_MIN_IMAGE_SIZE\"),n=i.filter(function(t){if(!t.value.aspectRatio)return!0;if(t.value.aspectRatio<1){if(e.naturalWidth*t.value.aspectRatiot.ref.menu.rect.element.width?\"compact\":\"spacious\",t.query(\"GET_CROP_RESIZE_SCROLL_RECT_ONLY\")){var y=t.query(\"GET_STAGE\"),E=y.x,T=y.y,_=t.query(\"GET_ROOT\"),R=t.ref.isModal?_.left:0,w=t.ref.isModal?_.top:0;o.scrollRect={x:R+E+h.cropRect.x,y:w+T+h.cropRect.y+r.offsetTop,width:h.cropRect.width,height:h.cropRect.height}}}}})}),sizeInput=createView({name:\"size-input\",mixins:{listeners:!0,apis:[\"id\",\"value\",\"placeholder\",\"getValue\",\"setValue\",\"setPlaceholder\",\"hasFocus\",\"onChange\"]},create:function(e){var t=e.root,r=e.props,n=r.id,i=r.min,o=r.max,a=r.value,c=r.placeholder,l=r.onChange,u=void 0===l?function(){}:l,s=r.onBlur,d=void 0===s?function(){}:s,p=\"doka--\".concat(n,\"-\").concat(getUniqueId()),f=createElement(\"input\",{type:\"number\",step:1,id:p,min:i,max:o,value:a,placeholder:c}),h=f.getAttribute(\"max\").length,g=createElement(\"label\",{for:p});g.textContent=r.label;var m=function(e,t,r){return isString(e)?((e=e.replace(/[^0-9]/g,\"\")).length>h&&(e=e.slice(0,h)),e=parseInt(e,10)):e=Math.round(e),isNaN(e)?null:limit(e,t,r)},v=function(e){return e.length?parseInt(f.value,10):null};t.ref.handleInput=function(){f.value=m(f.value,1,o),u(v(f.value))},t.ref.handleBlur=function(){f.value=m(f.value,i,o),d(v(f.value))},f.addEventListener(\"input\",t.ref.handleInput),f.addEventListener(\"blur\",t.ref.handleBlur),t.appendChild(f),t.appendChild(g),t.ref.input=f,r.hasFocus=function(){return f===document.activeElement},r.getValue=function(){return v(f.value)},r.setValue=function(e){return f.value=e?m(e,1,999999):null},r.setPlaceholder=function(e){return f.placeholder=e}},destroy:function(e){var t=e.root;t.ref.input.removeEventListener(\"input\",t.ref.handleInput),t.ref.input.removeEventListener(\"blur\",t.ref.handleBlur)}}),checkboxInput=createView({name:\"checkable\",tag:\"span\",mixins:{listeners:!0,apis:[\"id\",\"checked\",\"onChange\",\"onSetValue\",\"setValue\",\"getValue\"]},create:function(e){var t=e.root,r=e.props,n=r.id,i=r.checked,o=r.onChange,a=void 0===o?function(){}:o,c=r.onSetValue,l=void 0===c?function(){}:c,u=\"doka--\".concat(n,\"-\").concat(getUniqueId()),s=createElement(\"input\",{type:\"checkbox\",value:1,id:u});s.checked=i,t.ref.input=s;var d=createElement(\"label\",{for:u});d.innerHTML=r.label,t.appendChild(s),t.appendChild(d),t.ref.handleChange=function(){l(s.checked),a(s.checked)},s.addEventListener(\"change\",t.ref.handleChange),r.getValue=function(){return s.checked},r.setValue=function(e){s.checked=e,l(s.checked)},setTimeout(function(){l(s.checked)},0)},destroy:function(e){var t=e.root;t.ref.input.removeEventListener(\"change\",t.ref.handleChange)}}),testResult$2=null,isAndroid=function(){return null===testResult$2&&(testResult$2=/Android/i.test(navigator.userAgent)),testResult$2},resizeForm=createView({ignoreRect:!0,name:\"resize-form\",tag:\"form\",mixins:{styles:[\"opacity\"],animations:{opacity:{type:\"spring\",mass:15,delay:150}}},create:function(e){var t=e.root;t.element.setAttribute(\"novalidate\",\"novalidate\"),t.element.setAttribute(\"action\",\"#\"),t.ref.shouldBlurKeyboard=isIOS()||isAndroid();var r=t.query(\"GET_SIZE_MAX\"),n=t.query(\"GET_SIZE_MIN\"),i=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=e.axisLock,o=void 0===i?\"none\":i,a=e.enforceLimits,c=void 0!==a&&a,l=t.ref,u=l.inputImageWidth,s=l.inputImageHeight,d=l.buttonConfirm,p=t.query(\"GET_SIZE_ASPECT_RATIO_LOCK\"),f=t.query(\"GET_CROP_RECTANGLE_ASPECT_RATIO\"),h={width:u.getValue(),height:s.getValue()},g=limitSize(h,c?n:{width:1,height:1},c?r:{width:999999,height:999999},p?f:null,o);if(p)\"width\"===o?s.setValue(g.width/f):\"height\"===o?u.setValue(g.height*f):(u.setValue(g.width||g.height*f),s.setValue(g.height||g.width/f));else if(g.width&&!g.height){var m=Math.round(g.width/f),v=limitSize({width:g.width,height:m},c?n:{width:1,height:1},c?r:{width:999999,height:999999},f,o);c&&u.setValue(Math.round(v.width)),s.setPlaceholder(Math.round(v.height))}else if(g.height&&!g.width){var y=Math.round(g.height*f);u.setPlaceholder(y)}var E=t.query(\"GET_SIZE_INPUT\"),T=E.width,_=E.height,R=isNumber(T)?Math.round(T):null,w=isNumber(_)?Math.round(_):null,A=u.getValue(),I=s.getValue(),S=A!==R||I!==w;return d.opacity=S?1:0,t.dispatch(\"KICK\"),{width:u.getValue(),height:s.getValue()}},o=t;t.appendChildView(t.createChildView(createFieldGroup(\"Image size\",function(e){var t=e.root,a=t.query(\"GET_SIZE\"),c=t.appendChildView(t.createChildView(sizeInput,{id:\"image-width\",label:t.query(\"GET_LABEL_RESIZE_WIDTH\"),value:isNumber(a.width)?Math.round(a.width):null,min:n.width,max:r.width,placeholder:0,onChange:function(){return i({axisLock:\"width\"})},onBlur:function(){return i({enforceLimits:!1})}})),l=t.appendChildView(t.createChildView(checkboxInput,{id:\"aspect-ratio-lock\",label:createIcon(''),checked:t.query(\"GET_SIZE_ASPECT_RATIO_LOCK\"),onSetValue:function(e){var t=e?0:-3;l.element.querySelector(\".doka--aspect-ratio-lock-ring\").setAttribute(\"transform\",\"translate(0 \".concat(t,\")\"))},onChange:function(e){t.dispatch(\"RESIZE_SET_OUTPUT_SIZE_ASPECT_RATIO_LOCK\",{value:e}),i()}})),u=t.appendChildView(t.createChildView(sizeInput,{id:\"image-height\",label:t.query(\"GET_LABEL_RESIZE_HEIGHT\"),value:isNumber(a.height)?Math.round(a.height):null,min:n.height,max:r.height,placeholder:0,onChange:function(){return i({axisLock:\"height\"})},onBlur:function(){return i({enforceLimits:!1})}}));o.ref.aspectRatioLock=l,o.ref.inputImageWidth=c,o.ref.inputImageHeight=u}))),t.ref.buttonConfirm=t.appendChildView(t.createChildView(button,{name:\"app action-confirm icon-only\",label:t.query(\"GET_LABEL_RESIZE_APPLY_CHANGES\"),action:function(){},opacity:0,icon:createIcon(''),type:\"submit\"})),t.ref.confirmForm=function(e){var r=i({enforceLimits:!0});e.preventDefault();var n=t.ref,o=n.shouldBlurKeyboard,a=n.buttonConfirm;o&&(document.activeElement.blur(),a.element.focus()),a.opacity=0,t.dispatch(\"RESIZE_SET_OUTPUT_SIZE\",r)},t.element.addEventListener(\"submit\",t.ref.confirmForm)},destroy:function(e){var t=e.root;t.element.removeEventListener(\"submit\",t.ref.confirmForm)},write:createRoute({EDIT_RESET:function(e){var t=e.root,r=t.query(\"GET_SIZE\"),n=t.ref,i=n.inputImageWidth,o=n.inputImageHeight,a=n.aspectRatioLock,c=n.buttonConfirm;i.setValue(r.width),o.setValue(r.height),a.setValue(t.query(\"GET_SIZE_ASPECT_RATIO_LOCK\")),c.opacity=0},RESIZE_SET_OUTPUT_SIZE:function(e){var t=e.root,r=e.action,n=t.ref,i=n.inputImageWidth,o=n.inputImageHeight;i.setValue(r.width),o.setValue(r.height)},CROP_SET_ASPECT_RATIO:function(e){var t=e.root,r=e.props,n=e.action,i=e.timestamp,o=t.query(\"GET_CROP\",r.id,i);if(o){var a=o.cropStatus,c=t.ref,l=c.inputImageWidth,u=c.inputImageHeight;null!==n.value?(l.setValue(a.image.width),l.setPlaceholder(a.crop.width),u.setValue(a.image.height),u.setPlaceholder(a.crop.height)):l.getValue()&&u.getValue()&&(u.setValue(null),u.setPlaceholder(a.crop.height))}}},function(e){var t=e.root,r=e.props,n=e.timestamp,i=t.query(\"GET_CROP\",r.id,n);if(i){t.opacity;var o=i.cropStatus,a=t.ref,c=a.inputImageWidth,l=a.inputImageHeight;if(!c.hasFocus()&&!l.hasFocus()){var u=t.query(\"GET_CROP_RECTANGLE_ASPECT_RATIO\");if(null===c.getValue()&&null===l.getValue())c.setPlaceholder(o.crop.width),l.setPlaceholder(o.crop.height);else if(null===c.getValue()&&null!==o.image.height){var s=Math.round(o.image.height*u);c.setPlaceholder(s)}else if(null===l.getValue()&&null!==o.image.width){var d=Math.round(o.image.width/u);l.setPlaceholder(d)}}}})}),createFieldGroup=function(e,t){return createView({tag:\"fieldset\",create:function(r){var n=r.root,i=createElement(\"legend\");i.textContent=e,n.element.appendChild(i),t({root:n})}})},resizeRoot=createView({name:\"resize\",ignoreRect:!0,mixins:{apis:[\"viewId\",\"stagePosition\",\"hidden\"]},create:function(e){var t=e.root,r=e.props;r.viewId=\"resize\",r.hidden=!1,t.ref.isHiding=!1,t.ref.form=t.appendChildView(t.createChildView(resizeForm,{opacity:0,id:r.id}))},read:function(e){var t=e.root,r=e.props;if(!r.hidden){var n=t.rect;if(0!==n.element.width&&0!==n.element.height){var i=t.ref.form.rect;r.stagePosition={x:n.element.left,y:n.element.top+i.element.height,width:n.element.width,height:n.element.height-i.element.height}}}},shouldUpdateChildViews:function(e){var t=e.props,r=e.actions;return!t.hidden||t.hidden&&r&&r.length},write:createRoute({SHOW_VIEW:function(e){var t=e.root,r=e.action,n=e.props;r.id===n.viewId?(t.ref.isHiding=!1,t.ref.form.opacity=1):(t.ref.isHiding=!0,t.ref.form.opacity=0)}},function(e){var t=e.root,r=e.props,n=t.ref,i=n.form,o=n.isHiding,a=r.hidden;o&&0===i.opacity&&!a?r.hidden=!0:r.hidden=!1})}),rangeInput=createView({name:\"range-input\",tag:\"span\",mixins:{listeners:!0,apis:[\"onUpdate\",\"setValue\",\"getValue\",\"setAllowInteraction\"]},create:function(e){var t=e.root,r=e.props,n=r.id,i=r.min,o=r.max,a=r.step,c=r.value,l=r.onUpdate,u=void 0===l?function(){}:l,s=\"doka--\".concat(n,\"-\").concat(getUniqueId()),d=createElement(\"input\",{type:\"range\",id:s,min:i,max:o,step:a});d.value=c,t.ref.input=d;var p=createElement(\"span\");p.className=\"doka--range-input-inner\";var f=createElement(\"label\",{for:s});f.innerHTML=r.label;var h=i+.5*(o-i);t.element.dataset.centered=c===h,t.ref.handleRecenter=function(){r.setValue(h),t.ref.handleChange()};var g=createElement(\"button\",{type:\"button\"});g.textContent=\"center\",g.addEventListener(\"click\",t.ref.handleRecenter),t.ref.recenter=g,p.appendChild(d),p.appendChild(g),t.appendChild(f),t.appendChild(p),t.ref.handleChange=function(){var e=r.getValue();t.element.dataset.centered=e===h,u(e)},d.addEventListener(\"input\",t.ref.handleChange);var m=null;t.ref.dragger=createDragger(p,function(){m=d.getBoundingClientRect()},function(e){var r=(e.pageX-m.left)/m.width;d.value=i+r*(o-i),t.ref.handleChange()},function(){},{stopPropagation:!0}),r.getValue=function(){return parseFloat(d.value)},r.setValue=function(e){return d.value=e},r.setAllowInteraction=function(e){e?t.ref.dragger.enable():t.ref.dragger.disable()}},destroy:function(e){var t=e.root;t.ref.dragger.destroy(),t.ref.recenter.removeEventListener(\"click\",t.ref.handleRecenter),t.ref.input.removeEventListener(\"input\",t.ref.handleChange)}}),COLOR_TOOLS$1={brightness:{icon:createIcon('')},contrast:{icon:createIcon('')},exposure:{icon:createIcon('')},saturation:{icon:createIcon('')}},colorForm=createView({ignoreRect:!0,name:\"color-form\",tag:\"form\",mixins:{styles:[\"opacity\"],animations:{opacity:{type:\"spring\",mass:15}}},create:function(e){var t=e.root;t.element.setAttribute(\"novalidate\",\"novalidate\");var r=t.query(\"GET_COLOR_VALUES\");t.ref.tools=Object.keys(COLOR_TOOLS$1).reduce(function(e,n){var i=n,o=COLOR_TOOLS$1[n].icon,a=t.query(\"GET_LABEL_COLOR_\".concat(n.toUpperCase())),c=t.query(\"GET_COLOR_\".concat(n.toUpperCase(),\"_RANGE\")),l=r[n];return e[i]={view:t.appendChildView(t.createChildView(rangeInput,{id:i,label:\"\".concat(o,\"\").concat(a,\"\"),min:c[0],max:c[1],step:.01,value:l,onUpdate:function(e){return t.dispatch(\"COLOR_SET_COLOR_VALUE\",{key:i,value:e})}}))},e},{})},write:createRoute({COLOR_SET_VALUE:function(e){var t=e.root,r=e.action;t.ref.tools[r.key].view.setValue(r.value)},SHOW_VIEW:function(e){var t=e.root,r=e.action;Object.keys(t.ref.tools).forEach(function(e){t.ref.tools[e].view.setAllowInteraction(\"color\"===r.id)})}})}),tilePreviewWorker=null,tilePreviewWorkerTerminationTimeout=null,updateColors=function(e,t){var r=t.brightness,n=t.exposure,i=t.contrast,o=t.saturation;if(0!==r){var a=r<0,c=a?\"multiply\":\"overlay\",l=a?0:255,u=a?Math.abs(r):1-r;e.ref.imageOverlay.style.cssText=\"mix-blend-mode: \".concat(c,\"; background: rgba(\").concat(l,\",\").concat(l,\",\").concat(l,\",\").concat(u,\")\")}return e.ref.imageOverlay.style.cssText=\"background:transparent\",e.ref.image.style.cssText=\"filter: brightness(\".concat(n,\") contrast(\").concat(i,\") saturate(\").concat(o,\")\"),t},colorKeys=Object.keys(COLOR_TOOLS$1),colorEquals=function(e,t){return colorKeys.findIndex(function(r){return e[r]!==t[r]})<0},createFilterTile=function(e){return createView({ignoreRect:!0,tag:\"li\",name:\"filter-tile\",mixins:{styles:[\"opacity\",\"translateY\"],animations:{translateY:{type:\"spring\",delay:10*e},opacity:{type:\"spring\",delay:30*e}}},create:function(e){var t=e.root,r=e.props,n=\"doka--filter-\".concat(r.style,\"-\").concat(getUniqueId()),i=createElement(\"input\",{id:n,type:\"radio\",name:\"filter\"});t.appendChild(i),i.checked=r.selected,i.value=r.style,i.addEventListener(\"change\",function(){i.checked&&r.onSelect()});var o=createElement(\"label\",{for:n});o.textContent=r.label,t.appendChild(o);var a=r.imageData,c=Math.min(a.width,a.height),l=c,u=createElement(\"canvas\");u.width=c,u.height=l;var s=u.getContext(\"2d\");t.ref.image=u;var d=createElement(\"div\");t.ref.imageOverlay=d;var p={x:.5*c-.5*a.width,y:.5*l-.5*a.height},f=createElement(\"div\");f.appendChild(u),f.appendChild(d),t.appendChild(f),t.ref.imageWrapper=f,r.matrix?(tilePreviewWorker||(tilePreviewWorker=createWorker(TransformWorker)),clearTimeout(tilePreviewWorkerTerminationTimeout),tilePreviewWorker.post({transforms:[{type:\"filter\",data:r.matrix}],imageData:a},function(e){s.putImageData(e,p.x,p.y),clearTimeout(tilePreviewWorkerTerminationTimeout),tilePreviewWorkerTerminationTimeout=setTimeout(function(){tilePreviewWorker.terminate(),tilePreviewWorker=null},1e3)},[a.data.buffer]),t.ref.activeColors=updateColors(t,t.query(\"GET_COLOR_VALUES\"))):s.putImageData(a,p.x,p.y)},write:function(e){var t=e.root;if(!(t.opacity<=0)){var r=t.query(\"GET_COLOR_VALUES\"),n=t.ref.activeColors;(!n&&r||!colorEquals(n,r))&&(t.ref.activeColors=r,updateColors(t,r))}}})},cloneImageData=function(e){var t;try{t=new ImageData(e.width,e.height)}catch(r){t=document.createElement(\"canvas\").getContext(\"2d\").createImageData(e.width,e.height)}return t.data.set(new Uint8ClampedArray(e.data)),t},arrayEqual=function(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every(function(e,r){return e===t[r]})},filterList=createView({ignoreRect:!0,tag:\"ul\",name:\"filter-list\",mixins:{apis:[\"filterOpacity\",\"hidden\"]},create:function(e){var t=e.root,r=e.props;t.element.setAttribute(\"role\",\"list\"),t.ref.tiles=[];var n=t.query(\"GET_THUMB_IMAGE_DATA\"),i=t.query(\"GET_FILTERS\"),o=[];forin(i,function(e,t){o.push(_objectSpread({id:e},t))}),t.ref.activeFilter=t.query(\"GET_FILTER\"),t.ref.tiles=o.map(function(e,i){var o=e.matrix(),a=t.ref.activeFilter===e.id||arrayEqual(t.ref.activeFilter,o)||0===i;return t.appendChildView(t.createChildView(createFilterTile(i),{opacity:0,translateY:-5,id:r.id,style:e.id,label:e.label,matrix:o,imageData:cloneImageData(n),selected:a,onSelect:function(){return t.dispatch(\"FILTER_SET_FILTER\",{value:o?e.id:null})}}))})},write:function(e){var t=e.root,r=e.props;if(!r.hidden){var n=t.query(\"GET_FILTER\");if(n!==t.ref.activeFilter){t.ref.activeFilter=n;var i=t.query(\"GET_FILTERS\"),o=n?isString(n)?n:isColorMatrix(n)?Object.keys(i).find(function(e){return arrayEqual(i[e].matrix(),n)}):null:\"original\";Array.from(t.element.querySelectorAll(\"input\")).forEach(function(e){return e.checked=e.value===o})}t.query(\"IS_ACTIVE_VIEW\",\"filter\")?t.ref.tiles.forEach(function(e){e.opacity=1,e.translateY=0}):t.ref.tiles.forEach(function(e){e.opacity=0,e.translateY=-5}),r.filterOpacity=t.ref.tiles.reduce(function(e,t){return e+t.opacity},0)/t.ref.tiles.length}}}),createScroller=function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return createView({name:\"scroller doka--\".concat(e,\"-scroller\"),ignoreRect:!0,ignoreRectUpdate:!0,mixins:{styles:[\"opacity\"],animations:{opacity:{type:\"spring\"}},apis:r},create:function(e){var r,n=e.root,i=e.props;(n.ref.content=n.appendChildView(n.createChildView(t,{id:i.id})),n.element.isScrollContainer=!0,canHover())&&(n.ref.handleMouseWheel=function(e){var t=n.element.scrollLeft,r=n.ref.scrollWidth-n.rect.element.width,i=t+e.deltaX;(i<0||i>r)&&(n.element.scrollLeft=Math.min(Math.max(i,0),r),e.preventDefault())},n.element.addEventListener(\"mousewheel\",n.ref.handleMouseWheel),n.element.dataset.dragState=\"end\",n.ref.dragger=createDragger(n.ref.content.element,function(){n.element.dataset.dragState=\"start\",r=n.element.scrollLeft},function(e,t){n.element.scrollLeft=r-t.x,n.ref.scrollWidth-n.rect.element.width!=0&&vectorDistanceSquared({x:0,y:0},t)>0&&(n.element.dataset.dragState=\"dragging\")},function(){n.element.dataset.dragState=\"end\"},{stopPropagation:!0}))},destroy:function(e){var t=e.root;t.ref.handleMouseWheel&&t.element.removeEventListener(\"mousewheel\",t.ref.handleMouseWheel),t.ref.dragger&&t.ref.dragger.destroy()},read:function(e){var t=e.root;t.ref.scrollWidth=t.element.scrollWidth},write:function(e){var t=e.root,r=e.props;t.ref.content.hidden=r.hidden,r.contentOpacity=t.ref.content.contentOpacity}})},createSelectionView=function(e,t){return createView({name:e,ignoreRect:!0,mixins:{apis:[\"viewId\",\"stagePosition\",\"hidden\"]},create:function(r){var n=r.root,i=r.props;i.viewId=e,i.hidden=!1,n.ref.isHiding=!1,n.ref.content=n.appendChildView(n.createChildView(createScroller(e,t,[\"hidden\",\"contentOpacity\"]),{id:i.id}))},read:function(e){var t=e.root,r=e.props;if(t.ref.content&&!r.hidden){var n=t.rect;if(0!==n.element.width&&0!==n.element.height){var i=t.ref.content.rect,o=0===i.element.top,a=o?n.element.top+i.element.height+i.element.marginBottom:n.element.top,c=o?n.element.height-i.element.height-i.element.marginBottom:n.element.height-i.element.height-n.element.top;r.stagePosition={x:n.element.left,y:a,width:n.element.width,height:c}}}},shouldUpdateChildViews:function(e){var t=e.props,r=e.actions;return!t.hidden||t.hidden&&r&&r.length},write:createRoute({SHOW_VIEW:function(e){var t=e.root,r=e.action,n=e.props;t.ref.content&&(r.id===n.viewId?(t.ref.isHiding=!1,n.hidden=!1,t.ref.content.hidden=!1):t.ref.isHiding=!0)}},function(e){var t=e.root,r=e.props;t.ref.content.opacity=t.ref.isHiding||t.ref.content.hidden?0:1,t.ref.isHiding&&t.ref.content.contentOpacity<=0&&(t.ref.isHiding=!1,r.hidden=!0,t.ref.content.hidden=!0)})})},filterRoot=createSelectionView(\"filter\",filterList),colorRoot=createView({name:\"color\",ignoreRect:!0,mixins:{apis:[\"viewId\",\"stagePosition\",\"hidden\"]},create:function(e){var t=e.root,r=e.props;r.viewId=\"color\",r.hidden=!1,t.ref.isHiding=!1,t.ref.form=t.appendChildView(t.createChildView(colorForm,{opacity:0,id:r.id}))},read:function(e){var t=e.root,r=e.props;if(!r.hidden){var n=t.rect;if(0!==n.element.width&&0!==n.element.height){var i=t.ref.form.rect,o=i.element.height,a=0===i.element.top,c=a?n.element.top+o:n.element.top,l=a?n.element.height-o:n.element.height-o-n.element.top;r.stagePosition={x:n.element.left,y:c,width:n.element.width,height:l}}}},shouldUpdateChildViews:function(e){var t=e.props,r=e.actions;return!t.hidden||t.hidden&&r&&r.length},write:createRoute({SHOW_VIEW:function(e){var t=e.root,r=e.action,n=e.props;r.id===n.viewId?(t.ref.isHiding=!1,t.ref.form.opacity=1,n.hidden=!1):(t.ref.isHiding=!0,t.ref.form.opacity=0)}},function(e){var t=e.root,r=e.props;t.ref.isHiding&&0===t.ref.form.opacity&&(t.ref.isHiding=!1,r.hidden=!0)})}),supportsColorPicker=function(){try{var e=createElement(\"input\",{type:\"color\"}),t=\"color\"===e.type;return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?t:t&&\"number\"!=typeof e.selectionStart}catch(e){return!1}},toHSL=function(e,t,r){var n,i=Math.max(e,t,r),o=Math.min(e,t,r),a=i-o,c=0===i?0:a/i,l=i/255;switch(i){case o:n=0;break;case e:n=t-r+a*(t'.concat(e,\"\")},createShapeStyleIcon=function(e){var t=0===e?\"currentColor\":\"none\",r=e;return createSVG(''))},createLineStyleIcon=function(e){return createSVG(''))},markupTools=createView({name:\"markup-tools\",ignoreRect:!0,mixins:{apis:[\"onUpdate\"],animations:{translateY:\"spring\",opacity:\"spring\"},styles:[\"translateY\",\"opacity\"]},create:function(e){var t=e.root,r=e.props.onUpdate;t.ref.colorSelect=t.appendChildView(t.createChildView(markupColor,{onSelect:function(e){t.ref.colorSelect.selectedValue=e,r(\"color\",e)},name:\"color-select\",colors:t.query(\"GET_MARKUP_COLOR_OPTIONS\")})),t.ref.shapeStyleSelect=t.appendChildView(t.createChildView(dropdown,{onSelect:function(e){t.ref.shapeStyleSelect.selectedValue=e,r(\"shapeStyle\",e.slice(1))},name:\"tool\",label:t.query(\"GET_LABEL_MARKUP_SELECT_SHAPE_STYLE\"),direction:\"up\",options:t.query(\"GET_MARKUP_SHAPE_STYLE_OPTIONS\").map(function(e){return{value:e,label:e[0],icon:createShapeStyleIcon(e[3])}})})),t.ref.lineStyleSelect=t.appendChildView(t.createChildView(dropdown,{onSelect:function(e){t.ref.lineStyleSelect.selectedValue=e,r(\"lineStyle\",e.slice(1))},name:\"tool\",label:t.query(\"GET_LABEL_MARKUP_SELECT_LINE_STYLE\"),direction:\"up\",options:t.query(\"GET_MARKUP_LINE_STYLE_OPTIONS\").map(function(e){return{value:e,label:e[0],icon:createLineStyleIcon(e[3])}})})),t.ref.lineDecorationSelect=t.appendChildView(t.createChildView(dropdown,{onSelect:function(e){t.ref.lineDecorationSelect.selectedValue=e,r(\"lineDecoration\",e)},name:\"tool\",label:t.query(\"GET_LABEL_MARKUP_SELECT_LINE_DECORATION\"),direction:\"up\",options:t.query(\"GET_MARKUP_LINE_DECORATION_OPTIONS\").map(function(e){return{value:e[1],label:e[0]}})})),t.ref.fontFamilySelect=t.appendChildView(t.createChildView(dropdown,{onSelect:function(e){t.ref.fontFamilySelect.selectedValue=e,r(\"fontFamily\",e)},name:\"tool\",label:t.query(\"GET_LABEL_MARKUP_SELECT_FONT_FAMILY\"),direction:\"up\",options:t.query(\"GET_MARKUP_FONT_FAMILY_OPTIONS\").map(function(e){return{value:e[1],label:'').concat(e[0],\"\")}})})),t.ref.fontSizeSelect=t.appendChildView(t.createChildView(dropdown,{onSelect:function(e){t.ref.fontSizeSelect.selectedValue=e,r(\"fontSize\",e)},name:\"tool\",label:t.query(\"GET_LABEL_MARKUP_SELECT_FONT_SIZE\"),direction:\"up\",options:t.query(\"GET_MARKUP_FONT_SIZE_OPTIONS\").map(function(e){return{value:e[1],label:e[0]}})})),\"draw\"===t.query(\"GET_MARKUP_UTIL\")&&showDrawTool(t)},write:createRoute({SWITCH_MARKUP_UTIL:function(e){var t=e.root;\"draw\"===e.action.util&&showDrawTool(t)},MARKUP_SELECT:function(e){var t=e.root,r=e.action,n=t.ref,i=n.colorSelect,o=n.fontFamilySelect,a=n.fontSizeSelect,c=n.shapeStyleSelect,l=n.lineStyleSelect,u=n.lineDecorationSelect,s=r.id?t.query(\"GET_MARKUP_BY_ID\",r.id):null,d=[i,o,a,c,l,u],p=[];if(s){var f=_slicedToArray(s,2),h=f[0],g=f[1],m=Array.isArray(g.allowEdit)?g.allowEdit:!1===g.allowEdit?[]:ALL_SETTINGS,v=ALL_SETTINGS.reduce(function(e,t){return e[t]=-1!==m.indexOf(t),e},{});if(v.color=!!m.find(function(e){return/[a-z]Color/.test(e)}),\"image\"!==h&&v.color&&(i.selectedValue=getColor$2(g),p.push(i)),\"text\"===h&&(v.fontFamily&&(o.selectedValue=g.fontFamily,p.push(o)),v.fontSize&&(a.selectedValue=g.fontSize,p.push(a))),(\"rect\"===h||\"ellipse\"===h)&&v.borderStyle){var y=t.query(\"GET_MARKUP_SHAPE_STYLE_OPTIONS\").find(function(e){var t=g.borderWidth===e[1],r=g.borderStyle===e[2]||arrayEqual(g.borderStyle,e[2]);return t&&r});c.selectedValue=y,p.push(c)}if(\"line\"===h||\"path\"===h){if(v.lineWidth){var E=t.query(\"GET_MARKUP_LINE_STYLE_OPTIONS\").find(function(e){var t=g.lineWidth===e[1],r=g.lineStyle===e[2]||arrayEqual(g.lineStyle,e[2]);return t&&r});l.selectedValue=E,p.push(l)}\"line\"===h&&v.lineDecoration&&(u.selectedValue=g.lineDecoration,p.push(u))}d.forEach(function(e){e.element.dataset.active=\"false\"}),p.forEach(function(e){e.element.dataset.active=\"true\"})}},MARKUP_UPDATE:function(e){var t=e.root,r=e.action,n=r.style,i=r.value;t.ref[n+\"Select\"]&&(t.ref[n+\"Select\"].selectedValue=i)}})}),getColor$2=function(e){var t=e.fontColor,r=e.backgroundColor,n=e.lineColor,i=e.borderColor;return t||r||n||i},markupRoot=createView({name:\"markup\",ignoreRect:!0,mixins:{apis:[\"viewId\",\"stagePosition\",\"hidden\"]},create:function(e){var t=e.root,r=e.props;r.viewId=\"markup\",r.hidden=!1,t.ref.isHiding=!1;var n=[[\"select\",{label:t.query(\"GET_LABEL_MARKUP_TOOL_SELECT\"),icon:createIcon('',26)}],[\"draw\",{label:t.query(\"GET_LABEL_MARKUP_TOOL_DRAW\"),icon:createIcon('',26)}],[\"line\",{label:t.query(\"GET_LABEL_MARKUP_TOOL_LINE\"),icon:createIcon('',26)}],[\"text\",{label:t.query(\"GET_LABEL_MARKUP_TOOL_TEXT\"),icon:createIcon('',26)}],[\"rect\",{label:t.query(\"GET_LABEL_MARKUP_TOOL_RECT\"),icon:createIcon('',26)}],[\"ellipse\",{label:t.query(\"GET_LABEL_MARKUP_TOOL_ELLIPSE\"),icon:createIcon('',26)}]];t.ref.utils=createElement(\"fieldset\"),t.ref.utils.className=\"doka--markup-utils\",t.ref.utilsList=createElement(\"ul\");var i=\"markup-utils-\".concat(getUniqueId());t.ref.inputs=n.map(function(e){var r=e[0],n=e[1],o=\"doka--markup-tool-\"+getUniqueId(),a=createElement(\"li\"),c=createElement(\"input\");c.id=o,c.checked=t.query(\"GET_MARKUP_UTIL\")===r,c.setAttribute(\"type\",\"radio\"),c.setAttribute(\"name\",i),c.value=r;var l=createElement(\"label\");return l.setAttribute(\"for\",o),l.className=\"doka--button-tool\",l.innerHTML=n.icon+\"\"+n.label+\"\",l.title=n.label,a.appendChild(c),a.appendChild(l),t.ref.utilsList.appendChild(a),c}),t.ref.utils.appendChild(t.ref.utilsList),t.ref.utilsList.addEventListener(\"change\",function(e){t.dispatch(\"SET_MARKUP_UTIL\",{value:e.target.value})}),t.query(\"GET_MARKUP_ALLOW_ADD_MARKUP\")&&(t.ref.menu=t.appendChildView(t.createChildView(createGroup(\"toolbar\",[\"opacity\"],{opacity:{type:\"spring\",mass:15,delay:50}}),{opacity:0,element:t.ref.utils})));var o=t.ref.tools=t.appendChildView(t.createChildView(markupTools,{opacity:0,onUpdate:function(e,r){t.dispatch(\"MARKUP_UPDATE\",{style:e,value:r})}}));t.ref.menuItemsRequiredWidth=null,\"draw\"===t.query(\"GET_MARKUP_UTIL\")&&(o.opacity=1,o.translateY=0,o.element.dataset.active=\"true\")},read:function(e){var t=e.root,r=e.props;if(r.hidden)t.ref.menuItemsRequiredWidth=null;else{var n=t.rect;if(0!==n.element.width&&0!==n.element.height){if(t.ref.menu&&null===t.ref.menuItemsRequiredWidth){var i=t.ref.menu.rect.element.width;t.ref.menuItemsRequiredWidth=0===i?null:i}var o=t.ref.menu&&t.ref.menu.rect,a=t.ref.tools.rect.element.height,c=o?o.element.height:a,l=!o||0===o.element.top,u=l?n.element.top+c:n.element.top,s=l?n.element.height-c:n.element.height-c-n.element.top;r.stagePosition={x:n.element.left+20,y:u,width:n.element.width-40,height:s-a}}}},shouldUpdateChildViews:function(e){var t=e.props,r=e.actions;return!t.hidden||t.hidden&&r&&r.length},write:createRoute({SHOW_VIEW:function(e){var t=e.root,r=e.action,n=e.props;r.id===n.viewId?(n.hidden=!1,t.ref.isHiding=!1,t.ref.menu&&(t.ref.menu.opacity=1)):(t.ref.isHiding=!0,t.ref.menu&&(t.ref.menu.opacity=0),t.ref.tools.opacity=0,t.ref.tools.translateY=5,t.dispatch(\"SET_MARKUP_UTIL\",{value:\"select\"}))},MARKUP_SELECT:function(e){var t=e.root,r=e.action;t.ref.tools.opacity=r.id?1:0,t.ref.tools.translateY=r.id?0:5,t.ref.tools.element.dataset.active=r.id?\"true\":\"false\"},DID_SET_MARKUP_UTIL:function(e){var t=e.root,r=e.action,n=t.ref,i=n.inputs,o=n.tools;i.forEach(function(e){e.checked=e.value===r.value}),\"draw\"===r.value&&(o.opacity=1,o.translateY=0,o.element.dataset.active=\"true\")}},function(e){var t=e.root,r=e.props;t.ref.isHiding&&t.ref.menu&&0===t.ref.menu.opacity&&(t.ref.isHiding=!1,r.hidden=!0),r.hidden||(t.ref.menu.element.dataset.layout=t.ref.menuItemsRequiredWidth>t.rect.element.width?\"compact\":\"spacious\")})}),positions=[\"x\",\"y\",\"left\",\"top\",\"right\",\"bottom\"],hasNoPosition=function(e){return positions.every(function(t){return void 0===e[t]})},getRandomRange=function(){return-.5+Math.random()},isEmoji=function(e){return null!==e.match(/(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\u0023-\\u0039]\\ufe0f?\\u20e3|\\u3299|\\u3297|\\u303d|\\u3030|\\u24c2|\\ud83c[\\udd70-\\udd71]|\\ud83c[\\udd7e-\\udd7f]|\\ud83c\\udd8e|\\ud83c[\\udd91-\\udd9a]|\\ud83c[\\udde6-\\uddff]|\\ud83c[\\ude01-\\ude02]|\\ud83c\\ude1a|\\ud83c\\ude2f|\\ud83c[\\ude32-\\ude3a]|\\ud83c[\\ude50-\\ude51]|\\u203c|\\u2049|[\\u25aa-\\u25ab]|\\u25b6|\\u25c0|[\\u25fb-\\u25fe]|\\u00a9|\\u00ae|\\u2122|\\u2139|\\ud83c\\udc04|[\\u2600-\\u26FF]|\\u2b05|\\u2b06|\\u2b07|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u231a|\\u231b|\\u2328|\\u23cf|[\\u23e9-\\u23f3]|[\\u23f8-\\u23fa]|\\ud83c\\udccf|\\u2934|\\u2935|[\\u2190-\\u21ff])/g)},stickerList=createView({ignoreRect:!0,tag:\"ul\",name:\"sticker-list\",create:function(e){var t=e.root;t.element.setAttribute(\"role\",\"list\");var r=function(e,r){var n=e.markup;\"string\"==typeof e||Array.isArray(e)?n=e:e.markup||(n=e.sticker),Array.isArray(e.sticker)&&(n=[n[0],_objectSpread({},e.sticker[1],n[1])]);var i,o,a=\"string\"==typeof n,c=a&&isEmoji(n),l=a&&!c,u=0,s=0,d=t.query(\"GET_CROP_RECTANGLE_ASPECT_RATIO\");if(l)i=\"image\",u=.5*-(o={src:n,width:.5,height:.5*d,fit:\"contain\"}).width,s=.5*-o.height;else{if(c?(i=\"text\",o={text:n}):(i=n[0],o=_objectSpread({},n[1])),\"text\"===i){o.fontColor=o.fontColor||\"#000000\",o.fontSize=o.fontSize||.125,o.allowInput=void 0!==o.allowInput&&o.allowInput,o.allowEdit=void 0!==o.allowEdit&&o.allowEdit;var p=c?.75*o.fontSize:.35*o.fontSize*o.text.length;u=-.5*p,s=.5*(c?p*d*.5:.5*o.fontSize)}\"string\"==typeof o.width||\"string\"==typeof o.height||\"rect\"!==i&&\"ellipse\"!==i&&\"line\"!==i&&\"image\"!==i||(o.height=o.height*d,u=.5*-o.width,s=.5*-o.height)}r&&(o.x=r.x+u,o.y=r.y+s),hasNoPosition(o)&&(o.x=.5+.5*getRandomRange()+u,o.y=.5+.5*getRandomRange()+s),t.dispatch(\"MARKUP_ADD\",[i,o])};t.element.addEventListener(\"pointerdown\",function(e){var n=e.target.dataset.index||\"\";if(n.length){var i=t.query(\"GET_STICKERS\")[n];if(i){var o={x:e.pageX,y:e.pageY},a=Date.now();document.documentElement.addEventListener(\"pointerup\",function e(n){document.documentElement.removeEventListener(\"pointerup\",e);var c={x:n.pageX,y:n.pageY},l=vectorDistanceSquared(o,c),u=Date.now()-a;if(l<10&&u<300)r(i);else{var s=t.query(\"GET_ROOT\"),d=t.query(\"GET_STAGE\"),p=t.query(\"GET_CROP_RECT\"),f=void 0!==n.offsetX?n.offsetX:n.pageX-s.x-d.x-window.pageXOffset,h=void 0!==n.offsetY?n.offsetY:n.pageY-s.y-d.y-window.pageYOffset,g=d.x+p.x,m=d.y+p.y,v=(f-g)/p.width,y=(h-m)/p.height;v<0||v>1||y<0||y>1||r(i,{x:v,y:y})}})}}});var n=function(){var e=t.query(\"GET_STICKERS\");t.element.innerHTML=\"\",e.forEach(function(e,r){var n,i;\"string\"==typeof e||Array.isArray(e)?(n=\"\",i=e):(n=e.alt||\"\",i=e.sticker);var o,a=createElement(\"button\"),c=\"string\"==typeof i,l=c&&isEmoji(i);if(c&&!l)(o=new Image).src=i;else{var u,s;o=createElement(\"svg\",{viewBox:\"0 0 100 100\",xmlns:\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}),l?(u=\"text\",s={text:i}):(u=i[0],s=_objectSpread({},i[1])),\"text\"===u&&(s.fontColor=s.fontColor||\"#000000\",s.fontSize=s.fontSize||.3125);var d=createMarkupByType(u,s);updateMarkupByType(d,u,s,{width:200,height:200}),d.removeAttribute(\"id\");var p=\"text\"===u?6:0;\"ellipse\"===u?(d.setAttribute(\"cx\",\"50\"),d.setAttribute(\"cy\",\"50\")):(d.setAttribute(\"x\",50-.5*d.getAttribute(\"width\")),d.setAttribute(\"y\",50-.5*d.getAttribute(\"height\"))),\"text\"===u&&(d.setAttribute(\"x\",\"50\"),d.setAttribute(\"y\",50+p),d.setAttribute(\"text-anchor\",\"middle\"),d.setAttribute(\"dominant-baseline\",\"middle\")),o.appendChild(d)}n&&(a.innerHTML=\"\".concat(n,\"\")),a.appendChild(o),a.dataset.index=r,a.setAttribute(\"type\",\"button\"),a.className=\"doka--button doka--button-tool\";var f=t.query(\"GET_AFTER_UPDATE_STICKER_ITEM\");f&&f(a,{index:r,sticker:e});var h=createElement(\"li\");h.appendChild(a),t.element.appendChild(h)})};t.ref.updateStickers=n,n()},write:createRoute({DID_SET_STICKERS:function(e){var t=e.root;e.action,e.props;t.ref.updateStickers()}})}),stickerRoot=createSelectionView(\"sticker\",stickerList),hasStagePositionChanged=function(e,t){return!e||!t||!rectEqualsRect(e,t)},VIEW_MAP={crop:cropRoot,resize:resizeRoot,filter:filterRoot,color:colorRoot,markup:markupRoot,sticker:stickerRoot},viewStack=createView({name:\"view-stack\",ignoreRect:!0,mixins:{apis:[\"offsetTop\"]},create:function(e){var t=e.root;t.ref.activeView=null,t.ref.activeStagePosition=null,t.ref.shouldFocus=!1},write:createRoute({SHOW_VIEW:function(e){var t=e.root,r=e.props,n=e.action,i=0===t.childViews.length,o=t.childViews.find(function(e){return e.viewId===n.id});o||(o=t.appendChildView(t.createChildView(VIEW_MAP[n.id],_objectSpread({},r)))),t.ref.activeView=o,t.childViews.map(function(e){return e.element}).forEach(function(e){e.dataset.viewActive=\"false\",e.removeAttribute(\"tabindex\"),isIE()&&(e.style.transform=\"\")});var a=t.ref.activeView.element;a.dataset.viewActive=\"true\",a.setAttribute(\"tabindex\",-1),isIE()&&setTimeout(function(){a.style.transform=\"translateZ(0)\"},32),t.ref.shouldFocus=!i},DID_PRESENT_IMAGE:function(e){var t=e.root;t.dispatch(\"CHANGE_VIEW\",{id:t.query(\"GET_UTIL\")||t.query(\"GET_UTILS\")[0]})},DID_SET_UTILS:function(e){var t=e.root;t.dispatch(\"CHANGE_VIEW\",{id:t.query(\"GET_UTIL\")||t.query(\"GET_UTILS\")[0]})}},function(e){var t=e.root,r=e.props,n=t.ref,i=n.activeView,o=n.previousStagePosition;if(i&&i.stagePosition&&(t.childViews.forEach(function(e){e.offsetTop=r.offsetTop,e.element.viewHidden!==e.hidden&&(e.element.viewHidden=e.hidden,e.element.dataset.viewHidden=e.hidden)}),hasStagePositionChanged(i.stagePosition,o))){var a=i.stagePosition,c=a.x,l=a.y,u=a.width,s=a.height;if(0===u&&0===s)return;t.dispatch(\"DID_RESIZE_STAGE\",{offset:{x:c,y:l},size:{width:u,height:s},animate:!0}),t.ref.previousStagePosition=i.stagePosition}}),didWriteView:function(e){var t=e.root;t.ref.shouldFocus&&(t.ref.activeView.element.focus({preventScroll:!0}),t.ref.shouldFocus=!1)}}),editContent=createView({name:\"content\",ignoreRect:!0,mixins:{styles:[\"opacity\"],animations:{opacity:{type:\"tween\",duration:250}}},create:function(e){var t=e.root,r=e.props;t.opacity=1,t.ref.viewStack=t.appendChildView(t.createChildView(viewStack,{id:r.id})),t.ref.image=null},write:createRoute({DID_LOAD_IMAGE:function(e){var t=e.root,r=e.props;t.ref.image=t.appendChildView(t.createChildView(image,{id:r.id}))}},function(e){var t=e.root,r=t.ref,n=r.image,i=r.viewStack;if(n){var o=t.rect.element.top;i.offsetTop=o,n.offsetTop=o}})}),updateResizeButton=function(e,t){e.element.dataset.scaleDirection=null===t||t>1?\"up\":\"down\"},editUtils=createView({name:\"utils\",create:function(e){var t=e.root,r={crop:{title:t.query(\"GET_LABEL_BUTTON_UTIL_CROP\"),icon:createIcon('')},filter:{title:t.query(\"GET_LABEL_BUTTON_UTIL_FILTER\"),icon:createIcon('')},color:{title:t.query(\"GET_LABEL_BUTTON_UTIL_COLOR\"),icon:createIcon('')},markup:{title:t.query(\"GET_LABEL_BUTTON_UTIL_MARKUP\"),icon:createIcon('')},sticker:{title:t.query(\"GET_LABEL_BUTTON_UTIL_STICKER\"),icon:createIcon('')},resize:{title:t.query(\"GET_LABEL_BUTTON_UTIL_RESIZE\"),icon:createIcon('')}};t.ref.utils=Object.keys(r).map(function(e){return _objectSpread({id:e},r[e])}),t.ref.utilMenuRequiredWidth=null},read:function(e){var t=e.root;if(null===t.ref.utilMenuRequiredWidth){var r=t.childViews.reduce(function(e,t){return e+t.rect.outer.width},0);t.ref.utilMenuRequiredWidth=0===r?null:r}},write:createRoute({DID_SET_UTILS:function(e){var t=e.root,r=_toConsumableArray(t.query(\"GET_UTILS\"));t.childViews.forEach(function(e){return t.removeChildView(e)}),t.element.dataset.utilCount=r.length,1===r.length&&(r.length=0),r.forEach(function(e){var r=t.ref.utils.find(function(t){return t.id===e}),n=t.appendChildView(t.createChildView(button,{name:\"tab\",view:button,label:r.title,opacity:1,icon:r.icon,id:r.id,action:function(){return t.dispatch(\"CHANGE_VIEW\",{id:r.id})}}));t.ref[\"util_button_\".concat(r.id)]=n})},SHOW_VIEW:function(e){var t=e.root,r=e.action;t.childViews.forEach(function(e){e.element.dataset.active=e.id===r.id})}},function(e){var t=e.root,r=e.props,n=e.timestamp,i=t.query(\"GET_CROP\",r.id,n);if(i){var o=i.cropStatus;t.ref.util_button_resize&&updateResizeButton(t.ref.util_button_resize,o.image.width?o.image.width/o.crop.width:null),t.element.dataset.layout=t.ref.utilMenuRequiredWidth>t.rect.element.width?\"compact\":\"spacious\"}})}),HAS_WEBGL=isBrowser()&&function(){try{var e={antialias:!1,alpha:!1},t=document.createElement(\"canvas\");return!!window.WebGLRenderingContext&&(t.getContext(\"webgl\",e)||t.getContext(\"experimental-webgl\",e))}catch(e){return!1}}(),hasWebGL=function(){return HAS_WEBGL},editContainer=createView({name:\"container\",create:function(e){var t=e.root,r=[];t.query(\"GET_ALLOW_BUTTON_RESET\")&&r.push({view:button,opacity:0,label:t.query(\"GET_LABEL_BUTTON_RESET\"),didCreateView:function(e){return t.ref.btnReset=e},name:\"app action-reset icon-only\",icon:createIcon('',26),action:function(){var e=t.query(\"GET_BEFORE_RESET\"),r=!e||e();Promise.resolve(r).then(function(e){e&&t.dispatch(\"EDIT_RESET\")})}}),t.query(\"GET_ALLOW_BUTTON_CANCEL\")&&r.unshift({view:button,label:t.query(\"GET_LABEL_BUTTON_CANCEL\"),name:\"app action-cancel icon-fallback\",opacity:1,icon:createIcon(''),didCreateView:function(e){t.ref.btnCancel=e},action:function(){t.dispatch(\"EDIT_CANCEL\")}}),r.push({view:editUtils}),t.query(\"GET_ALLOW_BUTTON_CONFIRM\")&&r.push({view:button,label:t.query(\"GET_LABEL_BUTTON_CONFIRM\"),name:\"app action-confirm icon-fallback\",opacity:1,icon:createIcon(''),didCreateView:function(e){t.ref.btnConfirm=e},action:function(){t.dispatch(\"EDIT_CONFIRM\")}}),t.ref.menu=t.appendChildView(t.createChildView(createGroup(\"menu\"),{controls:r})),t.ref.menu.opacity=0,t.ref.status=t.appendChildView(t.createChildView(editStatus)),t.ref.hasWebGL=hasWebGL(),t.ref.hasWebGL?t.dispatch(\"AWAIT_IMAGE\"):t.dispatch(\"MISSING_WEBGL\"),t.ref.handleFocusOut=function(e){if(e.relatedTarget&&contains(t.element,e.relatedTarget)){var r=t.ref.status;\"busy\"===r.element.dataset.viewStatus&&r.element.focus()}},t.ref.handleFocusIn=function(e){var r=t.ref,n=r.menu,i=r.content,o=e.target;if(!contains(n.element,o)&&i&&contains(i.element,o)){if(!Array.from(t.element.querySelectorAll(\"[data-view-active=false]\")).reduce(function(e,t){return contains(t,o)&&(e=!0),e},!1))return;n.element.querySelector(\"button,input,[tabindex]\").focus()}},t.element.addEventListener(\"focusin\",t.ref.handleFocusIn),t.element.addEventListener(\"focusout\",t.ref.handleFocusOut),t.ref.previousState=null},destroy:function(e){var t=e.root;t.element.removeEventListener(\"focusin\",t.ref.handleFocusIn),t.element.removeEventListener(\"focusout\",t.ref.handleFocusOut)},write:createRoute({UNLOAD_IMAGE:function(e){var t=e.root;t.ref.content&&(t.ref.content.opacity=0,t.ref.menu.opacity=0)},DID_UNLOAD_IMAGE:function(e){var t=e.root;t.removeChildView(t.ref.content),t.ref.content=null},DID_LOAD_IMAGE:function(e){var t=e.root,r=e.props;t.ref.hasWebGL&&(t.ref.content=t.appendChildView(t.createChildView(editContent,{opacity:null,id:r.id})),t.ref.menu.opacity=1)},SHOW_VIEW:function(e){var t=e.root,r=e.action;t.element.dataset.limitOverflow=\"resize\"===r.id}},function(e){var t=e.root,r=e.props,n=e.timestamp,i=t.query(\"GET_CROP\",r.id,n);if(i){var o=i.cropStatus,a=o.props,c={crop:{center:{x:roundFloat(a.center.x,5),y:roundFloat(a.center.y,5)},rotation:roundFloat(a.rotation,5),zoom:roundFloat(a.zoom,5),aspectRatio:roundFloat(a.aspectRatio,5),flip:{horizontal:a.flip.horizontal,vertical:a.flip.vertical},scaleToFit:a.scaleToFit,width:o.currentWidth,height:o.currentHeight},preview:{scale:i.scale/Math.max(i.cropRect.width/i.previewSize.width,i.cropRect.height/i.previewSize.height)}};hasStateChanged(t.ref.previousState,c)&&(t.dispatch(\"DID_UPDATE\",{state:_objectSpread({},c)}),t.ref.previousState=c);var l=t.ref,u=l.btnReset,s=l.btnCancel,d=l.content,p=i.canReset;if(u&&(u.opacity=p?1:0),s&&u){var f=t.query(\"GET_ROOT_SIZE\");s.opacity=p&&f.width<=600?0:1}d&&0===d.opacity&&t.dispatch(\"DID_UNLOAD_IMAGE\")}})}),hasStateChanged=function(e,t){if(!e)return!0;var r=e.crop,n=t.crop;return r.width!==n.width||r.height!==n.height||r.center.x!==n.center.x||r.center.y!==n.center.y||r.rotation!==n.rotation||r.scaleToFit!==n.scaleToFit||r.zoom!==n.zoom||r.aspectRatio!==n.aspectRatio||r.flip.horizontal!==n.flip.horizontal||r.flip.vertical!==n.flip.vertical},createPointerEvents=function(e){var t={destroy:function(){}};if(\"onpointerdown\"in window||e.pointersPolyfilled)return t;e.pointersPolyfilled=!0;var r=0,n=[],i=function(e,t,r){var n=new UIEvent(t.type,{view:window,bubbles:!r});Object.keys(t).forEach(function(e){Object.defineProperty(n,e,{value:t[e],writable:!1})}),e.dispatchEvent(n)},o=function(e,t,o){return Array.from(t.changedTouches).map(function(a){var c=n[a.identifier],l={type:e,pageX:a.pageX,pageY:a.pageY,pointerId:a.identifier,isPrimary:c?c.isPrimary:0===r,preventDefault:function(){return t.preventDefault()}};return i(a.target,l,o),l})},a=function(e){o(\"pointerdown\",e).forEach(function(e){n[e.pointerId]=e,r++})},c=function(e){o(\"pointermove\",e)},l=function(e){o(\"pointerup\",e).forEach(function(e){delete n[e.pointerId],r--})},u=function(e,t,r){var n={type:e,pageX:t.pageX,pageY:t.pageY,pointerId:0,isPrimary:!0,preventDefault:function(){return t.preventDefault()}};return i(t.target,n,r),n},s=function(e){u(\"pointerdown\",e)},d=function(e){u(\"pointermove\",e)},p=function(e){u(\"pointerup\",e)};return\"ontouchstart\"in window?(e.addEventListener(\"touchstart\",a),e.addEventListener(\"touchmove\",c),e.addEventListener(\"touchend\",l)):\"onmousedown\"in window&&(e.addEventListener(\"mousedown\",s),e.addEventListener(\"mousemove\",d),e.addEventListener(\"mouseup\",p)),t.destroy=function(){n.length=0,e.pointersPolyfilled=!1,e.removeEventListener(\"touchstart\",a),e.removeEventListener(\"touchmove\",c),e.removeEventListener(\"touchend\",l),e.removeEventListener(\"mousedown\",s),e.removeEventListener(\"mousemove\",d),e.removeEventListener(\"mouseup\",p)},t},prevent=function(e){\"gesturestart\"!==e.type?climb(e.target,function(e){return e.isScrollContainer})||e.preventDefault():e.preventDefault()},editor=createView({name:\"editor\",ignoreRect:!0,mixins:{styles:[\"opacity\"],animations:{opacity:{type:\"tween\",duration:350}},apis:[\"markedForRemoval\"]},create:function(e){var t=e.root,r=e.props;r.markedForRemoval=!1,isIOS()&&(t.element.addEventListener(\"touchmove\",prevent,{passive:!1}),t.element.addEventListener(\"gesturestart\",prevent)),t.ref.pointerPolyfill=createPointerEvents(\"root\"===t.query(\"GET_POINTER_EVENTS_POLYFILL_SCOPE\")?t.element:document.documentElement),t.appendChildView(t.createChildView(editContainer,_objectSpread({},r)))},destroy:function(e){var t=e.root;t.ref.pointerPolyfill.destroy(),t.element.removeEventListener(\"touchmove\",prevent,!0),t.element.removeEventListener(\"gesturestart\",prevent)}}),createTouchDetector=function(){function e(){t.fire(\"touch-detected\"),window.removeEventListener(\"touchstart\",e,!1)}var t=_objectSpread({},on(),{destroy:function(){window.removeEventListener(\"touchstart\",e,!1)}});return window.addEventListener(\"touchstart\",e,!1),t},createFileCatcher=function(e){var t,r={browseEnabled:!1},n=function(){t.files.length&&i.fire(\"drop\",Array.from(t.files))},i=_objectSpread({},on(),{enableBrowse:function(){r.browseEnabled||((t=document.createElement(\"input\")).style.display=\"none\",t.setAttribute(\"type\",\"file\"),t.addEventListener(\"change\",n),e.appendChild(t),e.addEventListener(\"click\",o),r.browseEnabled=!0)},disableBrowse:function(){r.browseEnabled&&(t.removeEventListener(\"change\",n),t.parentNode.removeChild(t),e.removeEventListener(\"click\",o),r.browseEnabled=!1)},destroy:function(){e.removeEventListener(\"dragover\",a),e.removeEventListener(\"drop\",c),e.removeEventListener(\"click\",o),t&&t.removeEventListener(\"change\",n)}}),o=function(){return t.click()},a=function(e){return e.preventDefault()},c=function(e){e.preventDefault();var t=Array.from(e.dataTransfer.items||e.dataTransfer.files).map(function(e){return e.getAsFile&&\"file\"===e.kind?e.getAsFile():e});i.fire(\"drop\",t)};return e.addEventListener(\"dragover\",a),e.addEventListener(\"drop\",c),i},createFocusTrap=function(e){var t=function(t){if(9===t.keyCode){var r=Array.from(e.querySelectorAll(\"button,input,[tabindex]\")).filter(function(e){return\"hidden\"!==e.style.visibility&&-1!==e.tabIndex}),n=r[0],i=r[r.length-1];t.shiftKey?document.activeElement===n&&(i.focus(),t.preventDefault()):document.activeElement===i&&(n.focus(),t.preventDefault())}};return e.addEventListener(\"keydown\",t),{destroy:function(){e.removeEventListener(\"keydown\",t)}}},isFullscreen=function(e){return e.ref.isFullscreen},shouldBeFullscreen=function(e){return/fullscreen/.test(e.query(\"GET_STYLE_LAYOUT_MODE\"))},isFloating=function(e){return/fullscreen|preview/.test(e.query(\"GET_STYLE_LAYOUT_MODE\"))},isModal=function(e){return/modal/.test(e.query(\"GET_STYLE_LAYOUT_MODE\"))},mayBeAutoClosed=function(e){return e.query(\"GET_ALLOW_AUTO_CLOSE\")},canBeAutoClosed=isFloating,canBeClosed=isFloating,updateStyleViewport=function(e){var t=e.ref,r=t.environment,n=t.isSingleUtil,i=t.canBeControlled;e.element.dataset.styleViewport=getViewportBySize(e.rect.element.width,e.rect.element.height)+\" \"+r.join(\" \")+(n?\" single-util\":\" multi-util\")+(i?\" flow-controls\":\" no-flow-controls\")},preventNavSwipe=function(e){var t=e.touches?e.touches[0]:e;t.pageX>10&&t.pageX0&&document.body.classList.add(\"doka--parent\"),document.body.appendChild(t);var o=document.querySelector(\"meta[name=viewport]\");e.ref.defaultViewportContent=o?o.getAttribute(\"content\"):null,o||((o=document.createElement(\"meta\")).setAttribute(\"name\",\"viewport\"),document.head.appendChild(o)),o.setAttribute(\"content\",\"width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=0\"),e.opacity=1,contains(e.element,document.activeElement)||t.focus(),e.dispatch(\"INVALIDATE_VIEWPORT\"),e.ref.isFullscreen=!0},cleanFullscreenMode=function(e){var t=e.element,r=e.ref,n=r.handleFullscreenUpdate,i=r.focusTrap,o=r.handleEscapeKey;t.removeAttribute(\"tabindex\"),i.destroy(),t.removeEventListener(\"keydown\",o),isIOS()&&t.removeEventListener(\"touchstart\",preventNavSwipe),window.removeEventListener(\"resize\",n),document.body.classList.remove(\"doka--parent\");var a=document.querySelector(\"meta[name=viewport]\");e.ref.defaultViewportContent?(a.setAttribute(\"content\",e.ref.defaultViewportContent),e.ref.defaultViewportContent=null):a.parentNode.removeChild(a),e.ref.isFullscreen=!1},root=createView({name:\"root\",ignoreRect:!0,mixins:{styles:[\"opacity\"],animations:{opacity:{type:\"tween\",duration:350}}},create:function(e){var t=e.root,r=e.props;t.element.id=t.query(\"GET_ID\")||\"doka-\".concat(r.id);var n=t.query(\"GET_CLASS_NAME\");n&&t.element.classList.add(n),t.ref.environment=[],t.ref.shouldBeDestroyed=!1,t.ref.isClosing=!1,t.ref.isClosed=!1,t.ref.isFullscreen=!1,t.query(\"GET_ALLOW_DROP_FILES\")&&(t.ref.catcher=createFileCatcher(t.element),t.ref.catcher.on(\"drop\",function(e){e.forEach(function(e){t.dispatch(\"REQUEST_LOAD_IMAGE\",{source:e})})})),t.ref.touchDetector=createTouchDetector(),t.ref.touchDetector.onOnce(\"touch-detected\",function(){t.ref.environment.push(\"touch\")}),t.ref.editor=t.appendChildView(t.createChildView(editor,{id:r.id})),t.query(\"GET_STYLES\").filter(function(e){return!isEmpty(e.value)}).map(function(e){var r=e.name,n=e.value;t.element.dataset[r]=n}),t.ref.updateViewport=function(){t.dispatch(\"INVALIDATE_VIEWPORT\")},window.addEventListener(\"resize\",t.ref.updateViewport),window.addEventListener(\"scroll\",t.ref.updateViewport),t.ref.isSingleUtil=1===t.query(\"GET_UTILS\").length,t.ref.canBeControlled=t.query(\"GET_ALLOW_BUTTON_CONFIRM\")||t.query(\"GET_ALLOW_BUTTON_CANCEL\"),updateStyleViewport(t);var i=document.createElement(\"div\");i.style.cssText=\"position:fixed;height:100vh;top:0;\",t.ref.measure=i,document.body.appendChild(i),t.ref.handleEscapeKey=function(e){27===e.keyCode&&t.dispatch(\"EDIT_CANCEL\")},t.ref.initialScreenMeasureHeight=null,t.ref.handleFullscreenUpdate=function(){t.element.dataset.styleFullscreen=window.innerHeight===t.ref.initialScreenMeasureHeight},t.ref.clientRect={left:0,top:0},isModal(t)&&(t.ref.handleModalTap=function(e){e.target===t.element&&t.dispatch(\"EDIT_CANCEL\")},t.element.addEventListener(\"pointerdown\",t.ref.handleModalTap))},read:function(e){var t=e.root,r=t.ref.measure;r&&(t.ref.initialScreenMeasureHeight=r.offsetHeight,r.parentNode.removeChild(r),t.ref.measure=null),t.ref.clientRect=t.element.getBoundingClientRect(),t.ref.clientRect.leftScroll=t.ref.clientRect.left+(window.scrollX||window.pageXOffset),t.ref.clientRect.topScroll=t.ref.clientRect.top+(window.scrollY||window.pageYOffset)},write:createRoute({ENTER_FULLSCREEN:function(e){var t=e.root;setupFullscreenMode(t)},EXIT_FULLSCREEN:function(e){var t=e.root;cleanFullscreenMode(t)},SHOW_VIEW:function(e){var t=e.root,r=e.action;t.element.dataset.view=r.id},DID_SET_STYLE_LAYOUT_MODE:function(e){var t=e.root,r=e.action;t.element.dataset.styleLayoutMode=r.value||\"none\",/fullscreen/.test(r.value)&&!/fullscreen/.test(r.prevValue)&&t.dispatch(\"ENTER_FULLSCREEN\")},AWAITING_IMAGE:function(e){var t=e.root;t.ref.catcher&&t.query(\"GET_ALLOW_BROWSE_FILES\")&&t.ref.catcher.enableBrowse()},DID_REQUEST_LOAD_IMAGE:function(e){var t=e.root;if(t.ref.catcher&&t.query(\"GET_ALLOW_BROWSE_FILES\")&&t.ref.catcher.disableBrowse(),0===t.opacity&&(t.opacity=1),t.ref.isClosing=!1,t.ref.isClosed=!1,!shouldBeFullscreen(t)||isFullscreen(t)){var r=t.query(\"GET_STYLE_LAYOUT_MODE\");null!==r&&\"modal\"!==r||t.element.parentNode||t.dispatch(\"SET_STYLE_LAYOUT_MODE\",{value:(\"fullscreen \"+(r||\"\")).trim()})}else t.dispatch(\"ENTER_FULLSCREEN\")},DID_CANCEL:function(e){var t=e.root;canBeAutoClosed(t)&&mayBeAutoClosed(t)&&t.dispatch(\"EDIT_CLOSE\")},DID_CONFIRM:function(e){var t=e.root;canBeAutoClosed(t)&&mayBeAutoClosed(t)&&t.dispatch(\"EDIT_CLOSE\")},EDIT_CLOSE:function(e){var t=e.root;canBeClosed(t)&&(t.opacity=t.opacity||1,t.opacity=0,t.ref.isClosed=!1,t.ref.isClosing=!0,t.query(\"GET_ALLOW_AUTO_DESTROY\")&&(t.ref.shouldBeDestroyed=!0),isFullscreen(t)&&t.dispatch(\"EXIT_FULLSCREEN\"))},DID_SET_UTILS:function(e){var t=e.root;t.ref.isSingleUtil=1===t.query(\"GET_UTILS\").length}},function(e){var t=e.root;updateStyleViewport(t);var r=t.query(\"GET_ROOT\"),n=t.rect.element;r.width===n.width&&r.height===n.height&&r.y===t.ref.clientRect.top&&r.topScroll===t.ref.clientRect.topScroll||t.dispatch(\"UPDATE_ROOT_RECT\",{rect:{x:t.ref.clientRect.left,y:t.ref.clientRect.top,left:t.ref.editor.rect.element.left,top:t.ref.editor.rect.element.top,leftScroll:t.ref.clientRect.leftScroll,topScroll:t.ref.clientRect.topScroll,width:t.rect.element.width,height:t.rect.element.height}})}),didWriteView:function(e){var t=e.root,r=t.ref,n=r.isClosed,i=r.isClosing,o=r.shouldBeDestroyed;!n&&i&&0===t.opacity&&(t.dispatch(\"DID_CLOSE\"),t.ref.isClosed=!0,t.ref.isClosing=!1,shouldBeFullscreen(t)&&t.element.parentNode&&document.body.removeChild(t.element),o&&t.dispatch(\"EDIT_DESTROY\"))},destroy:function(e){var t=e.root;isFullscreen(t)&&cleanFullscreenMode(t),isModal(t)&&t.element.removeEventListener(\"pointerdown\",t.ref.handleModalTap),shouldBeFullscreen(t)&&t.element.parentNode&&document.body.removeChild(t.element),window.removeEventListener(\"resize\",t.ref.updateViewport),t.ref.touchDetector.destroy(),t.ref.catcher&&t.ref.catcher.destroy()}}),getViewportBySize=function(e,t){var r=\"\";return 0===e&&0===t?\"detached\":(r+=t>e?\"portrait\":\"landscape\",(r+=e<=600?\" x-cramped\":e<=1e3?\" x-comfortable\":\" x-spacious\").trim())},createApp=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=getOptions(),r=createStore(createInitialState(t),[queries,createOptionQueries(t)],[actions,createOptionActions(t)]);r.dispatch(\"SET_OPTIONS\",{options:e});var n=function(){document.hidden||r.dispatch(\"KICK\")};document.addEventListener(\"visibilitychange\",n);var i=getUniqueId();r.dispatch(\"SET_UID\",{id:i});var o=null,a=root(r,{id:i}),c=!1,l={_read:function(){c||a._read()},_write:function(e){var t=r.processActionQueue().filter(function(e){return!/^SET_/.test(e.type)});c&&!t.length||(d(t),(c=a._write(e,t))&&r.processDispatchQueue(),t.find(function(e){return\"EDIT_DESTROY\"===e.type})&&p())}},u=function(e){return function(t){var r={type:e};return t?(t.hasOwnProperty(\"error\")&&(r.error=isObject(t.error)?_objectSpread({},t.error):t.error||null),t.hasOwnProperty(\"output\")&&(r.output=t.output),t.hasOwnProperty(\"image\")&&(r.image=t.image),t.hasOwnProperty(\"source\")&&(r.source=t.source),t.hasOwnProperty(\"state\")&&(r.state=t.state),r):r}},s={DID_CONFIRM:u(\"confirm\"),DID_CANCEL:u(\"cancel\"),DID_REQUEST_LOAD_IMAGE:u(\"loadstart\"),DID_LOAD_IMAGE:u(\"load\"),DID_LOAD_IMAGE_ERROR:u(\"loaderror\"),DID_SHOW_IMAGE:u(\"ready\"),DID_UPDATE:u(\"update\"),DID_CLOSE:u(\"close\"),DID_DESTROY:u(\"destroy\"),DID_INIT:u(\"init\")},d=function(e){e.length&&e.forEach(function(e){if(s[e.type]){var t=s[e.type];(Array.isArray(t)?t:[t]).forEach(function(t){setTimeout(function(){!function(e){var t=_objectSpread({doka:f},e);delete t.type,a&&a.element.dispatchEvent(new CustomEvent(\"Doka:\".concat(e.type),{detail:t,bubbles:!0,cancelable:!0,composed:!0}));var n=[];e.hasOwnProperty(\"error\")&&n.push(e.error);var i=[\"type\",\"error\"];Object.keys(e).filter(function(e){return!i.includes(e)}).forEach(function(t){return n.push(e[t])}),f.fire.apply(f,[e.type].concat(n));var o=r.query(\"GET_ON\".concat(e.type.toUpperCase()));o&&o.apply(void 0,n)}(t(e.data))},0)})}})},p=function(){f.fire(\"destroy\",a.element),document.removeEventListener(\"visibilitychange\",n),a._destroy(),r.dispatch(\"DID_DESTROY\")},f=_objectSpread({},on(),l,createOptionAPI(r,t),{setOptions:function(e){return r.dispatch(\"SET_OPTIONS\",{options:e})},setData:function(e){r.dispatch(\"SET_DATA\",e)},getData:function(e){return new Promise(function(t,n){r.dispatch(\"GET_DATA\",_objectSpread({},e,{success:t,failure:n}))})},open:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return new Promise(function(n,i){e&&r.dispatch(\"REQUEST_LOAD_IMAGE\",{source:e,options:t,success:n,failure:i,resolveOnConfirm:!!t&&t.resolveOnConfirm})})},edit:function(e,t){return f.open(e,_objectSpread({},t,{resolveOnConfirm:!0}))},save:function(e){return new Promise(function(t,n){r.dispatch(\"GET_DATA\",_objectSpread({},e,{success:t,failure:n}))})},clear:function(){return r.dispatch(\"REQUEST_REMOVE_IMAGE\")},close:function(){return r.dispatch(\"EDIT_CLOSE\")},interact:function(e,t){\"scale\"===e&&r.dispatch(\"CROP_IMAGE_RESIZE_SET\",{value:t})},interactEnd:function(e){\"scale\"===e&&r.dispatch(\"CROP_IMAGE_RESIZE_RELEASE\")},destroy:p,insertBefore:function(e){insertBefore(a.element,e)},insertAfter:function(e){insertAfter(a.element,e)},appendTo:function(e){e.appendChild(a.element)},replaceElement:function(e){insertBefore(a.element,e),e.parentNode.removeChild(e),o=e},restoreElement:function(){o&&(insertAfter(o,a.element),a.element.parentNode.removeChild(a.element),o=null)},isAttachedTo:function(e){return!!a&&(a.element===e||o===e)},element:{get:function(){return a?a.element:null}}});return r.dispatch(\"DID_INIT\"),createObject(f)},createAppObject=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=getOptions(),r={};return forin(t,function(e,t){isString(t)||(r[e]=t[0])}),createApp(_objectSpread({},r,e))},toCamels=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"-\";return e.replace(new RegExp(\"\".concat(t,\".\"),\"g\"),function(e){return e.charAt(1).toUpperCase()})},lowerCaseFirstLetter=function(e){return e.charAt(0).toLowerCase()+e.slice(1)},attributeNameToPropertyName=function(e){return toCamels(e.replace(/^data-/,\"\"))},mapObject=function e(t,r){forin(r,function(r,n){forin(t,function(e,i){var o=new RegExp(r);if(o.test(e)&&(delete t[e],!1!==n))if(isString(n))t[n]=i;else{var a=n.group;isObject(n)&&!t[a]&&(t[a]={}),t[a][lowerCaseFirstLetter(e.replace(o,\"\"))]=i}}),n.mapping&&e(t[n.group],n.mapping)})},getAttributesAsObject=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=[];forin(e.attributes,function(t){return r.push(e.attributes[t])});var n=r.filter(function(e){return e.name}).reduce(function(t,r){var n=attr(e,r.name);return t[attributeNameToPropertyName(r.name)]=n===r.name||n,t},{});return mapObject(n,t),n},createAppAtElement=function(e){var t=_objectSpread({},arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}),r=getAttributesAsObject(e,{\"^class$\":\"className\"});Object.keys(r).forEach(function(e){isObject(r[e])?(isObject(t[e])||(t[e]={}),Object.assign(t[e],r[e])):t[e]=r[e]}),\"CANVAS\"!==e.nodeName&&\"IMG\"!==e.nodeName||(t.src=e.dataset.dokaSrc?e.dataset.dokaSrc:e);var n=createAppObject(t);return n.replaceElement(e),n},createApp$1=function(){for(var e=arguments.length,t=new Array(e),r=0;r=0&&(state.apps.splice(t,1)[0].restoreElement(),!0)},parse=function(e){return Array.from(e.querySelectorAll(\".\".concat(name))).filter(function(e){return!state.apps.find(function(t){return t.isAttachedTo(e)})}).map(function(e){return create$1(e)})},find=function(e){var t=state.apps.find(function(t){return t.isAttachedTo(e)});return t?createAppAPI(t):null},getOptions$1=function(){var e={};return forin(getOptions(),function(t,r){e[t]=r[0]}),e},setOptions$1=function(e){return isObject(e)&&(state.apps.forEach(function(t){t.setOptions(e)}),setOptions(e)),getOptions$1()}}export{supported,OptionTypes,create$1 as create,destroy,parse,find,getOptions$1 as getOptions,setOptions$1 as setOptions};\n","\n\n\n\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./FileUpload.vue?vue&type=template&id=29a6226e&scoped=true&\"\nimport script from \"./FileUpload.vue?vue&type=script&lang=js&\"\nexport * from \"./FileUpload.vue?vue&type=script&lang=js&\"\nimport style0 from \"./FileUpload.vue?vue&type=style&index=0&id=29a6226e&prod&lang=scss&scoped=true&\"\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 \"29a6226e\",\n null\n \n)\n\nexport default component.exports","var $ = require('../internals/export');\nvar log10 = require('../internals/math-log10');\n\n// `Math.log10` method\n// https://tc39.es/ecma262/#sec-math.log10\n$({ target: 'Math', stat: true }, {\n log10: log10\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names-external').f;\n\n// eslint-disable-next-line es/no-object-getownpropertynames -- required for testing\nvar FAILS_ON_PRIMITIVES = fails(function () { return !Object.getOwnPropertyNames(1); });\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n getOwnPropertyNames: getOwnPropertyNames\n});\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar enforceInternalState = InternalStateModule.enforce;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n aTypedArrayConstructor(C);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor != NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = function (name) {\n try {\n // eslint-disable-next-line no-new-func -- safe\n if (IS_NODE) return Function('return require(\"' + name + '\")')();\n } catch (error) { /* empty */ }\n};\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar toString = require('../internals/to-string');\nvar hasOwn = require('../internals/has-own-property');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar ctoi = require('../internals/base64-map').ctoi;\n\nvar disallowed = /[^\\d+/a-z]/i;\nvar whitespaces = /[\\t\\n\\f\\r ]+/g;\nvar finalEq = /[=]+$/;\n\nvar $atob = getBuiltIn('atob');\nvar fromCharCode = String.fromCharCode;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar exec = uncurryThis(disallowed.exec);\n\nvar NO_SPACES_IGNORE = fails(function () {\n return $atob(' ') !== '';\n});\n\nvar NO_ENCODING_CHECK = !fails(function () {\n $atob('a');\n});\n\nvar NO_ARG_RECEIVING_CHECK = !NO_SPACES_IGNORE && !NO_ENCODING_CHECK && !fails(function () {\n $atob();\n});\n\nvar WRONG_ARITY = !NO_SPACES_IGNORE && !NO_ENCODING_CHECK && $atob.length !== 1;\n\n// `atob` method\n// https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob\n$({ global: true, enumerable: true, forced: NO_SPACES_IGNORE || NO_ENCODING_CHECK || NO_ARG_RECEIVING_CHECK || WRONG_ARITY }, {\n atob: function atob(data) {\n validateArgumentsLength(arguments.length, 1);\n if (NO_ARG_RECEIVING_CHECK || WRONG_ARITY) return $atob(data);\n var string = replace(toString(data), whitespaces, '');\n var output = '';\n var position = 0;\n var bc = 0;\n var chr, bs;\n if (string.length % 4 == 0) {\n string = replace(string, finalEq, '');\n }\n if (string.length % 4 == 1 || exec(disallowed, string)) {\n throw new (getBuiltIn('DOMException'))('The string is not correctly encoded', 'InvalidCharacterError');\n }\n while (chr = charAt(string, position++)) {\n if (hasOwn(ctoi, chr)) {\n bs = bc % 4 ? bs * 64 + ctoi[chr] : ctoi[chr];\n if (bc++ % 4) output += fromCharCode(255 & bs >> (-2 * bc & 6));\n }\n } return output;\n }\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var log = Math.log;\nvar LOG10E = Math.LOG10E;\n\n// eslint-disable-next-line es/no-math-log10 -- safe\nmodule.exports = Math.log10 || function log10(x) {\n return log(x) * LOG10E;\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8ClampedArray` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\nvar DOM_EXCEPTION = 'DOMException';\n\nsetToStringTag(getBuiltIn(DOM_EXCEPTION), DOM_EXCEPTION);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.at` method\n// https://github.com/tc39/proposal-relative-indexing-method\nexportTypedArrayMethod('at', function at(index) {\n var O = aTypedArray(this);\n var len = lengthOfArrayLike(O);\n var relativeIndex = toIntegerOrInfinity(index);\n var k = relativeIndex >= 0 ? relativeIndex : len + relativeIndex;\n return (k < 0 || k >= len) ? undefined : O[k];\n});\n","/*!\n * FilePondPluginImageCrop 2.0.6\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n\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), (global.FilePondPluginImageCrop = factory()));\n})(this, function() {\n 'use strict';\n\n var isImage = function isImage(file) {\n return /^image/.test(file.type);\n };\n\n /**\n * Image Auto Crop Plugin\n */\n var plugin = function plugin(_ref) {\n var addFilter = _ref.addFilter,\n utils = _ref.utils;\n var Type = utils.Type,\n isFile = utils.isFile,\n getNumericAspectRatioFromString = utils.getNumericAspectRatioFromString;\n\n // tests if crop is allowed on this item\n var allowCrop = function allowCrop(item, query) {\n return !(!isImage(item.file) || !query('GET_ALLOW_IMAGE_CROP'));\n };\n\n var isObject = function isObject(value) {\n return typeof value === 'object';\n };\n\n var isNumber = function isNumber(value) {\n return typeof value === 'number';\n };\n\n var updateCrop = function updateCrop(item, obj) {\n return item.setMetadata(\n 'crop',\n Object.assign({}, item.getMetadata('crop'), obj)\n );\n };\n\n // extend item methods\n addFilter('DID_CREATE_ITEM', function(item, _ref2) {\n var query = _ref2.query;\n\n item.extend('setImageCrop', function(crop) {\n if (!allowCrop(item, query) || !isObject(center)) return;\n item.setMetadata('crop', crop);\n return crop;\n });\n\n item.extend('setImageCropCenter', function(center) {\n if (!allowCrop(item, query) || !isObject(center)) return;\n return updateCrop(item, { center: center });\n });\n\n item.extend('setImageCropZoom', function(zoom) {\n if (!allowCrop(item, query) || !isNumber(zoom)) return;\n return updateCrop(item, { zoom: Math.max(1, zoom) });\n });\n\n item.extend('setImageCropRotation', function(rotation) {\n if (!allowCrop(item, query) || !isNumber(rotation)) return;\n return updateCrop(item, { rotation: rotation });\n });\n\n item.extend('setImageCropFlip', function(flip) {\n if (!allowCrop(item, query) || !isObject(flip)) return;\n return updateCrop(item, { flip: flip });\n });\n\n item.extend('setImageCropAspectRatio', function(newAspectRatio) {\n if (!allowCrop(item, query) || typeof newAspectRatio === 'undefined')\n return;\n\n var currentCrop = item.getMetadata('crop');\n\n var aspectRatio = getNumericAspectRatioFromString(newAspectRatio);\n\n var newCrop = {\n center: {\n x: 0.5,\n y: 0.5\n },\n\n flip: currentCrop\n ? Object.assign({}, currentCrop.flip)\n : {\n horizontal: false,\n vertical: false\n },\n\n rotation: 0,\n zoom: 1,\n aspectRatio: aspectRatio\n };\n\n item.setMetadata('crop', newCrop);\n\n return newCrop;\n });\n });\n\n // subscribe to file transformations\n addFilter('DID_LOAD_ITEM', function(item, _ref3) {\n var query = _ref3.query;\n return new Promise(function(resolve, reject) {\n // get file reference\n var file = item.file;\n\n // if this is not an image we do not have any business cropping it and we'll continue with the unaltered dataset\n if (!isFile(file) || !isImage(file) || !query('GET_ALLOW_IMAGE_CROP')) {\n return resolve(item);\n }\n\n // already has crop metadata set?\n var crop = item.getMetadata('crop');\n if (crop) {\n return resolve(item);\n }\n\n // get the required aspect ratio and exit if it's not set\n var humanAspectRatio = query('GET_IMAGE_CROP_ASPECT_RATIO');\n\n // set default crop rectangle\n item.setMetadata('crop', {\n center: {\n x: 0.5,\n y: 0.5\n },\n\n flip: {\n horizontal: false,\n vertical: false\n },\n\n rotation: 0,\n zoom: 1,\n aspectRatio: humanAspectRatio\n ? getNumericAspectRatioFromString(humanAspectRatio)\n : null\n });\n\n // we done!\n resolve(item);\n });\n });\n\n // Expose plugin options\n return {\n options: {\n // enable or disable image cropping\n allowImageCrop: [true, Type.BOOLEAN],\n\n // the aspect ratio of the crop ('1:1', '16:9', etc)\n imageCropAspectRatio: [null, Type.STRING]\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","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findLast = require('../internals/array-iteration-from-last').findLast;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findLast` method\n// https://github.com/tc39/proposal-array-find-from-last\nexportTypedArrayMethod('findLast', function findLast(predicate /* , thisArg */) {\n return $findLast(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","/*!\n * FilePondPluginImageTransform 3.8.7\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), (global.FilePondPluginImageTransform = factory()));\n})(this, function() {\n 'use strict';\n\n // test if file is of type image\n var isImage = function isImage(file) {\n return /^image/.test(file.type);\n };\n\n var getFilenameWithoutExtension = function getFilenameWithoutExtension(name) {\n return name.substr(0, name.lastIndexOf('.')) || name;\n };\n\n // only handles image/jpg, image/jpeg, image/png, and image/svg+xml for now\n var ExtensionMap = {\n jpeg: 'jpg',\n 'svg+xml': 'svg',\n };\n\n var renameFileToMatchMimeType = function renameFileToMatchMimeType(filename, mimeType) {\n var name = getFilenameWithoutExtension(filename);\n var type = mimeType.split('/')[1];\n var extension = ExtensionMap[type] || type;\n return ''.concat(name, '.').concat(extension);\n };\n\n // returns all the valid output formats we can encode towards\n var getValidOutputMimeType = function getValidOutputMimeType(type) {\n return /jpeg|png|svg\\+xml/.test(type) ? type : 'image/jpeg';\n };\n\n // test if file is of type image\n var isImage$1 = function isImage(file) {\n return /^image/.test(file.type);\n };\n\n var MATRICES = {\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 getImageOrientationMatrix = function getImageOrientationMatrix(width, height, orientation) {\n if (orientation === -1) {\n orientation = 1;\n }\n return MATRICES[orientation](width, height);\n };\n\n var createVector = 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(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(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(rect.x + Math.abs(hor.x), rect.y - Math.abs(hor.y));\n\n var tr = createVector(rect.x + rect.width + Math.abs(ver.y), rect.y + Math.abs(ver.x));\n\n var bl = createVector(rect.x - Math.abs(ver.y), rect.y + rect.height - Math.abs(ver.x));\n\n return {\n width: vectorDistance(tl, tr),\n height: vectorDistance(tl, bl),\n };\n };\n\n var getImageRectZoomFactor = function getImageRectZoomFactor(imageRect, cropRect) {\n var rotation = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var center =\n arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : { x: 0.5, y: 0.5 };\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 return Math.max(rotatedCropSize.width / imageWidth, rotatedCropSize.height / imageHeight);\n };\n\n var getCenteredCropRect = function getCenteredCropRect(container, aspectRatio) {\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 calculateCanvasSize = function calculateCanvasSize(image, canvasAspectRatio) {\n var zoom = 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 canvasRelease = function canvasRelease(canvas) {\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.clearRect(0, 0, 1, 1);\n };\n\n var isFlipped = function isFlipped(flip) {\n return flip && (flip.horizontal || flip.vertical);\n };\n\n var getBitmap = function getBitmap(image, orientation, flip) {\n if (orientation <= 1 && !isFlipped(flip)) {\n image.width = image.naturalWidth;\n image.height = image.naturalHeight;\n return image;\n }\n\n var canvas = document.createElement('canvas');\n var width = image.naturalWidth;\n var height = image.naturalHeight;\n\n // if is rotated incorrectly swap width and height\n var swapped = orientation >= 5 && orientation <= 8;\n if (swapped) {\n canvas.width = height;\n canvas.height = width;\n } else {\n canvas.width = width;\n canvas.height = height;\n }\n\n // draw the image but first fix orientation and set correct flip\n var ctx = canvas.getContext('2d');\n\n // get base transformation matrix\n if (orientation) {\n ctx.transform.apply(ctx, getImageOrientationMatrix(width, height, orientation));\n }\n\n if (isFlipped(flip)) {\n // flip horizontal\n // [-1, 0, 0, 1, width, 0]\n var matrix = [1, 0, 0, 1, 0, 0];\n if ((!swapped && flip.horizontal) || swapped & flip.vertical) {\n matrix[0] = -1;\n matrix[4] = width;\n }\n\n // flip vertical\n // [1, 0, 0, -1, 0, height]\n if ((!swapped && flip.vertical) || (swapped && flip.horizontal)) {\n matrix[3] = -1;\n matrix[5] = height;\n }\n\n ctx.transform.apply(ctx, matrix);\n }\n\n ctx.drawImage(image, 0, 0, width, height);\n\n return canvas;\n };\n\n var imageToImageData = function imageToImageData(imageElement, orientation) {\n var crop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var canvasMemoryLimit = options.canvasMemoryLimit,\n _options$background = options.background,\n background = _options$background === void 0 ? null : _options$background;\n\n var zoom = crop.zoom || 1;\n\n // fixes possible image orientation problems by drawing the image on the correct canvas\n var bitmap = getBitmap(imageElement, orientation, crop.flip);\n var imageSize = {\n width: bitmap.width,\n height: bitmap.height,\n };\n\n var aspectRatio = crop.aspectRatio || imageSize.height / imageSize.width;\n\n var canvasSize = calculateCanvasSize(imageSize, aspectRatio, zoom);\n\n if (canvasMemoryLimit) {\n var requiredMemory = canvasSize.width * canvasSize.height;\n if (requiredMemory > canvasMemoryLimit) {\n var scalar = Math.sqrt(canvasMemoryLimit) / Math.sqrt(requiredMemory);\n imageSize.width = Math.floor(imageSize.width * scalar);\n imageSize.height = Math.floor(imageSize.height * scalar);\n canvasSize = calculateCanvasSize(imageSize, aspectRatio, zoom);\n }\n }\n\n var canvas = document.createElement('canvas');\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 scale =\n zoom *\n getImageRectZoomFactor(\n imageSize,\n getCenteredCropRect(stage, aspectRatio),\n crop.rotation,\n shouldLimit ? crop.center : { x: 0.5, y: 0.5 }\n );\n\n // start drawing\n canvas.width = Math.round(canvasSize.width / scale);\n canvas.height = Math.round(canvasSize.height / scale);\n\n canvasCenter.x /= scale;\n canvasCenter.y /= scale;\n\n var imageOffset = {\n x: canvasCenter.x - imageSize.width * (crop.center ? crop.center.x : 0.5),\n y: canvasCenter.y - imageSize.height * (crop.center ? crop.center.y : 0.5),\n };\n\n var ctx = canvas.getContext('2d');\n if (background) {\n ctx.fillStyle = background;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n }\n\n // move to draw offset\n ctx.translate(canvasCenter.x, canvasCenter.y);\n ctx.rotate(crop.rotation || 0);\n\n // draw the image\n ctx.drawImage(\n bitmap,\n imageOffset.x - canvasCenter.x,\n imageOffset.y - canvasCenter.y,\n imageSize.width,\n imageSize.height\n );\n\n // get data from canvas\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n\n // release canvas\n canvasRelease(canvas);\n\n // return data\n return imageData;\n };\n\n /**\n * Polyfill toBlob for Edge\n */\n var IS_BROWSER = (function() {\n return typeof window !== 'undefined' && typeof window.document !== 'undefined';\n })();\n if (IS_BROWSER) {\n if (!HTMLCanvasElement.prototype.toBlob) {\n Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {\n value: function value(callback, type, quality) {\n var dataURL = this.toDataURL(type, quality).split(',')[1];\n setTimeout(function() {\n var binStr = atob(dataURL);\n var len = binStr.length;\n var arr = new Uint8Array(len);\n for (var i = 0; i < len; i++) {\n arr[i] = binStr.charCodeAt(i);\n }\n callback(new Blob([arr], { type: type || 'image/png' }));\n });\n },\n });\n }\n }\n\n var canvasToBlob = function canvasToBlob(canvas, options) {\n var beforeCreateBlob =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n return new Promise(function(resolve) {\n var promisedImage = beforeCreateBlob ? beforeCreateBlob(canvas) : canvas;\n Promise.resolve(promisedImage).then(function(canvas) {\n canvas.toBlob(resolve, options.type, options.quality);\n });\n });\n };\n\n var vectorMultiply = function vectorMultiply(v, amount) {\n return createVector$1(v.x * amount, v.y * amount);\n };\n\n var vectorAdd = function vectorAdd(a, b) {\n return createVector$1(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$1(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$1(v.x - origin.x, v.y - origin.y);\n return createVector$1(origin.x + cos * t.x - sin * t.y, origin.y + sin * t.x + cos * t.y);\n };\n\n var createVector$1 = function createVector() {\n var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var y = 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 = 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(markup.borderWidth || markup.lineWidth, size, scale);\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 = 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(element, Object.assign({}, element.rect, element.styles));\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('http://www.w3.org/1999/xlink', 'xlink:href', markup.src);\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(element, type, markup, size, scale) {\n if (type !== 'path') {\n element.rect = getMarkupRect(markup, size, scale);\n }\n element.styles = getMarkupStyles(markup, size, scale);\n UPDATE_TYPE_ROUTES[type](element, markup, size, scale);\n };\n\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 cropSVG = function cropSVG(blob) {\n var crop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var markup = arguments.length > 2 ? arguments[2] : undefined;\n var options = arguments.length > 3 ? arguments[3] : undefined;\n return new Promise(function(resolve) {\n var _options$background = options.background,\n background = _options$background === void 0 ? null : _options$background;\n\n // load blob contents and wrap in crop svg\n var fr = new FileReader();\n fr.onloadend = function() {\n // get svg text\n var text = fr.result;\n\n // create element with svg and get size\n var original = document.createElement('div');\n original.style.cssText =\n 'position:absolute;pointer-events:none;width:0;height:0;visibility:hidden;';\n original.innerHTML = text;\n var originalNode = original.querySelector('svg');\n document.body.appendChild(original);\n\n // request bounding box dimensions\n var bBox = originalNode.getBBox();\n original.parentNode.removeChild(original);\n\n // get title\n var titleNode = original.querySelector('title');\n\n // calculate new heights and widths\n var viewBoxAttribute = originalNode.getAttribute('viewBox') || '';\n var widthAttribute = originalNode.getAttribute('width') || '';\n var heightAttribute = originalNode.getAttribute('height') || '';\n var width = parseFloat(widthAttribute) || null;\n var height = parseFloat(heightAttribute) || null;\n var widthUnits = (widthAttribute.match(/[a-z]+/) || [])[0] || '';\n var heightUnits = (heightAttribute.match(/[a-z]+/) || [])[0] || '';\n\n // create new size\n var viewBoxList = viewBoxAttribute.split(' ').map(parseFloat);\n var viewBox = viewBoxList.length\n ? {\n x: viewBoxList[0],\n y: viewBoxList[1],\n width: viewBoxList[2],\n height: viewBoxList[3],\n }\n : bBox;\n\n var imageWidth = width != null ? width : viewBox.width;\n var imageHeight = height != null ? height : viewBox.height;\n\n originalNode.style.overflow = 'visible';\n originalNode.setAttribute('width', imageWidth);\n originalNode.setAttribute('height', imageHeight);\n\n // markup\n var markupSVG = '';\n if (markup && markup.length) {\n var size = {\n width: imageWidth,\n height: imageHeight,\n };\n\n markupSVG = markup.sort(sortMarkupByZIndex).reduce(function(prev, shape) {\n var el = createMarkupByType(shape[0], shape[1]);\n updateMarkupByType(el, shape[0], shape[1], size);\n el.removeAttribute('id');\n if (el.getAttribute('opacity') === 1) {\n el.removeAttribute('opacity');\n }\n return prev + '\\n' + el.outerHTML + '\\n';\n }, '');\n markupSVG = '\\n\\n'.concat(markupSVG.replace(/ /g, ' '), '\\n\\n');\n }\n\n var aspectRatio = crop.aspectRatio || imageHeight / imageWidth;\n\n var canvasWidth = imageWidth;\n var canvasHeight = canvasWidth * aspectRatio;\n\n var shouldLimit = typeof crop.scaleToFit === 'undefined' || crop.scaleToFit;\n\n var cropCenterX = crop.center ? crop.center.x : 0.5;\n var cropCenterY = crop.center ? crop.center.y : 0.5;\n\n var canvasZoomFactor = getImageRectZoomFactor(\n {\n width: imageWidth,\n height: imageHeight,\n },\n\n getCenteredCropRect(\n {\n width: canvasWidth,\n height: canvasHeight,\n },\n\n aspectRatio\n ),\n\n crop.rotation,\n shouldLimit\n ? { x: cropCenterX, y: cropCenterY }\n : {\n x: 0.5,\n y: 0.5,\n }\n );\n\n var scale = crop.zoom * canvasZoomFactor;\n\n var rotation = crop.rotation * (180 / Math.PI);\n\n var canvasCenter = {\n x: canvasWidth * 0.5,\n y: canvasHeight * 0.5,\n };\n\n var imageOffset = {\n x: canvasCenter.x - imageWidth * cropCenterX,\n y: canvasCenter.y - imageHeight * cropCenterY,\n };\n\n var cropTransforms = [\n // rotate\n 'rotate('\n .concat(rotation, ' ')\n .concat(canvasCenter.x, ' ')\n .concat(canvasCenter.y, ')'),\n\n // scale\n 'translate('.concat(canvasCenter.x, ' ').concat(canvasCenter.y, ')'),\n 'scale('.concat(scale, ')'),\n 'translate('.concat(-canvasCenter.x, ' ').concat(-canvasCenter.y, ')'),\n\n // offset\n 'translate('.concat(imageOffset.x, ' ').concat(imageOffset.y, ')'),\n ];\n\n var cropFlipHorizontal = crop.flip && crop.flip.horizontal;\n var cropFlipVertical = crop.flip && crop.flip.vertical;\n\n var flipTransforms = [\n 'scale('\n .concat(cropFlipHorizontal ? -1 : 1, ' ')\n .concat(cropFlipVertical ? -1 : 1, ')'),\n 'translate('\n .concat(cropFlipHorizontal ? -imageWidth : 0, ' ')\n .concat(cropFlipVertical ? -imageHeight : 0, ')'),\n ];\n\n // crop\n var transformed = '\\n\\n\\n'\n )\n .concat(titleNode ? titleNode.textContent : '', '\\n\\n\\n')\n .concat(originalNode.outerHTML)\n .concat(markupSVG, '\\n\\n\\n');\n\n // create new svg file\n resolve(transformed);\n };\n\n fr.readAsText(blob);\n });\n };\n\n var objectToImageData = function objectToImageData(obj) {\n var imageData;\n try {\n imageData = new ImageData(obj.width, obj.height);\n } catch (e) {\n // IE + Old EDGE (tested on 12)\n var canvas = document.createElement('canvas');\n imageData = canvas.getContext('2d').createImageData(obj.width, obj.height);\n }\n imageData.data.set(obj.data);\n return imageData;\n };\n\n /* javascript-obfuscator:disable */\n var TransformWorker = function TransformWorker() {\n // maps transform types to transform functions\n var TRANSFORMS = { resize: resize, filter: filter };\n\n // applies all image transforms to the image data array\n var applyTransforms = function applyTransforms(transforms, imageData) {\n transforms.forEach(function(transform) {\n imageData = TRANSFORMS[transform.type](imageData, transform.data);\n });\n return imageData;\n };\n\n // transform image hub\n var transform = function transform(data, cb) {\n var transforms = data.transforms;\n\n // if has filter and has resize, move filter to resize operation\n var filterTransform = null;\n transforms.forEach(function(transform) {\n if (transform.type === 'filter') {\n filterTransform = transform;\n }\n });\n if (filterTransform) {\n // find resize\n var resizeTransform = null;\n transforms.forEach(function(transform) {\n if (transform.type === 'resize') {\n resizeTransform = transform;\n }\n });\n\n if (resizeTransform) {\n // update resize operation\n resizeTransform.data.matrix = filterTransform.data;\n\n // remove filter\n transforms = transforms.filter(function(transform) {\n return transform.type !== 'filter';\n });\n }\n }\n\n cb(applyTransforms(transforms, data.imageData));\n };\n\n // eslint-disable-next-line no-restricted-globals\n self.onmessage = function(e) {\n transform(e.data.message, function(response) {\n // eslint-disable-next-line no-restricted-globals\n self.postMessage({ id: e.data.id, message: response }, [response.data.buffer]);\n });\n };\n\n var br = 1.0;\n var bg = 1.0;\n var bb = 1.0;\n function applyFilterMatrix(index, data, m) {\n var ir = data[index] / 255;\n var ig = data[index + 1] / 255;\n var ib = data[index + 2] / 255;\n var ia = data[index + 3] / 255;\n\n var mr = ir * m[0] + ig * m[1] + ib * m[2] + ia * m[3] + m[4];\n var mg = ir * m[5] + ig * m[6] + ib * m[7] + ia * m[8] + m[9];\n var mb = ir * m[10] + ig * m[11] + ib * m[12] + ia * m[13] + m[14];\n var ma = ir * m[15] + ig * m[16] + ib * m[17] + ia * m[18] + m[19];\n\n var or = Math.max(0, mr * ma) + br * (1.0 - ma);\n var og = Math.max(0, mg * ma) + bg * (1.0 - ma);\n var ob = Math.max(0, mb * ma) + bb * (1.0 - ma);\n\n data[index] = Math.max(0.0, Math.min(1.0, or)) * 255;\n data[index + 1] = Math.max(0.0, Math.min(1.0, og)) * 255;\n data[index + 2] = Math.max(0.0, Math.min(1.0, ob)) * 255;\n }\n\n var identityMatrix = self.JSON.stringify([\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n ]);\n function isIdentityMatrix(filter) {\n return self.JSON.stringify(filter || []) === identityMatrix;\n }\n\n function filter(imageData, matrix) {\n if (!matrix || isIdentityMatrix(matrix)) return imageData;\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 mr = 0.0,\n mg = 0.0,\n mb = 0.0,\n ma = 0.0,\n or = 0.0,\n og = 0.0,\n ob = 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\n mr = r * m11 + g * m12 + b * m13 + a * m14 + m15;\n mg = r * m21 + g * m22 + b * m23 + a * m24 + m25;\n mb = r * m31 + g * m32 + b * m33 + a * m34 + m35;\n ma = r * m41 + g * m42 + b * m43 + a * m44 + m45;\n\n or = Math.max(0, mr * ma) + br * (1.0 - ma);\n og = Math.max(0, mg * ma) + bg * (1.0 - ma);\n ob = Math.max(0, mb * ma) + bb * (1.0 - ma);\n\n data[index] = Math.max(0.0, Math.min(1.0, or)) * 255;\n data[index + 1] = Math.max(0.0, Math.min(1.0, og)) * 255;\n data[index + 2] = Math.max(0.0, Math.min(1.0, ob)) * 255;\n // don't update alpha value\n }\n\n return imageData;\n }\n\n function resize(imageData, data) {\n var _data$mode = data.mode,\n mode = _data$mode === void 0 ? 'contain' : _data$mode,\n _data$upscale = data.upscale,\n upscale = _data$upscale === void 0 ? false : _data$upscale,\n width = data.width,\n height = data.height,\n matrix = data.matrix;\n\n // test if is identity matrix\n matrix = !matrix || isIdentityMatrix(matrix) ? null : matrix;\n\n // need at least a width or a height\n // also 0 is not a valid width or height\n if (!width && !height) {\n return filter(imageData, matrix);\n }\n\n // make sure all bounds are set\n if (width === null) {\n width = height;\n } else if (height === null) {\n height = width;\n }\n\n if (mode !== 'force') {\n var scalarWidth = width / imageData.width;\n var scalarHeight = height / imageData.height;\n var scalar = 1;\n\n if (mode === 'cover') {\n scalar = Math.max(scalarWidth, scalarHeight);\n } else if (mode === 'contain') {\n scalar = Math.min(scalarWidth, scalarHeight);\n }\n\n // if image is too small, exit here with original image\n if (scalar > 1 && upscale === false) {\n return filter(imageData, matrix);\n }\n\n width = imageData.width * scalar;\n height = imageData.height * scalar;\n }\n\n var originWidth = imageData.width;\n var originHeight = imageData.height;\n var targetWidth = Math.round(width);\n var targetHeight = Math.round(height);\n var inputData = imageData.data;\n var outputData = new Uint8ClampedArray(targetWidth * targetHeight * 4);\n var ratioWidth = originWidth / targetWidth;\n var ratioHeight = originHeight / targetHeight;\n var ratioWidthHalf = Math.ceil(ratioWidth * 0.5);\n var ratioHeightHalf = Math.ceil(ratioHeight * 0.5);\n\n for (var j = 0; j < targetHeight; j++) {\n for (var i = 0; i < targetWidth; i++) {\n var x2 = (i + j * targetWidth) * 4;\n var weight = 0;\n var weights = 0;\n var weightsAlpha = 0;\n var r = 0;\n var g = 0;\n var b = 0;\n var a = 0;\n var centerY = (j + 0.5) * ratioHeight;\n\n for (var yy = Math.floor(j * ratioHeight); yy < (j + 1) * ratioHeight; yy++) {\n var dy = Math.abs(centerY - (yy + 0.5)) / ratioHeightHalf;\n var centerX = (i + 0.5) * ratioWidth;\n var w0 = dy * dy;\n\n for (var xx = Math.floor(i * ratioWidth); xx < (i + 1) * ratioWidth; xx++) {\n var dx = Math.abs(centerX - (xx + 0.5)) / ratioWidthHalf;\n var w = Math.sqrt(w0 + dx * dx);\n\n if (w >= -1 && w <= 1) {\n weight = 2 * w * w * w - 3 * w * w + 1;\n\n if (weight > 0) {\n dx = 4 * (xx + yy * originWidth);\n\n var ref = inputData[dx + 3];\n a += weight * ref;\n weightsAlpha += weight;\n\n if (ref < 255) {\n weight = (weight * ref) / 250;\n }\n\n r += weight * inputData[dx];\n g += weight * inputData[dx + 1];\n b += weight * inputData[dx + 2];\n weights += weight;\n }\n }\n }\n }\n\n outputData[x2] = r / weights;\n outputData[x2 + 1] = g / weights;\n outputData[x2 + 2] = b / weights;\n outputData[x2 + 3] = a / weightsAlpha;\n\n matrix && applyFilterMatrix(x2, outputData, matrix);\n }\n }\n\n return {\n data: outputData,\n width: targetWidth,\n height: targetHeight,\n };\n }\n };\n /* javascript-obfuscator:enable */\n\n var correctOrientation = function correctOrientation(view, offset) {\n // Missing 0x45786966 Marker? No Exif Header, stop here\n if (view.getUint32(offset + 4, false) !== 0x45786966) return;\n\n // next byte!\n offset += 4;\n\n // First 2bytes defines byte align of TIFF data.\n // If it is 0x4949=\"I I\", it means \"Intel\" type byte align\n var intelByteAligned = view.getUint16((offset += 6), false) === 0x4949;\n offset += view.getUint32(offset + 4, intelByteAligned);\n\n var tags = view.getUint16(offset, intelByteAligned);\n offset += 2;\n\n // find Orientation tag\n for (var i = 0; i < tags; i++) {\n if (view.getUint16(offset + i * 12, intelByteAligned) === 0x0112) {\n view.setUint16(offset + i * 12 + 8, 1, intelByteAligned);\n return true;\n }\n }\n return false;\n };\n\n var readData = function readData(data) {\n var view = new DataView(data);\n\n // Every JPEG file starts from binary value '0xFFD8'\n // If it's not present, exit here\n if (view.getUint16(0) !== 0xffd8) return null;\n\n var offset = 2; // Start at 2 as we skipped two bytes (FFD8)\n var marker;\n var markerLength;\n var orientationCorrected = false;\n\n while (offset < view.byteLength) {\n marker = view.getUint16(offset, false);\n markerLength = view.getUint16(offset + 2, false) + 2;\n\n // Test if is APP and COM markers\n var isData = (marker >= 0xffe0 && marker <= 0xffef) || marker === 0xfffe;\n if (!isData) {\n break;\n }\n\n if (!orientationCorrected) {\n orientationCorrected = correctOrientation(view, offset, markerLength);\n }\n\n if (offset + markerLength > view.byteLength) {\n break;\n }\n\n offset += markerLength;\n }\n return data.slice(0, offset);\n };\n\n var getImageHead = function getImageHead(file) {\n return new Promise(function(resolve) {\n var reader = new FileReader();\n reader.onload = function() {\n return resolve(readData(reader.result) || null);\n };\n reader.readAsArrayBuffer(file.slice(0, 256 * 1024));\n });\n };\n\n var getBlobBuilder = function getBlobBuilder() {\n return (window.BlobBuilder =\n window.BlobBuilder ||\n window.WebKitBlobBuilder ||\n window.MozBlobBuilder ||\n window.MSBlobBuilder);\n };\n\n var createBlob = function createBlob(arrayBuffer, mimeType) {\n var BB = getBlobBuilder();\n\n if (BB) {\n var bb = new BB();\n bb.append(arrayBuffer);\n return bb.getBlob(mimeType);\n }\n\n return new Blob([arrayBuffer], {\n type: mimeType,\n });\n };\n\n var getUniqueId = function getUniqueId() {\n return Math.random()\n .toString(36)\n .substr(2, 9);\n };\n\n var createWorker = function createWorker(fn) {\n var workerBlob = new Blob(['(', fn.toString(), ')()'], { type: 'application/javascript' });\n var workerURL = URL.createObjectURL(workerBlob);\n var worker = new Worker(workerURL);\n\n var trips = [];\n\n return {\n transfer: function transfer() {}, // (message, cb) => {}\n post: function post(message, cb, transferList) {\n var id = getUniqueId();\n trips[id] = cb;\n\n worker.onmessage = function(e) {\n var cb = trips[e.data.id];\n if (!cb) return;\n cb(e.data.message);\n delete trips[e.data.id];\n };\n\n worker.postMessage(\n {\n id: id,\n message: message,\n },\n\n transferList\n );\n },\n terminate: function terminate() {\n worker.terminate();\n URL.revokeObjectURL(workerURL);\n },\n };\n };\n\n var loadImage = function loadImage(url) {\n return new Promise(function(resolve, reject) {\n var img = new Image();\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 chain = function chain(funcs) {\n return funcs.reduce(function(promise, func) {\n return promise.then(function(result) {\n return func().then(Array.prototype.concat.bind(result));\n });\n }, Promise.resolve([]));\n };\n\n var canvasApplyMarkup = function canvasApplyMarkup(canvas, markup) {\n return new Promise(function(resolve) {\n var size = {\n width: canvas.width,\n height: canvas.height,\n };\n\n var ctx = canvas.getContext('2d');\n\n var drawers = markup.sort(sortMarkupByZIndex).map(function(item) {\n return function() {\n return new Promise(function(resolve) {\n var result = TYPE_DRAW_ROUTES[item[0]](ctx, size, item[1], resolve);\n if (result) resolve();\n });\n };\n });\n\n chain(drawers).then(function() {\n return resolve(canvas);\n });\n });\n };\n\n var applyMarkupStyles = function applyMarkupStyles(ctx, styles) {\n ctx.beginPath();\n ctx.lineCap = styles['stroke-linecap'];\n ctx.lineJoin = styles['stroke-linejoin'];\n ctx.lineWidth = styles['stroke-width'];\n if (styles['stroke-dasharray'].length) {\n ctx.setLineDash(styles['stroke-dasharray'].split(','));\n }\n ctx.fillStyle = styles['fill'];\n ctx.strokeStyle = styles['stroke'];\n ctx.globalAlpha = styles.opacity || 1;\n };\n\n var drawMarkupStyles = function drawMarkupStyles(ctx) {\n ctx.fill();\n ctx.stroke();\n ctx.globalAlpha = 1;\n };\n\n var drawRect = function drawRect(ctx, size, markup) {\n var rect = getMarkupRect(markup, size);\n var styles = getMarkupStyles(markup, size);\n applyMarkupStyles(ctx, styles);\n ctx.rect(rect.x, rect.y, rect.width, rect.height);\n drawMarkupStyles(ctx, styles);\n return true;\n };\n\n var drawEllipse = function drawEllipse(ctx, size, markup) {\n var rect = getMarkupRect(markup, size);\n var styles = getMarkupStyles(markup, size);\n applyMarkupStyles(ctx, styles);\n\n var x = rect.x,\n y = rect.y,\n w = rect.width,\n h = rect.height,\n kappa = 0.5522848,\n ox = (w / 2) * kappa,\n oy = (h / 2) * kappa,\n xe = x + w,\n ye = y + h,\n xm = x + w / 2,\n ym = y + h / 2;\n\n ctx.moveTo(x, ym);\n ctx.bezierCurveTo(x, ym - oy, xm - ox, y, xm, y);\n ctx.bezierCurveTo(xm + ox, y, xe, ym - oy, xe, ym);\n ctx.bezierCurveTo(xe, ym + oy, xm + ox, ye, xm, ye);\n ctx.bezierCurveTo(xm - ox, ye, x, ym + oy, x, ym);\n\n drawMarkupStyles(ctx, styles);\n return true;\n };\n\n var drawImage = function drawImage(ctx, size, markup, done) {\n var rect = getMarkupRect(markup, size);\n var styles = getMarkupStyles(markup, size);\n applyMarkupStyles(ctx, styles);\n\n var image = new Image();\n\n // if is cross origin image add cross origin attribute\n var isCrossOriginImage =\n new URL(markup.src, window.location.href).origin !== window.location.origin;\n if (isCrossOriginImage) image.crossOrigin = '';\n\n image.onload = function() {\n if (markup.fit === 'cover') {\n var ar = rect.width / rect.height;\n var width = ar > 1 ? image.width : image.height * ar;\n var height = ar > 1 ? image.width / ar : image.height;\n var x = image.width * 0.5 - width * 0.5;\n var y = image.height * 0.5 - height * 0.5;\n ctx.drawImage(image, x, y, width, height, rect.x, rect.y, rect.width, rect.height);\n } else if (markup.fit === 'contain') {\n var scalar = Math.min(rect.width / image.width, rect.height / image.height);\n var _width = scalar * image.width;\n var _height = scalar * image.height;\n var _x = rect.x + rect.width * 0.5 - _width * 0.5;\n var _y = rect.y + rect.height * 0.5 - _height * 0.5;\n ctx.drawImage(image, 0, 0, image.width, image.height, _x, _y, _width, _height);\n } else {\n ctx.drawImage(\n image,\n 0,\n 0,\n image.width,\n image.height,\n rect.x,\n rect.y,\n rect.width,\n rect.height\n );\n }\n\n drawMarkupStyles(ctx, styles);\n done();\n };\n image.src = markup.src;\n };\n\n var drawText = function drawText(ctx, size, markup) {\n var rect = getMarkupRect(markup, size);\n var styles = getMarkupStyles(markup, size);\n applyMarkupStyles(ctx, styles);\n\n var fontSize = getMarkupValue(markup.fontSize, size);\n var fontFamily = markup.fontFamily || 'sans-serif';\n var fontWeight = markup.fontWeight || 'normal';\n var textAlign = markup.textAlign || 'left';\n\n ctx.font = ''\n .concat(fontWeight, ' ')\n .concat(fontSize, 'px ')\n .concat(fontFamily);\n ctx.textAlign = textAlign;\n ctx.fillText(markup.text, rect.x, rect.y);\n\n drawMarkupStyles(ctx, styles);\n return true;\n };\n\n var drawPath = function drawPath(ctx, size, markup) {\n var styles = getMarkupStyles(markup, size);\n applyMarkupStyles(ctx, styles);\n ctx.beginPath();\n\n var points = markup.points.map(function(point) {\n return {\n x: getMarkupValue(point.x, size, 1, 'width'),\n y: getMarkupValue(point.y, size, 1, 'height'),\n };\n });\n\n ctx.moveTo(points[0].x, points[0].y);\n var l = points.length;\n for (var i = 1; i < l; i++) {\n ctx.lineTo(points[i].x, points[i].y);\n }\n\n drawMarkupStyles(ctx, styles);\n return true;\n };\n\n var drawLine = function drawLine(ctx, size, markup) {\n var rect = getMarkupRect(markup, size);\n var styles = getMarkupStyles(markup, size);\n applyMarkupStyles(ctx, styles);\n\n ctx.beginPath();\n\n var origin = {\n x: rect.x,\n y: rect.y,\n };\n\n var target = {\n x: rect.x + rect.width,\n y: rect.y + rect.height,\n };\n\n ctx.moveTo(origin.x, origin.y);\n ctx.lineTo(target.x, target.y);\n\n var v = vectorNormalize({\n x: target.x - origin.x,\n y: target.y - origin.y,\n });\n\n var l = 0.04 * Math.min(size.width, size.height);\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 ctx.moveTo(arrowBeginA.x, arrowBeginA.y);\n ctx.lineTo(origin.x, origin.y);\n ctx.lineTo(arrowBeginB.x, arrowBeginB.y);\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 ctx.moveTo(arrowEndA.x, arrowEndA.y);\n ctx.lineTo(target.x, target.y);\n ctx.lineTo(arrowEndB.x, arrowEndB.y);\n }\n\n drawMarkupStyles(ctx, styles);\n return true;\n };\n\n var TYPE_DRAW_ROUTES = {\n rect: drawRect,\n ellipse: drawEllipse,\n image: drawImage,\n text: drawText,\n line: drawLine,\n path: drawPath,\n };\n\n var imageDataToCanvas = function imageDataToCanvas(imageData) {\n var image = document.createElement('canvas');\n image.width = imageData.width;\n image.height = imageData.height;\n var ctx = image.getContext('2d');\n ctx.putImageData(imageData, 0, 0);\n return image;\n };\n\n var transformImage = function transformImage(file, instructions) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return new Promise(function(resolve, reject) {\n // if the file is not an image we do not have any business transforming it\n if (!file || !isImage$1(file))\n return reject({ status: 'not an image file', file: file });\n\n // get separate options for easier use\n var stripImageHead = options.stripImageHead,\n beforeCreateBlob = options.beforeCreateBlob,\n afterCreateBlob = options.afterCreateBlob,\n canvasMemoryLimit = options.canvasMemoryLimit;\n\n // get crop\n var crop = instructions.crop,\n size = instructions.size,\n filter = instructions.filter,\n markup = instructions.markup,\n output = instructions.output;\n\n // get exif orientation\n var orientation =\n instructions.image && instructions.image.orientation\n ? Math.max(1, Math.min(8, instructions.image.orientation))\n : null;\n\n // compression quality 0 => 100\n var qualityAsPercentage = output && output.quality;\n var quality = qualityAsPercentage === null ? null : qualityAsPercentage / 100;\n\n // output format\n var type = (output && output.type) || null;\n\n // background color\n var background = (output && output.background) || null;\n\n // get transforms\n var transforms = [];\n\n // add resize transforms if set\n if (size && (typeof size.width === 'number' || typeof size.height === 'number')) {\n transforms.push({ type: 'resize', data: size });\n }\n\n // add filters\n if (filter && filter.length === 20) {\n transforms.push({ type: 'filter', data: filter });\n }\n\n // resolves with supplied blob\n var resolveWithBlob = function resolveWithBlob(blob) {\n var promisedBlob = afterCreateBlob ? afterCreateBlob(blob) : blob;\n Promise.resolve(promisedBlob).then(resolve);\n };\n\n // done\n var toBlob = function toBlob(imageData, options) {\n var canvas = imageDataToCanvas(imageData);\n var promisedCanvas = markup.length ? canvasApplyMarkup(canvas, markup) : canvas;\n Promise.resolve(promisedCanvas).then(function(canvas) {\n canvasToBlob(canvas, options, beforeCreateBlob)\n .then(function(blob) {\n // force release of canvas memory\n canvasRelease(canvas);\n\n // remove image head (default)\n if (stripImageHead) return resolveWithBlob(blob);\n\n // try to copy image head from original file to generated blob\n getImageHead(file).then(function(imageHead) {\n // re-inject image head in case of JPEG, as the image head is removed by canvas export\n if (imageHead !== null) {\n blob = new Blob([imageHead, blob.slice(20)], {\n type: blob.type,\n });\n }\n\n // done!\n resolveWithBlob(blob);\n });\n })\n .catch(reject);\n });\n };\n\n // if this is an svg and we want it to stay an svg\n if (/svg/.test(file.type) && type === null) {\n return cropSVG(file, crop, markup, { background: background }).then(function(text) {\n resolve(createBlob(text, 'image/svg+xml'));\n });\n }\n\n // get file url\n var url = URL.createObjectURL(file);\n\n // turn the file into an image\n loadImage(url)\n .then(function(image) {\n // url is no longer needed\n URL.revokeObjectURL(url);\n\n // draw to canvas and start transform chain\n var imageData = imageToImageData(image, orientation, crop, {\n canvasMemoryLimit: canvasMemoryLimit,\n background: background,\n });\n\n // determine the format of the blob that we will output\n var outputFormat = {\n quality: quality,\n type: type || file.type,\n };\n\n // no transforms necessary, we done!\n if (!transforms.length) {\n return toBlob(imageData, outputFormat);\n }\n\n // send to the transform worker to transform the blob on a separate thread\n var worker = createWorker(TransformWorker);\n worker.post(\n {\n transforms: transforms,\n imageData: imageData,\n },\n\n function(response) {\n // finish up\n toBlob(objectToImageData(response), outputFormat);\n\n // stop worker\n worker.terminate();\n },\n [imageData.data.buffer]\n );\n })\n .catch(reject);\n });\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' && Symbol.for && 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(gen, resolve, reject, _next, _throw, 'next', value);\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('Super expression must either be null or a function');\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 (right != null && typeof Symbol !== 'undefined' && right[Symbol.hasInstance]) {\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(\"this hasn't been initialised - super() hasn't been called\");\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('Class \"' + name + '\" cannot be referenced in computed property keys.');\n }\n\n var _temporalUndefined = {};\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _slicedToArrayLoose(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimitLoose(arr, i) || _nonIterableRest();\n }\n\n function _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\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++) 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 (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\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 (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done; ) {\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 ? descriptor.initializer.call(context) : void 0,\n });\n }\n\n function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\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(receiver, classConstructor, descriptor) {\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(receiver, classConstructor, descriptor, value) {\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(element, placements);\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 (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {\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(elementObject, 'finisher', 'An element descriptor');\n this.disallowProperty(elementObject, 'extras', 'An element descriptor');\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 (placement !== 'static' && placement !== 'prototype' && placement !== 'own') {\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(elementObject, 'elements', 'An element descriptor');\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(elementObject, 'initializer', 'A method descriptor');\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(objectType + \" can't have a .\" + name + ' property.');\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 ? 'static' : def.kind === 'field' ? 'own' : '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 (element.kind === 'method' && (other = newElements.find(isSameElement))) {\n if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {\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 desc !== undefined && !(desc.value === undefined && desc.writable === undefined);\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 MARKUP_RECT = ['x', 'y', 'left', 'top', 'right', 'bottom', 'width', 'height'];\n\n var toOptionalFraction = function toOptionalFraction(value) {\n return typeof value === 'string' && /%/.test(value) ? parseFloat(value) / 100 : 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 getImageSize = function getImageSize(file) {\n return new Promise(function(resolve, reject) {\n var imageElement = new Image();\n imageElement.src = URL.createObjectURL(file);\n\n // start testing size\n var measure = function measure() {\n var width = imageElement.naturalWidth;\n var height = imageElement.naturalHeight;\n var hasSize = width && height;\n if (!hasSize) return;\n\n URL.revokeObjectURL(imageElement.src);\n clearInterval(intervalId);\n resolve({ width: width, height: height });\n };\n\n imageElement.onerror = function(err) {\n URL.revokeObjectURL(imageElement.src);\n clearInterval(intervalId);\n reject(err);\n };\n\n var intervalId = setInterval(measure, 1);\n\n measure();\n });\n };\n\n /**\n * Polyfill Edge and IE when in Browser\n */\n if (typeof window !== 'undefined' && typeof window.document !== 'undefined') {\n if (!HTMLCanvasElement.prototype.toBlob) {\n Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {\n value: function value(cb, type, quality) {\n var canvas = this;\n setTimeout(function() {\n var dataURL = canvas.toDataURL(type, quality).split(',')[1];\n var binStr = atob(dataURL);\n var index = binStr.length;\n var data = new Uint8Array(index);\n while (index--) {\n data[index] = binStr.charCodeAt(index);\n }\n cb(new Blob([data], { type: type || 'image/png' }));\n });\n },\n });\n }\n }\n\n var isBrowser = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var isIOS = isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\n\n /**\n * Image Transform Plugin\n */\n var plugin = function plugin(_ref) {\n var addFilter = _ref.addFilter,\n utils = _ref.utils;\n var Type = utils.Type,\n forin = utils.forin,\n getFileFromBlob = utils.getFileFromBlob,\n isFile = utils.isFile;\n\n /**\n * Helper functions\n */\n\n // valid transforms (in correct order)\n var TRANSFORM_LIST = ['crop', 'resize', 'filter', 'markup', 'output'];\n\n var createVariantCreator = function createVariantCreator(updateMetadata) {\n return function(transform, file, metadata) {\n return transform(file, updateMetadata ? updateMetadata(metadata) : metadata);\n };\n };\n\n var isDefaultCrop = function isDefaultCrop(crop) {\n return (\n crop.aspectRatio === null &&\n crop.rotation === 0 &&\n crop.zoom === 1 &&\n crop.center &&\n crop.center.x === 0.5 &&\n crop.center.y === 0.5 &&\n crop.flip &&\n crop.flip.horizontal === false &&\n crop.flip.vertical === false\n );\n };\n\n /**\n * Filters\n */\n addFilter('SHOULD_PREPARE_OUTPUT', function(shouldPrepareOutput, _ref2) {\n var query = _ref2.query;\n return new Promise(function(resolve) {\n // If is not async should prepare now\n resolve(!query('IS_ASYNC'));\n });\n });\n\n var shouldTransformFile = function shouldTransformFile(query, file, item) {\n return new Promise(function(resolve) {\n if (\n !query('GET_ALLOW_IMAGE_TRANSFORM') ||\n item.archived ||\n !isFile(file) ||\n !isImage(file)\n ) {\n return resolve(false);\n }\n\n // if size can't be read this browser doesn't support image\n getImageSize(file)\n .then(function() {\n var fn = query('GET_IMAGE_TRANSFORM_IMAGE_FILTER');\n if (fn) {\n var filterResult = fn(file);\n if (filterResult == null) {\n // undefined or null\n return handleRevert(true);\n }\n if (typeof filterResult === 'boolean') {\n return resolve(filterResult);\n }\n if (typeof filterResult.then === 'function') {\n return filterResult.then(resolve);\n }\n }\n\n resolve(true);\n })\n .catch(function(err) {\n resolve(false);\n });\n });\n };\n\n addFilter('DID_CREATE_ITEM', function(item, _ref3) {\n var query = _ref3.query,\n dispatch = _ref3.dispatch;\n if (!query('GET_ALLOW_IMAGE_TRANSFORM')) return;\n\n item.extend('requestPrepare', function() {\n return new Promise(function(resolve, reject) {\n dispatch(\n 'REQUEST_PREPARE_OUTPUT',\n {\n query: item.id,\n item: item,\n success: resolve,\n failure: reject,\n },\n\n true\n );\n });\n });\n });\n\n // subscribe to file transformations\n addFilter('PREPARE_OUTPUT', function(file, _ref4) {\n var query = _ref4.query,\n item = _ref4.item;\n return new Promise(function(resolve) {\n shouldTransformFile(query, file, item).then(function(shouldTransform) {\n // no need to transform, exit\n if (!shouldTransform) return resolve(file);\n\n // get variants\n var variants = [];\n\n // add original file\n if (query('GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_ORIGINAL')) {\n variants.push(function() {\n return new Promise(function(resolve) {\n resolve({\n name: query('GET_IMAGE_TRANSFORM_VARIANTS_ORIGINAL_NAME'),\n file: file,\n });\n });\n });\n }\n\n // add default output version if output default set to true or if no variants defined\n if (query('GET_IMAGE_TRANSFORM_VARIANTS_INCLUDE_DEFAULT')) {\n variants.push(function(transform, file, metadata) {\n return new Promise(function(resolve) {\n transform(file, metadata).then(function(file) {\n return resolve({\n name: query('GET_IMAGE_TRANSFORM_VARIANTS_DEFAULT_NAME'),\n\n file: file,\n });\n });\n });\n });\n }\n\n // get other variants\n var variantsDefinition = query('GET_IMAGE_TRANSFORM_VARIANTS') || {};\n forin(variantsDefinition, function(key, fn) {\n var createVariant = createVariantCreator(fn);\n variants.push(function(transform, file, metadata) {\n return new Promise(function(resolve) {\n createVariant(transform, file, metadata).then(function(file) {\n return resolve({ name: key, file: file });\n });\n });\n });\n });\n\n // output format (quality 0 => 100)\n var qualityAsPercentage = query('GET_IMAGE_TRANSFORM_OUTPUT_QUALITY');\n var qualityMode = query('GET_IMAGE_TRANSFORM_OUTPUT_QUALITY_MODE');\n var quality = qualityAsPercentage === null ? null : qualityAsPercentage / 100;\n var type = query('GET_IMAGE_TRANSFORM_OUTPUT_MIME_TYPE');\n var clientTransforms =\n query('GET_IMAGE_TRANSFORM_CLIENT_TRANSFORMS') || TRANSFORM_LIST;\n\n // update transform metadata object\n item.setMetadata(\n 'output',\n {\n type: type,\n quality: quality,\n client: clientTransforms,\n },\n\n true\n );\n\n // the function that is used to apply the file transformations\n var transform = function transform(file, metadata) {\n return new Promise(function(resolve, reject) {\n var filteredMetadata = Object.assign({}, metadata);\n\n Object.keys(filteredMetadata)\n .filter(function(instruction) {\n return instruction !== 'exif';\n })\n .forEach(function(instruction) {\n // if not in list, remove from object, the instruction will be handled by the server\n if (clientTransforms.indexOf(instruction) === -1) {\n delete filteredMetadata[instruction];\n }\n });\n var resize = filteredMetadata.resize,\n exif = filteredMetadata.exif,\n output = filteredMetadata.output,\n crop = filteredMetadata.crop,\n filter = filteredMetadata.filter,\n markup = filteredMetadata.markup;\n\n var instructions = {\n image: {\n orientation: exif ? exif.orientation : null,\n },\n\n output:\n output &&\n (output.type ||\n typeof output.quality === 'number' ||\n output.background)\n ? {\n type: output.type,\n quality:\n typeof output.quality === 'number'\n ? output.quality * 100\n : null,\n background:\n output.background ||\n query(\n 'GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR'\n ) ||\n null,\n }\n : undefined,\n size:\n resize && (resize.size.width || resize.size.height)\n ? Object.assign(\n {\n mode: resize.mode,\n upscale: resize.upscale,\n },\n resize.size\n )\n : undefined,\n crop:\n crop && !isDefaultCrop(crop)\n ? Object.assign(\n {},\n\n crop\n )\n : undefined,\n markup: markup && markup.length ? markup.map(prepareMarkup) : [],\n filter: filter,\n };\n\n if (instructions.output) {\n // determine if file type will change\n var willChangeType = output.type\n ? // type set\n output.type !== file.type\n : // type not set\n false;\n\n var canChangeQuality = /\\/jpe?g$/.test(file.type);\n var willChangeQuality =\n output.quality !== null\n ? // quality set\n canChangeQuality && qualityMode === 'always'\n : // quality not set\n false;\n\n // determine if file data will be modified\n var willModifyImageData = !!(\n instructions.size ||\n instructions.crop ||\n instructions.filter ||\n willChangeType ||\n willChangeQuality\n );\n\n // if we're not modifying the image data then we don't have to modify the output\n if (!willModifyImageData) return resolve(file);\n }\n\n var options = {\n beforeCreateBlob: query('GET_IMAGE_TRANSFORM_BEFORE_CREATE_BLOB'),\n afterCreateBlob: query('GET_IMAGE_TRANSFORM_AFTER_CREATE_BLOB'),\n canvasMemoryLimit: query('GET_IMAGE_TRANSFORM_CANVAS_MEMORY_LIMIT'),\n stripImageHead: query(\n 'GET_IMAGE_TRANSFORM_OUTPUT_STRIP_IMAGE_HEAD'\n ),\n };\n\n transformImage(file, instructions, options)\n .then(function(blob) {\n // set file object\n var out = getFileFromBlob(\n blob,\n // rename the original filename to match the mime type of the output image\n renameFileToMatchMimeType(\n file.name,\n getValidOutputMimeType(blob.type)\n )\n );\n\n resolve(out);\n })\n .catch(reject);\n });\n };\n\n // start creating variants\n var variantPromises = variants.map(function(create) {\n return create(transform, file, item.getMetadata());\n });\n\n // wait for results\n Promise.all(variantPromises).then(function(files) {\n // if single file object in array, return the single file object else, return array of\n resolve(\n files.length === 1 && files[0].name === null\n ? // return the File object\n files[0].file\n : // return an array of files { name:'name', file:File }\n files\n );\n });\n });\n });\n });\n\n // Expose plugin options\n return {\n options: {\n allowImageTransform: [true, Type.BOOLEAN],\n\n // filter images to transform\n imageTransformImageFilter: [null, Type.FUNCTION],\n\n // null, 'image/jpeg', 'image/png'\n imageTransformOutputMimeType: [null, Type.STRING],\n\n // null, 0 - 100\n imageTransformOutputQuality: [null, Type.INT],\n\n // set to false to copy image exif data to output\n imageTransformOutputStripImageHead: [true, Type.BOOLEAN],\n\n // only apply transforms in this list\n imageTransformClientTransforms: [null, Type.ARRAY],\n\n // only apply output quality when a transform is required\n imageTransformOutputQualityMode: ['always', Type.STRING],\n // 'always'\n // 'optional'\n // 'mismatch' (future feature, only applied if quality differs from input)\n\n // get image transform variants\n imageTransformVariants: [null, Type.OBJECT],\n\n // should we post the default transformed file\n imageTransformVariantsIncludeDefault: [true, Type.BOOLEAN],\n\n // which name to prefix the default transformed file with\n imageTransformVariantsDefaultName: [null, Type.STRING],\n\n // should we post the original file\n imageTransformVariantsIncludeOriginal: [false, Type.BOOLEAN],\n\n // which name to prefix the original file with\n imageTransformVariantsOriginalName: ['original_', Type.STRING],\n\n // called before creating the blob, receives canvas, expects promise resolve with canvas\n imageTransformBeforeCreateBlob: [null, Type.FUNCTION],\n\n // expects promise resolved with blob\n imageTransformAfterCreateBlob: [null, Type.FUNCTION],\n\n // canvas memory limit\n imageTransformCanvasMemoryLimit: [\n isBrowser && isIOS ? 4096 * 4096 : null,\n Type.INT,\n ],\n\n // background image of the output canvas\n imageTransformCanvasBackgroundColor: [null, Type.STRING],\n },\n };\n };\n\n // fire pluginloaded event if running in browser, this allows registering the plugin when using async script tags\n if (isBrowser) {\n document.dispatchEvent(new CustomEvent('FilePond:pluginloaded', { detail: plugin }));\n }\n\n return plugin;\n});\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar toBigInt = require('../internals/to-big-int');\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, thisIsBigIntArray, value, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n thisIsBigIntArray = isBigIntArray(result);\n for (i = 0; length > i; i++) {\n value = mapping ? mapfn(O[i], i) : O[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n result[i] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n return result;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ findLast, findLastIndex }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_FIND_LAST_INDEX = TYPE == 1;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var index = lengthOfArrayLike(self);\n var value, result;\n while (index-- > 0) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (result) switch (TYPE) {\n case 0: return value; // findLast\n case 1: return index; // findLastIndex\n }\n }\n return IS_FIND_LAST_INDEX ? -1 : undefined;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.findLast` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLast: createMethod(0),\n // `Array.prototype.findLastIndex` method\n // https://github.com/tc39/proposal-array-find-from-last\n findLastIndex: createMethod(1)\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar create = require('../internals/object-create');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\n\nvar nativeErrorToString = Error.prototype.toString;\n\nvar INCORRECT_TO_STRING = fails(function () {\n if (DESCRIPTORS) {\n // Chrome 32- incorrectly call accessor\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n var object = create(Object.defineProperty({}, 'name', { get: function () {\n return this === object;\n } }));\n if (nativeErrorToString.call(object) !== 'true') return true;\n }\n // FF10- does not properly handle non-strings\n return nativeErrorToString.call({ message: 1, name: 2 }) !== '2: 1'\n // IE8 does not properly handle defaults\n || nativeErrorToString.call({}) !== 'Error';\n});\n\nmodule.exports = INCORRECT_TO_STRING ? function toString() {\n var O = anObject(this);\n var name = normalizeStringArgument(O.name, 'Error');\n var message = normalizeStringArgument(O.message);\n return !name ? message : !message ? name : name + ': ' + message;\n} : nativeErrorToString;\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anObject = require('../internals/an-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar toLength = require('../internals/to-length');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar DataView = ArrayBufferModule.DataView;\nvar DataViewPrototype = DataView.prototype;\nvar nativeArrayBufferSlice = uncurryThis(ArrayBuffer.prototype.slice);\nvar getUint8 = uncurryThis(DataViewPrototype.getUint8);\nvar setUint8 = uncurryThis(DataViewPrototype.setUint8);\n\nvar INCORRECT_SLICE = fails(function () {\n return !new ArrayBuffer(2).slice(1, undefined).byteLength;\n});\n\n// `ArrayBuffer.prototype.slice` method\n// https://tc39.es/ecma262/#sec-arraybuffer.prototype.slice\n$({ target: 'ArrayBuffer', proto: true, unsafe: true, forced: INCORRECT_SLICE }, {\n slice: function slice(start, end) {\n if (nativeArrayBufferSlice && end === undefined) {\n return nativeArrayBufferSlice(anObject(this), start); // FF fix\n }\n var length = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = new (speciesConstructor(this, ArrayBuffer))(toLength(fin - first));\n var viewSource = new DataView(this);\n var viewTarget = new DataView(result);\n var index = 0;\n while (first < fin) {\n setUint8(viewTarget, index++, getUint8(viewSource, first++));\n } return result;\n }\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray)));\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar anInstance = require('../internals/an-instance');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar normalizeStringArgument = require('../internals/normalize-string-argument');\nvar DOMExceptionConstants = require('../internals/dom-exception-constants');\nvar clearErrorStack = require('../internals/error-stack-clear');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IS_PURE = require('../internals/is-pure');\n\nvar DOM_EXCEPTION = 'DOMException';\nvar Error = getBuiltIn('Error');\nvar NativeDOMException = getBuiltIn(DOM_EXCEPTION);\n\nvar $DOMException = function DOMException() {\n anInstance(this, DOMExceptionPrototype);\n var argumentsLength = arguments.length;\n var message = normalizeStringArgument(argumentsLength < 1 ? undefined : arguments[0]);\n var name = normalizeStringArgument(argumentsLength < 2 ? undefined : arguments[1], 'Error');\n var that = new NativeDOMException(message, name);\n var error = Error(message);\n error.name = DOM_EXCEPTION;\n defineProperty(that, 'stack', createPropertyDescriptor(1, clearErrorStack(error.stack, 1)));\n inheritIfRequired(that, this, $DOMException);\n return that;\n};\n\nvar DOMExceptionPrototype = $DOMException.prototype = NativeDOMException.prototype;\n\nvar ERROR_HAS_STACK = 'stack' in Error(DOM_EXCEPTION);\nvar DOM_EXCEPTION_HAS_STACK = 'stack' in new NativeDOMException(1, 2);\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar descriptor = NativeDOMException && DESCRIPTORS && Object.getOwnPropertyDescriptor(global, DOM_EXCEPTION);\n\n// Bun ~ 0.1.1 DOMException have incorrect descriptor and we can't redefine it\n// https://github.com/Jarred-Sumner/bun/issues/399\nvar BUGGY_DESCRIPTOR = !!descriptor && !(descriptor.writable && descriptor.configurable);\n\nvar FORCED_CONSTRUCTOR = ERROR_HAS_STACK && !BUGGY_DESCRIPTOR && !DOM_EXCEPTION_HAS_STACK;\n\n// `DOMException` constructor patch for `.stack` where it's required\n// https://webidl.spec.whatwg.org/#es-DOMException-specialness\n$({ global: true, constructor: true, forced: IS_PURE || FORCED_CONSTRUCTOR }, { // TODO: fix export logic\n DOMException: FORCED_CONSTRUCTOR ? $DOMException : NativeDOMException\n});\n\nvar PolyfilledDOMException = getBuiltIn(DOM_EXCEPTION);\nvar PolyfilledDOMExceptionPrototype = PolyfilledDOMException.prototype;\n\nif (PolyfilledDOMExceptionPrototype.constructor !== PolyfilledDOMException) {\n if (!IS_PURE) {\n defineProperty(PolyfilledDOMExceptionPrototype, 'constructor', createPropertyDescriptor(1, PolyfilledDOMException));\n }\n\n for (var key in DOMExceptionConstants) if (hasOwn(DOMExceptionConstants, key)) {\n var constant = DOMExceptionConstants[key];\n var constantName = constant.s;\n if (!hasOwn(PolyfilledDOMException, constantName)) {\n defineProperty(PolyfilledDOMException, constantName, createPropertyDescriptor(6, constant.c));\n }\n }\n}\n","var itoc = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nvar ctoi = {};\n\nfor (var index = 0; index < 66; index++) ctoi[itoc.charAt(index)] = index;\n\nmodule.exports = {\n itoc: itoc,\n ctoi: ctoi\n};\n","var classof = require('../internals/classof');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar slice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return slice(classof(it), 0, 3) === 'Big';\n};\n","/*!\n * FilePond 4.30.4\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 ? factory(exports)\n : typeof define === 'function' && define.amd\n ? define(['exports'], factory)\n : ((global = global || self), factory((global.FilePond = {})));\n})(this, function(exports) {\n 'use strict';\n\n var isNode = function isNode(value) {\n return value instanceof HTMLElement;\n };\n\n var createStore = function createStore(initialState) {\n var queries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var actions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n // internal state\n var state = Object.assign({}, initialState);\n\n // contains all actions for next frame, is clear when actions are requested\n var actionQueue = [];\n var dispatchQueue = [];\n\n // returns a duplicate of the current state\n var getState = function getState() {\n return Object.assign({}, state);\n };\n\n // returns a duplicate of the actions array and clears the actions array\n var processActionQueue = function processActionQueue() {\n // create copy of actions queue\n var queue = [].concat(actionQueue);\n\n // clear actions queue (we don't want no double actions)\n actionQueue.length = 0;\n\n return queue;\n };\n\n // processes actions that might block the main UI thread\n var processDispatchQueue = function processDispatchQueue() {\n // create copy of actions queue\n var queue = [].concat(dispatchQueue);\n\n // clear actions queue (we don't want no double actions)\n dispatchQueue.length = 0;\n\n // now dispatch these actions\n queue.forEach(function(_ref) {\n var type = _ref.type,\n data = _ref.data;\n dispatch(type, data);\n });\n };\n\n // adds a new action, calls its handler and\n var dispatch = function dispatch(type, data, isBlocking) {\n // is blocking action (should never block if document is hidden)\n if (isBlocking && !document.hidden) {\n dispatchQueue.push({ type: type, data: data });\n return;\n }\n\n // if this action has a handler, handle the action\n if (actionHandlers[type]) {\n actionHandlers[type](data);\n }\n\n // now add action\n actionQueue.push({\n type: type,\n data: data,\n });\n };\n\n var query = function query(str) {\n var _queryHandles;\n for (\n var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n return queryHandles[str]\n ? (_queryHandles = queryHandles)[str].apply(_queryHandles, args)\n : null;\n };\n\n var api = {\n getState: getState,\n processActionQueue: processActionQueue,\n processDispatchQueue: processDispatchQueue,\n dispatch: dispatch,\n query: query,\n };\n\n var queryHandles = {};\n queries.forEach(function(query) {\n queryHandles = Object.assign({}, query(state), {}, queryHandles);\n });\n\n var actionHandlers = {};\n actions.forEach(function(action) {\n actionHandlers = Object.assign({}, action(dispatch, query, state), {}, actionHandlers);\n });\n\n return api;\n };\n\n var defineProperty = function defineProperty(obj, property, definition) {\n if (typeof definition === 'function') {\n obj[property] = definition;\n return;\n }\n Object.defineProperty(obj, property, Object.assign({}, definition));\n };\n\n var forin = function forin(obj, cb) {\n for (var key in obj) {\n if (!obj.hasOwnProperty(key)) {\n continue;\n }\n\n cb(key, obj[key]);\n }\n };\n\n var createObject = function createObject(definition) {\n var obj = {};\n forin(definition, function(property) {\n defineProperty(obj, property, definition[property]);\n });\n return obj;\n };\n\n var attr = function attr(node, name) {\n var value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n if (value === null) {\n return node.getAttribute(name) || node.hasAttribute(name);\n }\n node.setAttribute(name, value);\n };\n\n var ns = 'http://www.w3.org/2000/svg';\n var svgElements = ['svg', 'path']; // only svg elements used\n\n var isSVGElement = function isSVGElement(tag) {\n return svgElements.includes(tag);\n };\n\n var createElement = function createElement(tag, className) {\n var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (typeof className === 'object') {\n attributes = className;\n className = null;\n }\n var element = isSVGElement(tag)\n ? document.createElementNS(ns, tag)\n : document.createElement(tag);\n if (className) {\n if (isSVGElement(tag)) {\n attr(element, 'class', className);\n } else {\n element.className = className;\n }\n }\n forin(attributes, function(name, value) {\n attr(element, name, value);\n });\n return element;\n };\n\n var appendChild = function appendChild(parent) {\n return function(child, index) {\n if (typeof index !== 'undefined' && parent.children[index]) {\n parent.insertBefore(child, parent.children[index]);\n } else {\n parent.appendChild(child);\n }\n };\n };\n\n var appendChildView = function appendChildView(parent, childViews) {\n return function(view, index) {\n if (typeof index !== 'undefined') {\n childViews.splice(index, 0, view);\n } else {\n childViews.push(view);\n }\n\n return view;\n };\n };\n\n var removeChildView = function removeChildView(parent, childViews) {\n return function(view) {\n // remove from child views\n childViews.splice(childViews.indexOf(view), 1);\n\n // remove the element\n if (view.element.parentNode) {\n parent.removeChild(view.element);\n }\n\n return view;\n };\n };\n\n var IS_BROWSER = (function() {\n return typeof window !== 'undefined' && typeof window.document !== 'undefined';\n })();\n var isBrowser = function isBrowser() {\n return IS_BROWSER;\n };\n\n var testElement = isBrowser() ? createElement('svg') : {};\n var getChildCount =\n 'children' in testElement\n ? function(el) {\n return el.children.length;\n }\n : function(el) {\n return el.childNodes.length;\n };\n\n var getViewRect = function getViewRect(elementRect, childViews, offset, scale) {\n var left = offset[0] || elementRect.left;\n var top = offset[1] || elementRect.top;\n var right = left + elementRect.width;\n var bottom = top + elementRect.height * (scale[1] || 1);\n\n var rect = {\n // the rectangle of the element itself\n element: Object.assign({}, elementRect),\n\n // the rectangle of the element expanded to contain its children, does not include any margins\n inner: {\n left: elementRect.left,\n top: elementRect.top,\n right: elementRect.right,\n bottom: elementRect.bottom,\n },\n\n // the rectangle of the element expanded to contain its children including own margin and child margins\n // margins will be added after we've recalculated the size\n outer: {\n left: left,\n top: top,\n right: right,\n bottom: bottom,\n },\n };\n\n // expand rect to fit all child rectangles\n childViews\n .filter(function(childView) {\n return !childView.isRectIgnored();\n })\n .map(function(childView) {\n return childView.rect;\n })\n .forEach(function(childViewRect) {\n expandRect(rect.inner, Object.assign({}, childViewRect.inner));\n expandRect(rect.outer, Object.assign({}, childViewRect.outer));\n });\n\n // calculate inner width and height\n calculateRectSize(rect.inner);\n\n // append additional margin (top and left margins are included in top and left automatically)\n rect.outer.bottom += rect.element.marginBottom;\n rect.outer.right += rect.element.marginRight;\n\n // calculate outer width and height\n calculateRectSize(rect.outer);\n\n return rect;\n };\n\n var expandRect = function expandRect(parent, child) {\n // adjust for parent offset\n child.top += parent.top;\n child.right += parent.left;\n child.bottom += parent.top;\n child.left += parent.left;\n\n if (child.bottom > parent.bottom) {\n parent.bottom = child.bottom;\n }\n\n if (child.right > parent.right) {\n parent.right = child.right;\n }\n };\n\n var calculateRectSize = function calculateRectSize(rect) {\n rect.width = rect.right - rect.left;\n rect.height = rect.bottom - rect.top;\n };\n\n var isNumber = function isNumber(value) {\n return typeof value === 'number';\n };\n\n /**\n * Determines if position is at destination\n * @param position\n * @param destination\n * @param velocity\n * @param errorMargin\n * @returns {boolean}\n */\n var thereYet = function thereYet(position, destination, velocity) {\n var errorMargin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.001;\n return Math.abs(position - destination) < errorMargin && Math.abs(velocity) < errorMargin;\n };\n\n /**\n * Spring animation\n */\n var spring =\n // default options\n function spring() // method definition\n {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$stiffness = _ref.stiffness,\n stiffness = _ref$stiffness === void 0 ? 0.5 : _ref$stiffness,\n _ref$damping = _ref.damping,\n damping = _ref$damping === void 0 ? 0.75 : _ref$damping,\n _ref$mass = _ref.mass,\n mass = _ref$mass === void 0 ? 10 : _ref$mass;\n var target = null;\n var position = null;\n var velocity = 0;\n var resting = false;\n\n // updates spring state\n var interpolate = function interpolate(ts, skipToEndState) {\n // in rest, don't animate\n if (resting) return;\n\n // need at least a target or position to do springy things\n if (!(isNumber(target) && isNumber(position))) {\n resting = true;\n velocity = 0;\n return;\n }\n\n // calculate spring force\n var f = -(position - target) * stiffness;\n\n // update velocity by adding force based on mass\n velocity += f / mass;\n\n // update position by adding velocity\n position += velocity;\n\n // slow down based on amount of damping\n velocity *= damping;\n\n // we've arrived if we're near target and our velocity is near zero\n if (thereYet(position, target, velocity) || skipToEndState) {\n position = target;\n velocity = 0;\n resting = true;\n\n // we done\n api.onupdate(position);\n api.oncomplete(position);\n } else {\n // progress update\n api.onupdate(position);\n }\n };\n\n /**\n * Set new target value\n * @param value\n */\n var setTarget = function setTarget(value) {\n // if currently has no position, set target and position to this value\n if (isNumber(value) && !isNumber(position)) {\n position = value;\n }\n\n // next target value will not be animated to\n if (target === null) {\n target = value;\n position = value;\n }\n\n // let start moving to target\n target = value;\n\n // already at target\n if (position === target || typeof target === 'undefined') {\n // now resting as target is current position, stop moving\n resting = true;\n velocity = 0;\n\n // done!\n api.onupdate(position);\n api.oncomplete(position);\n\n return;\n }\n\n resting = false;\n };\n\n // need 'api' to call onupdate callback\n var api = createObject({\n interpolate: interpolate,\n target: {\n set: setTarget,\n get: function get() {\n return target;\n },\n },\n\n resting: {\n get: function get() {\n return resting;\n },\n },\n\n onupdate: function onupdate(value) {},\n oncomplete: function oncomplete(value) {},\n });\n\n return api;\n };\n\n var easeLinear = function easeLinear(t) {\n return t;\n };\n var easeInOutQuad = function easeInOutQuad(t) {\n return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;\n };\n\n var tween =\n // default values\n function tween() // method definition\n {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 500 : _ref$duration,\n _ref$easing = _ref.easing,\n easing = _ref$easing === void 0 ? easeInOutQuad : _ref$easing,\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 0 : _ref$delay;\n var start = null;\n var t;\n var p;\n var resting = true;\n var reverse = false;\n var target = null;\n\n var interpolate = function interpolate(ts, skipToEndState) {\n if (resting || target === null) return;\n\n if (start === null) {\n start = ts;\n }\n\n if (ts - start < delay) return;\n\n t = ts - start - delay;\n\n if (t >= duration || skipToEndState) {\n t = 1;\n p = reverse ? 0 : 1;\n api.onupdate(p * target);\n api.oncomplete(p * target);\n resting = true;\n } else {\n p = t / duration;\n api.onupdate((t >= 0 ? easing(reverse ? 1 - p : p) : 0) * target);\n }\n };\n\n // need 'api' to call onupdate callback\n var api = createObject({\n interpolate: interpolate,\n target: {\n get: function get() {\n return reverse ? 0 : target;\n },\n set: function set(value) {\n // is initial value\n if (target === null) {\n target = value;\n api.onupdate(value);\n api.oncomplete(value);\n return;\n }\n\n // want to tween to a smaller value and have a current value\n if (value < target) {\n target = 1;\n reverse = true;\n } else {\n // not tweening to a smaller value\n reverse = false;\n target = value;\n }\n\n // let's go!\n resting = false;\n start = null;\n },\n },\n\n resting: {\n get: function get() {\n return resting;\n },\n },\n\n onupdate: function onupdate(value) {},\n oncomplete: function oncomplete(value) {},\n });\n\n return api;\n };\n\n var animator = {\n spring: spring,\n tween: tween,\n };\n\n /*\n { type: 'spring', stiffness: .5, damping: .75, mass: 10 };\n { translation: { type: 'spring', ... }, ... }\n { translation: { x: { type: 'spring', ... } } }\n */\n var createAnimator = function createAnimator(definition, category, property) {\n // default is single definition\n // we check if transform is set, if so, we check if property is set\n var def =\n definition[category] && typeof definition[category][property] === 'object'\n ? definition[category][property]\n : definition[category] || definition;\n\n var type = typeof def === 'string' ? def : def.type;\n var props = typeof def === 'object' ? Object.assign({}, def) : {};\n\n return animator[type] ? animator[type](props) : null;\n };\n\n var addGetSet = function addGetSet(keys, obj, props) {\n var overwrite = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n obj = Array.isArray(obj) ? obj : [obj];\n obj.forEach(function(o) {\n keys.forEach(function(key) {\n var name = key;\n var getter = function getter() {\n return props[key];\n };\n var setter = function setter(value) {\n return (props[key] = value);\n };\n\n if (typeof key === 'object') {\n name = key.key;\n getter = key.getter || getter;\n setter = key.setter || setter;\n }\n\n if (o[name] && !overwrite) {\n return;\n }\n\n o[name] = {\n get: getter,\n set: setter,\n };\n });\n });\n };\n\n // add to state,\n // add getters and setters to internal and external api (if not set)\n // setup animators\n\n var animations = function animations(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewInternalAPI = _ref.viewInternalAPI,\n viewExternalAPI = _ref.viewExternalAPI;\n // initial properties\n var initialProps = Object.assign({}, viewProps);\n\n // list of all active animations\n var animations = [];\n\n // setup animators\n forin(mixinConfig, function(property, animation) {\n var animator = createAnimator(animation);\n if (!animator) {\n return;\n }\n\n // when the animator updates, update the view state value\n animator.onupdate = function(value) {\n viewProps[property] = value;\n };\n\n // set animator target\n animator.target = initialProps[property];\n\n // when value is set, set the animator target value\n var prop = {\n key: property,\n setter: function setter(value) {\n // if already at target, we done!\n if (animator.target === value) {\n return;\n }\n\n animator.target = value;\n },\n getter: function getter() {\n return viewProps[property];\n },\n };\n\n // add getters and setters\n addGetSet([prop], [viewInternalAPI, viewExternalAPI], viewProps, true);\n\n // add it to the list for easy updating from the _write method\n animations.push(animator);\n });\n\n // expose internal write api\n return {\n write: function write(ts) {\n var skipToEndState = document.hidden;\n var resting = true;\n animations.forEach(function(animation) {\n if (!animation.resting) resting = false;\n animation.interpolate(ts, skipToEndState);\n });\n return resting;\n },\n destroy: function destroy() {},\n };\n };\n\n var addEvent = function addEvent(element) {\n return function(type, fn) {\n element.addEventListener(type, fn);\n };\n };\n\n var removeEvent = function removeEvent(element) {\n return function(type, fn) {\n element.removeEventListener(type, fn);\n };\n };\n\n // mixin\n var listeners = function listeners(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewInternalAPI = _ref.viewInternalAPI,\n viewExternalAPI = _ref.viewExternalAPI,\n viewState = _ref.viewState,\n view = _ref.view;\n var events = [];\n\n var add = addEvent(view.element);\n var remove = removeEvent(view.element);\n\n viewExternalAPI.on = function(type, fn) {\n events.push({\n type: type,\n fn: fn,\n });\n\n add(type, fn);\n };\n\n viewExternalAPI.off = function(type, fn) {\n events.splice(\n events.findIndex(function(event) {\n return event.type === type && event.fn === fn;\n }),\n 1\n );\n\n remove(type, fn);\n };\n\n return {\n write: function write() {\n // not busy\n return true;\n },\n destroy: function destroy() {\n events.forEach(function(event) {\n remove(event.type, event.fn);\n });\n },\n };\n };\n\n // add to external api and link to props\n\n var apis = function apis(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewExternalAPI = _ref.viewExternalAPI;\n addGetSet(mixinConfig, viewExternalAPI, viewProps);\n };\n\n var isDefined = function isDefined(value) {\n return value != null;\n };\n\n // add to state,\n // add getters and setters to internal and external api (if not set)\n // set initial state based on props in viewProps\n // apply as transforms each frame\n\n var defaults = {\n opacity: 1,\n scaleX: 1,\n scaleY: 1,\n translateX: 0,\n translateY: 0,\n rotateX: 0,\n rotateY: 0,\n rotateZ: 0,\n originX: 0,\n originY: 0,\n };\n\n var styles = function styles(_ref) {\n var mixinConfig = _ref.mixinConfig,\n viewProps = _ref.viewProps,\n viewInternalAPI = _ref.viewInternalAPI,\n viewExternalAPI = _ref.viewExternalAPI,\n view = _ref.view;\n // initial props\n var initialProps = Object.assign({}, viewProps);\n\n // current props\n var currentProps = {};\n\n // we will add those properties to the external API and link them to the viewState\n addGetSet(mixinConfig, [viewInternalAPI, viewExternalAPI], viewProps);\n\n // override rect on internal and external rect getter so it takes in account transforms\n var getOffset = function getOffset() {\n return [viewProps['translateX'] || 0, viewProps['translateY'] || 0];\n };\n\n var getScale = function getScale() {\n return [viewProps['scaleX'] || 0, viewProps['scaleY'] || 0];\n };\n var getRect = function getRect() {\n return view.rect\n ? getViewRect(view.rect, view.childViews, getOffset(), getScale())\n : null;\n };\n viewInternalAPI.rect = { get: getRect };\n viewExternalAPI.rect = { get: getRect };\n\n // apply view props\n mixinConfig.forEach(function(key) {\n viewProps[key] =\n typeof initialProps[key] === 'undefined' ? defaults[key] : initialProps[key];\n });\n\n // expose api\n return {\n write: function write() {\n // see if props have changed\n if (!propsHaveChanged(currentProps, viewProps)) {\n return;\n }\n\n // moves element to correct position on screen\n applyStyles(view.element, viewProps);\n\n // store new transforms\n Object.assign(currentProps, Object.assign({}, viewProps));\n\n // no longer busy\n return true;\n },\n destroy: function destroy() {},\n };\n };\n\n var propsHaveChanged = function propsHaveChanged(currentProps, newProps) {\n // different amount of keys\n if (Object.keys(currentProps).length !== Object.keys(newProps).length) {\n return true;\n }\n\n // lets analyze the individual props\n for (var prop in newProps) {\n if (newProps[prop] !== currentProps[prop]) {\n return true;\n }\n }\n\n return false;\n };\n\n var applyStyles = function applyStyles(element, _ref2) {\n var opacity = _ref2.opacity,\n perspective = _ref2.perspective,\n translateX = _ref2.translateX,\n translateY = _ref2.translateY,\n scaleX = _ref2.scaleX,\n scaleY = _ref2.scaleY,\n rotateX = _ref2.rotateX,\n rotateY = _ref2.rotateY,\n rotateZ = _ref2.rotateZ,\n originX = _ref2.originX,\n originY = _ref2.originY,\n width = _ref2.width,\n height = _ref2.height;\n\n var transforms = '';\n var styles = '';\n\n // handle transform origin\n if (isDefined(originX) || isDefined(originY)) {\n styles += 'transform-origin: ' + (originX || 0) + 'px ' + (originY || 0) + 'px;';\n }\n\n // transform order is relevant\n // 0. perspective\n if (isDefined(perspective)) {\n transforms += 'perspective(' + perspective + 'px) ';\n }\n\n // 1. translate\n if (isDefined(translateX) || isDefined(translateY)) {\n transforms +=\n 'translate3d(' + (translateX || 0) + 'px, ' + (translateY || 0) + 'px, 0) ';\n }\n\n // 2. scale\n if (isDefined(scaleX) || isDefined(scaleY)) {\n transforms +=\n 'scale3d(' +\n (isDefined(scaleX) ? scaleX : 1) +\n ', ' +\n (isDefined(scaleY) ? scaleY : 1) +\n ', 1) ';\n }\n\n // 3. rotate\n if (isDefined(rotateZ)) {\n transforms += 'rotateZ(' + rotateZ + 'rad) ';\n }\n\n if (isDefined(rotateX)) {\n transforms += 'rotateX(' + rotateX + 'rad) ';\n }\n\n if (isDefined(rotateY)) {\n transforms += 'rotateY(' + rotateY + 'rad) ';\n }\n\n // add transforms\n if (transforms.length) {\n styles += 'transform:' + transforms + ';';\n }\n\n // add opacity\n if (isDefined(opacity)) {\n styles += 'opacity:' + opacity + ';';\n\n // if we reach zero, we make the element inaccessible\n if (opacity === 0) {\n styles += 'visibility:hidden;';\n }\n\n // if we're below 100% opacity this element can't be clicked\n if (opacity < 1) {\n styles += 'pointer-events:none;';\n }\n }\n\n // add height\n if (isDefined(height)) {\n styles += 'height:' + height + 'px;';\n }\n\n // add width\n if (isDefined(width)) {\n styles += 'width:' + width + 'px;';\n }\n\n // apply styles\n var elementCurrentStyle = element.elementCurrentStyle || '';\n\n // if new styles does not match current styles, lets update!\n if (styles.length !== elementCurrentStyle.length || styles !== elementCurrentStyle) {\n element.style.cssText = styles;\n // store current styles so we can compare them to new styles later on\n // _not_ getting the style value is faster\n element.elementCurrentStyle = styles;\n }\n };\n\n var Mixins = {\n styles: styles,\n listeners: listeners,\n animations: animations,\n apis: apis,\n };\n\n var updateRect = function updateRect() {\n var rect = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var element = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var style = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!element.layoutCalculated) {\n rect.paddingTop = parseInt(style.paddingTop, 10) || 0;\n rect.marginTop = parseInt(style.marginTop, 10) || 0;\n rect.marginRight = parseInt(style.marginRight, 10) || 0;\n rect.marginBottom = parseInt(style.marginBottom, 10) || 0;\n rect.marginLeft = parseInt(style.marginLeft, 10) || 0;\n element.layoutCalculated = true;\n }\n\n rect.left = element.offsetLeft || 0;\n rect.top = element.offsetTop || 0;\n rect.width = element.offsetWidth || 0;\n rect.height = element.offsetHeight || 0;\n\n rect.right = rect.left + rect.width;\n rect.bottom = rect.top + rect.height;\n\n rect.scrollTop = element.scrollTop;\n\n rect.hidden = element.offsetParent === null;\n\n return rect;\n };\n\n var createView =\n // default view definition\n function createView() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$tag = _ref.tag,\n tag = _ref$tag === void 0 ? 'div' : _ref$tag,\n _ref$name = _ref.name,\n name = _ref$name === void 0 ? null : _ref$name,\n _ref$attributes = _ref.attributes,\n attributes = _ref$attributes === void 0 ? {} : _ref$attributes,\n _ref$read = _ref.read,\n read = _ref$read === void 0 ? function() {} : _ref$read,\n _ref$write = _ref.write,\n write = _ref$write === void 0 ? function() {} : _ref$write,\n _ref$create = _ref.create,\n create = _ref$create === void 0 ? function() {} : _ref$create,\n _ref$destroy = _ref.destroy,\n destroy = _ref$destroy === void 0 ? function() {} : _ref$destroy,\n _ref$filterFrameActio = _ref.filterFrameActionsForChild,\n filterFrameActionsForChild =\n _ref$filterFrameActio === void 0\n ? function(child, actions) {\n return actions;\n }\n : _ref$filterFrameActio,\n _ref$didCreateView = _ref.didCreateView,\n didCreateView = _ref$didCreateView === void 0 ? function() {} : _ref$didCreateView,\n _ref$didWriteView = _ref.didWriteView,\n didWriteView = _ref$didWriteView === void 0 ? function() {} : _ref$didWriteView,\n _ref$ignoreRect = _ref.ignoreRect,\n ignoreRect = _ref$ignoreRect === void 0 ? false : _ref$ignoreRect,\n _ref$ignoreRectUpdate = _ref.ignoreRectUpdate,\n ignoreRectUpdate = _ref$ignoreRectUpdate === void 0 ? false : _ref$ignoreRectUpdate,\n _ref$mixins = _ref.mixins,\n mixins = _ref$mixins === void 0 ? [] : _ref$mixins;\n return function(\n // each view requires reference to store\n store\n ) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // root element should not be changed\n var element = createElement(tag, 'filepond--' + name, attributes);\n\n // style reference should also not be changed\n var style = window.getComputedStyle(element, null);\n\n // element rectangle\n var rect = updateRect();\n var frameRect = null;\n\n // rest state\n var isResting = false;\n\n // pretty self explanatory\n var childViews = [];\n\n // loaded mixins\n var activeMixins = [];\n\n // references to created children\n var ref = {};\n\n // state used for each instance\n var state = {};\n\n // list of writers that will be called to update this view\n var writers = [\n write, // default writer\n ];\n\n var readers = [\n read, // default reader\n ];\n\n var destroyers = [\n destroy, // default destroy\n ];\n\n // core view methods\n var getElement = function getElement() {\n return element;\n };\n var getChildViews = function getChildViews() {\n return childViews.concat();\n };\n var getReference = function getReference() {\n return ref;\n };\n var createChildView = function createChildView(store) {\n return function(view, props) {\n return view(store, props);\n };\n };\n var getRect = function getRect() {\n if (frameRect) {\n return frameRect;\n }\n frameRect = getViewRect(rect, childViews, [0, 0], [1, 1]);\n return frameRect;\n };\n var getStyle = function getStyle() {\n return style;\n };\n\n /**\n * Read data from DOM\n * @private\n */\n var _read = function _read() {\n frameRect = null;\n\n // read child views\n childViews.forEach(function(child) {\n return child._read();\n });\n\n var shouldUpdate = !(ignoreRectUpdate && rect.width && rect.height);\n if (shouldUpdate) {\n updateRect(rect, element, style);\n }\n\n // readers\n var api = { root: internalAPI, props: props, rect: rect };\n readers.forEach(function(reader) {\n return reader(api);\n });\n };\n\n /**\n * Write data to DOM\n * @private\n */\n var _write = function _write(ts, frameActions, shouldOptimize) {\n // if no actions, we assume that the view is resting\n var resting = frameActions.length === 0;\n\n // writers\n writers.forEach(function(writer) {\n var writerResting = writer({\n props: props,\n root: internalAPI,\n actions: frameActions,\n timestamp: ts,\n shouldOptimize: shouldOptimize,\n });\n\n if (writerResting === false) {\n resting = false;\n }\n });\n\n // run mixins\n activeMixins.forEach(function(mixin) {\n // if one of the mixins is still busy after write operation, we are not resting\n var mixinResting = mixin.write(ts);\n if (mixinResting === false) {\n resting = false;\n }\n });\n\n // updates child views that are currently attached to the DOM\n childViews\n .filter(function(child) {\n return !!child.element.parentNode;\n })\n .forEach(function(child) {\n // if a child view is not resting, we are not resting\n var childResting = child._write(\n ts,\n filterFrameActionsForChild(child, frameActions),\n shouldOptimize\n );\n\n if (!childResting) {\n resting = false;\n }\n });\n\n // append new elements to DOM and update those\n childViews\n //.filter(child => !child.element.parentNode)\n .forEach(function(child, index) {\n // skip\n if (child.element.parentNode) {\n return;\n }\n\n // append to DOM\n internalAPI.appendChild(child.element, index);\n\n // call read (need to know the size of these elements)\n child._read();\n\n // re-call write\n child._write(\n ts,\n filterFrameActionsForChild(child, frameActions),\n shouldOptimize\n );\n\n // we just added somthing to the dom, no rest\n resting = false;\n });\n\n // update resting state\n isResting = resting;\n\n didWriteView({\n props: props,\n root: internalAPI,\n actions: frameActions,\n timestamp: ts,\n });\n\n // let parent know if we are resting\n return resting;\n };\n\n var _destroy = function _destroy() {\n activeMixins.forEach(function(mixin) {\n return mixin.destroy();\n });\n destroyers.forEach(function(destroyer) {\n destroyer({ root: internalAPI, props: props });\n });\n childViews.forEach(function(child) {\n return child._destroy();\n });\n };\n\n // sharedAPI\n var sharedAPIDefinition = {\n element: {\n get: getElement,\n },\n\n style: {\n get: getStyle,\n },\n\n childViews: {\n get: getChildViews,\n },\n };\n\n // private API definition\n var internalAPIDefinition = Object.assign({}, sharedAPIDefinition, {\n rect: {\n get: getRect,\n },\n\n // access to custom children references\n ref: {\n get: getReference,\n },\n\n // dom modifiers\n is: function is(needle) {\n return name === needle;\n },\n appendChild: appendChild(element),\n createChildView: createChildView(store),\n linkView: function linkView(view) {\n childViews.push(view);\n return view;\n },\n unlinkView: function unlinkView(view) {\n childViews.splice(childViews.indexOf(view), 1);\n },\n appendChildView: appendChildView(element, childViews),\n removeChildView: removeChildView(element, childViews),\n registerWriter: function registerWriter(writer) {\n return writers.push(writer);\n },\n registerReader: function registerReader(reader) {\n return readers.push(reader);\n },\n registerDestroyer: function registerDestroyer(destroyer) {\n return destroyers.push(destroyer);\n },\n invalidateLayout: function invalidateLayout() {\n return (element.layoutCalculated = false);\n },\n\n // access to data store\n dispatch: store.dispatch,\n query: store.query,\n });\n\n // public view API methods\n var externalAPIDefinition = {\n element: {\n get: getElement,\n },\n\n childViews: {\n get: getChildViews,\n },\n\n rect: {\n get: getRect,\n },\n\n resting: {\n get: function get() {\n return isResting;\n },\n },\n\n isRectIgnored: function isRectIgnored() {\n return ignoreRect;\n },\n _read: _read,\n _write: _write,\n _destroy: _destroy,\n };\n\n // mixin API methods\n var mixinAPIDefinition = Object.assign({}, sharedAPIDefinition, {\n rect: {\n get: function get() {\n return rect;\n },\n },\n });\n\n // add mixin functionality\n Object.keys(mixins)\n .sort(function(a, b) {\n // move styles to the back of the mixin list (so adjustments of other mixins are applied to the props correctly)\n if (a === 'styles') {\n return 1;\n } else if (b === 'styles') {\n return -1;\n }\n return 0;\n })\n .forEach(function(key) {\n var mixinAPI = Mixins[key]({\n mixinConfig: mixins[key],\n viewProps: props,\n viewState: state,\n viewInternalAPI: internalAPIDefinition,\n viewExternalAPI: externalAPIDefinition,\n view: createObject(mixinAPIDefinition),\n });\n\n if (mixinAPI) {\n activeMixins.push(mixinAPI);\n }\n });\n\n // construct private api\n var internalAPI = createObject(internalAPIDefinition);\n\n // create the view\n create({\n root: internalAPI,\n props: props,\n });\n\n // append created child views to root node\n var childCount = getChildCount(element); // need to know the current child count so appending happens in correct order\n childViews.forEach(function(child, index) {\n internalAPI.appendChild(child.element, childCount + index);\n });\n\n // call did create\n didCreateView(internalAPI);\n\n // expose public api\n return createObject(externalAPIDefinition);\n };\n };\n\n var createPainter = function createPainter(read, write) {\n var fps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 60;\n\n var name = '__framePainter';\n\n // set global painter\n if (window[name]) {\n window[name].readers.push(read);\n window[name].writers.push(write);\n return;\n }\n\n window[name] = {\n readers: [read],\n writers: [write],\n };\n\n var painter = window[name];\n\n var interval = 1000 / fps;\n var last = null;\n var id = null;\n var requestTick = null;\n var cancelTick = null;\n\n var setTimerType = function setTimerType() {\n if (document.hidden) {\n requestTick = function requestTick() {\n return window.setTimeout(function() {\n return tick(performance.now());\n }, interval);\n };\n cancelTick = function cancelTick() {\n return window.clearTimeout(id);\n };\n } else {\n requestTick = function requestTick() {\n return window.requestAnimationFrame(tick);\n };\n cancelTick = function cancelTick() {\n return window.cancelAnimationFrame(id);\n };\n }\n };\n\n document.addEventListener('visibilitychange', function() {\n if (cancelTick) cancelTick();\n setTimerType();\n tick(performance.now());\n });\n\n var tick = function tick(ts) {\n // queue next tick\n id = requestTick(tick);\n\n // limit fps\n if (!last) {\n last = ts;\n }\n\n var delta = ts - last;\n\n if (delta <= interval) {\n // skip frame\n return;\n }\n\n // align next frame\n last = ts - (delta % interval);\n\n // update view\n painter.readers.forEach(function(read) {\n return read();\n });\n painter.writers.forEach(function(write) {\n return write(ts);\n });\n };\n\n setTimerType();\n tick(performance.now());\n\n return {\n pause: function pause() {\n cancelTick(id);\n },\n };\n };\n\n var createRoute = function createRoute(routes, fn) {\n return function(_ref) {\n var root = _ref.root,\n props = _ref.props,\n _ref$actions = _ref.actions,\n actions = _ref$actions === void 0 ? [] : _ref$actions,\n timestamp = _ref.timestamp,\n shouldOptimize = _ref.shouldOptimize;\n actions\n .filter(function(action) {\n return routes[action.type];\n })\n .forEach(function(action) {\n return routes[action.type]({\n root: root,\n props: props,\n action: action.data,\n timestamp: timestamp,\n shouldOptimize: shouldOptimize,\n });\n });\n\n if (fn) {\n fn({\n root: root,\n props: props,\n actions: actions,\n timestamp: timestamp,\n shouldOptimize: shouldOptimize,\n });\n }\n };\n };\n\n var insertBefore = function insertBefore(newNode, referenceNode) {\n return referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n var insertAfter = function insertAfter(newNode, referenceNode) {\n return referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n };\n\n var isArray = function isArray(value) {\n return Array.isArray(value);\n };\n\n var isEmpty = function isEmpty(value) {\n return value == null;\n };\n\n var trim = function trim(str) {\n return str.trim();\n };\n\n var toString = function toString(value) {\n return '' + value;\n };\n\n var toArray = function toArray(value) {\n var splitter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ',';\n if (isEmpty(value)) {\n return [];\n }\n if (isArray(value)) {\n return value;\n }\n return toString(value)\n .split(splitter)\n .map(trim)\n .filter(function(str) {\n return str.length;\n });\n };\n\n var isBoolean = function isBoolean(value) {\n return typeof value === 'boolean';\n };\n\n var toBoolean = function toBoolean(value) {\n return isBoolean(value) ? value : value === 'true';\n };\n\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var toNumber = function toNumber(value) {\n return isNumber(value)\n ? value\n : isString(value)\n ? toString(value).replace(/[a-z]+/gi, '')\n : 0;\n };\n\n var toInt = function toInt(value) {\n return parseInt(toNumber(value), 10);\n };\n\n var toFloat = function toFloat(value) {\n return parseFloat(toNumber(value));\n };\n\n var isInt = function isInt(value) {\n return isNumber(value) && isFinite(value) && Math.floor(value) === value;\n };\n\n var toBytes = function toBytes(value) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n // is in bytes\n if (isInt(value)) {\n return value;\n }\n\n // is natural file size\n var naturalFileSize = toString(value).trim();\n\n // if is value in megabytes\n if (/MB$/i.test(naturalFileSize)) {\n naturalFileSize = naturalFileSize.replace(/MB$i/, '').trim();\n return toInt(naturalFileSize) * base * base;\n }\n\n // if is value in kilobytes\n if (/KB/i.test(naturalFileSize)) {\n naturalFileSize = naturalFileSize.replace(/KB$i/, '').trim();\n return toInt(naturalFileSize) * base;\n }\n\n return toInt(naturalFileSize);\n };\n\n var isFunction = function isFunction(value) {\n return typeof value === 'function';\n };\n\n var toFunctionReference = function toFunctionReference(string) {\n var ref = self;\n var levels = string.split('.');\n var level = null;\n while ((level = levels.shift())) {\n ref = ref[level];\n if (!ref) {\n return null;\n }\n }\n return ref;\n };\n\n var methods = {\n process: 'POST',\n patch: 'PATCH',\n revert: 'DELETE',\n fetch: 'GET',\n restore: 'GET',\n load: 'GET',\n };\n\n var createServerAPI = function createServerAPI(outline) {\n var api = {};\n\n api.url = isString(outline) ? outline : outline.url || '';\n api.timeout = outline.timeout ? parseInt(outline.timeout, 10) : 0;\n api.headers = outline.headers ? outline.headers : {};\n\n forin(methods, function(key) {\n api[key] = createAction(key, outline[key], methods[key], api.timeout, api.headers);\n });\n\n // remove process if no url or process on outline\n api.process = outline.process || isString(outline) || outline.url ? api.process : null;\n\n // special treatment for remove\n api.remove = outline.remove || null;\n\n // remove generic headers from api object\n delete api.headers;\n\n return api;\n };\n\n var createAction = function createAction(name, outline, method, timeout, headers) {\n // is explicitely set to null so disable\n if (outline === null) {\n return null;\n }\n\n // if is custom function, done! Dev handles everything.\n if (typeof outline === 'function') {\n return outline;\n }\n\n // build action object\n var action = {\n url: method === 'GET' || method === 'PATCH' ? '?' + name + '=' : '',\n method: method,\n headers: headers,\n withCredentials: false,\n timeout: timeout,\n onload: null,\n ondata: null,\n onerror: null,\n };\n\n // is a single url\n if (isString(outline)) {\n action.url = outline;\n return action;\n }\n\n // overwrite\n Object.assign(action, outline);\n\n // see if should reformat headers;\n if (isString(action.headers)) {\n var parts = action.headers.split(/:(.+)/);\n action.headers = {\n header: parts[0],\n value: parts[1],\n };\n }\n\n // if is bool withCredentials\n action.withCredentials = toBoolean(action.withCredentials);\n\n return action;\n };\n\n var toServerAPI = function toServerAPI(value) {\n return createServerAPI(value);\n };\n\n var isNull = function isNull(value) {\n return value === null;\n };\n\n var isObject = function isObject(value) {\n return typeof value === 'object' && value !== null;\n };\n\n var isAPI = function isAPI(value) {\n return (\n isObject(value) &&\n isString(value.url) &&\n isObject(value.process) &&\n isObject(value.revert) &&\n isObject(value.restore) &&\n isObject(value.fetch)\n );\n };\n\n var getType = function getType(value) {\n if (isArray(value)) {\n return 'array';\n }\n\n if (isNull(value)) {\n return 'null';\n }\n\n if (isInt(value)) {\n return 'int';\n }\n\n if (/^[0-9]+ ?(?:GB|MB|KB)$/gi.test(value)) {\n return 'bytes';\n }\n\n if (isAPI(value)) {\n return 'api';\n }\n\n return typeof value;\n };\n\n var replaceSingleQuotes = function replaceSingleQuotes(str) {\n return str\n .replace(/{\\s*'/g, '{\"')\n .replace(/'\\s*}/g, '\"}')\n .replace(/'\\s*:/g, '\":')\n .replace(/:\\s*'/g, ':\"')\n .replace(/,\\s*'/g, ',\"')\n .replace(/'\\s*,/g, '\",');\n };\n\n var conversionTable = {\n array: toArray,\n boolean: toBoolean,\n int: function int(value) {\n return getType(value) === 'bytes' ? toBytes(value) : toInt(value);\n },\n number: toFloat,\n float: toFloat,\n bytes: toBytes,\n string: function string(value) {\n return isFunction(value) ? value : toString(value);\n },\n function: function _function(value) {\n return toFunctionReference(value);\n },\n serverapi: toServerAPI,\n object: function object(value) {\n try {\n return JSON.parse(replaceSingleQuotes(value));\n } catch (e) {\n return null;\n }\n },\n };\n\n var convertTo = function convertTo(value, type) {\n return conversionTable[type](value);\n };\n\n var getValueByType = function getValueByType(newValue, defaultValue, valueType) {\n // can always assign default value\n if (newValue === defaultValue) {\n return newValue;\n }\n\n // get the type of the new value\n var newValueType = getType(newValue);\n\n // is valid type?\n if (newValueType !== valueType) {\n // is string input, let's attempt to convert\n var convertedValue = convertTo(newValue, valueType);\n\n // what is the type now\n newValueType = getType(convertedValue);\n\n // no valid conversions found\n if (convertedValue === null) {\n throw 'Trying to assign value with incorrect type to \"' +\n option +\n '\", allowed type: \"' +\n valueType +\n '\"';\n } else {\n newValue = convertedValue;\n }\n }\n\n // assign new value\n return newValue;\n };\n\n var createOption = function createOption(defaultValue, valueType) {\n var currentValue = defaultValue;\n return {\n enumerable: true,\n get: function get() {\n return currentValue;\n },\n set: function set(newValue) {\n currentValue = getValueByType(newValue, defaultValue, valueType);\n },\n };\n };\n\n var createOptions = function createOptions(options) {\n var obj = {};\n forin(options, function(prop) {\n var optionDefinition = options[prop];\n obj[prop] = createOption(optionDefinition[0], optionDefinition[1]);\n });\n return createObject(obj);\n };\n\n var createInitialState = function createInitialState(options) {\n return {\n // model\n items: [],\n\n // timeout used for calling update items\n listUpdateTimeout: null,\n\n // timeout used for stacking metadata updates\n itemUpdateTimeout: null,\n\n // queue of items waiting to be processed\n processingQueue: [],\n\n // options\n options: createOptions(options),\n };\n };\n\n var fromCamels = function fromCamels(string) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-';\n return string\n .split(/(?=[A-Z])/)\n .map(function(part) {\n return part.toLowerCase();\n })\n .join(separator);\n };\n\n var createOptionAPI = function createOptionAPI(store, options) {\n var obj = {};\n forin(options, function(key) {\n obj[key] = {\n get: function get() {\n return store.getState().options[key];\n },\n set: function set(value) {\n store.dispatch('SET_' + fromCamels(key, '_').toUpperCase(), {\n value: value,\n });\n },\n };\n });\n return obj;\n };\n\n var createOptionActions = function createOptionActions(options) {\n return function(dispatch, query, state) {\n var obj = {};\n forin(options, function(key) {\n var name = fromCamels(key, '_').toUpperCase();\n\n obj['SET_' + name] = function(action) {\n try {\n state.options[key] = action.value;\n } catch (e) {} // nope, failed\n\n // we successfully set the value of this option\n dispatch('DID_SET_' + name, { value: state.options[key] });\n };\n });\n return obj;\n };\n };\n\n var createOptionQueries = function createOptionQueries(options) {\n return function(state) {\n var obj = {};\n forin(options, function(key) {\n obj['GET_' + fromCamels(key, '_').toUpperCase()] = function(action) {\n return state.options[key];\n };\n });\n return obj;\n };\n };\n\n var InteractionMethod = {\n API: 1,\n DROP: 2,\n BROWSE: 3,\n PASTE: 4,\n NONE: 5,\n };\n\n var getUniqueId = function getUniqueId() {\n return Math.random()\n .toString(36)\n .substring(2, 11);\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' && Symbol['for'] && 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 !== 'undefined') {\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(gen, resolve, reject, _next, _throw, 'next', value);\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly)\n symbols = symbols.filter(function(sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n }\n\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function(key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function(key) {\n Object.defineProperty(\n target,\n key,\n Object.getOwnPropertyDescriptor(source, key)\n );\n });\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('Super expression must either be null or a function');\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 (right != null && typeof Symbol !== 'undefined' && right[Symbol.hasInstance]) {\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(\"this hasn't been initialised - super() hasn't been called\");\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('Class \"' + name + '\" cannot be referenced in computed property keys.');\n }\n\n var _temporalUndefined = {};\n\n function _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();\n }\n\n function _slicedToArrayLoose(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimitLoose(arr, i) || _nonIterableRest();\n }\n\n function _toArray(arr) {\n return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest();\n }\n\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\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++) 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 (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\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 (var _iterator = arr[Symbol.iterator](), _step; !(_step = _iterator.next()).done; ) {\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 ? descriptor.initializer.call(context) : void 0,\n });\n }\n\n function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {\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 var descriptor = privateMap.get(receiver);\n\n if (!descriptor) {\n throw new TypeError('attempted to get private field on non-instance');\n }\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 var descriptor = privateMap.get(receiver);\n\n if (!descriptor) {\n throw new TypeError('attempted to set private field on non-instance');\n }\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 _classPrivateFieldDestructureSet(receiver, privateMap) {\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 if (!('__destrObj' in descriptor)) {\n descriptor.__destrObj = {\n set value(v) {\n descriptor.set.call(receiver, v);\n },\n };\n }\n\n return descriptor.__destrObj;\n } else {\n if (!descriptor.writable) {\n throw new TypeError('attempted to set read only private field');\n }\n\n return descriptor;\n }\n }\n\n function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {\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(receiver, classConstructor, descriptor, value) {\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(element, placements);\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 (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {\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(elementObject, 'finisher', 'An element descriptor');\n this.disallowProperty(elementObject, 'extras', 'An element descriptor');\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 (placement !== 'static' && placement !== 'prototype' && placement !== 'own') {\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(elementObject, 'elements', 'An element descriptor');\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(elementObject, 'initializer', 'A method descriptor');\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(objectType + \" can't have a .\" + name + ' property.');\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 ? 'static' : def.kind === 'field' ? 'own' : '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 (element.kind === 'method' && (other = newElements.find(isSameElement))) {\n if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {\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 desc !== undefined && !(desc.value === undefined && desc.writable === undefined);\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 arrayRemove = function arrayRemove(arr, index) {\n return arr.splice(index, 1);\n };\n\n var run = function run(cb, sync) {\n if (sync) {\n cb();\n } else if (document.hidden) {\n Promise.resolve(1).then(cb);\n } else {\n setTimeout(cb, 0);\n }\n };\n\n var on = function on() {\n var listeners = [];\n var off = function off(event, cb) {\n arrayRemove(\n listeners,\n listeners.findIndex(function(listener) {\n return listener.event === event && (listener.cb === cb || !cb);\n })\n );\n };\n var _fire = function fire(event, args, sync) {\n listeners\n .filter(function(listener) {\n return listener.event === event;\n })\n .map(function(listener) {\n return listener.cb;\n })\n .forEach(function(cb) {\n return run(function() {\n return cb.apply(void 0, _toConsumableArray(args));\n }, sync);\n });\n };\n return {\n fireSync: function fireSync(event) {\n for (\n var _len = arguments.length,\n args = new Array(_len > 1 ? _len - 1 : 0),\n _key = 1;\n _key < _len;\n _key++\n ) {\n args[_key - 1] = arguments[_key];\n }\n _fire(event, args, true);\n },\n fire: function fire(event) {\n for (\n var _len2 = arguments.length,\n args = new Array(_len2 > 1 ? _len2 - 1 : 0),\n _key2 = 1;\n _key2 < _len2;\n _key2++\n ) {\n args[_key2 - 1] = arguments[_key2];\n }\n _fire(event, args, false);\n },\n on: function on(event, cb) {\n listeners.push({ event: event, cb: cb });\n },\n onOnce: function onOnce(event, _cb) {\n listeners.push({\n event: event,\n cb: function cb() {\n off(event, _cb);\n _cb.apply(void 0, arguments);\n },\n });\n },\n off: off,\n };\n };\n\n var copyObjectPropertiesToObject = function copyObjectPropertiesToObject(\n src,\n target,\n excluded\n ) {\n Object.getOwnPropertyNames(src)\n .filter(function(property) {\n return !excluded.includes(property);\n })\n .forEach(function(key) {\n return Object.defineProperty(\n target,\n key,\n Object.getOwnPropertyDescriptor(src, key)\n );\n });\n };\n\n var PRIVATE = [\n 'fire',\n 'process',\n 'revert',\n 'load',\n 'on',\n 'off',\n 'onOnce',\n 'retryLoad',\n 'extend',\n 'archive',\n 'archived',\n 'release',\n 'released',\n 'requestProcessing',\n 'freeze',\n ];\n\n var createItemAPI = function createItemAPI(item) {\n var api = {};\n copyObjectPropertiesToObject(item, api, PRIVATE);\n return api;\n };\n\n var removeReleasedItems = function removeReleasedItems(items) {\n items.forEach(function(item, index) {\n if (item.released) {\n arrayRemove(items, index);\n }\n });\n };\n\n var ItemStatus = {\n INIT: 1,\n IDLE: 2,\n PROCESSING_QUEUED: 9,\n PROCESSING: 3,\n PROCESSING_COMPLETE: 5,\n PROCESSING_ERROR: 6,\n PROCESSING_REVERT_ERROR: 10,\n LOADING: 7,\n LOAD_ERROR: 8,\n };\n\n var FileOrigin = {\n INPUT: 1,\n LIMBO: 2,\n LOCAL: 3,\n };\n\n var getNonNumeric = function getNonNumeric(str) {\n return /[^0-9]+/.exec(str);\n };\n\n var getDecimalSeparator = function getDecimalSeparator() {\n return getNonNumeric((1.1).toLocaleString())[0];\n };\n\n var getThousandsSeparator = function getThousandsSeparator() {\n // Added for browsers that do not return the thousands separator (happend on native browser Android 4.4.4)\n // We check against the normal toString output and if they're the same return a comma when decimal separator is a dot\n var decimalSeparator = getDecimalSeparator();\n var thousandsStringWithSeparator = (1000.0).toLocaleString();\n var thousandsStringWithoutSeparator = (1000.0).toString();\n if (thousandsStringWithSeparator !== thousandsStringWithoutSeparator) {\n return getNonNumeric(thousandsStringWithSeparator)[0];\n }\n return decimalSeparator === '.' ? ',' : '.';\n };\n\n var Type = {\n BOOLEAN: 'boolean',\n INT: 'int',\n NUMBER: 'number',\n STRING: 'string',\n ARRAY: 'array',\n OBJECT: 'object',\n FUNCTION: 'function',\n ACTION: 'action',\n SERVER_API: 'serverapi',\n REGEX: 'regex',\n };\n\n // all registered filters\n var filters = [];\n\n // loops over matching filters and passes options to each filter, returning the mapped results\n var applyFilterChain = function applyFilterChain(key, value, utils) {\n return new Promise(function(resolve, reject) {\n // find matching filters for this key\n var matchingFilters = filters\n .filter(function(f) {\n return f.key === key;\n })\n .map(function(f) {\n return f.cb;\n });\n\n // resolve now\n if (matchingFilters.length === 0) {\n resolve(value);\n return;\n }\n\n // first filter to kick things of\n var initialFilter = matchingFilters.shift();\n\n // chain filters\n matchingFilters\n .reduce(\n // loop over promises passing value to next promise\n function(current, next) {\n return current.then(function(value) {\n return next(value, utils);\n });\n },\n\n // call initial filter, will return a promise\n initialFilter(value, utils)\n\n // all executed\n )\n .then(function(value) {\n return resolve(value);\n })\n .catch(function(error) {\n return reject(error);\n });\n });\n };\n\n var applyFilters = function applyFilters(key, value, utils) {\n return filters\n .filter(function(f) {\n return f.key === key;\n })\n .map(function(f) {\n return f.cb(value, utils);\n });\n };\n\n // adds a new filter to the list\n var addFilter = function addFilter(key, cb) {\n return filters.push({ key: key, cb: cb });\n };\n\n var extendDefaultOptions = function extendDefaultOptions(additionalOptions) {\n return Object.assign(defaultOptions, additionalOptions);\n };\n\n var getOptions = function getOptions() {\n return Object.assign({}, defaultOptions);\n };\n\n var setOptions = function setOptions(opts) {\n forin(opts, function(key, value) {\n // key does not exist, so this option cannot be set\n if (!defaultOptions[key]) {\n return;\n }\n defaultOptions[key][0] = getValueByType(\n value,\n defaultOptions[key][0],\n defaultOptions[key][1]\n );\n });\n };\n\n // default options on app\n var defaultOptions = {\n // the id to add to the root element\n id: [null, Type.STRING],\n\n // input field name to use\n name: ['filepond', Type.STRING],\n\n // disable the field\n disabled: [false, Type.BOOLEAN],\n\n // classname to put on wrapper\n className: [null, Type.STRING],\n\n // is the field required\n required: [false, Type.BOOLEAN],\n\n // Allow media capture when value is set\n captureMethod: [null, Type.STRING],\n // - \"camera\", \"microphone\" or \"camcorder\",\n // - Does not work with multiple on apple devices\n // - If set, acceptedFileTypes must be made to match with media wildcard \"image/*\", \"audio/*\" or \"video/*\"\n\n // sync `acceptedFileTypes` property with `accept` attribute\n allowSyncAcceptAttribute: [true, Type.BOOLEAN],\n\n // Feature toggles\n allowDrop: [true, Type.BOOLEAN], // Allow dropping of files\n allowBrowse: [true, Type.BOOLEAN], // Allow browsing the file system\n allowPaste: [true, Type.BOOLEAN], // Allow pasting files\n allowMultiple: [false, Type.BOOLEAN], // Allow multiple files (disabled by default, as multiple attribute is also required on input to allow multiple)\n allowReplace: [true, Type.BOOLEAN], // Allow dropping a file on other file to replace it (only works when multiple is set to false)\n allowRevert: [true, Type.BOOLEAN], // Allows user to revert file upload\n allowRemove: [true, Type.BOOLEAN], // Allow user to remove a file\n allowProcess: [true, Type.BOOLEAN], // Allows user to process a file, when set to false, this removes the file upload button\n allowReorder: [false, Type.BOOLEAN], // Allow reordering of files\n allowDirectoriesOnly: [false, Type.BOOLEAN], // Allow only selecting directories with browse (no support for filtering dnd at this point)\n\n // Try store file if `server` not set\n storeAsFile: [false, Type.BOOLEAN],\n\n // Revert mode\n forceRevert: [false, Type.BOOLEAN], // Set to 'force' to require the file to be reverted before removal\n\n // Input requirements\n maxFiles: [null, Type.INT], // Max number of files\n checkValidity: [false, Type.BOOLEAN], // Enables custom validity messages\n\n // Where to put file\n itemInsertLocationFreedom: [true, Type.BOOLEAN], // Set to false to always add items to begin or end of list\n itemInsertLocation: ['before', Type.STRING], // Default index in list to add items that have been dropped at the top of the list\n itemInsertInterval: [75, Type.INT],\n\n // Drag 'n Drop related\n dropOnPage: [false, Type.BOOLEAN], // Allow dropping of files anywhere on page (prevents browser from opening file if dropped outside of Up)\n dropOnElement: [true, Type.BOOLEAN], // Drop needs to happen on element (set to false to also load drops outside of Up)\n dropValidation: [false, Type.BOOLEAN], // Enable or disable validating files on drop\n ignoredFiles: [['.ds_store', 'thumbs.db', 'desktop.ini'], Type.ARRAY],\n\n // Upload related\n instantUpload: [true, Type.BOOLEAN], // Should upload files immediately on drop\n maxParallelUploads: [2, Type.INT], // Maximum files to upload in parallel\n allowMinimumUploadDuration: [true, Type.BOOLEAN], // if true uploads take at least 750 ms, this ensures the user sees the upload progress giving trust the upload actually happened\n\n // Chunks\n chunkUploads: [false, Type.BOOLEAN], // Enable chunked uploads\n chunkForce: [false, Type.BOOLEAN], // Force use of chunk uploads even for files smaller than chunk size\n chunkSize: [5000000, Type.INT], // Size of chunks (5MB default)\n chunkRetryDelays: [[500, 1000, 3000], Type.ARRAY], // Amount of times to retry upload of a chunk when it fails\n\n // The server api end points to use for uploading (see docs)\n server: [null, Type.SERVER_API],\n\n // File size calculations, can set to 1024, this is only used for display, properties use file size base 1000\n fileSizeBase: [1000, Type.INT],\n\n // Labels and status messages\n labelFileSizeBytes: ['bytes', Type.STRING],\n labelFileSizeKilobytes: ['KB', Type.STRING],\n labelFileSizeMegabytes: ['MB', Type.STRING],\n labelFileSizeGigabytes: ['GB', Type.STRING],\n\n labelDecimalSeparator: [getDecimalSeparator(), Type.STRING], // Default is locale separator\n labelThousandsSeparator: [getThousandsSeparator(), Type.STRING], // Default is locale separator\n\n labelIdle: [\n 'Drag & Drop your files or Browse',\n Type.STRING,\n ],\n\n labelInvalidField: ['Field contains invalid files', Type.STRING],\n labelFileWaitingForSize: ['Waiting for size', Type.STRING],\n labelFileSizeNotAvailable: ['Size not available', Type.STRING],\n labelFileCountSingular: ['file in list', Type.STRING],\n labelFileCountPlural: ['files in list', Type.STRING],\n labelFileLoading: ['Loading', Type.STRING],\n labelFileAdded: ['Added', Type.STRING], // assistive only\n labelFileLoadError: ['Error during load', Type.STRING],\n labelFileRemoved: ['Removed', Type.STRING], // assistive only\n labelFileRemoveError: ['Error during remove', Type.STRING],\n labelFileProcessing: ['Uploading', Type.STRING],\n labelFileProcessingComplete: ['Upload complete', Type.STRING],\n labelFileProcessingAborted: ['Upload cancelled', Type.STRING],\n labelFileProcessingError: ['Error during upload', Type.STRING],\n labelFileProcessingRevertError: ['Error during revert', Type.STRING],\n\n labelTapToCancel: ['tap to cancel', Type.STRING],\n labelTapToRetry: ['tap to retry', Type.STRING],\n labelTapToUndo: ['tap to undo', Type.STRING],\n\n labelButtonRemoveItem: ['Remove', Type.STRING],\n labelButtonAbortItemLoad: ['Abort', Type.STRING],\n labelButtonRetryItemLoad: ['Retry', Type.STRING],\n labelButtonAbortItemProcessing: ['Cancel', Type.STRING],\n labelButtonUndoItemProcessing: ['Undo', Type.STRING],\n labelButtonRetryItemProcessing: ['Retry', Type.STRING],\n labelButtonProcessItem: ['Upload', Type.STRING],\n\n // make sure width and height plus viewpox are even numbers so icons are nicely centered\n iconRemove: [\n '',\n Type.STRING,\n ],\n\n iconProcess: [\n '',\n Type.STRING,\n ],\n\n iconRetry: [\n '',\n Type.STRING,\n ],\n\n iconUndo: [\n '',\n Type.STRING,\n ],\n\n iconDone: [\n '',\n Type.STRING,\n ],\n\n // event handlers\n oninit: [null, Type.FUNCTION],\n onwarning: [null, Type.FUNCTION],\n onerror: [null, Type.FUNCTION],\n onactivatefile: [null, Type.FUNCTION],\n oninitfile: [null, Type.FUNCTION],\n onaddfilestart: [null, Type.FUNCTION],\n onaddfileprogress: [null, Type.FUNCTION],\n onaddfile: [null, Type.FUNCTION],\n onprocessfilestart: [null, Type.FUNCTION],\n onprocessfileprogress: [null, Type.FUNCTION],\n onprocessfileabort: [null, Type.FUNCTION],\n onprocessfilerevert: [null, Type.FUNCTION],\n onprocessfile: [null, Type.FUNCTION],\n onprocessfiles: [null, Type.FUNCTION],\n onremovefile: [null, Type.FUNCTION],\n onpreparefile: [null, Type.FUNCTION],\n onupdatefiles: [null, Type.FUNCTION],\n onreorderfiles: [null, Type.FUNCTION],\n\n // hooks\n beforeDropFile: [null, Type.FUNCTION],\n beforeAddFile: [null, Type.FUNCTION],\n beforeRemoveFile: [null, Type.FUNCTION],\n beforePrepareFile: [null, Type.FUNCTION],\n\n // styles\n stylePanelLayout: [null, Type.STRING], // null 'integrated', 'compact', 'circle'\n stylePanelAspectRatio: [null, Type.STRING], // null or '3:2' or 1\n styleItemPanelAspectRatio: [null, Type.STRING],\n styleButtonRemoveItemPosition: ['left', Type.STRING],\n styleButtonProcessItemPosition: ['right', Type.STRING],\n styleLoadIndicatorPosition: ['right', Type.STRING],\n styleProgressIndicatorPosition: ['right', Type.STRING],\n styleButtonRemoveItemAlign: [false, Type.BOOLEAN],\n\n // custom initial files array\n files: [[], Type.ARRAY],\n\n // show support by displaying credits\n credits: [['https://pqina.nl/', 'Powered by PQINA'], Type.ARRAY],\n };\n\n var getItemByQuery = function getItemByQuery(items, query) {\n // just return first index\n if (isEmpty(query)) {\n return items[0] || null;\n }\n\n // query is index\n if (isInt(query)) {\n return items[query] || null;\n }\n\n // if query is item, get the id\n if (typeof query === 'object') {\n query = query.id;\n }\n\n // assume query is a string and return item by id\n return (\n items.find(function(item) {\n return item.id === query;\n }) || null\n );\n };\n\n var getNumericAspectRatioFromString = function getNumericAspectRatioFromString(aspectRatio) {\n if (isEmpty(aspectRatio)) {\n return aspectRatio;\n }\n if (/:/.test(aspectRatio)) {\n var parts = aspectRatio.split(':');\n return parts[1] / parts[0];\n }\n return parseFloat(aspectRatio);\n };\n\n var getActiveItems = function getActiveItems(items) {\n return items.filter(function(item) {\n return !item.archived;\n });\n };\n\n var Status = {\n EMPTY: 0,\n IDLE: 1, // waiting\n ERROR: 2, // a file is in error state\n BUSY: 3, // busy processing or loading\n READY: 4, // all files uploaded\n };\n\n var res = null;\n var canUpdateFileInput = function canUpdateFileInput() {\n if (res === null) {\n try {\n var dataTransfer = new DataTransfer();\n dataTransfer.items.add(new File(['hello world'], 'This_Works.txt'));\n var el = document.createElement('input');\n el.setAttribute('type', 'file');\n el.files = dataTransfer.files;\n res = el.files.length === 1;\n } catch (err) {\n res = false;\n }\n }\n return res;\n };\n\n var ITEM_ERROR = [\n ItemStatus.LOAD_ERROR,\n ItemStatus.PROCESSING_ERROR,\n ItemStatus.PROCESSING_REVERT_ERROR,\n ];\n\n var ITEM_BUSY = [\n ItemStatus.LOADING,\n ItemStatus.PROCESSING,\n ItemStatus.PROCESSING_QUEUED,\n ItemStatus.INIT,\n ];\n\n var ITEM_READY = [ItemStatus.PROCESSING_COMPLETE];\n\n var isItemInErrorState = function isItemInErrorState(item) {\n return ITEM_ERROR.includes(item.status);\n };\n var isItemInBusyState = function isItemInBusyState(item) {\n return ITEM_BUSY.includes(item.status);\n };\n var isItemInReadyState = function isItemInReadyState(item) {\n return ITEM_READY.includes(item.status);\n };\n\n var isAsync = function isAsync(state) {\n return (\n isObject(state.options.server) &&\n (isObject(state.options.server.process) || isFunction(state.options.server.process))\n );\n };\n\n var queries = function queries(state) {\n return {\n GET_STATUS: function GET_STATUS() {\n var items = getActiveItems(state.items);\n var EMPTY = Status.EMPTY,\n ERROR = Status.ERROR,\n BUSY = Status.BUSY,\n IDLE = Status.IDLE,\n READY = Status.READY;\n\n if (items.length === 0) return EMPTY;\n\n if (items.some(isItemInErrorState)) return ERROR;\n\n if (items.some(isItemInBusyState)) return BUSY;\n\n if (items.some(isItemInReadyState)) return READY;\n\n return IDLE;\n },\n\n GET_ITEM: function GET_ITEM(query) {\n return getItemByQuery(state.items, query);\n },\n\n GET_ACTIVE_ITEM: function GET_ACTIVE_ITEM(query) {\n return getItemByQuery(getActiveItems(state.items), query);\n },\n\n GET_ACTIVE_ITEMS: function GET_ACTIVE_ITEMS() {\n return getActiveItems(state.items);\n },\n\n GET_ITEMS: function GET_ITEMS() {\n return state.items;\n },\n\n GET_ITEM_NAME: function GET_ITEM_NAME(query) {\n var item = getItemByQuery(state.items, query);\n return item ? item.filename : null;\n },\n\n GET_ITEM_SIZE: function GET_ITEM_SIZE(query) {\n var item = getItemByQuery(state.items, query);\n return item ? item.fileSize : null;\n },\n\n GET_STYLES: function GET_STYLES() {\n return Object.keys(state.options)\n .filter(function(key) {\n return /^style/.test(key);\n })\n .map(function(option) {\n return {\n name: option,\n value: state.options[option],\n };\n });\n },\n\n GET_PANEL_ASPECT_RATIO: function GET_PANEL_ASPECT_RATIO() {\n var isShapeCircle = /circle/.test(state.options.stylePanelLayout);\n var aspectRatio = isShapeCircle\n ? 1\n : getNumericAspectRatioFromString(state.options.stylePanelAspectRatio);\n return aspectRatio;\n },\n\n GET_ITEM_PANEL_ASPECT_RATIO: function GET_ITEM_PANEL_ASPECT_RATIO() {\n return state.options.styleItemPanelAspectRatio;\n },\n\n GET_ITEMS_BY_STATUS: function GET_ITEMS_BY_STATUS(status) {\n return getActiveItems(state.items).filter(function(item) {\n return item.status === status;\n });\n },\n\n GET_TOTAL_ITEMS: function GET_TOTAL_ITEMS() {\n return getActiveItems(state.items).length;\n },\n\n SHOULD_UPDATE_FILE_INPUT: function SHOULD_UPDATE_FILE_INPUT() {\n return state.options.storeAsFile && canUpdateFileInput() && !isAsync(state);\n },\n\n IS_ASYNC: function IS_ASYNC() {\n return isAsync(state);\n },\n\n GET_FILE_SIZE_LABELS: function GET_FILE_SIZE_LABELS(query) {\n return {\n labelBytes: query('GET_LABEL_FILE_SIZE_BYTES') || undefined,\n labelKilobytes: query('GET_LABEL_FILE_SIZE_KILOBYTES') || undefined,\n labelMegabytes: query('GET_LABEL_FILE_SIZE_MEGABYTES') || undefined,\n labelGigabytes: query('GET_LABEL_FILE_SIZE_GIGABYTES') || undefined,\n };\n },\n };\n };\n\n var hasRoomForItem = function hasRoomForItem(state) {\n var count = getActiveItems(state.items).length;\n\n // if cannot have multiple items, to add one item it should currently not contain items\n if (!state.options.allowMultiple) {\n return count === 0;\n }\n\n // if allows multiple items, we check if a max item count has been set, if not, there's no limit\n var maxFileCount = state.options.maxFiles;\n if (maxFileCount === null) {\n return true;\n }\n\n // we check if the current count is smaller than the max count, if so, another file can still be added\n if (count < maxFileCount) {\n return true;\n }\n\n // no more room for another file\n return false;\n };\n\n var limit = function limit(value, min, max) {\n return Math.max(Math.min(max, value), min);\n };\n\n var arrayInsert = function arrayInsert(arr, index, item) {\n return arr.splice(index, 0, item);\n };\n\n var insertItem = function insertItem(items, item, index) {\n if (isEmpty(item)) {\n return null;\n }\n\n // if index is undefined, append\n if (typeof index === 'undefined') {\n items.push(item);\n return item;\n }\n\n // limit the index to the size of the items array\n index = limit(index, 0, items.length);\n\n // add item to array\n arrayInsert(items, index, item);\n\n // expose\n return item;\n };\n\n var isBase64DataURI = function isBase64DataURI(str) {\n return /^\\s*data:([a-z]+\\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\\-._~:@\\/?%\\s]*)\\s*$/i.test(\n str\n );\n };\n\n var getFilenameFromURL = function getFilenameFromURL(url) {\n return url\n .split('/')\n .pop()\n .split('?')\n .shift();\n };\n\n var getExtensionFromFilename = function getExtensionFromFilename(name) {\n return name.split('.').pop();\n };\n\n var guesstimateExtension = function guesstimateExtension(type) {\n // if no extension supplied, exit here\n if (typeof type !== 'string') {\n return '';\n }\n\n // get subtype\n var subtype = type.split('/').pop();\n\n // is svg subtype\n if (/svg/.test(subtype)) {\n return 'svg';\n }\n\n if (/zip|compressed/.test(subtype)) {\n return 'zip';\n }\n\n if (/plain/.test(subtype)) {\n return 'txt';\n }\n\n if (/msword/.test(subtype)) {\n return 'doc';\n }\n\n // if is valid subtype\n if (/[a-z]+/.test(subtype)) {\n // always use jpg extension\n if (subtype === 'jpeg') {\n return 'jpg';\n }\n\n // return subtype\n return subtype;\n }\n\n return '';\n };\n\n var leftPad = function leftPad(value) {\n var padding = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return (padding + value).slice(-padding.length);\n };\n\n var getDateString = function getDateString() {\n var date = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Date();\n return (\n date.getFullYear() +\n '-' +\n leftPad(date.getMonth() + 1, '00') +\n '-' +\n leftPad(date.getDate(), '00') +\n '_' +\n leftPad(date.getHours(), '00') +\n '-' +\n leftPad(date.getMinutes(), '00') +\n '-' +\n leftPad(date.getSeconds(), '00')\n );\n };\n\n var getFileFromBlob = function getFileFromBlob(blob, filename) {\n var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var extension = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var file =\n typeof type === 'string'\n ? blob.slice(0, blob.size, type)\n : blob.slice(0, blob.size, blob.type);\n file.lastModifiedDate = new Date();\n\n // copy relative path\n if (blob._relativePath) file._relativePath = blob._relativePath;\n\n // if blob has name property, use as filename if no filename supplied\n if (!isString(filename)) {\n filename = getDateString();\n }\n\n // if filename supplied but no extension and filename has extension\n if (filename && extension === null && getExtensionFromFilename(filename)) {\n file.name = filename;\n } else {\n extension = extension || guesstimateExtension(file.type);\n file.name = filename + (extension ? '.' + extension : '');\n }\n\n return file;\n };\n\n var getBlobBuilder = function getBlobBuilder() {\n return (window.BlobBuilder =\n window.BlobBuilder ||\n window.WebKitBlobBuilder ||\n window.MozBlobBuilder ||\n window.MSBlobBuilder);\n };\n\n var createBlob = function createBlob(arrayBuffer, mimeType) {\n var BB = getBlobBuilder();\n\n if (BB) {\n var bb = new BB();\n bb.append(arrayBuffer);\n return bb.getBlob(mimeType);\n }\n\n return new Blob([arrayBuffer], {\n type: mimeType,\n });\n };\n\n var getBlobFromByteStringWithMimeType = function getBlobFromByteStringWithMimeType(\n byteString,\n mimeType\n ) {\n var ab = new ArrayBuffer(byteString.length);\n var ia = new Uint8Array(ab);\n\n for (var i = 0; i < byteString.length; i++) {\n ia[i] = byteString.charCodeAt(i);\n }\n\n return createBlob(ab, mimeType);\n };\n\n var getMimeTypeFromBase64DataURI = function getMimeTypeFromBase64DataURI(dataURI) {\n return (/^data:(.+);/.exec(dataURI) || [])[1] || null;\n };\n\n var getBase64DataFromBase64DataURI = function getBase64DataFromBase64DataURI(dataURI) {\n // get data part of string (remove data:image/jpeg...,)\n var data = dataURI.split(',')[1];\n\n // remove any whitespace as that causes InvalidCharacterError in IE\n return data.replace(/\\s/g, '');\n };\n\n var getByteStringFromBase64DataURI = function getByteStringFromBase64DataURI(dataURI) {\n return atob(getBase64DataFromBase64DataURI(dataURI));\n };\n\n var getBlobFromBase64DataURI = function getBlobFromBase64DataURI(dataURI) {\n var mimeType = getMimeTypeFromBase64DataURI(dataURI);\n var byteString = getByteStringFromBase64DataURI(dataURI);\n\n return getBlobFromByteStringWithMimeType(byteString, mimeType);\n };\n\n var getFileFromBase64DataURI = function getFileFromBase64DataURI(dataURI, filename, extension) {\n return getFileFromBlob(getBlobFromBase64DataURI(dataURI), filename, null, extension);\n };\n\n var getFileNameFromHeader = function getFileNameFromHeader(header) {\n // test if is content disposition header, if not exit\n if (!/^content-disposition:/i.test(header)) return null;\n\n // get filename parts\n var matches = header\n .split(/filename=|filename\\*=.+''/)\n .splice(1)\n .map(function(name) {\n return name.trim().replace(/^[\"']|[;\"']{0,2}$/g, '');\n })\n .filter(function(name) {\n return name.length;\n });\n\n return matches.length ? decodeURI(matches[matches.length - 1]) : null;\n };\n\n var getFileSizeFromHeader = function getFileSizeFromHeader(header) {\n if (/content-length:/i.test(header)) {\n var size = header.match(/[0-9]+/)[0];\n return size ? parseInt(size, 10) : null;\n }\n return null;\n };\n\n var getTranfserIdFromHeader = function getTranfserIdFromHeader(header) {\n if (/x-content-transfer-id:/i.test(header)) {\n var id = (header.split(':')[1] || '').trim();\n return id || null;\n }\n return null;\n };\n\n var getFileInfoFromHeaders = function getFileInfoFromHeaders(headers) {\n var info = {\n source: null,\n name: null,\n size: null,\n };\n\n var rows = headers.split('\\n');\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n try {\n for (\n var _iterator = rows[Symbol.iterator](), _step;\n !(_iteratorNormalCompletion = (_step = _iterator.next()).done);\n _iteratorNormalCompletion = true\n ) {\n var header = _step.value;\n\n var name = getFileNameFromHeader(header);\n if (name) {\n info.name = name;\n continue;\n }\n\n var size = getFileSizeFromHeader(header);\n if (size) {\n info.size = size;\n continue;\n }\n\n var source = getTranfserIdFromHeader(header);\n if (source) {\n info.source = source;\n continue;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return info;\n };\n\n var createFileLoader = function createFileLoader(fetchFn) {\n var state = {\n source: null,\n complete: false,\n progress: 0,\n size: null,\n timestamp: null,\n duration: 0,\n request: null,\n };\n\n var getProgress = function getProgress() {\n return state.progress;\n };\n var abort = function abort() {\n if (state.request && state.request.abort) {\n state.request.abort();\n }\n };\n\n // load source\n var load = function load() {\n // get quick reference\n var source = state.source;\n\n api.fire('init', source);\n\n // Load Files\n if (source instanceof File) {\n api.fire('load', source);\n } else if (source instanceof Blob) {\n // Load blobs, set default name to current date\n api.fire('load', getFileFromBlob(source, source.name));\n } else if (isBase64DataURI(source)) {\n // Load base 64, set default name to current date\n api.fire('load', getFileFromBase64DataURI(source));\n } else {\n // Deal as if is external URL, let's load it!\n loadURL(source);\n }\n };\n\n // loads a url\n var loadURL = function loadURL(url) {\n // is remote url and no fetch method supplied\n if (!fetchFn) {\n api.fire('error', {\n type: 'error',\n body: \"Can't load URL\",\n code: 400,\n });\n\n return;\n }\n\n // set request start\n state.timestamp = Date.now();\n\n // load file\n state.request = fetchFn(\n url,\n function(response) {\n // update duration\n state.duration = Date.now() - state.timestamp;\n\n // done!\n state.complete = true;\n\n // turn blob response into a file\n if (response instanceof Blob) {\n response = getFileFromBlob(\n response,\n response.name || getFilenameFromURL(url)\n );\n }\n\n api.fire(\n 'load',\n // if has received blob, we go with blob, if no response, we return null\n response instanceof Blob ? response : response ? response.body : null\n );\n },\n function(error) {\n api.fire(\n 'error',\n typeof error === 'string'\n ? {\n type: 'error',\n code: 0,\n body: error,\n }\n : error\n );\n },\n function(computable, current, total) {\n // collected some meta data already\n if (total) {\n state.size = total;\n }\n\n // update duration\n state.duration = Date.now() - state.timestamp;\n\n // if we can't compute progress, we're not going to fire progress events\n if (!computable) {\n state.progress = null;\n return;\n }\n\n // update progress percentage\n state.progress = current / total;\n\n // expose\n api.fire('progress', state.progress);\n },\n function() {\n api.fire('abort');\n },\n function(response) {\n var fileinfo = getFileInfoFromHeaders(\n typeof response === 'string' ? response : response.headers\n );\n api.fire('meta', {\n size: state.size || fileinfo.size,\n filename: fileinfo.name,\n source: fileinfo.source,\n });\n }\n );\n };\n\n var api = Object.assign({}, on(), {\n setSource: function setSource(source) {\n return (state.source = source);\n },\n getProgress: getProgress, // file load progress\n abort: abort, // abort file load\n load: load, // start load\n });\n\n return api;\n };\n\n var isGet = function isGet(method) {\n return /GET|HEAD/.test(method);\n };\n\n var sendRequest = function sendRequest(data, url, options) {\n var api = {\n onheaders: function onheaders() {},\n onprogress: function onprogress() {},\n onload: function onload() {},\n ontimeout: function ontimeout() {},\n onerror: function onerror() {},\n onabort: function onabort() {},\n abort: function abort() {\n aborted = true;\n xhr.abort();\n },\n };\n\n // timeout identifier, only used when timeout is defined\n var aborted = false;\n var headersReceived = false;\n\n // set default options\n options = Object.assign(\n {\n method: 'POST',\n headers: {},\n withCredentials: false,\n },\n options\n );\n\n // encode url\n url = encodeURI(url);\n\n // if method is GET, add any received data to url\n\n if (isGet(options.method) && data) {\n url =\n '' +\n url +\n encodeURIComponent(typeof data === 'string' ? data : JSON.stringify(data));\n }\n\n // create request\n var xhr = new XMLHttpRequest();\n\n // progress of load\n var process = isGet(options.method) ? xhr : xhr.upload;\n process.onprogress = function(e) {\n // no progress event when aborted ( onprogress is called once after abort() )\n if (aborted) {\n return;\n }\n\n api.onprogress(e.lengthComputable, e.loaded, e.total);\n };\n\n // tries to get header info to the app as fast as possible\n xhr.onreadystatechange = function() {\n // not interesting in these states ('unsent' and 'openend' as they don't give us any additional info)\n if (xhr.readyState < 2) {\n return;\n }\n\n // no server response\n if (xhr.readyState === 4 && xhr.status === 0) {\n return;\n }\n\n if (headersReceived) {\n return;\n }\n\n headersReceived = true;\n\n // we've probably received some useful data in response headers\n api.onheaders(xhr);\n };\n\n // load successful\n xhr.onload = function() {\n // is classified as valid response\n if (xhr.status >= 200 && xhr.status < 300) {\n api.onload(xhr);\n } else {\n api.onerror(xhr);\n }\n };\n\n // error during load\n xhr.onerror = function() {\n return api.onerror(xhr);\n };\n\n // request aborted\n xhr.onabort = function() {\n aborted = true;\n api.onabort();\n };\n\n // request timeout\n xhr.ontimeout = function() {\n return api.ontimeout(xhr);\n };\n\n // open up open up!\n xhr.open(options.method, url, true);\n\n // set timeout if defined (do it after open so IE11 plays ball)\n if (isInt(options.timeout)) {\n xhr.timeout = options.timeout;\n }\n\n // add headers\n Object.keys(options.headers).forEach(function(key) {\n var value = unescape(encodeURIComponent(options.headers[key]));\n xhr.setRequestHeader(key, value);\n });\n\n // set type of response\n if (options.responseType) {\n xhr.responseType = options.responseType;\n }\n\n // set credentials\n if (options.withCredentials) {\n xhr.withCredentials = true;\n }\n\n // let's send our data\n xhr.send(data);\n\n return api;\n };\n\n var createResponse = function createResponse(type, code, body, headers) {\n return {\n type: type,\n code: code,\n body: body,\n headers: headers,\n };\n };\n\n var createTimeoutResponse = function createTimeoutResponse(cb) {\n return function(xhr) {\n cb(createResponse('error', 0, 'Timeout', xhr.getAllResponseHeaders()));\n };\n };\n\n var hasQS = function hasQS(str) {\n return /\\?/.test(str);\n };\n var buildURL = function buildURL() {\n var url = '';\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n parts.forEach(function(part) {\n url += hasQS(url) && hasQS(part) ? part.replace(/\\?/, '&') : part;\n });\n return url;\n };\n\n var createFetchFunction = function createFetchFunction() {\n var apiUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var action = arguments.length > 1 ? arguments[1] : undefined;\n // custom handler (should also handle file, load, error, progress and abort)\n if (typeof action === 'function') {\n return action;\n }\n\n // no action supplied\n if (!action || !isString(action.url)) {\n return null;\n }\n\n // set onload hanlder\n var onload =\n action.onload ||\n function(res) {\n return res;\n };\n var onerror =\n action.onerror ||\n function(res) {\n return null;\n };\n\n // internal handler\n return function(url, load, error, progress, abort, headers) {\n // do local or remote request based on if the url is external\n var request = sendRequest(\n url,\n buildURL(apiUrl, action.url),\n Object.assign({}, action, {\n responseType: 'blob',\n })\n );\n\n request.onload = function(xhr) {\n // get headers\n var headers = xhr.getAllResponseHeaders();\n\n // get filename\n var filename = getFileInfoFromHeaders(headers).name || getFilenameFromURL(url);\n\n // create response\n load(\n createResponse(\n 'load',\n xhr.status,\n action.method === 'HEAD'\n ? null\n : getFileFromBlob(onload(xhr.response), filename),\n headers\n )\n );\n };\n\n request.onerror = function(xhr) {\n error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.onheaders = function(xhr) {\n headers(createResponse('headers', xhr.status, null, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n request.onprogress = progress;\n request.onabort = abort;\n\n // should return request\n return request;\n };\n };\n\n var ChunkStatus = {\n QUEUED: 0,\n COMPLETE: 1,\n PROCESSING: 2,\n ERROR: 3,\n WAITING: 4,\n };\n\n /*\n function signature:\n (file, metadata, load, error, progress, abort, transfer, options) => {\n return {\n abort:() => {}\n }\n }\n */\n\n // apiUrl, action, name, file, metadata, load, error, progress, abort, transfer, options\n var processFileChunked = function processFileChunked(\n apiUrl,\n action,\n name,\n file,\n metadata,\n load,\n error,\n progress,\n abort,\n transfer,\n options\n ) {\n // all chunks\n var chunks = [];\n var chunkTransferId = options.chunkTransferId,\n chunkServer = options.chunkServer,\n chunkSize = options.chunkSize,\n chunkRetryDelays = options.chunkRetryDelays;\n\n // default state\n var state = {\n serverId: chunkTransferId,\n aborted: false,\n };\n\n // set onload handlers\n var ondata =\n action.ondata ||\n function(fd) {\n return fd;\n };\n var onload =\n action.onload ||\n function(xhr, method) {\n return method === 'HEAD' ? xhr.getResponseHeader('Upload-Offset') : xhr.response;\n };\n var onerror =\n action.onerror ||\n function(res) {\n return null;\n };\n\n // create server hook\n var requestTransferId = function requestTransferId(cb) {\n var formData = new FormData();\n\n // add metadata under same name\n if (isObject(metadata)) formData.append(name, JSON.stringify(metadata));\n\n var headers =\n typeof action.headers === 'function'\n ? action.headers(file, metadata)\n : Object.assign({}, action.headers, {\n 'Upload-Length': file.size,\n });\n\n var requestParams = Object.assign({}, action, {\n headers: headers,\n });\n\n // send request object\n var request = sendRequest(\n ondata(formData),\n buildURL(apiUrl, action.url),\n requestParams\n );\n\n request.onload = function(xhr) {\n return cb(onload(xhr, requestParams.method));\n };\n\n request.onerror = function(xhr) {\n return error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.ontimeout = createTimeoutResponse(error);\n };\n\n var requestTransferOffset = function requestTransferOffset(cb) {\n var requestUrl = buildURL(apiUrl, chunkServer.url, state.serverId);\n\n var headers =\n typeof action.headers === 'function'\n ? action.headers(state.serverId)\n : Object.assign({}, action.headers);\n\n var requestParams = {\n headers: headers,\n method: 'HEAD',\n };\n\n var request = sendRequest(null, requestUrl, requestParams);\n\n request.onload = function(xhr) {\n return cb(onload(xhr, requestParams.method));\n };\n\n request.onerror = function(xhr) {\n return error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.ontimeout = createTimeoutResponse(error);\n };\n\n // create chunks\n var lastChunkIndex = Math.floor(file.size / chunkSize);\n for (var i = 0; i <= lastChunkIndex; i++) {\n var offset = i * chunkSize;\n var data = file.slice(offset, offset + chunkSize, 'application/offset+octet-stream');\n chunks[i] = {\n index: i,\n size: data.size,\n offset: offset,\n data: data,\n file: file,\n progress: 0,\n retries: _toConsumableArray(chunkRetryDelays),\n status: ChunkStatus.QUEUED,\n error: null,\n request: null,\n timeout: null,\n };\n }\n\n var completeProcessingChunks = function completeProcessingChunks() {\n return load(state.serverId);\n };\n\n var canProcessChunk = function canProcessChunk(chunk) {\n return chunk.status === ChunkStatus.QUEUED || chunk.status === ChunkStatus.ERROR;\n };\n\n var processChunk = function processChunk(chunk) {\n // processing is paused, wait here\n if (state.aborted) return;\n\n // get next chunk to process\n chunk = chunk || chunks.find(canProcessChunk);\n\n // no more chunks to process\n if (!chunk) {\n // all done?\n if (\n chunks.every(function(chunk) {\n return chunk.status === ChunkStatus.COMPLETE;\n })\n ) {\n completeProcessingChunks();\n }\n\n // no chunk to handle\n return;\n }\n\n // now processing this chunk\n chunk.status = ChunkStatus.PROCESSING;\n chunk.progress = null;\n\n // allow parsing of formdata\n var ondata =\n chunkServer.ondata ||\n function(fd) {\n return fd;\n };\n var onerror =\n chunkServer.onerror ||\n function(res) {\n return null;\n };\n\n // send request object\n var requestUrl = buildURL(apiUrl, chunkServer.url, state.serverId);\n\n var headers =\n typeof chunkServer.headers === 'function'\n ? chunkServer.headers(chunk)\n : Object.assign({}, chunkServer.headers, {\n 'Content-Type': 'application/offset+octet-stream',\n 'Upload-Offset': chunk.offset,\n 'Upload-Length': file.size,\n 'Upload-Name': file.name,\n });\n\n var request = (chunk.request = sendRequest(\n ondata(chunk.data),\n requestUrl,\n Object.assign({}, chunkServer, {\n headers: headers,\n })\n ));\n\n request.onload = function() {\n // done!\n chunk.status = ChunkStatus.COMPLETE;\n\n // remove request reference\n chunk.request = null;\n\n // start processing more chunks\n processChunks();\n };\n\n request.onprogress = function(lengthComputable, loaded, total) {\n chunk.progress = lengthComputable ? loaded : null;\n updateTotalProgress();\n };\n\n request.onerror = function(xhr) {\n chunk.status = ChunkStatus.ERROR;\n chunk.request = null;\n chunk.error = onerror(xhr.response) || xhr.statusText;\n if (!retryProcessChunk(chunk)) {\n error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n }\n };\n\n request.ontimeout = function(xhr) {\n chunk.status = ChunkStatus.ERROR;\n chunk.request = null;\n if (!retryProcessChunk(chunk)) {\n createTimeoutResponse(error)(xhr);\n }\n };\n\n request.onabort = function() {\n chunk.status = ChunkStatus.QUEUED;\n chunk.request = null;\n abort();\n };\n };\n\n var retryProcessChunk = function retryProcessChunk(chunk) {\n // no more retries left\n if (chunk.retries.length === 0) return false;\n\n // new retry\n chunk.status = ChunkStatus.WAITING;\n clearTimeout(chunk.timeout);\n chunk.timeout = setTimeout(function() {\n processChunk(chunk);\n }, chunk.retries.shift());\n\n // we're going to retry\n return true;\n };\n\n var updateTotalProgress = function updateTotalProgress() {\n // calculate total progress fraction\n var totalBytesTransfered = chunks.reduce(function(p, chunk) {\n if (p === null || chunk.progress === null) return null;\n return p + chunk.progress;\n }, 0);\n\n // can't compute progress\n if (totalBytesTransfered === null) return progress(false, 0, 0);\n\n // calculate progress values\n var totalSize = chunks.reduce(function(total, chunk) {\n return total + chunk.size;\n }, 0);\n\n // can update progress indicator\n progress(true, totalBytesTransfered, totalSize);\n };\n\n // process new chunks\n var processChunks = function processChunks() {\n var totalProcessing = chunks.filter(function(chunk) {\n return chunk.status === ChunkStatus.PROCESSING;\n }).length;\n if (totalProcessing >= 1) return;\n processChunk();\n };\n\n var abortChunks = function abortChunks() {\n chunks.forEach(function(chunk) {\n clearTimeout(chunk.timeout);\n if (chunk.request) {\n chunk.request.abort();\n }\n });\n };\n\n // let's go!\n if (!state.serverId) {\n requestTransferId(function(serverId) {\n // stop here if aborted, might have happened in between request and callback\n if (state.aborted) return;\n\n // pass back to item so we can use it if something goes wrong\n transfer(serverId);\n\n // store internally\n state.serverId = serverId;\n processChunks();\n });\n } else {\n requestTransferOffset(function(offset) {\n // stop here if aborted, might have happened in between request and callback\n if (state.aborted) return;\n\n // mark chunks with lower offset as complete\n chunks\n .filter(function(chunk) {\n return chunk.offset < offset;\n })\n .forEach(function(chunk) {\n chunk.status = ChunkStatus.COMPLETE;\n chunk.progress = chunk.size;\n });\n\n // continue processing\n processChunks();\n });\n }\n\n return {\n abort: function abort() {\n state.aborted = true;\n abortChunks();\n },\n };\n };\n\n /*\n function signature:\n (file, metadata, load, error, progress, abort) => {\n return {\n abort:() => {}\n }\n }\n */\n var createFileProcessorFunction = function createFileProcessorFunction(\n apiUrl,\n action,\n name,\n options\n ) {\n return function(file, metadata, load, error, progress, abort, transfer) {\n // no file received\n if (!file) return;\n\n // if was passed a file, and we can chunk it, exit here\n var canChunkUpload = options.chunkUploads;\n var shouldChunkUpload = canChunkUpload && file.size > options.chunkSize;\n var willChunkUpload = canChunkUpload && (shouldChunkUpload || options.chunkForce);\n if (file instanceof Blob && willChunkUpload)\n return processFileChunked(\n apiUrl,\n action,\n name,\n file,\n metadata,\n load,\n error,\n progress,\n abort,\n transfer,\n options\n );\n\n // set handlers\n var ondata =\n action.ondata ||\n function(fd) {\n return fd;\n };\n var onload =\n action.onload ||\n function(res) {\n return res;\n };\n var onerror =\n action.onerror ||\n function(res) {\n return null;\n };\n\n var headers =\n typeof action.headers === 'function'\n ? action.headers(file, metadata) || {}\n : Object.assign(\n {},\n\n action.headers\n );\n\n var requestParams = Object.assign({}, action, {\n headers: headers,\n });\n\n // create formdata object\n var formData = new FormData();\n\n // add metadata under same name\n if (isObject(metadata)) {\n formData.append(name, JSON.stringify(metadata));\n }\n\n // Turn into an array of objects so no matter what the input, we can handle it the same way\n (file instanceof Blob ? [{ name: null, file: file }] : file).forEach(function(item) {\n formData.append(\n name,\n item.file,\n item.name === null ? item.file.name : '' + item.name + item.file.name\n );\n });\n\n // send request object\n var request = sendRequest(\n ondata(formData),\n buildURL(apiUrl, action.url),\n requestParams\n );\n request.onload = function(xhr) {\n load(\n createResponse(\n 'load',\n xhr.status,\n onload(xhr.response),\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.onerror = function(xhr) {\n error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.ontimeout = createTimeoutResponse(error);\n request.onprogress = progress;\n request.onabort = abort;\n\n // should return request\n return request;\n };\n };\n\n var createProcessorFunction = function createProcessorFunction() {\n var apiUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var name = arguments.length > 2 ? arguments[2] : undefined;\n var options = arguments.length > 3 ? arguments[3] : undefined;\n\n // custom handler (should also handle file, load, error, progress and abort)\n if (typeof action === 'function')\n return function() {\n for (\n var _len = arguments.length, params = new Array(_len), _key = 0;\n _key < _len;\n _key++\n ) {\n params[_key] = arguments[_key];\n }\n return action.apply(void 0, [name].concat(params, [options]));\n };\n\n // no action supplied\n if (!action || !isString(action.url)) return null;\n\n // internal handler\n return createFileProcessorFunction(apiUrl, action, name, options);\n };\n\n /*\n function signature:\n (uniqueFileId, load, error) => { }\n */\n var createRevertFunction = function createRevertFunction() {\n var apiUrl = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var action = arguments.length > 1 ? arguments[1] : undefined;\n // is custom implementation\n if (typeof action === 'function') {\n return action;\n }\n\n // no action supplied, return stub function, interface will work, but file won't be removed\n if (!action || !isString(action.url)) {\n return function(uniqueFileId, load) {\n return load();\n };\n }\n\n // set onload hanlder\n var onload =\n action.onload ||\n function(res) {\n return res;\n };\n var onerror =\n action.onerror ||\n function(res) {\n return null;\n };\n\n // internal implementation\n return function(uniqueFileId, load, error) {\n var request = sendRequest(\n uniqueFileId,\n apiUrl + action.url,\n action // contains method, headers and withCredentials properties\n );\n request.onload = function(xhr) {\n load(\n createResponse(\n 'load',\n xhr.status,\n onload(xhr.response),\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.onerror = function(xhr) {\n error(\n createResponse(\n 'error',\n xhr.status,\n onerror(xhr.response) || xhr.statusText,\n xhr.getAllResponseHeaders()\n )\n );\n };\n\n request.ontimeout = createTimeoutResponse(error);\n\n return request;\n };\n };\n\n var getRandomNumber = function getRandomNumber() {\n var min = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n return min + Math.random() * (max - min);\n };\n\n var createPerceivedPerformanceUpdater = function createPerceivedPerformanceUpdater(cb) {\n var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var tickMin = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 25;\n var tickMax = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 250;\n var timeout = null;\n var start = Date.now();\n\n var tick = function tick() {\n var runtime = Date.now() - start;\n var delay = getRandomNumber(tickMin, tickMax);\n\n if (runtime + delay > duration) {\n delay = runtime + delay - duration;\n }\n\n var progress = runtime / duration;\n if (progress >= 1 || document.hidden) {\n cb(1);\n return;\n }\n\n cb(progress);\n\n timeout = setTimeout(tick, delay);\n };\n\n if (duration > 0) tick();\n\n return {\n clear: function clear() {\n clearTimeout(timeout);\n },\n };\n };\n\n var createFileProcessor = function createFileProcessor(processFn, options) {\n var state = {\n complete: false,\n perceivedProgress: 0,\n perceivedPerformanceUpdater: null,\n progress: null,\n timestamp: null,\n perceivedDuration: 0,\n duration: 0,\n request: null,\n response: null,\n };\n var allowMinimumUploadDuration = options.allowMinimumUploadDuration;\n\n var process = function process(file, metadata) {\n var progressFn = function progressFn() {\n // we've not yet started the real download, stop here\n // the request might not go through, for instance, there might be some server trouble\n // if state.progress is null, the server does not allow computing progress and we show the spinner instead\n if (state.duration === 0 || state.progress === null) return;\n\n // as we're now processing, fire the progress event\n api.fire('progress', api.getProgress());\n };\n\n var completeFn = function completeFn() {\n state.complete = true;\n api.fire('load-perceived', state.response.body);\n };\n\n // let's start processing\n api.fire('start');\n\n // set request start\n state.timestamp = Date.now();\n\n // create perceived performance progress indicator\n state.perceivedPerformanceUpdater = createPerceivedPerformanceUpdater(\n function(progress) {\n state.perceivedProgress = progress;\n state.perceivedDuration = Date.now() - state.timestamp;\n\n progressFn();\n\n // if fake progress is done, and a response has been received,\n // and we've not yet called the complete method\n if (state.response && state.perceivedProgress === 1 && !state.complete) {\n // we done!\n completeFn();\n }\n },\n // random delay as in a list of files you start noticing\n // files uploading at the exact same speed\n allowMinimumUploadDuration ? getRandomNumber(750, 1500) : 0\n );\n\n // remember request so we can abort it later\n state.request = processFn(\n // the file to process\n file,\n\n // the metadata to send along\n metadata,\n\n // callbacks (load, error, progress, abort, transfer)\n // load expects the body to be a server id if\n // you want to make use of revert\n function(response) {\n // we put the response in state so we can access\n // it outside of this method\n state.response = isObject(response)\n ? response\n : {\n type: 'load',\n code: 200,\n body: '' + response,\n headers: {},\n };\n\n // update duration\n state.duration = Date.now() - state.timestamp;\n\n // force progress to 1 as we're now done\n state.progress = 1;\n\n // actual load is done let's share results\n api.fire('load', state.response.body);\n\n // we are really done\n // if perceived progress is 1 ( wait for perceived progress to complete )\n // or if server does not support progress ( null )\n if (\n !allowMinimumUploadDuration ||\n (allowMinimumUploadDuration && state.perceivedProgress === 1)\n ) {\n completeFn();\n }\n },\n\n // error is expected to be an object with type, code, body\n function(error) {\n // cancel updater\n state.perceivedPerformanceUpdater.clear();\n\n // update others about this error\n api.fire(\n 'error',\n isObject(error)\n ? error\n : {\n type: 'error',\n code: 0,\n body: '' + error,\n }\n );\n },\n\n // actual processing progress\n function(computable, current, total) {\n // update actual duration\n state.duration = Date.now() - state.timestamp;\n\n // update actual progress\n state.progress = computable ? current / total : null;\n\n progressFn();\n },\n\n // abort does not expect a value\n function() {\n // stop updater\n state.perceivedPerformanceUpdater.clear();\n\n // fire the abort event so we can switch visuals\n api.fire('abort', state.response ? state.response.body : null);\n },\n\n // register the id for this transfer\n function(transferId) {\n api.fire('transfer', transferId);\n }\n );\n };\n\n var abort = function abort() {\n // no request running, can't abort\n if (!state.request) return;\n\n // stop updater\n state.perceivedPerformanceUpdater.clear();\n\n // abort actual request\n if (state.request.abort) state.request.abort();\n\n // if has response object, we've completed the request\n state.complete = true;\n };\n\n var reset = function reset() {\n abort();\n state.complete = false;\n state.perceivedProgress = 0;\n state.progress = 0;\n state.timestamp = null;\n state.perceivedDuration = 0;\n state.duration = 0;\n state.request = null;\n state.response = null;\n };\n\n var getProgress = allowMinimumUploadDuration\n ? function() {\n return state.progress ? Math.min(state.progress, state.perceivedProgress) : null;\n }\n : function() {\n return state.progress || null;\n };\n\n var getDuration = allowMinimumUploadDuration\n ? function() {\n return Math.min(state.duration, state.perceivedDuration);\n }\n : function() {\n return state.duration;\n };\n\n var api = Object.assign({}, on(), {\n process: process, // start processing file\n abort: abort, // abort active process request\n getProgress: getProgress,\n getDuration: getDuration,\n reset: reset,\n });\n\n return api;\n };\n\n var getFilenameWithoutExtension = function getFilenameWithoutExtension(name) {\n return name.substring(0, name.lastIndexOf('.')) || name;\n };\n\n var createFileStub = function createFileStub(source) {\n var data = [source.name, source.size, source.type];\n\n // is blob or base64, then we need to set the name\n if (source instanceof Blob || isBase64DataURI(source)) {\n data[0] = source.name || getDateString();\n } else if (isBase64DataURI(source)) {\n // if is base64 data uri we need to determine the average size and type\n data[1] = source.length;\n data[2] = getMimeTypeFromBase64DataURI(source);\n } else if (isString(source)) {\n // url\n data[0] = getFilenameFromURL(source);\n data[1] = 0;\n data[2] = 'application/octet-stream';\n }\n\n return {\n name: data[0],\n size: data[1],\n type: data[2],\n };\n };\n\n var isFile = function isFile(value) {\n return !!(value instanceof File || (value instanceof Blob && value.name));\n };\n\n var deepCloneObject = function deepCloneObject(src) {\n if (!isObject(src)) return src;\n var target = isArray(src) ? [] : {};\n for (var key in src) {\n if (!src.hasOwnProperty(key)) continue;\n var v = src[key];\n target[key] = v && isObject(v) ? deepCloneObject(v) : v;\n }\n return target;\n };\n\n var createItem = function createItem() {\n var origin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var serverFileReference =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var file = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n // unique id for this item, is used to identify the item across views\n var id = getUniqueId();\n\n /**\n * Internal item state\n */\n var state = {\n // is archived\n archived: false,\n\n // if is frozen, no longer fires events\n frozen: false,\n\n // removed from view\n released: false,\n\n // original source\n source: null,\n\n // file model reference\n file: file,\n\n // id of file on server\n serverFileReference: serverFileReference,\n\n // id of file transfer on server\n transferId: null,\n\n // is aborted\n processingAborted: false,\n\n // current item status\n status: serverFileReference ? ItemStatus.PROCESSING_COMPLETE : ItemStatus.INIT,\n\n // active processes\n activeLoader: null,\n activeProcessor: null,\n };\n\n // callback used when abort processing is called to link back to the resolve method\n var abortProcessingRequestComplete = null;\n\n /**\n * Externally added item metadata\n */\n var metadata = {};\n\n // item data\n var setStatus = function setStatus(status) {\n return (state.status = status);\n };\n\n // fire event unless the item has been archived\n var fire = function fire(event) {\n if (state.released || state.frozen) return;\n for (\n var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1;\n _key < _len;\n _key++\n ) {\n params[_key - 1] = arguments[_key];\n }\n api.fire.apply(api, [event].concat(params));\n };\n\n // file data\n var getFileExtension = function getFileExtension() {\n return getExtensionFromFilename(state.file.name);\n };\n var getFileType = function getFileType() {\n return state.file.type;\n };\n var getFileSize = function getFileSize() {\n return state.file.size;\n };\n var getFile = function getFile() {\n return state.file;\n };\n\n //\n // logic to load a file\n //\n var load = function load(source, loader, onload) {\n // remember the original item source\n state.source = source;\n\n // source is known\n api.fireSync('init');\n\n // file stub is already there\n if (state.file) {\n api.fireSync('load-skip');\n return;\n }\n\n // set a stub file object while loading the actual data\n state.file = createFileStub(source);\n\n // starts loading\n loader.on('init', function() {\n fire('load-init');\n });\n\n // we'eve received a size indication, let's update the stub\n loader.on('meta', function(meta) {\n // set size of file stub\n state.file.size = meta.size;\n\n // set name of file stub\n state.file.filename = meta.filename;\n\n // if has received source, we done\n if (meta.source) {\n origin = FileOrigin.LIMBO;\n state.serverFileReference = meta.source;\n state.status = ItemStatus.PROCESSING_COMPLETE;\n }\n\n // size has been updated\n fire('load-meta');\n });\n\n // the file is now loading we need to update the progress indicators\n loader.on('progress', function(progress) {\n setStatus(ItemStatus.LOADING);\n\n fire('load-progress', progress);\n });\n\n // an error was thrown while loading the file, we need to switch to error state\n loader.on('error', function(error) {\n setStatus(ItemStatus.LOAD_ERROR);\n\n fire('load-request-error', error);\n });\n\n // user or another process aborted the file load (cannot retry)\n loader.on('abort', function() {\n setStatus(ItemStatus.INIT);\n fire('load-abort');\n });\n\n // done loading\n loader.on('load', function(file) {\n // as we've now loaded the file the loader is no longer required\n state.activeLoader = null;\n\n // called when file has loaded succesfully\n var success = function success(result) {\n // set (possibly) transformed file\n state.file = isFile(result) ? result : state.file;\n\n // file received\n if (origin === FileOrigin.LIMBO && state.serverFileReference) {\n setStatus(ItemStatus.PROCESSING_COMPLETE);\n } else {\n setStatus(ItemStatus.IDLE);\n }\n\n fire('load');\n };\n\n var error = function error(result) {\n // set original file\n state.file = file;\n fire('load-meta');\n\n setStatus(ItemStatus.LOAD_ERROR);\n fire('load-file-error', result);\n };\n\n // if we already have a server file reference, we don't need to call the onload method\n if (state.serverFileReference) {\n success(file);\n return;\n }\n\n // no server id, let's give this file the full treatment\n onload(file, success, error);\n });\n\n // set loader source data\n loader.setSource(source);\n\n // set as active loader\n state.activeLoader = loader;\n\n // load the source data\n loader.load();\n };\n\n var retryLoad = function retryLoad() {\n if (!state.activeLoader) {\n return;\n }\n state.activeLoader.load();\n };\n\n var abortLoad = function abortLoad() {\n if (state.activeLoader) {\n state.activeLoader.abort();\n return;\n }\n setStatus(ItemStatus.INIT);\n fire('load-abort');\n };\n\n //\n // logic to process a file\n //\n var process = function process(processor, onprocess) {\n // processing was aborted\n if (state.processingAborted) {\n state.processingAborted = false;\n return;\n }\n\n // now processing\n setStatus(ItemStatus.PROCESSING);\n\n // reset abort callback\n abortProcessingRequestComplete = null;\n\n // if no file loaded we'll wait for the load event\n if (!(state.file instanceof Blob)) {\n api.on('load', function() {\n process(processor, onprocess);\n });\n return;\n }\n\n // setup processor\n processor.on('load', function(serverFileReference) {\n // need this id to be able to revert the upload\n state.transferId = null;\n state.serverFileReference = serverFileReference;\n });\n\n // register transfer id\n processor.on('transfer', function(transferId) {\n // need this id to be able to revert the upload\n state.transferId = transferId;\n });\n\n processor.on('load-perceived', function(serverFileReference) {\n // no longer required\n state.activeProcessor = null;\n\n // need this id to be able to rever the upload\n state.transferId = null;\n state.serverFileReference = serverFileReference;\n\n setStatus(ItemStatus.PROCESSING_COMPLETE);\n fire('process-complete', serverFileReference);\n });\n\n processor.on('start', function() {\n fire('process-start');\n });\n\n processor.on('error', function(error) {\n state.activeProcessor = null;\n setStatus(ItemStatus.PROCESSING_ERROR);\n fire('process-error', error);\n });\n\n processor.on('abort', function(serverFileReference) {\n state.activeProcessor = null;\n\n // if file was uploaded but processing was cancelled during perceived processor time store file reference\n state.serverFileReference = serverFileReference;\n\n setStatus(ItemStatus.IDLE);\n fire('process-abort');\n\n // has timeout so doesn't interfere with remove action\n if (abortProcessingRequestComplete) {\n abortProcessingRequestComplete();\n }\n });\n\n processor.on('progress', function(progress) {\n fire('process-progress', progress);\n });\n\n // when successfully transformed\n var success = function success(file) {\n // if was archived in the mean time, don't process\n if (state.archived) return;\n\n // process file!\n processor.process(file, Object.assign({}, metadata));\n };\n\n // something went wrong during transform phase\n var error = console.error;\n\n // start processing the file\n onprocess(state.file, success, error);\n\n // set as active processor\n state.activeProcessor = processor;\n };\n\n var requestProcessing = function requestProcessing() {\n state.processingAborted = false;\n setStatus(ItemStatus.PROCESSING_QUEUED);\n };\n\n var abortProcessing = function abortProcessing() {\n return new Promise(function(resolve) {\n if (!state.activeProcessor) {\n state.processingAborted = true;\n\n setStatus(ItemStatus.IDLE);\n fire('process-abort');\n\n resolve();\n return;\n }\n\n abortProcessingRequestComplete = function abortProcessingRequestComplete() {\n resolve();\n };\n\n state.activeProcessor.abort();\n });\n };\n\n //\n // logic to revert a processed file\n //\n var revert = function revert(revertFileUpload, forceRevert) {\n return new Promise(function(resolve, reject) {\n // a completed upload will have a serverFileReference, a failed chunked upload where\n // getting a serverId succeeded but >=0 chunks have been uploaded will have transferId set\n var serverTransferId =\n state.serverFileReference !== null\n ? state.serverFileReference\n : state.transferId;\n\n // cannot revert without a server id for this process\n if (serverTransferId === null) {\n resolve();\n return;\n }\n\n // revert the upload (fire and forget)\n revertFileUpload(\n serverTransferId,\n function() {\n // reset file server id and transfer id as now it's not available on the server\n state.serverFileReference = null;\n state.transferId = null;\n resolve();\n },\n function(error) {\n // don't set error state when reverting is optional, it will always resolve\n if (!forceRevert) {\n resolve();\n return;\n }\n\n // oh no errors\n setStatus(ItemStatus.PROCESSING_REVERT_ERROR);\n fire('process-revert-error');\n reject(error);\n }\n );\n\n // fire event\n setStatus(ItemStatus.IDLE);\n fire('process-revert');\n });\n };\n\n // exposed methods\n var _setMetadata = function setMetadata(key, value, silent) {\n var keys = key.split('.');\n var root = keys[0];\n var last = keys.pop();\n var data = metadata;\n keys.forEach(function(key) {\n return (data = data[key]);\n });\n\n // compare old value against new value, if they're the same, we're not updating\n if (JSON.stringify(data[last]) === JSON.stringify(value)) return;\n\n // update value\n data[last] = value;\n\n // fire update\n fire('metadata-update', {\n key: root,\n value: metadata[root],\n silent: silent,\n });\n };\n\n var getMetadata = function getMetadata(key) {\n return deepCloneObject(key ? metadata[key] : metadata);\n };\n\n var api = Object.assign(\n {\n id: {\n get: function get() {\n return id;\n },\n },\n origin: {\n get: function get() {\n return origin;\n },\n set: function set(value) {\n return (origin = value);\n },\n },\n serverId: {\n get: function get() {\n return state.serverFileReference;\n },\n },\n transferId: {\n get: function get() {\n return state.transferId;\n },\n },\n status: {\n get: function get() {\n return state.status;\n },\n },\n filename: {\n get: function get() {\n return state.file.name;\n },\n },\n filenameWithoutExtension: {\n get: function get() {\n return getFilenameWithoutExtension(state.file.name);\n },\n },\n fileExtension: { get: getFileExtension },\n fileType: { get: getFileType },\n fileSize: { get: getFileSize },\n file: { get: getFile },\n relativePath: {\n get: function get() {\n return state.file._relativePath;\n },\n },\n\n source: {\n get: function get() {\n return state.source;\n },\n },\n\n getMetadata: getMetadata,\n setMetadata: function setMetadata(key, value, silent) {\n if (isObject(key)) {\n var data = key;\n Object.keys(data).forEach(function(key) {\n _setMetadata(key, data[key], value);\n });\n return key;\n }\n _setMetadata(key, value, silent);\n return value;\n },\n\n extend: function extend(name, handler) {\n return (itemAPI[name] = handler);\n },\n\n abortLoad: abortLoad,\n retryLoad: retryLoad,\n requestProcessing: requestProcessing,\n abortProcessing: abortProcessing,\n\n load: load,\n process: process,\n revert: revert,\n },\n\n on(),\n {\n freeze: function freeze() {\n return (state.frozen = true);\n },\n\n release: function release() {\n return (state.released = true);\n },\n released: {\n get: function get() {\n return state.released;\n },\n },\n\n archive: function archive() {\n return (state.archived = true);\n },\n archived: {\n get: function get() {\n return state.archived;\n },\n },\n }\n );\n\n // create it here instead of returning it instantly so we can extend it later\n var itemAPI = createObject(api);\n\n return itemAPI;\n };\n\n var getItemIndexByQuery = function getItemIndexByQuery(items, query) {\n // just return first index\n if (isEmpty(query)) {\n return 0;\n }\n\n // invalid queries\n if (!isString(query)) {\n return -1;\n }\n\n // return item by id (or -1 if not found)\n return items.findIndex(function(item) {\n return item.id === query;\n });\n };\n\n var getItemById = function getItemById(items, itemId) {\n var index = getItemIndexByQuery(items, itemId);\n if (index < 0) {\n return;\n }\n return items[index] || null;\n };\n\n var fetchBlob = function fetchBlob(url, load, error, progress, abort, headers) {\n var request = sendRequest(null, url, {\n method: 'GET',\n responseType: 'blob',\n });\n\n request.onload = function(xhr) {\n // get headers\n var headers = xhr.getAllResponseHeaders();\n\n // get filename\n var filename = getFileInfoFromHeaders(headers).name || getFilenameFromURL(url);\n\n // create response\n load(\n createResponse('load', xhr.status, getFileFromBlob(xhr.response, filename), headers)\n );\n };\n\n request.onerror = function(xhr) {\n error(createResponse('error', xhr.status, xhr.statusText, xhr.getAllResponseHeaders()));\n };\n\n request.onheaders = function(xhr) {\n headers(createResponse('headers', xhr.status, null, xhr.getAllResponseHeaders()));\n };\n\n request.ontimeout = createTimeoutResponse(error);\n request.onprogress = progress;\n request.onabort = abort;\n\n // should return request\n return request;\n };\n\n var getDomainFromURL = function getDomainFromURL(url) {\n if (url.indexOf('//') === 0) {\n url = location.protocol + url;\n }\n return url\n .toLowerCase()\n .replace('blob:', '')\n .replace(/([a-z])?:\\/\\//, '$1')\n .split('/')[0];\n };\n\n var isExternalURL = function isExternalURL(url) {\n return (\n (url.indexOf(':') > -1 || url.indexOf('//') > -1) &&\n getDomainFromURL(location.href) !== getDomainFromURL(url)\n );\n };\n\n var dynamicLabel = function dynamicLabel(label) {\n return function() {\n return isFunction(label) ? label.apply(void 0, arguments) : label;\n };\n };\n\n var isMockItem = function isMockItem(item) {\n return !isFile(item.file);\n };\n\n var listUpdated = function listUpdated(dispatch, state) {\n clearTimeout(state.listUpdateTimeout);\n state.listUpdateTimeout = setTimeout(function() {\n dispatch('DID_UPDATE_ITEMS', { items: getActiveItems(state.items) });\n }, 0);\n };\n\n var optionalPromise = function optionalPromise(fn) {\n for (\n var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1;\n _key < _len;\n _key++\n ) {\n params[_key - 1] = arguments[_key];\n }\n return new Promise(function(resolve) {\n if (!fn) {\n return resolve(true);\n }\n\n var result = fn.apply(void 0, params);\n\n if (result == null) {\n return resolve(true);\n }\n\n if (typeof result === 'boolean') {\n return resolve(result);\n }\n\n if (typeof result.then === 'function') {\n result.then(resolve);\n }\n });\n };\n\n var sortItems = function sortItems(state, compare) {\n state.items.sort(function(a, b) {\n return compare(createItemAPI(a), createItemAPI(b));\n });\n };\n\n // returns item based on state\n var getItemByQueryFromState = function getItemByQueryFromState(state, itemHandler) {\n return function() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var query = _ref.query,\n _ref$success = _ref.success,\n success = _ref$success === void 0 ? function() {} : _ref$success,\n _ref$failure = _ref.failure,\n failure = _ref$failure === void 0 ? function() {} : _ref$failure,\n options = _objectWithoutProperties(_ref, ['query', 'success', 'failure']);\n var item = getItemByQuery(state.items, query);\n if (!item) {\n failure({\n error: createResponse('error', 0, 'Item not found'),\n file: null,\n });\n\n return;\n }\n itemHandler(item, success, failure, options || {});\n };\n };\n\n var actions = function actions(dispatch, query, state) {\n return {\n /**\n * Aborts all ongoing processes\n */\n ABORT_ALL: function ABORT_ALL() {\n getActiveItems(state.items).forEach(function(item) {\n item.freeze();\n item.abortLoad();\n item.abortProcessing();\n });\n },\n\n /**\n * Sets initial files\n */\n DID_SET_FILES: function DID_SET_FILES(_ref2) {\n var _ref2$value = _ref2.value,\n value = _ref2$value === void 0 ? [] : _ref2$value;\n // map values to file objects\n var files = value.map(function(file) {\n return {\n source: file.source ? file.source : file,\n options: file.options,\n };\n });\n\n // loop over files, if file is in list, leave it be, if not, remove\n // test if items should be moved\n var activeItems = getActiveItems(state.items);\n\n activeItems.forEach(function(item) {\n // if item not is in new value, remove\n if (\n !files.find(function(file) {\n return file.source === item.source || file.source === item.file;\n })\n ) {\n dispatch('REMOVE_ITEM', { query: item, remove: false });\n }\n });\n\n // add new files\n activeItems = getActiveItems(state.items);\n files.forEach(function(file, index) {\n // if file is already in list\n if (\n activeItems.find(function(item) {\n return item.source === file.source || item.file === file.source;\n })\n )\n return;\n\n // not in list, add\n dispatch(\n 'ADD_ITEM',\n Object.assign({}, file, {\n interactionMethod: InteractionMethod.NONE,\n index: index,\n })\n );\n });\n },\n\n DID_UPDATE_ITEM_METADATA: function DID_UPDATE_ITEM_METADATA(_ref3) {\n var id = _ref3.id,\n action = _ref3.action,\n change = _ref3.change;\n // don't do anything\n if (change.silent) return;\n\n // if is called multiple times in close succession we combined all calls together to save resources\n clearTimeout(state.itemUpdateTimeout);\n state.itemUpdateTimeout = setTimeout(function() {\n var item = getItemById(state.items, id);\n\n // only revert and attempt to upload when we're uploading to a server\n if (!query('IS_ASYNC')) {\n // should we update the output data\n applyFilterChain('SHOULD_PREPARE_OUTPUT', false, {\n item: item,\n query: query,\n action: action,\n change: change,\n }).then(function(shouldPrepareOutput) {\n // plugins determined the output data should be prepared (or not), can be adjusted with beforePrepareOutput hook\n var beforePrepareFile = query('GET_BEFORE_PREPARE_FILE');\n if (beforePrepareFile)\n shouldPrepareOutput = beforePrepareFile(item, shouldPrepareOutput);\n\n if (!shouldPrepareOutput) return;\n\n dispatch(\n 'REQUEST_PREPARE_OUTPUT',\n {\n query: id,\n item: item,\n success: function success(file) {\n dispatch('DID_PREPARE_OUTPUT', { id: id, file: file });\n },\n },\n\n true\n );\n });\n\n return;\n }\n\n // if is local item we need to enable upload button so change can be propagated to server\n if (item.origin === FileOrigin.LOCAL) {\n dispatch('DID_LOAD_ITEM', {\n id: item.id,\n error: null,\n serverFileReference: item.source,\n });\n }\n\n // for async scenarios\n var upload = function upload() {\n // we push this forward a bit so the interface is updated correctly\n setTimeout(function() {\n dispatch('REQUEST_ITEM_PROCESSING', { query: id });\n }, 32);\n };\n\n var revert = function revert(doUpload) {\n item.revert(\n createRevertFunction(\n state.options.server.url,\n state.options.server.revert\n ),\n query('GET_FORCE_REVERT')\n )\n .then(doUpload ? upload : function() {})\n .catch(function() {});\n };\n\n var abort = function abort(doUpload) {\n item.abortProcessing().then(doUpload ? upload : function() {});\n };\n\n // if we should re-upload the file immediately\n if (item.status === ItemStatus.PROCESSING_COMPLETE) {\n return revert(state.options.instantUpload);\n }\n\n // if currently uploading, cancel upload\n if (item.status === ItemStatus.PROCESSING) {\n return abort(state.options.instantUpload);\n }\n\n if (state.options.instantUpload) {\n upload();\n }\n }, 0);\n },\n\n MOVE_ITEM: function MOVE_ITEM(_ref4) {\n var query = _ref4.query,\n index = _ref4.index;\n var item = getItemByQuery(state.items, query);\n if (!item) return;\n var currentIndex = state.items.indexOf(item);\n index = limit(index, 0, state.items.length - 1);\n if (currentIndex === index) return;\n state.items.splice(index, 0, state.items.splice(currentIndex, 1)[0]);\n },\n\n SORT: function SORT(_ref5) {\n var compare = _ref5.compare;\n sortItems(state, compare);\n dispatch('DID_SORT_ITEMS', {\n items: query('GET_ACTIVE_ITEMS'),\n });\n },\n\n ADD_ITEMS: function ADD_ITEMS(_ref6) {\n var items = _ref6.items,\n index = _ref6.index,\n interactionMethod = _ref6.interactionMethod,\n _ref6$success = _ref6.success,\n success = _ref6$success === void 0 ? function() {} : _ref6$success,\n _ref6$failure = _ref6.failure,\n failure = _ref6$failure === void 0 ? function() {} : _ref6$failure;\n var currentIndex = index;\n\n if (index === -1 || typeof index === 'undefined') {\n var insertLocation = query('GET_ITEM_INSERT_LOCATION');\n var totalItems = query('GET_TOTAL_ITEMS');\n currentIndex = insertLocation === 'before' ? 0 : totalItems;\n }\n\n var ignoredFiles = query('GET_IGNORED_FILES');\n var isValidFile = function isValidFile(source) {\n return isFile(source)\n ? !ignoredFiles.includes(source.name.toLowerCase())\n : !isEmpty(source);\n };\n var validItems = items.filter(isValidFile);\n\n var promises = validItems.map(function(source) {\n return new Promise(function(resolve, reject) {\n dispatch('ADD_ITEM', {\n interactionMethod: interactionMethod,\n source: source.source || source,\n success: resolve,\n failure: reject,\n index: currentIndex++,\n options: source.options || {},\n });\n });\n });\n\n Promise.all(promises)\n .then(success)\n .catch(failure);\n },\n\n /**\n * @param source\n * @param index\n * @param interactionMethod\n */\n ADD_ITEM: function ADD_ITEM(_ref7) {\n var source = _ref7.source,\n _ref7$index = _ref7.index,\n index = _ref7$index === void 0 ? -1 : _ref7$index,\n interactionMethod = _ref7.interactionMethod,\n _ref7$success = _ref7.success,\n success = _ref7$success === void 0 ? function() {} : _ref7$success,\n _ref7$failure = _ref7.failure,\n failure = _ref7$failure === void 0 ? function() {} : _ref7$failure,\n _ref7$options = _ref7.options,\n options = _ref7$options === void 0 ? {} : _ref7$options;\n // if no source supplied\n if (isEmpty(source)) {\n failure({\n error: createResponse('error', 0, 'No source'),\n file: null,\n });\n\n return;\n }\n\n // filter out invalid file items, used to filter dropped directory contents\n if (\n isFile(source) &&\n state.options.ignoredFiles.includes(source.name.toLowerCase())\n ) {\n // fail silently\n return;\n }\n\n // test if there's still room in the list of files\n if (!hasRoomForItem(state)) {\n // if multiple allowed, we can't replace\n // or if only a single item is allowed but we're not allowed to replace it we exit\n if (\n state.options.allowMultiple ||\n (!state.options.allowMultiple && !state.options.allowReplace)\n ) {\n var error = createResponse('warning', 0, 'Max files');\n\n dispatch('DID_THROW_MAX_FILES', {\n source: source,\n error: error,\n });\n\n failure({ error: error, file: null });\n\n return;\n }\n\n // let's replace the item\n // id of first item we're about to remove\n var _item = getActiveItems(state.items)[0];\n\n // if has been processed remove it from the server as well\n if (\n _item.status === ItemStatus.PROCESSING_COMPLETE ||\n _item.status === ItemStatus.PROCESSING_REVERT_ERROR\n ) {\n var forceRevert = query('GET_FORCE_REVERT');\n _item\n .revert(\n createRevertFunction(\n state.options.server.url,\n state.options.server.revert\n ),\n forceRevert\n )\n .then(function() {\n if (!forceRevert) return;\n\n // try to add now\n dispatch('ADD_ITEM', {\n source: source,\n index: index,\n interactionMethod: interactionMethod,\n success: success,\n failure: failure,\n options: options,\n });\n })\n .catch(function() {}); // no need to handle this catch state for now\n\n if (forceRevert) return;\n }\n\n // remove first item as it will be replaced by this item\n dispatch('REMOVE_ITEM', { query: _item.id });\n }\n\n // where did the file originate\n var origin =\n options.type === 'local'\n ? FileOrigin.LOCAL\n : options.type === 'limbo'\n ? FileOrigin.LIMBO\n : FileOrigin.INPUT;\n\n // create a new blank item\n var item = createItem(\n // where did this file come from\n origin,\n\n // an input file never has a server file reference\n origin === FileOrigin.INPUT ? null : source,\n\n // file mock data, if defined\n options.file\n );\n\n // set initial meta data\n Object.keys(options.metadata || {}).forEach(function(key) {\n item.setMetadata(key, options.metadata[key]);\n });\n\n // created the item, let plugins add methods\n applyFilters('DID_CREATE_ITEM', item, { query: query, dispatch: dispatch });\n\n // where to insert new items\n var itemInsertLocation = query('GET_ITEM_INSERT_LOCATION');\n\n // adjust index if is not allowed to pick location\n if (!state.options.itemInsertLocationFreedom) {\n index = itemInsertLocation === 'before' ? -1 : state.items.length;\n }\n\n // add item to list\n insertItem(state.items, item, index);\n\n // sort items in list\n if (isFunction(itemInsertLocation) && source) {\n sortItems(state, itemInsertLocation);\n }\n\n // get a quick reference to the item id\n var id = item.id;\n\n // observe item events\n item.on('init', function() {\n dispatch('DID_INIT_ITEM', { id: id });\n });\n\n item.on('load-init', function() {\n dispatch('DID_START_ITEM_LOAD', { id: id });\n });\n\n item.on('load-meta', function() {\n dispatch('DID_UPDATE_ITEM_META', { id: id });\n });\n\n item.on('load-progress', function(progress) {\n dispatch('DID_UPDATE_ITEM_LOAD_PROGRESS', { id: id, progress: progress });\n });\n\n item.on('load-request-error', function(error) {\n var mainStatus = dynamicLabel(state.options.labelFileLoadError)(error);\n\n // is client error, no way to recover\n if (error.code >= 400 && error.code < 500) {\n dispatch('DID_THROW_ITEM_INVALID', {\n id: id,\n error: error,\n status: {\n main: mainStatus,\n sub: error.code + ' (' + error.body + ')',\n },\n });\n\n // reject the file so can be dealt with through API\n failure({ error: error, file: createItemAPI(item) });\n return;\n }\n\n // is possible server error, so might be possible to retry\n dispatch('DID_THROW_ITEM_LOAD_ERROR', {\n id: id,\n error: error,\n status: {\n main: mainStatus,\n sub: state.options.labelTapToRetry,\n },\n });\n });\n\n item.on('load-file-error', function(error) {\n dispatch('DID_THROW_ITEM_INVALID', {\n id: id,\n error: error.status,\n status: error.status,\n });\n\n failure({ error: error.status, file: createItemAPI(item) });\n });\n\n item.on('load-abort', function() {\n dispatch('REMOVE_ITEM', { query: id });\n });\n\n item.on('load-skip', function() {\n dispatch('COMPLETE_LOAD_ITEM', {\n query: id,\n item: item,\n data: {\n source: source,\n success: success,\n },\n });\n });\n\n item.on('load', function() {\n var handleAdd = function handleAdd(shouldAdd) {\n // no should not add this file\n if (!shouldAdd) {\n dispatch('REMOVE_ITEM', {\n query: id,\n });\n\n return;\n }\n\n // now interested in metadata updates\n item.on('metadata-update', function(change) {\n dispatch('DID_UPDATE_ITEM_METADATA', { id: id, change: change });\n });\n\n // let plugins decide if the output data should be prepared at this point\n // means we'll do this and wait for idle state\n applyFilterChain('SHOULD_PREPARE_OUTPUT', false, {\n item: item,\n query: query,\n }).then(function(shouldPrepareOutput) {\n // plugins determined the output data should be prepared (or not), can be adjusted with beforePrepareOutput hook\n var beforePrepareFile = query('GET_BEFORE_PREPARE_FILE');\n if (beforePrepareFile)\n shouldPrepareOutput = beforePrepareFile(item, shouldPrepareOutput);\n\n var loadComplete = function loadComplete() {\n dispatch('COMPLETE_LOAD_ITEM', {\n query: id,\n item: item,\n data: {\n source: source,\n success: success,\n },\n });\n\n listUpdated(dispatch, state);\n };\n\n // exit\n if (shouldPrepareOutput) {\n // wait for idle state and then run PREPARE_OUTPUT\n dispatch(\n 'REQUEST_PREPARE_OUTPUT',\n {\n query: id,\n item: item,\n success: function success(file) {\n dispatch('DID_PREPARE_OUTPUT', { id: id, file: file });\n loadComplete();\n },\n },\n\n true\n );\n\n return;\n }\n\n loadComplete();\n });\n };\n\n // item loaded, allow plugins to\n // - read data (quickly)\n // - add metadata\n applyFilterChain('DID_LOAD_ITEM', item, { query: query, dispatch: dispatch })\n .then(function() {\n optionalPromise(query('GET_BEFORE_ADD_FILE'), createItemAPI(item)).then(\n handleAdd\n );\n })\n .catch(function(e) {\n if (!e || !e.error || !e.status) return handleAdd(false);\n dispatch('DID_THROW_ITEM_INVALID', {\n id: id,\n error: e.error,\n status: e.status,\n });\n });\n });\n\n item.on('process-start', function() {\n dispatch('DID_START_ITEM_PROCESSING', { id: id });\n });\n\n item.on('process-progress', function(progress) {\n dispatch('DID_UPDATE_ITEM_PROCESS_PROGRESS', { id: id, progress: progress });\n });\n\n item.on('process-error', function(error) {\n dispatch('DID_THROW_ITEM_PROCESSING_ERROR', {\n id: id,\n error: error,\n status: {\n main: dynamicLabel(state.options.labelFileProcessingError)(error),\n sub: state.options.labelTapToRetry,\n },\n });\n });\n\n item.on('process-revert-error', function(error) {\n dispatch('DID_THROW_ITEM_PROCESSING_REVERT_ERROR', {\n id: id,\n error: error,\n status: {\n main: dynamicLabel(state.options.labelFileProcessingRevertError)(error),\n sub: state.options.labelTapToRetry,\n },\n });\n });\n\n item.on('process-complete', function(serverFileReference) {\n dispatch('DID_COMPLETE_ITEM_PROCESSING', {\n id: id,\n error: null,\n serverFileReference: serverFileReference,\n });\n\n dispatch('DID_DEFINE_VALUE', { id: id, value: serverFileReference });\n });\n\n item.on('process-abort', function() {\n dispatch('DID_ABORT_ITEM_PROCESSING', { id: id });\n });\n\n item.on('process-revert', function() {\n dispatch('DID_REVERT_ITEM_PROCESSING', { id: id });\n dispatch('DID_DEFINE_VALUE', { id: id, value: null });\n });\n\n // let view know the item has been inserted\n dispatch('DID_ADD_ITEM', {\n id: id,\n index: index,\n interactionMethod: interactionMethod,\n });\n\n listUpdated(dispatch, state);\n\n // start loading the source\n var _ref8 = state.options.server || {},\n url = _ref8.url,\n load = _ref8.load,\n restore = _ref8.restore,\n fetch = _ref8.fetch;\n\n item.load(\n source,\n\n // this creates a function that loads the file based on the type of file (string, base64, blob, file) and location of file (local, remote, limbo)\n createFileLoader(\n origin === FileOrigin.INPUT\n ? // input, if is remote, see if should use custom fetch, else use default fetchBlob\n isString(source) && isExternalURL(source)\n ? fetch\n ? createFetchFunction(url, fetch)\n : fetchBlob // remote url\n : fetchBlob // try to fetch url\n : // limbo or local\n origin === FileOrigin.LIMBO\n ? createFetchFunction(url, restore) // limbo\n : createFetchFunction(url, load) // local\n ),\n\n // called when the file is loaded so it can be piped through the filters\n function(file, success, error) {\n // let's process the file\n applyFilterChain('LOAD_FILE', file, { query: query })\n .then(success)\n .catch(error);\n }\n );\n },\n\n REQUEST_PREPARE_OUTPUT: function REQUEST_PREPARE_OUTPUT(_ref9) {\n var item = _ref9.item,\n success = _ref9.success,\n _ref9$failure = _ref9.failure,\n failure = _ref9$failure === void 0 ? function() {} : _ref9$failure;\n // error response if item archived\n var err = {\n error: createResponse('error', 0, 'Item not found'),\n file: null,\n };\n\n // don't handle archived items, an item could have been archived (load aborted) while waiting to be prepared\n if (item.archived) return failure(err);\n\n // allow plugins to alter the file data\n applyFilterChain('PREPARE_OUTPUT', item.file, { query: query, item: item }).then(\n function(result) {\n applyFilterChain('COMPLETE_PREPARE_OUTPUT', result, {\n query: query,\n item: item,\n }).then(function(result) {\n // don't handle archived items, an item could have been archived (load aborted) while being prepared\n if (item.archived) return failure(err);\n\n // we done!\n success(result);\n });\n }\n );\n },\n\n COMPLETE_LOAD_ITEM: function COMPLETE_LOAD_ITEM(_ref10) {\n var item = _ref10.item,\n data = _ref10.data;\n var success = data.success,\n source = data.source;\n\n // sort items in list\n var itemInsertLocation = query('GET_ITEM_INSERT_LOCATION');\n if (isFunction(itemInsertLocation) && source) {\n sortItems(state, itemInsertLocation);\n }\n\n // let interface know the item has loaded\n dispatch('DID_LOAD_ITEM', {\n id: item.id,\n error: null,\n serverFileReference: item.origin === FileOrigin.INPUT ? null : source,\n });\n\n // item has been successfully loaded and added to the\n // list of items so can now be safely returned for use\n success(createItemAPI(item));\n\n // if this is a local server file we need to show a different state\n if (item.origin === FileOrigin.LOCAL) {\n dispatch('DID_LOAD_LOCAL_ITEM', { id: item.id });\n return;\n }\n\n // if is a temp server file we prevent async upload call here (as the file is already on the server)\n if (item.origin === FileOrigin.LIMBO) {\n dispatch('DID_COMPLETE_ITEM_PROCESSING', {\n id: item.id,\n error: null,\n serverFileReference: source,\n });\n\n dispatch('DID_DEFINE_VALUE', {\n id: item.id,\n value: item.serverId || source,\n });\n\n return;\n }\n\n // id we are allowed to upload the file immediately, lets do it\n if (query('IS_ASYNC') && state.options.instantUpload) {\n dispatch('REQUEST_ITEM_PROCESSING', { query: item.id });\n }\n },\n\n RETRY_ITEM_LOAD: getItemByQueryFromState(state, function(item) {\n // try loading the source one more time\n item.retryLoad();\n }),\n\n REQUEST_ITEM_PREPARE: getItemByQueryFromState(state, function(item, _success, failure) {\n dispatch(\n 'REQUEST_PREPARE_OUTPUT',\n {\n query: item.id,\n item: item,\n success: function success(file) {\n dispatch('DID_PREPARE_OUTPUT', { id: item.id, file: file });\n _success({\n file: item,\n output: file,\n });\n },\n failure: failure,\n },\n\n true\n );\n }),\n\n REQUEST_ITEM_PROCESSING: getItemByQueryFromState(state, function(\n item,\n success,\n failure\n ) {\n // cannot be queued (or is already queued)\n var itemCanBeQueuedForProcessing =\n // waiting for something\n item.status === ItemStatus.IDLE ||\n // processing went wrong earlier\n item.status === ItemStatus.PROCESSING_ERROR;\n\n // not ready to be processed\n if (!itemCanBeQueuedForProcessing) {\n var processNow = function processNow() {\n return dispatch('REQUEST_ITEM_PROCESSING', {\n query: item,\n success: success,\n failure: failure,\n });\n };\n\n var process = function process() {\n return document.hidden ? processNow() : setTimeout(processNow, 32);\n };\n\n // if already done processing or tried to revert but didn't work, try again\n if (\n item.status === ItemStatus.PROCESSING_COMPLETE ||\n item.status === ItemStatus.PROCESSING_REVERT_ERROR\n ) {\n item.revert(\n createRevertFunction(\n state.options.server.url,\n state.options.server.revert\n ),\n query('GET_FORCE_REVERT')\n )\n .then(process)\n .catch(function() {}); // don't continue with processing if something went wrong\n } else if (item.status === ItemStatus.PROCESSING) {\n item.abortProcessing().then(process);\n }\n\n return;\n }\n\n // already queued for processing\n if (item.status === ItemStatus.PROCESSING_QUEUED) return;\n\n item.requestProcessing();\n\n dispatch('DID_REQUEST_ITEM_PROCESSING', { id: item.id });\n\n dispatch('PROCESS_ITEM', { query: item, success: success, failure: failure }, true);\n }),\n\n PROCESS_ITEM: getItemByQueryFromState(state, function(item, success, failure) {\n var maxParallelUploads = query('GET_MAX_PARALLEL_UPLOADS');\n var totalCurrentUploads = query('GET_ITEMS_BY_STATUS', ItemStatus.PROCESSING)\n .length;\n\n // queue and wait till queue is freed up\n if (totalCurrentUploads === maxParallelUploads) {\n // queue for later processing\n state.processingQueue.push({\n id: item.id,\n success: success,\n failure: failure,\n });\n\n // stop it!\n return;\n }\n\n // if was not queued or is already processing exit here\n if (item.status === ItemStatus.PROCESSING) return;\n\n var processNext = function processNext() {\n // process queueud items\n var queueEntry = state.processingQueue.shift();\n\n // no items left\n if (!queueEntry) return;\n\n // get item reference\n var id = queueEntry.id,\n success = queueEntry.success,\n failure = queueEntry.failure;\n var itemReference = getItemByQuery(state.items, id);\n\n // if item was archived while in queue, jump to next\n if (!itemReference || itemReference.archived) {\n processNext();\n return;\n }\n\n // process queued item\n dispatch(\n 'PROCESS_ITEM',\n { query: id, success: success, failure: failure },\n true\n );\n };\n\n // we done function\n item.onOnce('process-complete', function() {\n success(createItemAPI(item));\n processNext();\n\n // if origin is local, and we're instant uploading, trigger remove of original\n // as revert will remove file from list\n var server = state.options.server;\n var instantUpload = state.options.instantUpload;\n if (\n instantUpload &&\n item.origin === FileOrigin.LOCAL &&\n isFunction(server.remove)\n ) {\n var noop = function noop() {};\n item.origin = FileOrigin.LIMBO;\n state.options.server.remove(item.source, noop, noop);\n }\n\n // All items processed? No errors?\n var allItemsProcessed =\n query('GET_ITEMS_BY_STATUS', ItemStatus.PROCESSING_COMPLETE).length ===\n state.items.length;\n if (allItemsProcessed) {\n dispatch('DID_COMPLETE_ITEM_PROCESSING_ALL');\n }\n });\n\n // we error function\n item.onOnce('process-error', function(error) {\n failure({ error: error, file: createItemAPI(item) });\n processNext();\n });\n\n // start file processing\n var options = state.options;\n item.process(\n createFileProcessor(\n createProcessorFunction(\n options.server.url,\n options.server.process,\n options.name,\n {\n chunkTransferId: item.transferId,\n chunkServer: options.server.patch,\n chunkUploads: options.chunkUploads,\n chunkForce: options.chunkForce,\n chunkSize: options.chunkSize,\n chunkRetryDelays: options.chunkRetryDelays,\n }\n ),\n\n {\n allowMinimumUploadDuration: query('GET_ALLOW_MINIMUM_UPLOAD_DURATION'),\n }\n ),\n\n // called when the file is about to be processed so it can be piped through the transform filters\n function(file, success, error) {\n // allow plugins to alter the file data\n applyFilterChain('PREPARE_OUTPUT', file, { query: query, item: item })\n .then(function(file) {\n dispatch('DID_PREPARE_OUTPUT', { id: item.id, file: file });\n\n success(file);\n })\n .catch(error);\n }\n );\n }),\n\n RETRY_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\n dispatch('REQUEST_ITEM_PROCESSING', { query: item });\n }),\n\n REQUEST_REMOVE_ITEM: getItemByQueryFromState(state, function(item) {\n optionalPromise(query('GET_BEFORE_REMOVE_FILE'), createItemAPI(item)).then(function(\n shouldRemove\n ) {\n if (!shouldRemove) {\n return;\n }\n dispatch('REMOVE_ITEM', { query: item });\n });\n }),\n\n RELEASE_ITEM: getItemByQueryFromState(state, function(item) {\n item.release();\n }),\n\n REMOVE_ITEM: getItemByQueryFromState(state, function(item, success, failure, options) {\n var removeFromView = function removeFromView() {\n // get id reference\n var id = item.id;\n\n // archive the item, this does not remove it from the list\n getItemById(state.items, id).archive();\n\n // tell the view the item has been removed\n dispatch('DID_REMOVE_ITEM', { error: null, id: id, item: item });\n\n // now the list has been modified\n listUpdated(dispatch, state);\n\n // correctly removed\n success(createItemAPI(item));\n };\n\n // if this is a local file and the `server.remove` function has been configured,\n // send source there so dev can remove file from server\n var server = state.options.server;\n if (\n item.origin === FileOrigin.LOCAL &&\n server &&\n isFunction(server.remove) &&\n options.remove !== false\n ) {\n dispatch('DID_START_ITEM_REMOVE', { id: item.id });\n\n server.remove(\n item.source,\n function() {\n return removeFromView();\n },\n function(status) {\n dispatch('DID_THROW_ITEM_REMOVE_ERROR', {\n id: item.id,\n error: createResponse('error', 0, status, null),\n status: {\n main: dynamicLabel(state.options.labelFileRemoveError)(status),\n sub: state.options.labelTapToRetry,\n },\n });\n }\n );\n } else {\n // if is requesting revert and can revert need to call revert handler (not calling request_ because that would also trigger beforeRemoveHook)\n if (\n (options.revert &&\n item.origin !== FileOrigin.LOCAL &&\n item.serverId !== null) ||\n // if chunked uploads are enabled and we're uploading in chunks for this specific file\n // or if the file isn't big enough for chunked uploads but chunkForce is set then call\n // revert before removing from the view...\n (state.options.chunkUploads && item.file.size > state.options.chunkSize) ||\n (state.options.chunkUploads && state.options.chunkForce)\n ) {\n item.revert(\n createRevertFunction(\n state.options.server.url,\n state.options.server.revert\n ),\n query('GET_FORCE_REVERT')\n );\n }\n\n // can now safely remove from view\n removeFromView();\n }\n }),\n\n ABORT_ITEM_LOAD: getItemByQueryFromState(state, function(item) {\n item.abortLoad();\n }),\n\n ABORT_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\n // test if is already processed\n if (item.serverId) {\n dispatch('REVERT_ITEM_PROCESSING', { id: item.id });\n return;\n }\n\n // abort\n item.abortProcessing().then(function() {\n var shouldRemove = state.options.instantUpload;\n if (shouldRemove) {\n dispatch('REMOVE_ITEM', { query: item.id });\n }\n });\n }),\n\n REQUEST_REVERT_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\n // not instant uploading, revert immediately\n if (!state.options.instantUpload) {\n dispatch('REVERT_ITEM_PROCESSING', { query: item });\n return;\n }\n\n // if we're instant uploading the file will also be removed if we revert,\n // so if a before remove file hook is defined we need to run it now\n var handleRevert = function handleRevert(shouldRevert) {\n if (!shouldRevert) return;\n dispatch('REVERT_ITEM_PROCESSING', { query: item });\n };\n\n var fn = query('GET_BEFORE_REMOVE_FILE');\n if (!fn) {\n return handleRevert(true);\n }\n\n var requestRemoveResult = fn(createItemAPI(item));\n if (requestRemoveResult == null) {\n // undefined or null\n return handleRevert(true);\n }\n\n if (typeof requestRemoveResult === 'boolean') {\n return handleRevert(requestRemoveResult);\n }\n\n if (typeof requestRemoveResult.then === 'function') {\n requestRemoveResult.then(handleRevert);\n }\n }),\n\n REVERT_ITEM_PROCESSING: getItemByQueryFromState(state, function(item) {\n item.revert(\n createRevertFunction(state.options.server.url, state.options.server.revert),\n query('GET_FORCE_REVERT')\n )\n .then(function() {\n var shouldRemove = state.options.instantUpload || isMockItem(item);\n if (shouldRemove) {\n dispatch('REMOVE_ITEM', { query: item.id });\n }\n })\n .catch(function() {});\n }),\n\n SET_OPTIONS: function SET_OPTIONS(_ref11) {\n var options = _ref11.options;\n // get all keys passed\n var optionKeys = Object.keys(options);\n\n // get prioritized keyed to include (remove once not in options object)\n var prioritizedOptionKeys = PrioritizedOptions.filter(function(key) {\n return optionKeys.includes(key);\n });\n\n // order the keys, prioritized first, then rest\n var orderedOptionKeys = [].concat(\n _toConsumableArray(prioritizedOptionKeys),\n _toConsumableArray(\n Object.keys(options).filter(function(key) {\n return !prioritizedOptionKeys.includes(key);\n })\n )\n );\n\n // dispatch set event for each option\n orderedOptionKeys.forEach(function(key) {\n dispatch('SET_' + fromCamels(key, '_').toUpperCase(), {\n value: options[key],\n });\n });\n },\n };\n };\n\n var PrioritizedOptions = ['server'];\n\n var formatFilename = function formatFilename(name) {\n return name;\n };\n\n var createElement$1 = function createElement(tagName) {\n return document.createElement(tagName);\n };\n\n var text = function text(node, value) {\n var textNode = node.childNodes[0];\n if (!textNode) {\n textNode = document.createTextNode(value);\n node.appendChild(textNode);\n } else if (value !== textNode.nodeValue) {\n textNode.nodeValue = value;\n }\n };\n\n var polarToCartesian = function polarToCartesian(centerX, centerY, radius, angleInDegrees) {\n var angleInRadians = (((angleInDegrees % 360) - 90) * Math.PI) / 180.0;\n return {\n x: centerX + radius * Math.cos(angleInRadians),\n y: centerY + radius * Math.sin(angleInRadians),\n };\n };\n\n var describeArc = function describeArc(x, y, radius, startAngle, endAngle, arcSweep) {\n var start = polarToCartesian(x, y, radius, endAngle);\n var end = polarToCartesian(x, y, radius, startAngle);\n return ['M', start.x, start.y, 'A', radius, radius, 0, arcSweep, 0, end.x, end.y].join(' ');\n };\n\n var percentageArc = function percentageArc(x, y, radius, from, to) {\n var arcSweep = 1;\n if (to > from && to - from <= 0.5) {\n arcSweep = 0;\n }\n if (from > to && from - to >= 0.5) {\n arcSweep = 0;\n }\n return describeArc(\n x,\n y,\n radius,\n Math.min(0.9999, from) * 360,\n Math.min(0.9999, to) * 360,\n arcSweep\n );\n };\n\n var create = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n // start at 0\n props.spin = false;\n props.progress = 0;\n props.opacity = 0;\n\n // svg\n var svg = createElement('svg');\n root.ref.path = createElement('path', {\n 'stroke-width': 2,\n 'stroke-linecap': 'round',\n });\n\n svg.appendChild(root.ref.path);\n\n root.ref.svg = svg;\n\n root.appendChild(svg);\n };\n\n var write = function write(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n if (props.opacity === 0) {\n return;\n }\n\n if (props.align) {\n root.element.dataset.align = props.align;\n }\n\n // get width of stroke\n var ringStrokeWidth = parseInt(attr(root.ref.path, 'stroke-width'), 10);\n\n // calculate size of ring\n var size = root.rect.element.width * 0.5;\n\n // ring state\n var ringFrom = 0;\n var ringTo = 0;\n\n // now in busy mode\n if (props.spin) {\n ringFrom = 0;\n ringTo = 0.5;\n } else {\n ringFrom = 0;\n ringTo = props.progress;\n }\n\n // get arc path\n var coordinates = percentageArc(size, size, size - ringStrokeWidth, ringFrom, ringTo);\n\n // update progress bar\n attr(root.ref.path, 'd', coordinates);\n\n // hide while contains 0 value\n attr(root.ref.path, 'stroke-opacity', props.spin || props.progress > 0 ? 1 : 0);\n };\n\n var progressIndicator = createView({\n tag: 'div',\n name: 'progress-indicator',\n ignoreRectUpdate: true,\n ignoreRect: true,\n create: create,\n write: write,\n mixins: {\n apis: ['progress', 'spin', 'align'],\n styles: ['opacity'],\n animations: {\n opacity: { type: 'tween', duration: 500 },\n progress: {\n type: 'spring',\n stiffness: 0.95,\n damping: 0.65,\n mass: 10,\n },\n },\n },\n });\n\n var create$1 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.element.innerHTML = (props.icon || '') + ('' + props.label + '');\n\n props.isDisabled = false;\n };\n\n var write$1 = function write(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n var isDisabled = props.isDisabled;\n var shouldDisable = root.query('GET_DISABLED') || props.opacity === 0;\n\n if (shouldDisable && !isDisabled) {\n props.isDisabled = true;\n attr(root.element, 'disabled', 'disabled');\n } else if (!shouldDisable && isDisabled) {\n props.isDisabled = false;\n root.element.removeAttribute('disabled');\n }\n };\n\n var fileActionButton = createView({\n tag: 'button',\n attributes: {\n type: 'button',\n },\n\n ignoreRect: true,\n ignoreRectUpdate: true,\n name: 'file-action-button',\n mixins: {\n apis: ['label'],\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: 'spring',\n scaleY: 'spring',\n translateX: 'spring',\n translateY: 'spring',\n opacity: { type: 'tween', duration: 250 },\n },\n\n listeners: true,\n },\n\n create: create$1,\n write: write$1,\n });\n\n var toNaturalFileSize = function toNaturalFileSize(bytes) {\n var decimalSeparator =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.';\n var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _options$labelBytes = options.labelBytes,\n labelBytes = _options$labelBytes === void 0 ? 'bytes' : _options$labelBytes,\n _options$labelKilobyt = options.labelKilobytes,\n labelKilobytes = _options$labelKilobyt === void 0 ? 'KB' : _options$labelKilobyt,\n _options$labelMegabyt = options.labelMegabytes,\n labelMegabytes = _options$labelMegabyt === void 0 ? 'MB' : _options$labelMegabyt,\n _options$labelGigabyt = options.labelGigabytes,\n labelGigabytes = _options$labelGigabyt === void 0 ? 'GB' : _options$labelGigabyt;\n\n // no negative byte sizes\n bytes = Math.round(Math.abs(bytes));\n\n var KB = base;\n var MB = base * base;\n var GB = base * base * base;\n\n // just bytes\n if (bytes < KB) {\n return bytes + ' ' + labelBytes;\n }\n\n // kilobytes\n if (bytes < MB) {\n return Math.floor(bytes / KB) + ' ' + labelKilobytes;\n }\n\n // megabytes\n if (bytes < GB) {\n return removeDecimalsWhenZero(bytes / MB, 1, decimalSeparator) + ' ' + labelMegabytes;\n }\n\n // gigabytes\n return removeDecimalsWhenZero(bytes / GB, 2, decimalSeparator) + ' ' + labelGigabytes;\n };\n\n var removeDecimalsWhenZero = function removeDecimalsWhenZero(value, decimalCount, separator) {\n return value\n .toFixed(decimalCount)\n .split('.')\n .filter(function(part) {\n return part !== '0';\n })\n .join(separator);\n };\n\n var create$2 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n // filename\n var fileName = createElement$1('span');\n fileName.className = 'filepond--file-info-main';\n // hide for screenreaders\n // the file is contained in a fieldset with legend that contains the filename\n // no need to read it twice\n attr(fileName, 'aria-hidden', 'true');\n root.appendChild(fileName);\n root.ref.fileName = fileName;\n\n // filesize\n var fileSize = createElement$1('span');\n fileSize.className = 'filepond--file-info-sub';\n root.appendChild(fileSize);\n root.ref.fileSize = fileSize;\n\n // set initial values\n text(fileSize, root.query('GET_LABEL_FILE_WAITING_FOR_SIZE'));\n text(fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\n };\n\n var updateFile = function updateFile(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n text(\n root.ref.fileSize,\n toNaturalFileSize(\n root.query('GET_ITEM_SIZE', props.id),\n '.',\n root.query('GET_FILE_SIZE_BASE'),\n root.query('GET_FILE_SIZE_LABELS', root.query)\n )\n );\n\n text(root.ref.fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\n };\n\n var updateFileSizeOnError = function updateFileSizeOnError(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n // if size is available don't fallback to unknown size message\n if (isInt(root.query('GET_ITEM_SIZE', props.id))) {\n updateFile({ root: root, props: props });\n return;\n }\n\n text(root.ref.fileSize, root.query('GET_LABEL_FILE_SIZE_NOT_AVAILABLE'));\n };\n\n var fileInfo = createView({\n name: 'file-info',\n ignoreRect: true,\n ignoreRectUpdate: true,\n write: createRoute({\n DID_LOAD_ITEM: updateFile,\n DID_UPDATE_ITEM_META: updateFile,\n DID_THROW_ITEM_LOAD_ERROR: updateFileSizeOnError,\n DID_THROW_ITEM_INVALID: updateFileSizeOnError,\n }),\n\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\n },\n create: create$2,\n mixins: {\n styles: ['translateX', 'translateY'],\n animations: {\n translateX: 'spring',\n translateY: 'spring',\n },\n },\n });\n\n var toPercentage = function toPercentage(value) {\n return Math.round(value * 100);\n };\n\n var create$3 = function create(_ref) {\n var root = _ref.root;\n\n // main status\n var main = createElement$1('span');\n main.className = 'filepond--file-status-main';\n root.appendChild(main);\n root.ref.main = main;\n\n // sub status\n var sub = createElement$1('span');\n sub.className = 'filepond--file-status-sub';\n root.appendChild(sub);\n root.ref.sub = sub;\n\n didSetItemLoadProgress({ root: root, action: { progress: null } });\n };\n\n var didSetItemLoadProgress = function didSetItemLoadProgress(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n var title =\n action.progress === null\n ? root.query('GET_LABEL_FILE_LOADING')\n : root.query('GET_LABEL_FILE_LOADING') + ' ' + toPercentage(action.progress) + '%';\n\n text(root.ref.main, title);\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\n };\n\n var didSetItemProcessProgress = function didSetItemProcessProgress(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n var title =\n action.progress === null\n ? root.query('GET_LABEL_FILE_PROCESSING')\n : root.query('GET_LABEL_FILE_PROCESSING') +\n ' ' +\n toPercentage(action.progress) +\n '%';\n\n text(root.ref.main, title);\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\n };\n\n var didRequestItemProcessing = function didRequestItemProcessing(_ref4) {\n var root = _ref4.root;\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING'));\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_CANCEL'));\n };\n\n var didAbortItemProcessing = function didAbortItemProcessing(_ref5) {\n var root = _ref5.root;\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING_ABORTED'));\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_RETRY'));\n };\n\n var didCompleteItemProcessing = function didCompleteItemProcessing(_ref6) {\n var root = _ref6.root;\n text(root.ref.main, root.query('GET_LABEL_FILE_PROCESSING_COMPLETE'));\n text(root.ref.sub, root.query('GET_LABEL_TAP_TO_UNDO'));\n };\n\n var clear = function clear(_ref7) {\n var root = _ref7.root;\n text(root.ref.main, '');\n text(root.ref.sub, '');\n };\n\n var error = function error(_ref8) {\n var root = _ref8.root,\n action = _ref8.action;\n text(root.ref.main, action.status.main);\n text(root.ref.sub, action.status.sub);\n };\n\n var fileStatus = createView({\n name: 'file-status',\n ignoreRect: true,\n ignoreRectUpdate: true,\n write: createRoute({\n DID_LOAD_ITEM: clear,\n DID_REVERT_ITEM_PROCESSING: clear,\n DID_REQUEST_ITEM_PROCESSING: didRequestItemProcessing,\n DID_ABORT_ITEM_PROCESSING: didAbortItemProcessing,\n DID_COMPLETE_ITEM_PROCESSING: didCompleteItemProcessing,\n DID_UPDATE_ITEM_PROCESS_PROGRESS: didSetItemProcessProgress,\n DID_UPDATE_ITEM_LOAD_PROGRESS: didSetItemLoadProgress,\n DID_THROW_ITEM_LOAD_ERROR: error,\n DID_THROW_ITEM_INVALID: error,\n DID_THROW_ITEM_PROCESSING_ERROR: error,\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: error,\n DID_THROW_ITEM_REMOVE_ERROR: error,\n }),\n\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\n },\n create: create$3,\n mixins: {\n styles: ['translateX', 'translateY', 'opacity'],\n animations: {\n opacity: { type: 'tween', duration: 250 },\n translateX: 'spring',\n translateY: 'spring',\n },\n },\n });\n\n /**\n * Button definitions for the file view\n */\n\n var Buttons = {\n AbortItemLoad: {\n label: 'GET_LABEL_BUTTON_ABORT_ITEM_LOAD',\n action: 'ABORT_ITEM_LOAD',\n className: 'filepond--action-abort-item-load',\n align: 'LOAD_INDICATOR_POSITION', // right\n },\n RetryItemLoad: {\n label: 'GET_LABEL_BUTTON_RETRY_ITEM_LOAD',\n action: 'RETRY_ITEM_LOAD',\n icon: 'GET_ICON_RETRY',\n className: 'filepond--action-retry-item-load',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n RemoveItem: {\n label: 'GET_LABEL_BUTTON_REMOVE_ITEM',\n action: 'REQUEST_REMOVE_ITEM',\n icon: 'GET_ICON_REMOVE',\n className: 'filepond--action-remove-item',\n align: 'BUTTON_REMOVE_ITEM_POSITION', // left\n },\n ProcessItem: {\n label: 'GET_LABEL_BUTTON_PROCESS_ITEM',\n action: 'REQUEST_ITEM_PROCESSING',\n icon: 'GET_ICON_PROCESS',\n className: 'filepond--action-process-item',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n AbortItemProcessing: {\n label: 'GET_LABEL_BUTTON_ABORT_ITEM_PROCESSING',\n action: 'ABORT_ITEM_PROCESSING',\n className: 'filepond--action-abort-item-processing',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n RetryItemProcessing: {\n label: 'GET_LABEL_BUTTON_RETRY_ITEM_PROCESSING',\n action: 'RETRY_ITEM_PROCESSING',\n icon: 'GET_ICON_RETRY',\n className: 'filepond--action-retry-item-processing',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n RevertItemProcessing: {\n label: 'GET_LABEL_BUTTON_UNDO_ITEM_PROCESSING',\n action: 'REQUEST_REVERT_ITEM_PROCESSING',\n icon: 'GET_ICON_UNDO',\n className: 'filepond--action-revert-item-processing',\n align: 'BUTTON_PROCESS_ITEM_POSITION', // right\n },\n };\n\n // make a list of buttons, we can then remove buttons from this list if they're disabled\n var ButtonKeys = [];\n forin(Buttons, function(key) {\n ButtonKeys.push(key);\n });\n\n var calculateFileInfoOffset = function calculateFileInfoOffset(root) {\n if (getRemoveIndicatorAligment(root) === 'right') return 0;\n var buttonRect = root.ref.buttonRemoveItem.rect.element;\n return buttonRect.hidden ? null : buttonRect.width + buttonRect.left;\n };\n\n var calculateButtonWidth = function calculateButtonWidth(root) {\n var buttonRect = root.ref.buttonAbortItemLoad.rect.element;\n return buttonRect.width;\n };\n\n // Force on full pixels so text stays crips\n var calculateFileVerticalCenterOffset = function calculateFileVerticalCenterOffset(root) {\n return Math.floor(root.ref.buttonRemoveItem.rect.element.height / 4);\n };\n var calculateFileHorizontalCenterOffset = function calculateFileHorizontalCenterOffset(root) {\n return Math.floor(root.ref.buttonRemoveItem.rect.element.left / 2);\n };\n\n var getLoadIndicatorAlignment = function getLoadIndicatorAlignment(root) {\n return root.query('GET_STYLE_LOAD_INDICATOR_POSITION');\n };\n var getProcessIndicatorAlignment = function getProcessIndicatorAlignment(root) {\n return root.query('GET_STYLE_PROGRESS_INDICATOR_POSITION');\n };\n var getRemoveIndicatorAligment = function getRemoveIndicatorAligment(root) {\n return root.query('GET_STYLE_BUTTON_REMOVE_ITEM_POSITION');\n };\n\n var DefaultStyle = {\n buttonAbortItemLoad: { opacity: 0 },\n buttonRetryItemLoad: { opacity: 0 },\n buttonRemoveItem: { opacity: 0 },\n buttonProcessItem: { opacity: 0 },\n buttonAbortItemProcessing: { opacity: 0 },\n buttonRetryItemProcessing: { opacity: 0 },\n buttonRevertItemProcessing: { opacity: 0 },\n loadProgressIndicator: { opacity: 0, align: getLoadIndicatorAlignment },\n processProgressIndicator: { opacity: 0, align: getProcessIndicatorAlignment },\n processingCompleteIndicator: { opacity: 0, scaleX: 0.75, scaleY: 0.75 },\n info: { translateX: 0, translateY: 0, opacity: 0 },\n status: { translateX: 0, translateY: 0, opacity: 0 },\n };\n\n var IdleStyle = {\n buttonRemoveItem: { opacity: 1 },\n buttonProcessItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { translateX: calculateFileInfoOffset },\n };\n\n var ProcessingStyle = {\n buttonAbortItemProcessing: { opacity: 1 },\n processProgressIndicator: { opacity: 1 },\n status: { opacity: 1 },\n };\n\n var StyleMap = {\n DID_THROW_ITEM_INVALID: {\n buttonRemoveItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { translateX: calculateFileInfoOffset, opacity: 1 },\n },\n\n DID_START_ITEM_LOAD: {\n buttonAbortItemLoad: { opacity: 1 },\n loadProgressIndicator: { opacity: 1 },\n status: { opacity: 1 },\n },\n\n DID_THROW_ITEM_LOAD_ERROR: {\n buttonRetryItemLoad: { opacity: 1 },\n buttonRemoveItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { opacity: 1 },\n },\n\n DID_START_ITEM_REMOVE: {\n processProgressIndicator: { opacity: 1, align: getRemoveIndicatorAligment },\n info: { translateX: calculateFileInfoOffset },\n status: { opacity: 0 },\n },\n\n DID_THROW_ITEM_REMOVE_ERROR: {\n processProgressIndicator: { opacity: 0, align: getRemoveIndicatorAligment },\n buttonRemoveItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { opacity: 1, translateX: calculateFileInfoOffset },\n },\n\n DID_LOAD_ITEM: IdleStyle,\n DID_LOAD_LOCAL_ITEM: {\n buttonRemoveItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { translateX: calculateFileInfoOffset },\n },\n\n DID_START_ITEM_PROCESSING: ProcessingStyle,\n DID_REQUEST_ITEM_PROCESSING: ProcessingStyle,\n DID_UPDATE_ITEM_PROCESS_PROGRESS: ProcessingStyle,\n DID_COMPLETE_ITEM_PROCESSING: {\n buttonRevertItemProcessing: { opacity: 1 },\n info: { opacity: 1 },\n status: { opacity: 1 },\n },\n\n DID_THROW_ITEM_PROCESSING_ERROR: {\n buttonRemoveItem: { opacity: 1 },\n buttonRetryItemProcessing: { opacity: 1 },\n status: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n },\n\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: {\n buttonRevertItemProcessing: { opacity: 1 },\n status: { opacity: 1 },\n info: { opacity: 1 },\n },\n\n DID_ABORT_ITEM_PROCESSING: {\n buttonRemoveItem: { opacity: 1 },\n buttonProcessItem: { opacity: 1 },\n info: { translateX: calculateFileInfoOffset },\n status: { opacity: 1 },\n },\n\n DID_REVERT_ITEM_PROCESSING: IdleStyle,\n };\n\n // complete indicator view\n var processingCompleteIndicatorView = createView({\n create: function create(_ref) {\n var root = _ref.root;\n root.element.innerHTML = root.query('GET_ICON_DONE');\n },\n name: 'processing-complete-indicator',\n ignoreRect: true,\n mixins: {\n styles: ['scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: 'spring',\n scaleY: 'spring',\n opacity: { type: 'tween', duration: 250 },\n },\n },\n });\n\n /**\n * Creates the file view\n */\n var create$4 = function create(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n // copy Buttons object\n var LocalButtons = Object.keys(Buttons).reduce(function(prev, curr) {\n prev[curr] = Object.assign({}, Buttons[curr]);\n return prev;\n }, {});\n var id = props.id;\n\n // allow reverting upload\n var allowRevert = root.query('GET_ALLOW_REVERT');\n\n // allow remove file\n var allowRemove = root.query('GET_ALLOW_REMOVE');\n\n // allow processing upload\n var allowProcess = root.query('GET_ALLOW_PROCESS');\n\n // is instant uploading, need this to determine the icon of the undo button\n var instantUpload = root.query('GET_INSTANT_UPLOAD');\n\n // is async set up\n var isAsync = root.query('IS_ASYNC');\n\n // should align remove item buttons\n var alignRemoveItemButton = root.query('GET_STYLE_BUTTON_REMOVE_ITEM_ALIGN');\n\n // enabled buttons array\n var buttonFilter;\n if (isAsync) {\n if (allowProcess && !allowRevert) {\n // only remove revert button\n buttonFilter = function buttonFilter(key) {\n return !/RevertItemProcessing/.test(key);\n };\n } else if (!allowProcess && allowRevert) {\n // only remove process button\n buttonFilter = function buttonFilter(key) {\n return !/ProcessItem|RetryItemProcessing|AbortItemProcessing/.test(key);\n };\n } else if (!allowProcess && !allowRevert) {\n // remove all process buttons\n buttonFilter = function buttonFilter(key) {\n return !/Process/.test(key);\n };\n }\n } else {\n // no process controls available\n buttonFilter = function buttonFilter(key) {\n return !/Process/.test(key);\n };\n }\n\n var enabledButtons = buttonFilter ? ButtonKeys.filter(buttonFilter) : ButtonKeys.concat();\n\n // update icon and label for revert button when instant uploading\n if (instantUpload && allowRevert) {\n LocalButtons['RevertItemProcessing'].label = 'GET_LABEL_BUTTON_REMOVE_ITEM';\n LocalButtons['RevertItemProcessing'].icon = 'GET_ICON_REMOVE';\n }\n\n // remove last button (revert) if not allowed\n if (isAsync && !allowRevert) {\n var map = StyleMap['DID_COMPLETE_ITEM_PROCESSING'];\n map.info.translateX = calculateFileHorizontalCenterOffset;\n map.info.translateY = calculateFileVerticalCenterOffset;\n map.status.translateY = calculateFileVerticalCenterOffset;\n map.processingCompleteIndicator = { opacity: 1, scaleX: 1, scaleY: 1 };\n }\n\n // should align center\n if (isAsync && !allowProcess) {\n [\n 'DID_START_ITEM_PROCESSING',\n 'DID_REQUEST_ITEM_PROCESSING',\n 'DID_UPDATE_ITEM_PROCESS_PROGRESS',\n 'DID_THROW_ITEM_PROCESSING_ERROR',\n ].forEach(function(key) {\n StyleMap[key].status.translateY = calculateFileVerticalCenterOffset;\n });\n StyleMap['DID_THROW_ITEM_PROCESSING_ERROR'].status.translateX = calculateButtonWidth;\n }\n\n // move remove button to right\n if (alignRemoveItemButton && allowRevert) {\n LocalButtons['RevertItemProcessing'].align = 'BUTTON_REMOVE_ITEM_POSITION';\n var _map = StyleMap['DID_COMPLETE_ITEM_PROCESSING'];\n _map.info.translateX = calculateFileInfoOffset;\n _map.status.translateY = calculateFileVerticalCenterOffset;\n _map.processingCompleteIndicator = { opacity: 1, scaleX: 1, scaleY: 1 };\n }\n\n // show/hide RemoveItem button\n if (!allowRemove) {\n LocalButtons['RemoveItem'].disabled = true;\n }\n\n // create the button views\n forin(LocalButtons, function(key, definition) {\n // create button\n var buttonView = root.createChildView(fileActionButton, {\n label: root.query(definition.label),\n icon: root.query(definition.icon),\n opacity: 0,\n });\n\n // should be appended?\n if (enabledButtons.includes(key)) {\n root.appendChildView(buttonView);\n }\n\n // toggle\n if (definition.disabled) {\n buttonView.element.setAttribute('disabled', 'disabled');\n buttonView.element.setAttribute('hidden', 'hidden');\n }\n\n // add position attribute\n buttonView.element.dataset.align = root.query('GET_STYLE_' + definition.align);\n\n // add class\n buttonView.element.classList.add(definition.className);\n\n // handle interactions\n buttonView.on('click', function(e) {\n e.stopPropagation();\n if (definition.disabled) return;\n root.dispatch(definition.action, { query: id });\n });\n\n // set reference\n root.ref['button' + key] = buttonView;\n });\n\n // checkmark\n root.ref.processingCompleteIndicator = root.appendChildView(\n root.createChildView(processingCompleteIndicatorView)\n );\n\n root.ref.processingCompleteIndicator.element.dataset.align = root.query(\n 'GET_STYLE_BUTTON_PROCESS_ITEM_POSITION'\n );\n\n // create file info view\n root.ref.info = root.appendChildView(root.createChildView(fileInfo, { id: id }));\n\n // create file status view\n root.ref.status = root.appendChildView(root.createChildView(fileStatus, { id: id }));\n\n // add progress indicators\n var loadIndicatorView = root.appendChildView(\n root.createChildView(progressIndicator, {\n opacity: 0,\n align: root.query('GET_STYLE_LOAD_INDICATOR_POSITION'),\n })\n );\n\n loadIndicatorView.element.classList.add('filepond--load-indicator');\n root.ref.loadProgressIndicator = loadIndicatorView;\n\n var progressIndicatorView = root.appendChildView(\n root.createChildView(progressIndicator, {\n opacity: 0,\n align: root.query('GET_STYLE_PROGRESS_INDICATOR_POSITION'),\n })\n );\n\n progressIndicatorView.element.classList.add('filepond--process-indicator');\n root.ref.processProgressIndicator = progressIndicatorView;\n\n // current active styles\n root.ref.activeStyles = [];\n };\n\n var write$2 = function write(_ref3) {\n var root = _ref3.root,\n actions = _ref3.actions,\n props = _ref3.props;\n // route actions\n route({ root: root, actions: actions, props: props });\n\n // select last state change action\n var action = actions\n .concat()\n .filter(function(action) {\n return /^DID_/.test(action.type);\n })\n .reverse()\n .find(function(action) {\n return StyleMap[action.type];\n });\n\n // a new action happened, let's get the matching styles\n if (action) {\n // define new active styles\n root.ref.activeStyles = [];\n\n var stylesToApply = StyleMap[action.type];\n forin(DefaultStyle, function(name, defaultStyles) {\n // get reference to control\n var control = root.ref[name];\n\n // loop over all styles for this control\n forin(defaultStyles, function(key, defaultValue) {\n var value =\n stylesToApply[name] && typeof stylesToApply[name][key] !== 'undefined'\n ? stylesToApply[name][key]\n : defaultValue;\n root.ref.activeStyles.push({ control: control, key: key, value: value });\n });\n });\n }\n\n // apply active styles to element\n root.ref.activeStyles.forEach(function(_ref4) {\n var control = _ref4.control,\n key = _ref4.key,\n value = _ref4.value;\n control[key] = typeof value === 'function' ? value(root) : value;\n });\n };\n\n var route = createRoute({\n DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING: function DID_SET_LABEL_BUTTON_ABORT_ITEM_PROCESSING(\n _ref5\n ) {\n var root = _ref5.root,\n action = _ref5.action;\n root.ref.buttonAbortItemProcessing.label = action.value;\n },\n DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD: function DID_SET_LABEL_BUTTON_ABORT_ITEM_LOAD(_ref6) {\n var root = _ref6.root,\n action = _ref6.action;\n root.ref.buttonAbortItemLoad.label = action.value;\n },\n DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL: function DID_SET_LABEL_BUTTON_ABORT_ITEM_REMOVAL(\n _ref7\n ) {\n var root = _ref7.root,\n action = _ref7.action;\n root.ref.buttonAbortItemRemoval.label = action.value;\n },\n DID_REQUEST_ITEM_PROCESSING: function DID_REQUEST_ITEM_PROCESSING(_ref8) {\n var root = _ref8.root;\n root.ref.processProgressIndicator.spin = true;\n root.ref.processProgressIndicator.progress = 0;\n },\n DID_START_ITEM_LOAD: function DID_START_ITEM_LOAD(_ref9) {\n var root = _ref9.root;\n root.ref.loadProgressIndicator.spin = true;\n root.ref.loadProgressIndicator.progress = 0;\n },\n DID_START_ITEM_REMOVE: function DID_START_ITEM_REMOVE(_ref10) {\n var root = _ref10.root;\n root.ref.processProgressIndicator.spin = true;\n root.ref.processProgressIndicator.progress = 0;\n },\n DID_UPDATE_ITEM_LOAD_PROGRESS: function DID_UPDATE_ITEM_LOAD_PROGRESS(_ref11) {\n var root = _ref11.root,\n action = _ref11.action;\n root.ref.loadProgressIndicator.spin = false;\n root.ref.loadProgressIndicator.progress = action.progress;\n },\n DID_UPDATE_ITEM_PROCESS_PROGRESS: function DID_UPDATE_ITEM_PROCESS_PROGRESS(_ref12) {\n var root = _ref12.root,\n action = _ref12.action;\n root.ref.processProgressIndicator.spin = false;\n root.ref.processProgressIndicator.progress = action.progress;\n },\n });\n\n var file = createView({\n create: create$4,\n write: write$2,\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\n },\n name: 'file',\n });\n\n /**\n * Creates the file view\n */\n var create$5 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n\n // filename\n root.ref.fileName = createElement$1('legend');\n root.appendChild(root.ref.fileName);\n\n // file appended\n root.ref.file = root.appendChildView(root.createChildView(file, { id: props.id }));\n\n // data has moved to data.js\n root.ref.data = false;\n };\n\n /**\n * Data storage\n */\n var didLoadItem = function didLoadItem(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n // updates the legend of the fieldset so screenreaders can better group buttons\n text(root.ref.fileName, formatFilename(root.query('GET_ITEM_NAME', props.id)));\n };\n\n var fileWrapper = createView({\n create: create$5,\n ignoreRect: true,\n write: createRoute({\n DID_LOAD_ITEM: didLoadItem,\n }),\n\n didCreateView: function didCreateView(root) {\n applyFilters('CREATE_VIEW', Object.assign({}, root, { view: root }));\n },\n tag: 'fieldset',\n name: 'file-wrapper',\n });\n\n var PANEL_SPRING_PROPS = { type: 'spring', damping: 0.6, mass: 7 };\n\n var create$6 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n [\n {\n name: 'top',\n },\n\n {\n name: 'center',\n props: {\n translateY: null,\n scaleY: null,\n },\n\n mixins: {\n animations: {\n scaleY: PANEL_SPRING_PROPS,\n },\n\n styles: ['translateY', 'scaleY'],\n },\n },\n\n {\n name: 'bottom',\n props: {\n translateY: null,\n },\n\n mixins: {\n animations: {\n translateY: PANEL_SPRING_PROPS,\n },\n\n styles: ['translateY'],\n },\n },\n ].forEach(function(section) {\n createSection(root, section, props.name);\n });\n\n root.element.classList.add('filepond--' + props.name);\n\n root.ref.scalable = null;\n };\n\n var createSection = function createSection(root, section, className) {\n var viewConstructor = createView({\n name: 'panel-' + section.name + ' filepond--' + className,\n mixins: section.mixins,\n ignoreRectUpdate: true,\n });\n\n var view = root.createChildView(viewConstructor, section.props);\n\n root.ref[section.name] = root.appendChildView(view);\n };\n\n var write$3 = function write(_ref2) {\n var root = _ref2.root,\n props = _ref2.props;\n\n // update scalable state\n if (root.ref.scalable === null || props.scalable !== root.ref.scalable) {\n root.ref.scalable = isBoolean(props.scalable) ? props.scalable : true;\n root.element.dataset.scalable = root.ref.scalable;\n }\n\n // no height, can't set\n if (!props.height) return;\n\n // get child rects\n var topRect = root.ref.top.rect.element;\n var bottomRect = root.ref.bottom.rect.element;\n\n // make sure height never is smaller than bottom and top seciton heights combined (will probably never happen, but who knows)\n var height = Math.max(topRect.height + bottomRect.height, props.height);\n\n // offset center part\n root.ref.center.translateY = topRect.height;\n\n // scale center part\n // use math ceil to prevent transparent lines because of rounding errors\n root.ref.center.scaleY = (height - topRect.height - bottomRect.height) / 100;\n\n // offset bottom part\n root.ref.bottom.translateY = height - bottomRect.height;\n };\n\n var panel = createView({\n name: 'panel',\n read: function read(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n return (props.heightCurrent = root.ref.bottom.translateY);\n },\n write: write$3,\n create: create$6,\n ignoreRect: true,\n mixins: {\n apis: ['height', 'heightCurrent', 'scalable'],\n },\n });\n\n var createDragHelper = function createDragHelper(items) {\n var itemIds = items.map(function(item) {\n return item.id;\n });\n var prevIndex = undefined;\n return {\n setIndex: function setIndex(index) {\n prevIndex = index;\n },\n getIndex: function getIndex() {\n return prevIndex;\n },\n getItemIndex: function getItemIndex(item) {\n return itemIds.indexOf(item.id);\n },\n };\n };\n\n var ITEM_TRANSLATE_SPRING = {\n type: 'spring',\n stiffness: 0.75,\n damping: 0.45,\n mass: 10,\n };\n\n var ITEM_SCALE_SPRING = 'spring';\n\n var StateMap = {\n DID_START_ITEM_LOAD: 'busy',\n DID_UPDATE_ITEM_LOAD_PROGRESS: 'loading',\n DID_THROW_ITEM_INVALID: 'load-invalid',\n DID_THROW_ITEM_LOAD_ERROR: 'load-error',\n DID_LOAD_ITEM: 'idle',\n DID_THROW_ITEM_REMOVE_ERROR: 'remove-error',\n DID_START_ITEM_REMOVE: 'busy',\n DID_START_ITEM_PROCESSING: 'busy processing',\n DID_REQUEST_ITEM_PROCESSING: 'busy processing',\n DID_UPDATE_ITEM_PROCESS_PROGRESS: 'processing',\n DID_COMPLETE_ITEM_PROCESSING: 'processing-complete',\n DID_THROW_ITEM_PROCESSING_ERROR: 'processing-error',\n DID_THROW_ITEM_PROCESSING_REVERT_ERROR: 'processing-revert-error',\n DID_ABORT_ITEM_PROCESSING: 'cancelled',\n DID_REVERT_ITEM_PROCESSING: 'idle',\n };\n\n /**\n * Creates the file view\n */\n var create$7 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n\n // select\n root.ref.handleClick = function(e) {\n return root.dispatch('DID_ACTIVATE_ITEM', { id: props.id });\n };\n\n // set id\n root.element.id = 'filepond--item-' + props.id;\n root.element.addEventListener('click', root.ref.handleClick);\n\n // file view\n root.ref.container = root.appendChildView(\n root.createChildView(fileWrapper, { id: props.id })\n );\n\n // file panel\n root.ref.panel = root.appendChildView(root.createChildView(panel, { name: 'item-panel' }));\n\n // default start height\n root.ref.panel.height = null;\n\n // by default not marked for removal\n props.markedForRemoval = false;\n\n // if not allowed to reorder file items, exit here\n if (!root.query('GET_ALLOW_REORDER')) return;\n\n // set to idle so shows grab cursor\n root.element.dataset.dragState = 'idle';\n\n var grab = function grab(e) {\n if (!e.isPrimary) return;\n\n var removedActivateListener = false;\n\n var origin = {\n x: e.pageX,\n y: e.pageY,\n };\n\n props.dragOrigin = {\n x: root.translateX,\n y: root.translateY,\n };\n\n props.dragCenter = {\n x: e.offsetX,\n y: e.offsetY,\n };\n\n var dragState = createDragHelper(root.query('GET_ACTIVE_ITEMS'));\n\n root.dispatch('DID_GRAB_ITEM', { id: props.id, dragState: dragState });\n\n var drag = function drag(e) {\n if (!e.isPrimary) return;\n\n e.stopPropagation();\n e.preventDefault();\n\n props.dragOffset = {\n x: e.pageX - origin.x,\n y: e.pageY - origin.y,\n };\n\n // if dragged stop listening to clicks, will re-add when done dragging\n var dist =\n props.dragOffset.x * props.dragOffset.x +\n props.dragOffset.y * props.dragOffset.y;\n if (dist > 16 && !removedActivateListener) {\n removedActivateListener = true;\n root.element.removeEventListener('click', root.ref.handleClick);\n }\n\n root.dispatch('DID_DRAG_ITEM', { id: props.id, dragState: dragState });\n };\n\n var drop = function drop(e) {\n if (!e.isPrimary) return;\n\n document.removeEventListener('pointermove', drag);\n document.removeEventListener('pointerup', drop);\n\n props.dragOffset = {\n x: e.pageX - origin.x,\n y: e.pageY - origin.y,\n };\n\n root.dispatch('DID_DROP_ITEM', { id: props.id, dragState: dragState });\n\n // start listening to clicks again\n if (removedActivateListener) {\n setTimeout(function() {\n return root.element.addEventListener('click', root.ref.handleClick);\n }, 0);\n }\n };\n\n document.addEventListener('pointermove', drag);\n document.addEventListener('pointerup', drop);\n };\n\n root.element.addEventListener('pointerdown', grab);\n };\n\n var route$1 = createRoute({\n DID_UPDATE_PANEL_HEIGHT: function DID_UPDATE_PANEL_HEIGHT(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n root.height = action.height;\n },\n });\n\n var write$4 = createRoute(\n {\n DID_GRAB_ITEM: function DID_GRAB_ITEM(_ref3) {\n var root = _ref3.root,\n props = _ref3.props;\n props.dragOrigin = {\n x: root.translateX,\n y: root.translateY,\n };\n },\n DID_DRAG_ITEM: function DID_DRAG_ITEM(_ref4) {\n var root = _ref4.root;\n root.element.dataset.dragState = 'drag';\n },\n DID_DROP_ITEM: function DID_DROP_ITEM(_ref5) {\n var root = _ref5.root,\n props = _ref5.props;\n props.dragOffset = null;\n props.dragOrigin = null;\n root.element.dataset.dragState = 'drop';\n },\n },\n function(_ref6) {\n var root = _ref6.root,\n actions = _ref6.actions,\n props = _ref6.props,\n shouldOptimize = _ref6.shouldOptimize;\n\n if (root.element.dataset.dragState === 'drop') {\n if (root.scaleX <= 1) {\n root.element.dataset.dragState = 'idle';\n }\n }\n\n // select last state change action\n var action = actions\n .concat()\n .filter(function(action) {\n return /^DID_/.test(action.type);\n })\n .reverse()\n .find(function(action) {\n return StateMap[action.type];\n });\n\n // no need to set same state twice\n if (action && action.type !== props.currentState) {\n // set current state\n props.currentState = action.type;\n\n // set state\n root.element.dataset.filepondItemState = StateMap[props.currentState] || '';\n }\n\n // route actions\n var aspectRatio =\n root.query('GET_ITEM_PANEL_ASPECT_RATIO') || root.query('GET_PANEL_ASPECT_RATIO');\n if (!aspectRatio) {\n route$1({ root: root, actions: actions, props: props });\n if (!root.height && root.ref.container.rect.element.height > 0) {\n root.height = root.ref.container.rect.element.height;\n }\n } else if (!shouldOptimize) {\n root.height = root.rect.element.width * aspectRatio;\n }\n\n // sync panel height with item height\n if (shouldOptimize) {\n root.ref.panel.height = null;\n }\n\n root.ref.panel.height = root.height;\n }\n );\n\n var item = createView({\n create: create$7,\n write: write$4,\n destroy: function destroy(_ref7) {\n var root = _ref7.root,\n props = _ref7.props;\n root.element.removeEventListener('click', root.ref.handleClick);\n root.dispatch('RELEASE_ITEM', { query: props.id });\n },\n tag: 'li',\n name: 'item',\n mixins: {\n apis: [\n 'id',\n 'interactionMethod',\n 'markedForRemoval',\n 'spawnDate',\n 'dragCenter',\n 'dragOrigin',\n 'dragOffset',\n ],\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity', 'height'],\n\n animations: {\n scaleX: ITEM_SCALE_SPRING,\n scaleY: ITEM_SCALE_SPRING,\n translateX: ITEM_TRANSLATE_SPRING,\n translateY: ITEM_TRANSLATE_SPRING,\n opacity: { type: 'tween', duration: 150 },\n },\n },\n });\n\n var getItemsPerRow = function(horizontalSpace, itemWidth) {\n // add one pixel leeway, when using percentages for item width total items can be 1.99 per row\n\n return Math.max(1, Math.floor((horizontalSpace + 1) / itemWidth));\n };\n\n var getItemIndexByPosition = function getItemIndexByPosition(view, children, positionInView) {\n if (!positionInView) return;\n\n var horizontalSpace = view.rect.element.width;\n // const children = view.childViews;\n var l = children.length;\n var last = null;\n\n // -1, don't move items to accomodate (either add to top or bottom)\n if (l === 0 || positionInView.top < children[0].rect.element.top) return -1;\n\n // let's get the item width\n var item = children[0];\n var itemRect = item.rect.element;\n var itemHorizontalMargin = itemRect.marginLeft + itemRect.marginRight;\n var itemWidth = itemRect.width + itemHorizontalMargin;\n var itemsPerRow = getItemsPerRow(horizontalSpace, itemWidth);\n\n // stack\n if (itemsPerRow === 1) {\n for (var index = 0; index < l; index++) {\n var child = children[index];\n var childMid = child.rect.outer.top + child.rect.element.height * 0.5;\n if (positionInView.top < childMid) {\n return index;\n }\n }\n return l;\n }\n\n // grid\n var itemVerticalMargin = itemRect.marginTop + itemRect.marginBottom;\n var itemHeight = itemRect.height + itemVerticalMargin;\n for (var _index = 0; _index < l; _index++) {\n var indexX = _index % itemsPerRow;\n var indexY = Math.floor(_index / itemsPerRow);\n\n var offsetX = indexX * itemWidth;\n var offsetY = indexY * itemHeight;\n\n var itemTop = offsetY - itemRect.marginTop;\n var itemRight = offsetX + itemWidth;\n var itemBottom = offsetY + itemHeight + itemRect.marginBottom;\n\n if (positionInView.top < itemBottom && positionInView.top > itemTop) {\n if (positionInView.left < itemRight) {\n return _index;\n } else if (_index !== l - 1) {\n last = _index;\n } else {\n last = null;\n }\n }\n }\n\n if (last !== null) {\n return last;\n }\n\n return l;\n };\n\n var dropAreaDimensions = {\n height: 0,\n width: 0,\n get getHeight() {\n return this.height;\n },\n set setHeight(val) {\n if (this.height === 0 || val === 0) this.height = val;\n },\n get getWidth() {\n return this.width;\n },\n set setWidth(val) {\n if (this.width === 0 || val === 0) this.width = val;\n },\n setDimensions: function setDimensions(height, width) {\n if (this.height === 0 || height === 0) this.height = height;\n if (this.width === 0 || width === 0) this.width = width;\n },\n };\n\n var create$8 = function create(_ref) {\n var root = _ref.root;\n // need to set role to list as otherwise it won't be read as a list by VoiceOver\n attr(root.element, 'role', 'list');\n\n root.ref.lastItemSpanwDate = Date.now();\n };\n\n /**\n * Inserts a new item\n * @param root\n * @param action\n */\n var addItemView = function addItemView(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n var id = action.id,\n index = action.index,\n interactionMethod = action.interactionMethod;\n\n root.ref.addIndex = index;\n\n var now = Date.now();\n var spawnDate = now;\n var opacity = 1;\n\n if (interactionMethod !== InteractionMethod.NONE) {\n opacity = 0;\n var cooldown = root.query('GET_ITEM_INSERT_INTERVAL');\n var dist = now - root.ref.lastItemSpanwDate;\n spawnDate = dist < cooldown ? now + (cooldown - dist) : now;\n }\n\n root.ref.lastItemSpanwDate = spawnDate;\n\n root.appendChildView(\n root.createChildView(\n // view type\n item,\n\n // props\n {\n spawnDate: spawnDate,\n id: id,\n opacity: opacity,\n interactionMethod: interactionMethod,\n }\n ),\n\n index\n );\n };\n\n var moveItem = function moveItem(item, x, y) {\n var vx = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var vy = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n // set to null to remove animation while dragging\n if (item.dragOffset) {\n item.translateX = null;\n item.translateY = null;\n item.translateX = item.dragOrigin.x + item.dragOffset.x;\n item.translateY = item.dragOrigin.y + item.dragOffset.y;\n item.scaleX = 1.025;\n item.scaleY = 1.025;\n } else {\n item.translateX = x;\n item.translateY = y;\n\n if (Date.now() > item.spawnDate) {\n // reveal element\n if (item.opacity === 0) {\n introItemView(item, x, y, vx, vy);\n }\n\n // make sure is default scale every frame\n item.scaleX = 1;\n item.scaleY = 1;\n item.opacity = 1;\n }\n }\n };\n\n var introItemView = function introItemView(item, x, y, vx, vy) {\n if (item.interactionMethod === InteractionMethod.NONE) {\n item.translateX = null;\n item.translateX = x;\n item.translateY = null;\n item.translateY = y;\n } else if (item.interactionMethod === InteractionMethod.DROP) {\n item.translateX = null;\n item.translateX = x - vx * 20;\n\n item.translateY = null;\n item.translateY = y - vy * 10;\n\n item.scaleX = 0.8;\n item.scaleY = 0.8;\n } else if (item.interactionMethod === InteractionMethod.BROWSE) {\n item.translateY = null;\n item.translateY = y - 30;\n } else if (item.interactionMethod === InteractionMethod.API) {\n item.translateX = null;\n item.translateX = x - 30;\n item.translateY = null;\n }\n };\n\n /**\n * Removes an existing item\n * @param root\n * @param action\n */\n var removeItemView = function removeItemView(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n var id = action.id;\n\n // get the view matching the given id\n var view = root.childViews.find(function(child) {\n return child.id === id;\n });\n\n // if no view found, exit\n if (!view) {\n return;\n }\n\n // animate view out of view\n view.scaleX = 0.9;\n view.scaleY = 0.9;\n view.opacity = 0;\n\n // mark for removal\n view.markedForRemoval = true;\n };\n\n var getItemHeight = function getItemHeight(child) {\n return (\n child.rect.element.height +\n child.rect.element.marginBottom * 0.5 +\n child.rect.element.marginTop * 0.5\n );\n };\n var getItemWidth = function getItemWidth(child) {\n return (\n child.rect.element.width +\n child.rect.element.marginLeft * 0.5 +\n child.rect.element.marginRight * 0.5\n );\n };\n\n var dragItem = function dragItem(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n var id = action.id,\n dragState = action.dragState;\n\n // reference to item\n var item = root.query('GET_ITEM', { id: id });\n\n // get the view matching the given id\n var view = root.childViews.find(function(child) {\n return child.id === id;\n });\n\n var numItems = root.childViews.length;\n var oldIndex = dragState.getItemIndex(item);\n\n // if no view found, exit\n if (!view) return;\n\n var dragPosition = {\n x: view.dragOrigin.x + view.dragOffset.x + view.dragCenter.x,\n y: view.dragOrigin.y + view.dragOffset.y + view.dragCenter.y,\n };\n\n // get drag area dimensions\n var dragHeight = getItemHeight(view);\n var dragWidth = getItemWidth(view);\n\n // get rows and columns (There will always be at least one row and one column if a file is present)\n var cols = Math.floor(root.rect.outer.width / dragWidth);\n if (cols > numItems) cols = numItems;\n\n // rows are used to find when we have left the preview area bounding box\n var rows = Math.floor(numItems / cols + 1);\n\n dropAreaDimensions.setHeight = dragHeight * rows;\n dropAreaDimensions.setWidth = dragWidth * cols;\n\n // get new index of dragged item\n var location = {\n y: Math.floor(dragPosition.y / dragHeight),\n x: Math.floor(dragPosition.x / dragWidth),\n getGridIndex: function getGridIndex() {\n if (\n dragPosition.y > dropAreaDimensions.getHeight ||\n dragPosition.y < 0 ||\n dragPosition.x > dropAreaDimensions.getWidth ||\n dragPosition.x < 0\n )\n return oldIndex;\n return this.y * cols + this.x;\n },\n getColIndex: function getColIndex() {\n var items = root.query('GET_ACTIVE_ITEMS');\n var visibleChildren = root.childViews.filter(function(child) {\n return child.rect.element.height;\n });\n var children = items.map(function(item) {\n return visibleChildren.find(function(childView) {\n return childView.id === item.id;\n });\n });\n\n var currentIndex = children.findIndex(function(child) {\n return child === view;\n });\n var dragHeight = getItemHeight(view);\n var l = children.length;\n var idx = l;\n var childHeight = 0;\n var childBottom = 0;\n var childTop = 0;\n for (var i = 0; i < l; i++) {\n childHeight = getItemHeight(children[i]);\n childTop = childBottom;\n childBottom = childTop + childHeight;\n if (dragPosition.y < childBottom) {\n if (currentIndex > i) {\n if (dragPosition.y < childTop + dragHeight) {\n idx = i;\n break;\n }\n continue;\n }\n idx = i;\n break;\n }\n }\n return idx;\n },\n };\n\n // get new index\n var index = cols > 1 ? location.getGridIndex() : location.getColIndex();\n root.dispatch('MOVE_ITEM', { query: view, index: index });\n\n // if the index of the item changed, dispatch reorder action\n var currentIndex = dragState.getIndex();\n\n if (currentIndex === undefined || currentIndex !== index) {\n dragState.setIndex(index);\n\n if (currentIndex === undefined) return;\n\n root.dispatch('DID_REORDER_ITEMS', {\n items: root.query('GET_ACTIVE_ITEMS'),\n origin: oldIndex,\n target: index,\n });\n }\n };\n\n /**\n * Setup action routes\n */\n var route$2 = createRoute({\n DID_ADD_ITEM: addItemView,\n DID_REMOVE_ITEM: removeItemView,\n DID_DRAG_ITEM: dragItem,\n });\n\n /**\n * Write to view\n * @param root\n * @param actions\n * @param props\n */\n var write$5 = function write(_ref5) {\n var root = _ref5.root,\n props = _ref5.props,\n actions = _ref5.actions,\n shouldOptimize = _ref5.shouldOptimize;\n // route actions\n route$2({ root: root, props: props, actions: actions });\n var dragCoordinates = props.dragCoordinates;\n\n // available space on horizontal axis\n var horizontalSpace = root.rect.element.width;\n\n // only draw children that have dimensions\n var visibleChildren = root.childViews.filter(function(child) {\n return child.rect.element.height;\n });\n\n // sort based on current active items\n var children = root\n .query('GET_ACTIVE_ITEMS')\n .map(function(item) {\n return visibleChildren.find(function(child) {\n return child.id === item.id;\n });\n })\n .filter(function(item) {\n return item;\n });\n\n // get index\n var dragIndex = dragCoordinates\n ? getItemIndexByPosition(root, children, dragCoordinates)\n : null;\n\n // add index is used to reserve the dropped/added item index till the actual item is rendered\n var addIndex = root.ref.addIndex || null;\n\n // add index no longer needed till possibly next draw\n root.ref.addIndex = null;\n\n var dragIndexOffset = 0;\n var removeIndexOffset = 0;\n var addIndexOffset = 0;\n\n if (children.length === 0) return;\n\n var childRect = children[0].rect.element;\n var itemVerticalMargin = childRect.marginTop + childRect.marginBottom;\n var itemHorizontalMargin = childRect.marginLeft + childRect.marginRight;\n var itemWidth = childRect.width + itemHorizontalMargin;\n var itemHeight = childRect.height + itemVerticalMargin;\n var itemsPerRow = getItemsPerRow(horizontalSpace, itemWidth);\n\n // stack\n if (itemsPerRow === 1) {\n var offsetY = 0;\n var dragOffset = 0;\n\n children.forEach(function(child, index) {\n if (dragIndex) {\n var dist = index - dragIndex;\n if (dist === -2) {\n dragOffset = -itemVerticalMargin * 0.25;\n } else if (dist === -1) {\n dragOffset = -itemVerticalMargin * 0.75;\n } else if (dist === 0) {\n dragOffset = itemVerticalMargin * 0.75;\n } else if (dist === 1) {\n dragOffset = itemVerticalMargin * 0.25;\n } else {\n dragOffset = 0;\n }\n }\n\n if (shouldOptimize) {\n child.translateX = null;\n child.translateY = null;\n }\n\n if (!child.markedForRemoval) {\n moveItem(child, 0, offsetY + dragOffset);\n }\n\n var itemHeight = child.rect.element.height + itemVerticalMargin;\n\n var visualHeight = itemHeight * (child.markedForRemoval ? child.opacity : 1);\n\n offsetY += visualHeight;\n });\n }\n // grid\n else {\n var prevX = 0;\n var prevY = 0;\n\n children.forEach(function(child, index) {\n if (index === dragIndex) {\n dragIndexOffset = 1;\n }\n\n if (index === addIndex) {\n addIndexOffset += 1;\n }\n\n if (child.markedForRemoval && child.opacity < 0.5) {\n removeIndexOffset -= 1;\n }\n\n var visualIndex = index + addIndexOffset + dragIndexOffset + removeIndexOffset;\n\n var indexX = visualIndex % itemsPerRow;\n var indexY = Math.floor(visualIndex / itemsPerRow);\n\n var offsetX = indexX * itemWidth;\n var offsetY = indexY * itemHeight;\n\n var vectorX = Math.sign(offsetX - prevX);\n var vectorY = Math.sign(offsetY - prevY);\n\n prevX = offsetX;\n prevY = offsetY;\n\n if (child.markedForRemoval) return;\n\n if (shouldOptimize) {\n child.translateX = null;\n child.translateY = null;\n }\n\n moveItem(child, offsetX, offsetY, vectorX, vectorY);\n });\n }\n };\n\n /**\n * Filters actions that are meant specifically for a certain child of the list\n * @param child\n * @param actions\n */\n var filterSetItemActions = function filterSetItemActions(child, actions) {\n return actions.filter(function(action) {\n // if action has an id, filter out actions that don't have this child id\n if (action.data && action.data.id) {\n return child.id === action.data.id;\n }\n\n // allow all other actions\n return true;\n });\n };\n\n var list = createView({\n create: create$8,\n write: write$5,\n tag: 'ul',\n name: 'list',\n didWriteView: function didWriteView(_ref6) {\n var root = _ref6.root;\n root.childViews\n .filter(function(view) {\n return view.markedForRemoval && view.opacity === 0 && view.resting;\n })\n .forEach(function(view) {\n view._destroy();\n root.removeChildView(view);\n });\n },\n filterFrameActionsForChild: filterSetItemActions,\n mixins: {\n apis: ['dragCoordinates'],\n },\n });\n\n var create$9 = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.ref.list = root.appendChildView(root.createChildView(list));\n props.dragCoordinates = null;\n props.overflowing = false;\n };\n\n var storeDragCoordinates = function storeDragCoordinates(_ref2) {\n var root = _ref2.root,\n props = _ref2.props,\n action = _ref2.action;\n if (!root.query('GET_ITEM_INSERT_LOCATION_FREEDOM')) return;\n props.dragCoordinates = {\n left: action.position.scopeLeft - root.ref.list.rect.element.left,\n top:\n action.position.scopeTop -\n (root.rect.outer.top + root.rect.element.marginTop + root.rect.element.scrollTop),\n };\n };\n\n var clearDragCoordinates = function clearDragCoordinates(_ref3) {\n var props = _ref3.props;\n props.dragCoordinates = null;\n };\n\n var route$3 = createRoute({\n DID_DRAG: storeDragCoordinates,\n DID_END_DRAG: clearDragCoordinates,\n });\n\n var write$6 = function write(_ref4) {\n var root = _ref4.root,\n props = _ref4.props,\n actions = _ref4.actions;\n\n // route actions\n route$3({ root: root, props: props, actions: actions });\n\n // current drag position\n root.ref.list.dragCoordinates = props.dragCoordinates;\n\n // if currently overflowing but no longer received overflow\n if (props.overflowing && !props.overflow) {\n props.overflowing = false;\n\n // reset overflow state\n root.element.dataset.state = '';\n root.height = null;\n }\n\n // if is not overflowing currently but does receive overflow value\n if (props.overflow) {\n var newHeight = Math.round(props.overflow);\n if (newHeight !== root.height) {\n props.overflowing = true;\n root.element.dataset.state = 'overflow';\n root.height = newHeight;\n }\n }\n };\n\n var listScroller = createView({\n create: create$9,\n write: write$6,\n name: 'list-scroller',\n mixins: {\n apis: ['overflow', 'dragCoordinates'],\n styles: ['height', 'translateY'],\n animations: {\n translateY: 'spring',\n },\n },\n });\n\n var attrToggle = function attrToggle(element, name, state) {\n var enabledValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '';\n if (state) {\n attr(element, name, enabledValue);\n } else {\n element.removeAttribute(name);\n }\n };\n\n var resetFileInput = function resetFileInput(input) {\n // no value, no need to reset\n if (!input || input.value === '') {\n return;\n }\n\n try {\n // for modern browsers\n input.value = '';\n } catch (err) {}\n\n // for IE10\n if (input.value) {\n // quickly append input to temp form and reset form\n var form = createElement$1('form');\n var parentNode = input.parentNode;\n var ref = input.nextSibling;\n form.appendChild(input);\n form.reset();\n\n // re-inject input where it originally was\n if (ref) {\n parentNode.insertBefore(input, ref);\n } else {\n parentNode.appendChild(input);\n }\n }\n };\n\n var create$a = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n\n // set id so can be referenced from outside labels\n root.element.id = 'filepond--browser-' + props.id;\n\n // set name of element (is removed when a value is set)\n attr(root.element, 'name', root.query('GET_NAME'));\n\n // we have to link this element to the status element\n attr(root.element, 'aria-controls', 'filepond--assistant-' + props.id);\n\n // set label, we use labelled by as otherwise the screenreader does not read the \"browse\" text in the label (as it has tabindex: 0)\n attr(root.element, 'aria-labelledby', 'filepond--drop-label-' + props.id);\n\n // set configurable props\n setAcceptedFileTypes({\n root: root,\n action: { value: root.query('GET_ACCEPTED_FILE_TYPES') },\n });\n toggleAllowMultiple({ root: root, action: { value: root.query('GET_ALLOW_MULTIPLE') } });\n toggleDirectoryFilter({\n root: root,\n action: { value: root.query('GET_ALLOW_DIRECTORIES_ONLY') },\n });\n toggleDisabled({ root: root });\n toggleRequired({ root: root, action: { value: root.query('GET_REQUIRED') } });\n setCaptureMethod({ root: root, action: { value: root.query('GET_CAPTURE_METHOD') } });\n\n // handle changes to the input field\n root.ref.handleChange = function(e) {\n if (!root.element.value) {\n return;\n }\n\n // extract files and move value of webkitRelativePath path to _relativePath\n var files = Array.from(root.element.files).map(function(file) {\n file._relativePath = file.webkitRelativePath;\n return file;\n });\n\n // we add a little delay so the OS file select window can move out of the way before we add our file\n setTimeout(function() {\n // load files\n props.onload(files);\n\n // reset input, it's just for exposing a method to drop files, should not retain any state\n resetFileInput(root.element);\n }, 250);\n };\n\n root.element.addEventListener('change', root.ref.handleChange);\n };\n\n var setAcceptedFileTypes = function setAcceptedFileTypes(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n if (!root.query('GET_ALLOW_SYNC_ACCEPT_ATTRIBUTE')) return;\n attrToggle(\n root.element,\n 'accept',\n !!action.value,\n action.value ? action.value.join(',') : ''\n );\n };\n\n var toggleAllowMultiple = function toggleAllowMultiple(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n attrToggle(root.element, 'multiple', action.value);\n };\n\n var toggleDirectoryFilter = function toggleDirectoryFilter(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n attrToggle(root.element, 'webkitdirectory', action.value);\n };\n\n var toggleDisabled = function toggleDisabled(_ref5) {\n var root = _ref5.root;\n var isDisabled = root.query('GET_DISABLED');\n var doesAllowBrowse = root.query('GET_ALLOW_BROWSE');\n var disableField = isDisabled || !doesAllowBrowse;\n attrToggle(root.element, 'disabled', disableField);\n };\n\n var toggleRequired = function toggleRequired(_ref6) {\n var root = _ref6.root,\n action = _ref6.action;\n // want to remove required, always possible\n if (!action.value) {\n attrToggle(root.element, 'required', false);\n }\n // if want to make required, only possible when zero items\n else if (root.query('GET_TOTAL_ITEMS') === 0) {\n attrToggle(root.element, 'required', true);\n }\n };\n\n var setCaptureMethod = function setCaptureMethod(_ref7) {\n var root = _ref7.root,\n action = _ref7.action;\n attrToggle(\n root.element,\n 'capture',\n !!action.value,\n action.value === true ? '' : action.value\n );\n };\n\n var updateRequiredStatus = function updateRequiredStatus(_ref8) {\n var root = _ref8.root;\n var element = root.element;\n // always remove the required attribute when more than zero items\n if (root.query('GET_TOTAL_ITEMS') > 0) {\n attrToggle(element, 'required', false);\n attrToggle(element, 'name', false);\n } else {\n // add name attribute\n attrToggle(element, 'name', true, root.query('GET_NAME'));\n\n // remove any validation messages\n var shouldCheckValidity = root.query('GET_CHECK_VALIDITY');\n if (shouldCheckValidity) {\n element.setCustomValidity('');\n }\n\n // we only add required if the field has been deemed required\n if (root.query('GET_REQUIRED')) {\n attrToggle(element, 'required', true);\n }\n }\n };\n\n var updateFieldValidityStatus = function updateFieldValidityStatus(_ref9) {\n var root = _ref9.root;\n var shouldCheckValidity = root.query('GET_CHECK_VALIDITY');\n if (!shouldCheckValidity) return;\n root.element.setCustomValidity(root.query('GET_LABEL_INVALID_FIELD'));\n };\n\n var browser = createView({\n tag: 'input',\n name: 'browser',\n ignoreRect: true,\n ignoreRectUpdate: true,\n attributes: {\n type: 'file',\n },\n\n create: create$a,\n destroy: function destroy(_ref10) {\n var root = _ref10.root;\n root.element.removeEventListener('change', root.ref.handleChange);\n },\n write: createRoute({\n DID_LOAD_ITEM: updateRequiredStatus,\n DID_REMOVE_ITEM: updateRequiredStatus,\n DID_THROW_ITEM_INVALID: updateFieldValidityStatus,\n\n DID_SET_DISABLED: toggleDisabled,\n DID_SET_ALLOW_BROWSE: toggleDisabled,\n DID_SET_ALLOW_DIRECTORIES_ONLY: toggleDirectoryFilter,\n DID_SET_ALLOW_MULTIPLE: toggleAllowMultiple,\n DID_SET_ACCEPTED_FILE_TYPES: setAcceptedFileTypes,\n DID_SET_CAPTURE_METHOD: setCaptureMethod,\n DID_SET_REQUIRED: toggleRequired,\n }),\n });\n\n var Key = {\n ENTER: 13,\n SPACE: 32,\n };\n\n var create$b = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n\n // create the label and link it to the file browser\n var label = createElement$1('label');\n attr(label, 'for', 'filepond--browser-' + props.id);\n\n // use for labeling file input (aria-labelledby on file input)\n attr(label, 'id', 'filepond--drop-label-' + props.id);\n\n // hide the label for screenreaders, the input element will read the contents of the label when it's focussed. If we don't set aria-hidden the screenreader will also navigate the contents of the label separately from the input.\n attr(label, 'aria-hidden', 'true');\n\n // handle keys\n root.ref.handleKeyDown = function(e) {\n var isActivationKey = e.keyCode === Key.ENTER || e.keyCode === Key.SPACE;\n if (!isActivationKey) return;\n // stops from triggering the element a second time\n e.preventDefault();\n\n // click link (will then in turn activate file input)\n root.ref.label.click();\n };\n\n root.ref.handleClick = function(e) {\n var isLabelClick = e.target === label || label.contains(e.target);\n\n // don't want to click twice\n if (isLabelClick) return;\n\n // click link (will then in turn activate file input)\n root.ref.label.click();\n };\n\n // attach events\n label.addEventListener('keydown', root.ref.handleKeyDown);\n root.element.addEventListener('click', root.ref.handleClick);\n\n // update\n updateLabelValue(label, props.caption);\n\n // add!\n root.appendChild(label);\n root.ref.label = label;\n };\n\n var updateLabelValue = function updateLabelValue(label, value) {\n label.innerHTML = value;\n var clickable = label.querySelector('.filepond--label-action');\n if (clickable) {\n attr(clickable, 'tabindex', '0');\n }\n return value;\n };\n\n var dropLabel = createView({\n name: 'drop-label',\n ignoreRect: true,\n create: create$b,\n destroy: function destroy(_ref2) {\n var root = _ref2.root;\n root.ref.label.addEventListener('keydown', root.ref.handleKeyDown);\n root.element.removeEventListener('click', root.ref.handleClick);\n },\n write: createRoute({\n DID_SET_LABEL_IDLE: function DID_SET_LABEL_IDLE(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n updateLabelValue(root.ref.label, action.value);\n },\n }),\n\n mixins: {\n styles: ['opacity', 'translateX', 'translateY'],\n animations: {\n opacity: { type: 'tween', duration: 150 },\n translateX: 'spring',\n translateY: 'spring',\n },\n },\n });\n\n var blob = createView({\n name: 'drip-blob',\n ignoreRect: true,\n mixins: {\n styles: ['translateX', 'translateY', 'scaleX', 'scaleY', 'opacity'],\n animations: {\n scaleX: 'spring',\n scaleY: 'spring',\n translateX: 'spring',\n translateY: 'spring',\n opacity: { type: 'tween', duration: 250 },\n },\n },\n });\n\n var addBlob = function addBlob(_ref) {\n var root = _ref.root;\n var centerX = root.rect.element.width * 0.5;\n var centerY = root.rect.element.height * 0.5;\n\n root.ref.blob = root.appendChildView(\n root.createChildView(blob, {\n opacity: 0,\n scaleX: 2.5,\n scaleY: 2.5,\n translateX: centerX,\n translateY: centerY,\n })\n );\n };\n\n var moveBlob = function moveBlob(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n if (!root.ref.blob) {\n addBlob({ root: root });\n return;\n }\n\n root.ref.blob.translateX = action.position.scopeLeft;\n root.ref.blob.translateY = action.position.scopeTop;\n root.ref.blob.scaleX = 1;\n root.ref.blob.scaleY = 1;\n root.ref.blob.opacity = 1;\n };\n\n var hideBlob = function hideBlob(_ref3) {\n var root = _ref3.root;\n if (!root.ref.blob) {\n return;\n }\n root.ref.blob.opacity = 0;\n };\n\n var explodeBlob = function explodeBlob(_ref4) {\n var root = _ref4.root;\n if (!root.ref.blob) {\n return;\n }\n root.ref.blob.scaleX = 2.5;\n root.ref.blob.scaleY = 2.5;\n root.ref.blob.opacity = 0;\n };\n\n var write$7 = function write(_ref5) {\n var root = _ref5.root,\n props = _ref5.props,\n actions = _ref5.actions;\n route$4({ root: root, props: props, actions: actions });\n var blob = root.ref.blob;\n\n if (actions.length === 0 && blob && blob.opacity === 0) {\n root.removeChildView(blob);\n root.ref.blob = null;\n }\n };\n\n var route$4 = createRoute({\n DID_DRAG: moveBlob,\n DID_DROP: explodeBlob,\n DID_END_DRAG: hideBlob,\n });\n\n var drip = createView({\n ignoreRect: true,\n ignoreRectUpdate: true,\n name: 'drip',\n write: write$7,\n });\n\n var setInputFiles = function setInputFiles(element, files) {\n try {\n // Create a DataTransfer instance and add a newly created file\n var dataTransfer = new DataTransfer();\n files.forEach(function(file) {\n if (file instanceof File) {\n dataTransfer.items.add(file);\n } else {\n dataTransfer.items.add(\n new File([file], file.name, {\n type: file.type,\n })\n );\n }\n });\n\n // Assign the DataTransfer files list to the file input\n element.files = dataTransfer.files;\n } catch (err) {\n return false;\n }\n return true;\n };\n\n var create$c = function create(_ref) {\n var root = _ref.root;\n return (root.ref.fields = {});\n };\n\n var getField = function getField(root, id) {\n return root.ref.fields[id];\n };\n\n var syncFieldPositionsWithItems = function syncFieldPositionsWithItems(root) {\n root.query('GET_ACTIVE_ITEMS').forEach(function(item) {\n if (!root.ref.fields[item.id]) return;\n root.element.appendChild(root.ref.fields[item.id]);\n });\n };\n\n var didReorderItems = function didReorderItems(_ref2) {\n var root = _ref2.root;\n return syncFieldPositionsWithItems(root);\n };\n\n var didAddItem = function didAddItem(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n var fileItem = root.query('GET_ITEM', action.id);\n var isLocalFile = fileItem.origin === FileOrigin.LOCAL;\n var shouldUseFileInput = !isLocalFile && root.query('SHOULD_UPDATE_FILE_INPUT');\n var dataContainer = createElement$1('input');\n dataContainer.type = shouldUseFileInput ? 'file' : 'hidden';\n dataContainer.name = root.query('GET_NAME');\n dataContainer.disabled = root.query('GET_DISABLED');\n root.ref.fields[action.id] = dataContainer;\n syncFieldPositionsWithItems(root);\n };\n\n var didLoadItem$1 = function didLoadItem(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n var field = getField(root, action.id);\n if (!field) return;\n\n // store server ref in hidden input\n if (action.serverFileReference !== null) field.value = action.serverFileReference;\n\n // store file item in file input\n if (!root.query('SHOULD_UPDATE_FILE_INPUT')) return;\n\n var fileItem = root.query('GET_ITEM', action.id);\n setInputFiles(field, [fileItem.file]);\n };\n\n var didPrepareOutput = function didPrepareOutput(_ref5) {\n var root = _ref5.root,\n action = _ref5.action;\n // this timeout pushes the handler after 'load'\n if (!root.query('SHOULD_UPDATE_FILE_INPUT')) return;\n setTimeout(function() {\n var field = getField(root, action.id);\n if (!field) return;\n setInputFiles(field, [action.file]);\n }, 0);\n };\n\n var didSetDisabled = function didSetDisabled(_ref6) {\n var root = _ref6.root;\n root.element.disabled = root.query('GET_DISABLED');\n };\n\n var didRemoveItem = function didRemoveItem(_ref7) {\n var root = _ref7.root,\n action = _ref7.action;\n var field = getField(root, action.id);\n if (!field) return;\n if (field.parentNode) field.parentNode.removeChild(field);\n delete root.ref.fields[action.id];\n };\n\n // only runs for server files (so doesn't deal with file input)\n var didDefineValue = function didDefineValue(_ref8) {\n var root = _ref8.root,\n action = _ref8.action;\n var field = getField(root, action.id);\n if (!field) return;\n if (action.value === null) {\n // clear field value\n field.removeAttribute('value');\n } else {\n // set field value\n field.value = action.value;\n }\n syncFieldPositionsWithItems(root);\n };\n\n var write$8 = createRoute({\n DID_SET_DISABLED: didSetDisabled,\n DID_ADD_ITEM: didAddItem,\n DID_LOAD_ITEM: didLoadItem$1,\n DID_REMOVE_ITEM: didRemoveItem,\n DID_DEFINE_VALUE: didDefineValue,\n DID_PREPARE_OUTPUT: didPrepareOutput,\n DID_REORDER_ITEMS: didReorderItems,\n DID_SORT_ITEMS: didReorderItems,\n });\n\n var data = createView({\n tag: 'fieldset',\n name: 'data',\n create: create$c,\n write: write$8,\n ignoreRect: true,\n });\n\n var getRootNode = function getRootNode(element) {\n return 'getRootNode' in element ? element.getRootNode() : document;\n };\n\n var images = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp', 'svg', 'tiff'];\n var text$1 = ['css', 'csv', 'html', 'txt'];\n var map = {\n zip: 'zip|compressed',\n epub: 'application/epub+zip',\n };\n\n var guesstimateMimeType = function guesstimateMimeType() {\n var extension = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n extension = extension.toLowerCase();\n if (images.includes(extension)) {\n return (\n 'image/' +\n (extension === 'jpg' ? 'jpeg' : extension === 'svg' ? 'svg+xml' : extension)\n );\n }\n if (text$1.includes(extension)) {\n return 'text/' + extension;\n }\n\n return map[extension] || '';\n };\n\n var requestDataTransferItems = function requestDataTransferItems(dataTransfer) {\n return new Promise(function(resolve, reject) {\n // try to get links from transfer, if found we'll exit immediately (unless a file is in the dataTransfer as well, this is because Firefox could represent the file as a URL and a file object at the same time)\n var links = getLinks(dataTransfer);\n if (links.length && !hasFiles(dataTransfer)) {\n return resolve(links);\n }\n // try to get files from the transfer\n getFiles(dataTransfer).then(resolve);\n });\n };\n\n /**\n * Test if datatransfer has files\n */\n var hasFiles = function hasFiles(dataTransfer) {\n if (dataTransfer.files) return dataTransfer.files.length > 0;\n return false;\n };\n\n /**\n * Extracts files from a DataTransfer object\n */\n var getFiles = function getFiles(dataTransfer) {\n return new Promise(function(resolve, reject) {\n // get the transfer items as promises\n var promisedFiles = (dataTransfer.items ? Array.from(dataTransfer.items) : [])\n // only keep file system items (files and directories)\n .filter(function(item) {\n return isFileSystemItem(item);\n })\n\n // map each item to promise\n .map(function(item) {\n return getFilesFromItem(item);\n });\n\n // if is empty, see if we can extract some info from the files property as a fallback\n if (!promisedFiles.length) {\n // TODO: test for directories (should not be allowed)\n // Use FileReader, problem is that the files property gets lost in the process\n resolve(dataTransfer.files ? Array.from(dataTransfer.files) : []);\n return;\n }\n\n // done!\n Promise.all(promisedFiles)\n .then(function(returnedFileGroups) {\n // flatten groups\n var files = [];\n returnedFileGroups.forEach(function(group) {\n files.push.apply(files, group);\n });\n\n // done (filter out empty files)!\n resolve(\n files\n .filter(function(file) {\n return file;\n })\n .map(function(file) {\n if (!file._relativePath)\n file._relativePath = file.webkitRelativePath;\n return file;\n })\n );\n })\n .catch(console.error);\n });\n };\n\n var isFileSystemItem = function isFileSystemItem(item) {\n if (isEntry(item)) {\n var entry = getAsEntry(item);\n if (entry) {\n return entry.isFile || entry.isDirectory;\n }\n }\n return item.kind === 'file';\n };\n\n var getFilesFromItem = function getFilesFromItem(item) {\n return new Promise(function(resolve, reject) {\n if (isDirectoryEntry(item)) {\n getFilesInDirectory(getAsEntry(item))\n .then(resolve)\n .catch(reject);\n return;\n }\n\n resolve([item.getAsFile()]);\n });\n };\n\n var getFilesInDirectory = function getFilesInDirectory(entry) {\n return new Promise(function(resolve, reject) {\n var files = [];\n\n // the total entries to read\n var dirCounter = 0;\n var fileCounter = 0;\n\n var resolveIfDone = function resolveIfDone() {\n if (fileCounter === 0 && dirCounter === 0) {\n resolve(files);\n }\n };\n\n // the recursive function\n var readEntries = function readEntries(dirEntry) {\n dirCounter++;\n\n var directoryReader = dirEntry.createReader();\n\n // directories are returned in batches, we need to process all batches before we're done\n var readBatch = function readBatch() {\n directoryReader.readEntries(function(entries) {\n if (entries.length === 0) {\n dirCounter--;\n resolveIfDone();\n return;\n }\n\n entries.forEach(function(entry) {\n // recursively read more directories\n if (entry.isDirectory) {\n readEntries(entry);\n } else {\n // read as file\n fileCounter++;\n\n entry.file(function(file) {\n var correctedFile = correctMissingFileType(file);\n if (entry.fullPath)\n correctedFile._relativePath = entry.fullPath;\n files.push(correctedFile);\n fileCounter--;\n resolveIfDone();\n });\n }\n });\n\n // try to get next batch of files\n readBatch();\n }, reject);\n };\n\n // read first batch of files\n readBatch();\n };\n\n // go!\n readEntries(entry);\n });\n };\n\n var correctMissingFileType = function correctMissingFileType(file) {\n if (file.type.length) return file;\n var date = file.lastModifiedDate;\n var name = file.name;\n var type = guesstimateMimeType(getExtensionFromFilename(file.name));\n if (!type.length) return file;\n file = file.slice(0, file.size, type);\n file.name = name;\n file.lastModifiedDate = date;\n return file;\n };\n\n var isDirectoryEntry = function isDirectoryEntry(item) {\n return isEntry(item) && (getAsEntry(item) || {}).isDirectory;\n };\n\n var isEntry = function isEntry(item) {\n return 'webkitGetAsEntry' in item;\n };\n\n var getAsEntry = function getAsEntry(item) {\n return item.webkitGetAsEntry();\n };\n\n /**\n * Extracts links from a DataTransfer object\n */\n var getLinks = function getLinks(dataTransfer) {\n var links = [];\n try {\n // look in meta data property\n links = getLinksFromTransferMetaData(dataTransfer);\n if (links.length) {\n return links;\n }\n links = getLinksFromTransferURLData(dataTransfer);\n } catch (e) {\n // nope nope nope (probably IE trouble)\n }\n return links;\n };\n\n var getLinksFromTransferURLData = function getLinksFromTransferURLData(dataTransfer) {\n var data = dataTransfer.getData('url');\n if (typeof data === 'string' && data.length) {\n return [data];\n }\n return [];\n };\n\n var getLinksFromTransferMetaData = function getLinksFromTransferMetaData(dataTransfer) {\n var data = dataTransfer.getData('text/html');\n if (typeof data === 'string' && data.length) {\n var matches = data.match(/src\\s*=\\s*\"(.+?)\"/);\n if (matches) {\n return [matches[1]];\n }\n }\n return [];\n };\n\n var dragNDropObservers = [];\n\n var eventPosition = function eventPosition(e) {\n return {\n pageLeft: e.pageX,\n pageTop: e.pageY,\n scopeLeft: e.offsetX || e.layerX,\n scopeTop: e.offsetY || e.layerY,\n };\n };\n\n var createDragNDropClient = function createDragNDropClient(\n element,\n scopeToObserve,\n filterElement\n ) {\n var observer = getDragNDropObserver(scopeToObserve);\n\n var client = {\n element: element,\n filterElement: filterElement,\n state: null,\n ondrop: function ondrop() {},\n onenter: function onenter() {},\n ondrag: function ondrag() {},\n onexit: function onexit() {},\n onload: function onload() {},\n allowdrop: function allowdrop() {},\n };\n\n client.destroy = observer.addListener(client);\n\n return client;\n };\n\n var getDragNDropObserver = function getDragNDropObserver(element) {\n // see if already exists, if so, return\n var observer = dragNDropObservers.find(function(item) {\n return item.element === element;\n });\n if (observer) {\n return observer;\n }\n\n // create new observer, does not yet exist for this element\n var newObserver = createDragNDropObserver(element);\n dragNDropObservers.push(newObserver);\n return newObserver;\n };\n\n var createDragNDropObserver = function createDragNDropObserver(element) {\n var clients = [];\n\n var routes = {\n dragenter: dragenter,\n dragover: dragover,\n dragleave: dragleave,\n drop: drop,\n };\n\n var handlers = {};\n\n forin(routes, function(event, createHandler) {\n handlers[event] = createHandler(element, clients);\n element.addEventListener(event, handlers[event], false);\n });\n\n var observer = {\n element: element,\n addListener: function addListener(client) {\n // add as client\n clients.push(client);\n\n // return removeListener function\n return function() {\n // remove client\n clients.splice(clients.indexOf(client), 1);\n\n // if no more clients, clean up observer\n if (clients.length === 0) {\n dragNDropObservers.splice(dragNDropObservers.indexOf(observer), 1);\n\n forin(routes, function(event) {\n element.removeEventListener(event, handlers[event], false);\n });\n }\n };\n },\n };\n\n return observer;\n };\n\n var elementFromPoint = function elementFromPoint(root, point) {\n if (!('elementFromPoint' in root)) {\n root = document;\n }\n return root.elementFromPoint(point.x, point.y);\n };\n\n var isEventTarget = function isEventTarget(e, target) {\n // get root\n var root = getRootNode(target);\n\n // get element at position\n // if root is not actual shadow DOM and does not have elementFromPoint method, use the one on document\n var elementAtPosition = elementFromPoint(root, {\n x: e.pageX - window.pageXOffset,\n y: e.pageY - window.pageYOffset,\n });\n\n // test if target is the element or if one of its children is\n return elementAtPosition === target || target.contains(elementAtPosition);\n };\n\n var initialTarget = null;\n\n var setDropEffect = function setDropEffect(dataTransfer, effect) {\n // is in try catch as IE11 will throw error if not\n try {\n dataTransfer.dropEffect = effect;\n } catch (e) {}\n };\n\n var dragenter = function dragenter(root, clients) {\n return function(e) {\n e.preventDefault();\n\n initialTarget = e.target;\n\n clients.forEach(function(client) {\n var element = client.element,\n onenter = client.onenter;\n\n if (isEventTarget(e, element)) {\n client.state = 'enter';\n\n // fire enter event\n onenter(eventPosition(e));\n }\n });\n };\n };\n\n var dragover = function dragover(root, clients) {\n return function(e) {\n e.preventDefault();\n\n var dataTransfer = e.dataTransfer;\n\n requestDataTransferItems(dataTransfer).then(function(items) {\n var overDropTarget = false;\n\n clients.some(function(client) {\n var filterElement = client.filterElement,\n element = client.element,\n onenter = client.onenter,\n onexit = client.onexit,\n ondrag = client.ondrag,\n allowdrop = client.allowdrop;\n\n // by default we can drop\n setDropEffect(dataTransfer, 'copy');\n\n // allow transfer of these items\n var allowsTransfer = allowdrop(items);\n\n // only used when can be dropped on page\n if (!allowsTransfer) {\n setDropEffect(dataTransfer, 'none');\n return;\n }\n\n // targetting this client\n if (isEventTarget(e, element)) {\n overDropTarget = true;\n\n // had no previous state, means we are entering this client\n if (client.state === null) {\n client.state = 'enter';\n onenter(eventPosition(e));\n return;\n }\n\n // now over element (no matter if it allows the drop or not)\n client.state = 'over';\n\n // needs to allow transfer\n if (filterElement && !allowsTransfer) {\n setDropEffect(dataTransfer, 'none');\n return;\n }\n\n // dragging\n ondrag(eventPosition(e));\n } else {\n // should be over an element to drop\n if (filterElement && !overDropTarget) {\n setDropEffect(dataTransfer, 'none');\n }\n\n // might have just left this client?\n if (client.state) {\n client.state = null;\n onexit(eventPosition(e));\n }\n }\n });\n });\n };\n };\n\n var drop = function drop(root, clients) {\n return function(e) {\n e.preventDefault();\n\n var dataTransfer = e.dataTransfer;\n\n requestDataTransferItems(dataTransfer).then(function(items) {\n clients.forEach(function(client) {\n var filterElement = client.filterElement,\n element = client.element,\n ondrop = client.ondrop,\n onexit = client.onexit,\n allowdrop = client.allowdrop;\n\n client.state = null;\n\n // if we're filtering on element we need to be over the element to drop\n if (filterElement && !isEventTarget(e, element)) return;\n\n // no transfer for this client\n if (!allowdrop(items)) return onexit(eventPosition(e));\n\n // we can drop these items on this client\n ondrop(eventPosition(e), items);\n });\n });\n };\n };\n\n var dragleave = function dragleave(root, clients) {\n return function(e) {\n if (initialTarget !== e.target) {\n return;\n }\n\n clients.forEach(function(client) {\n var onexit = client.onexit;\n\n client.state = null;\n\n onexit(eventPosition(e));\n });\n };\n };\n\n var createHopper = function createHopper(scope, validateItems, options) {\n // is now hopper scope\n scope.classList.add('filepond--hopper');\n\n // shortcuts\n var catchesDropsOnPage = options.catchesDropsOnPage,\n requiresDropOnElement = options.requiresDropOnElement,\n _options$filterItems = options.filterItems,\n filterItems =\n _options$filterItems === void 0\n ? function(items) {\n return items;\n }\n : _options$filterItems;\n\n // create a dnd client\n var client = createDragNDropClient(\n scope,\n catchesDropsOnPage ? document.documentElement : scope,\n requiresDropOnElement\n );\n\n // current client state\n var lastState = '';\n var currentState = '';\n\n // determines if a file may be dropped\n client.allowdrop = function(items) {\n // TODO: if we can, throw error to indicate the items cannot by dropped\n\n return validateItems(filterItems(items));\n };\n\n client.ondrop = function(position, items) {\n var filteredItems = filterItems(items);\n\n if (!validateItems(filteredItems)) {\n api.ondragend(position);\n return;\n }\n\n currentState = 'drag-drop';\n\n api.onload(filteredItems, position);\n };\n\n client.ondrag = function(position) {\n api.ondrag(position);\n };\n\n client.onenter = function(position) {\n currentState = 'drag-over';\n\n api.ondragstart(position);\n };\n\n client.onexit = function(position) {\n currentState = 'drag-exit';\n\n api.ondragend(position);\n };\n\n var api = {\n updateHopperState: function updateHopperState() {\n if (lastState !== currentState) {\n scope.dataset.hopperState = currentState;\n lastState = currentState;\n }\n },\n onload: function onload() {},\n ondragstart: function ondragstart() {},\n ondrag: function ondrag() {},\n ondragend: function ondragend() {},\n destroy: function destroy() {\n // destroy client\n client.destroy();\n },\n };\n\n return api;\n };\n\n var listening = false;\n var listeners$1 = [];\n\n var handlePaste = function handlePaste(e) {\n // if is pasting in input or textarea and the target is outside of a filepond scope, ignore\n var activeEl = document.activeElement;\n if (activeEl && /textarea|input/i.test(activeEl.nodeName)) {\n // test textarea or input is contained in filepond root\n var inScope = false;\n var element = activeEl;\n while (element !== document.body) {\n if (element.classList.contains('filepond--root')) {\n inScope = true;\n break;\n }\n element = element.parentNode;\n }\n\n if (!inScope) return;\n }\n\n requestDataTransferItems(e.clipboardData).then(function(files) {\n // no files received\n if (!files.length) {\n return;\n }\n\n // notify listeners of received files\n listeners$1.forEach(function(listener) {\n return listener(files);\n });\n });\n };\n\n var listen = function listen(cb) {\n // can't add twice\n if (listeners$1.includes(cb)) {\n return;\n }\n\n // add initial listener\n listeners$1.push(cb);\n\n // setup paste listener for entire page\n if (listening) {\n return;\n }\n\n listening = true;\n document.addEventListener('paste', handlePaste);\n };\n\n var unlisten = function unlisten(listener) {\n arrayRemove(listeners$1, listeners$1.indexOf(listener));\n\n // clean up\n if (listeners$1.length === 0) {\n document.removeEventListener('paste', handlePaste);\n listening = false;\n }\n };\n\n var createPaster = function createPaster() {\n var cb = function cb(files) {\n api.onload(files);\n };\n\n var api = {\n destroy: function destroy() {\n unlisten(cb);\n },\n onload: function onload() {},\n };\n\n listen(cb);\n\n return api;\n };\n\n /**\n * Creates the file view\n */\n var create$d = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n root.element.id = 'filepond--assistant-' + props.id;\n attr(root.element, 'role', 'status');\n attr(root.element, 'aria-live', 'polite');\n attr(root.element, 'aria-relevant', 'additions');\n };\n\n var addFilesNotificationTimeout = null;\n var notificationClearTimeout = null;\n\n var filenames = [];\n\n var assist = function assist(root, message) {\n root.element.textContent = message;\n };\n\n var clear$1 = function clear(root) {\n root.element.textContent = '';\n };\n\n var listModified = function listModified(root, filename, label) {\n var total = root.query('GET_TOTAL_ITEMS');\n assist(\n root,\n label +\n ' ' +\n filename +\n ', ' +\n total +\n ' ' +\n (total === 1\n ? root.query('GET_LABEL_FILE_COUNT_SINGULAR')\n : root.query('GET_LABEL_FILE_COUNT_PLURAL'))\n );\n\n // clear group after set amount of time so the status is not read twice\n clearTimeout(notificationClearTimeout);\n notificationClearTimeout = setTimeout(function() {\n clear$1(root);\n }, 1500);\n };\n\n var isUsingFilePond = function isUsingFilePond(root) {\n return root.element.parentNode.contains(document.activeElement);\n };\n\n var itemAdded = function itemAdded(_ref2) {\n var root = _ref2.root,\n action = _ref2.action;\n if (!isUsingFilePond(root)) {\n return;\n }\n\n root.element.textContent = '';\n var item = root.query('GET_ITEM', action.id);\n filenames.push(item.filename);\n\n clearTimeout(addFilesNotificationTimeout);\n addFilesNotificationTimeout = setTimeout(function() {\n listModified(root, filenames.join(', '), root.query('GET_LABEL_FILE_ADDED'));\n\n filenames.length = 0;\n }, 750);\n };\n\n var itemRemoved = function itemRemoved(_ref3) {\n var root = _ref3.root,\n action = _ref3.action;\n if (!isUsingFilePond(root)) {\n return;\n }\n\n var item = action.item;\n listModified(root, item.filename, root.query('GET_LABEL_FILE_REMOVED'));\n };\n\n var itemProcessed = function itemProcessed(_ref4) {\n var root = _ref4.root,\n action = _ref4.action;\n // will also notify the user when FilePond is not being used, as the user might be occupied with other activities while uploading a file\n\n var item = root.query('GET_ITEM', action.id);\n var filename = item.filename;\n var label = root.query('GET_LABEL_FILE_PROCESSING_COMPLETE');\n\n assist(root, filename + ' ' + label);\n };\n\n var itemProcessedUndo = function itemProcessedUndo(_ref5) {\n var root = _ref5.root,\n action = _ref5.action;\n var item = root.query('GET_ITEM', action.id);\n var filename = item.filename;\n var label = root.query('GET_LABEL_FILE_PROCESSING_ABORTED');\n\n assist(root, filename + ' ' + label);\n };\n\n var itemError = function itemError(_ref6) {\n var root = _ref6.root,\n action = _ref6.action;\n var item = root.query('GET_ITEM', action.id);\n var filename = item.filename;\n\n // will also notify the user when FilePond is not being used, as the user might be occupied with other activities while uploading a file\n\n assist(root, action.status.main + ' ' + filename + ' ' + action.status.sub);\n };\n\n var assistant = createView({\n create: create$d,\n ignoreRect: true,\n ignoreRectUpdate: true,\n write: createRoute({\n DID_LOAD_ITEM: itemAdded,\n DID_REMOVE_ITEM: itemRemoved,\n DID_COMPLETE_ITEM_PROCESSING: itemProcessed,\n\n DID_ABORT_ITEM_PROCESSING: itemProcessedUndo,\n DID_REVERT_ITEM_PROCESSING: itemProcessedUndo,\n\n DID_THROW_ITEM_REMOVE_ERROR: itemError,\n DID_THROW_ITEM_LOAD_ERROR: itemError,\n DID_THROW_ITEM_INVALID: itemError,\n DID_THROW_ITEM_PROCESSING_ERROR: itemError,\n }),\n\n tag: 'span',\n name: 'assistant',\n });\n\n var toCamels = function toCamels(string) {\n var separator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '-';\n return string.replace(new RegExp(separator + '.', 'g'), function(sub) {\n return sub.charAt(1).toUpperCase();\n });\n };\n\n var debounce = function debounce(func) {\n var interval = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 16;\n var immidiateOnly =\n arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var last = Date.now();\n var timeout = null;\n\n return function() {\n for (\n var _len = arguments.length, args = new Array(_len), _key = 0;\n _key < _len;\n _key++\n ) {\n args[_key] = arguments[_key];\n }\n clearTimeout(timeout);\n\n var dist = Date.now() - last;\n\n var fn = function fn() {\n last = Date.now();\n func.apply(void 0, args);\n };\n\n if (dist < interval) {\n // we need to delay by the difference between interval and dist\n // for example: if distance is 10 ms and interval is 16 ms,\n // we need to wait an additional 6ms before calling the function)\n if (!immidiateOnly) {\n timeout = setTimeout(fn, interval - dist);\n }\n } else {\n // go!\n fn();\n }\n };\n };\n\n var MAX_FILES_LIMIT = 1000000;\n\n var prevent = function prevent(e) {\n return e.preventDefault();\n };\n\n var create$e = function create(_ref) {\n var root = _ref.root,\n props = _ref.props;\n // Add id\n var id = root.query('GET_ID');\n if (id) {\n root.element.id = id;\n }\n\n // Add className\n var className = root.query('GET_CLASS_NAME');\n if (className) {\n className\n .split(' ')\n .filter(function(name) {\n return name.length;\n })\n .forEach(function(name) {\n root.element.classList.add(name);\n });\n }\n\n // Field label\n root.ref.label = root.appendChildView(\n root.createChildView(\n dropLabel,\n Object.assign({}, props, {\n translateY: null,\n caption: root.query('GET_LABEL_IDLE'),\n })\n )\n );\n\n // List of items\n root.ref.list = root.appendChildView(\n root.createChildView(listScroller, { translateY: null })\n );\n\n // Background panel\n root.ref.panel = root.appendChildView(root.createChildView(panel, { name: 'panel-root' }));\n\n // Assistant notifies assistive tech when content changes\n root.ref.assistant = root.appendChildView(\n root.createChildView(assistant, Object.assign({}, props))\n );\n\n // Data\n root.ref.data = root.appendChildView(root.createChildView(data, Object.assign({}, props)));\n\n // Measure (tests if fixed height was set)\n // DOCTYPE needs to be set for this to work\n root.ref.measure = createElement$1('div');\n root.ref.measure.style.height = '100%';\n root.element.appendChild(root.ref.measure);\n\n // information on the root height or fixed height status\n root.ref.bounds = null;\n\n // apply initial style properties\n root.query('GET_STYLES')\n .filter(function(style) {\n return !isEmpty(style.value);\n })\n .map(function(_ref2) {\n var name = _ref2.name,\n value = _ref2.value;\n root.element.dataset[name] = value;\n });\n\n // determine if width changed\n root.ref.widthPrevious = null;\n root.ref.widthUpdated = debounce(function() {\n root.ref.updateHistory = [];\n root.dispatch('DID_RESIZE_ROOT');\n }, 250);\n\n // history of updates\n root.ref.previousAspectRatio = null;\n root.ref.updateHistory = [];\n\n // prevent scrolling and zooming on iOS (only if supports pointer events, for then we can enable reorder)\n var canHover = window.matchMedia('(pointer: fine) and (hover: hover)').matches;\n var hasPointerEvents = 'PointerEvent' in window;\n if (root.query('GET_ALLOW_REORDER') && hasPointerEvents && !canHover) {\n root.element.addEventListener('touchmove', prevent, { passive: false });\n root.element.addEventListener('gesturestart', prevent);\n }\n\n // add credits\n var credits = root.query('GET_CREDITS');\n var hasCredits = credits.length === 2;\n if (hasCredits) {\n var frag = document.createElement('a');\n frag.className = 'filepond--credits';\n frag.setAttribute('aria-hidden', 'true');\n frag.href = credits[0];\n frag.tabindex = -1;\n frag.target = '_blank';\n frag.rel = 'noopener noreferrer';\n frag.textContent = credits[1];\n root.element.appendChild(frag);\n root.ref.credits = frag;\n }\n };\n\n var write$9 = function write(_ref3) {\n var root = _ref3.root,\n props = _ref3.props,\n actions = _ref3.actions;\n // route actions\n route$5({ root: root, props: props, actions: actions });\n\n // apply style properties\n actions\n .filter(function(action) {\n return /^DID_SET_STYLE_/.test(action.type);\n })\n .filter(function(action) {\n return !isEmpty(action.data.value);\n })\n .map(function(_ref4) {\n var type = _ref4.type,\n data = _ref4.data;\n var name = toCamels(type.substring(8).toLowerCase(), '_');\n root.element.dataset[name] = data.value;\n root.invalidateLayout();\n });\n\n if (root.rect.element.hidden) return;\n\n if (root.rect.element.width !== root.ref.widthPrevious) {\n root.ref.widthPrevious = root.rect.element.width;\n root.ref.widthUpdated();\n }\n\n // get box bounds, we do this only once\n var bounds = root.ref.bounds;\n if (!bounds) {\n bounds = root.ref.bounds = calculateRootBoundingBoxHeight(root);\n\n // destroy measure element\n root.element.removeChild(root.ref.measure);\n root.ref.measure = null;\n }\n\n // get quick references to various high level parts of the upload tool\n var _root$ref = root.ref,\n hopper = _root$ref.hopper,\n label = _root$ref.label,\n list = _root$ref.list,\n panel = _root$ref.panel;\n\n // sets correct state to hopper scope\n if (hopper) {\n hopper.updateHopperState();\n }\n\n // bool to indicate if we're full or not\n var aspectRatio = root.query('GET_PANEL_ASPECT_RATIO');\n var isMultiItem = root.query('GET_ALLOW_MULTIPLE');\n var totalItems = root.query('GET_TOTAL_ITEMS');\n var maxItems = isMultiItem ? root.query('GET_MAX_FILES') || MAX_FILES_LIMIT : 1;\n var atMaxCapacity = totalItems === maxItems;\n\n // action used to add item\n var addAction = actions.find(function(action) {\n return action.type === 'DID_ADD_ITEM';\n });\n\n // if reached max capacity and we've just reached it\n if (atMaxCapacity && addAction) {\n // get interaction type\n var interactionMethod = addAction.data.interactionMethod;\n\n // hide label\n label.opacity = 0;\n\n if (isMultiItem) {\n label.translateY = -40;\n } else {\n if (interactionMethod === InteractionMethod.API) {\n label.translateX = 40;\n } else if (interactionMethod === InteractionMethod.BROWSE) {\n label.translateY = 40;\n } else {\n label.translateY = 30;\n }\n }\n } else if (!atMaxCapacity) {\n label.opacity = 1;\n label.translateX = 0;\n label.translateY = 0;\n }\n\n var listItemMargin = calculateListItemMargin(root);\n\n var listHeight = calculateListHeight(root);\n\n var labelHeight = label.rect.element.height;\n var currentLabelHeight = !isMultiItem || atMaxCapacity ? 0 : labelHeight;\n\n var listMarginTop = atMaxCapacity ? list.rect.element.marginTop : 0;\n var listMarginBottom = totalItems === 0 ? 0 : list.rect.element.marginBottom;\n\n var visualHeight =\n currentLabelHeight + listMarginTop + listHeight.visual + listMarginBottom;\n var boundsHeight =\n currentLabelHeight + listMarginTop + listHeight.bounds + listMarginBottom;\n\n // link list to label bottom position\n list.translateY =\n Math.max(0, currentLabelHeight - list.rect.element.marginTop) - listItemMargin.top;\n\n if (aspectRatio) {\n // fixed aspect ratio\n\n // calculate height based on width\n var width = root.rect.element.width;\n var height = width * aspectRatio;\n\n // clear history if aspect ratio has changed\n if (aspectRatio !== root.ref.previousAspectRatio) {\n root.ref.previousAspectRatio = aspectRatio;\n root.ref.updateHistory = [];\n }\n\n // remember this width\n var history = root.ref.updateHistory;\n history.push(width);\n\n var MAX_BOUNCES = 2;\n if (history.length > MAX_BOUNCES * 2) {\n var l = history.length;\n var bottom = l - 10;\n var bounces = 0;\n for (var i = l; i >= bottom; i--) {\n if (history[i] === history[i - 2]) {\n bounces++;\n }\n\n if (bounces >= MAX_BOUNCES) {\n // dont adjust height\n return;\n }\n }\n }\n\n // fix height of panel so it adheres to aspect ratio\n panel.scalable = false;\n panel.height = height;\n\n // available height for list\n var listAvailableHeight =\n // the height of the panel minus the label height\n height -\n currentLabelHeight -\n // the room we leave open between the end of the list and the panel bottom\n (listMarginBottom - listItemMargin.bottom) -\n // if we're full we need to leave some room between the top of the panel and the list\n (atMaxCapacity ? listMarginTop : 0);\n\n if (listHeight.visual > listAvailableHeight) {\n list.overflow = listAvailableHeight;\n } else {\n list.overflow = null;\n }\n\n // set container bounds (so pushes siblings downwards)\n root.height = height;\n } else if (bounds.fixedHeight) {\n // fixed height\n\n // fix height of panel\n panel.scalable = false;\n\n // available height for list\n var _listAvailableHeight =\n // the height of the panel minus the label height\n bounds.fixedHeight -\n currentLabelHeight -\n // the room we leave open between the end of the list and the panel bottom\n (listMarginBottom - listItemMargin.bottom) -\n // if we're full we need to leave some room between the top of the panel and the list\n (atMaxCapacity ? listMarginTop : 0);\n\n // set list height\n if (listHeight.visual > _listAvailableHeight) {\n list.overflow = _listAvailableHeight;\n } else {\n list.overflow = null;\n }\n\n // no need to set container bounds as these are handles by CSS fixed height\n } else if (bounds.cappedHeight) {\n // max-height\n\n // not a fixed height panel\n var isCappedHeight = visualHeight >= bounds.cappedHeight;\n var panelHeight = Math.min(bounds.cappedHeight, visualHeight);\n panel.scalable = true;\n panel.height = isCappedHeight\n ? panelHeight\n : panelHeight - listItemMargin.top - listItemMargin.bottom;\n\n // available height for list\n var _listAvailableHeight2 =\n // the height of the panel minus the label height\n panelHeight -\n currentLabelHeight -\n // the room we leave open between the end of the list and the panel bottom\n (listMarginBottom - listItemMargin.bottom) -\n // if we're full we need to leave some room between the top of the panel and the list\n (atMaxCapacity ? listMarginTop : 0);\n\n // set list height (if is overflowing)\n if (visualHeight > bounds.cappedHeight && listHeight.visual > _listAvailableHeight2) {\n list.overflow = _listAvailableHeight2;\n } else {\n list.overflow = null;\n }\n\n // set container bounds (so pushes siblings downwards)\n root.height = Math.min(\n bounds.cappedHeight,\n boundsHeight - listItemMargin.top - listItemMargin.bottom\n );\n } else {\n // flexible height\n\n // not a fixed height panel\n var itemMargin = totalItems > 0 ? listItemMargin.top + listItemMargin.bottom : 0;\n panel.scalable = true;\n panel.height = Math.max(labelHeight, visualHeight - itemMargin);\n\n // set container bounds (so pushes siblings downwards)\n root.height = Math.max(labelHeight, boundsHeight - itemMargin);\n }\n\n // move credits to bottom\n if (root.ref.credits && panel.heightCurrent)\n root.ref.credits.style.transform = 'translateY(' + panel.heightCurrent + 'px)';\n };\n\n var calculateListItemMargin = function calculateListItemMargin(root) {\n var item = root.ref.list.childViews[0].childViews[0];\n return item\n ? {\n top: item.rect.element.marginTop,\n bottom: item.rect.element.marginBottom,\n }\n : {\n top: 0,\n bottom: 0,\n };\n };\n\n var calculateListHeight = function calculateListHeight(root) {\n var visual = 0;\n var bounds = 0;\n\n // get file list reference\n var scrollList = root.ref.list;\n var itemList = scrollList.childViews[0];\n var visibleChildren = itemList.childViews.filter(function(child) {\n return child.rect.element.height;\n });\n var children = root\n .query('GET_ACTIVE_ITEMS')\n .map(function(item) {\n return visibleChildren.find(function(child) {\n return child.id === item.id;\n });\n })\n .filter(function(item) {\n return item;\n });\n\n // no children, done!\n if (children.length === 0) return { visual: visual, bounds: bounds };\n\n var horizontalSpace = itemList.rect.element.width;\n var dragIndex = getItemIndexByPosition(itemList, children, scrollList.dragCoordinates);\n\n var childRect = children[0].rect.element;\n\n var itemVerticalMargin = childRect.marginTop + childRect.marginBottom;\n var itemHorizontalMargin = childRect.marginLeft + childRect.marginRight;\n\n var itemWidth = childRect.width + itemHorizontalMargin;\n var itemHeight = childRect.height + itemVerticalMargin;\n\n var newItem = typeof dragIndex !== 'undefined' && dragIndex >= 0 ? 1 : 0;\n var removedItem = children.find(function(child) {\n return child.markedForRemoval && child.opacity < 0.45;\n })\n ? -1\n : 0;\n var verticalItemCount = children.length + newItem + removedItem;\n var itemsPerRow = getItemsPerRow(horizontalSpace, itemWidth);\n\n // stack\n if (itemsPerRow === 1) {\n children.forEach(function(item) {\n var height = item.rect.element.height + itemVerticalMargin;\n bounds += height;\n visual += height * item.opacity;\n });\n }\n // grid\n else {\n bounds = Math.ceil(verticalItemCount / itemsPerRow) * itemHeight;\n visual = bounds;\n }\n\n return { visual: visual, bounds: bounds };\n };\n\n var calculateRootBoundingBoxHeight = function calculateRootBoundingBoxHeight(root) {\n var height = root.ref.measureHeight || null;\n var cappedHeight = parseInt(root.style.maxHeight, 10) || null;\n var fixedHeight = height === 0 ? null : height;\n\n return {\n cappedHeight: cappedHeight,\n fixedHeight: fixedHeight,\n };\n };\n\n var exceedsMaxFiles = function exceedsMaxFiles(root, items) {\n var allowReplace = root.query('GET_ALLOW_REPLACE');\n var allowMultiple = root.query('GET_ALLOW_MULTIPLE');\n var totalItems = root.query('GET_TOTAL_ITEMS');\n var maxItems = root.query('GET_MAX_FILES');\n\n // total amount of items being dragged\n var totalBrowseItems = items.length;\n\n // if does not allow multiple items and dragging more than one item\n if (!allowMultiple && totalBrowseItems > 1) {\n root.dispatch('DID_THROW_MAX_FILES', {\n source: items,\n error: createResponse('warning', 0, 'Max files'),\n });\n\n return true;\n }\n\n // limit max items to one if not allowed to drop multiple items\n maxItems = allowMultiple ? maxItems : 1;\n\n if (!allowMultiple && allowReplace) {\n // There is only one item, so there is room to replace or add an item\n return false;\n }\n\n // no more room?\n var hasMaxItems = isInt(maxItems);\n if (hasMaxItems && totalItems + totalBrowseItems > maxItems) {\n root.dispatch('DID_THROW_MAX_FILES', {\n source: items,\n error: createResponse('warning', 0, 'Max files'),\n });\n\n return true;\n }\n\n return false;\n };\n\n var getDragIndex = function getDragIndex(list, children, position) {\n var itemList = list.childViews[0];\n return getItemIndexByPosition(itemList, children, {\n left: position.scopeLeft - itemList.rect.element.left,\n top:\n position.scopeTop -\n (list.rect.outer.top + list.rect.element.marginTop + list.rect.element.scrollTop),\n });\n };\n\n /**\n * Enable or disable file drop functionality\n */\n var toggleDrop = function toggleDrop(root) {\n var isAllowed = root.query('GET_ALLOW_DROP');\n var isDisabled = root.query('GET_DISABLED');\n var enabled = isAllowed && !isDisabled;\n if (enabled && !root.ref.hopper) {\n var hopper = createHopper(\n root.element,\n function(items) {\n // allow quick validation of dropped items\n var beforeDropFile =\n root.query('GET_BEFORE_DROP_FILE') ||\n function() {\n return true;\n };\n\n // all items should be validated by all filters as valid\n var dropValidation = root.query('GET_DROP_VALIDATION');\n return dropValidation\n ? items.every(function(item) {\n return (\n applyFilters('ALLOW_HOPPER_ITEM', item, {\n query: root.query,\n }).every(function(result) {\n return result === true;\n }) && beforeDropFile(item)\n );\n })\n : true;\n },\n {\n filterItems: function filterItems(items) {\n var ignoredFiles = root.query('GET_IGNORED_FILES');\n return items.filter(function(item) {\n if (isFile(item)) {\n return !ignoredFiles.includes(item.name.toLowerCase());\n }\n return true;\n });\n },\n catchesDropsOnPage: root.query('GET_DROP_ON_PAGE'),\n requiresDropOnElement: root.query('GET_DROP_ON_ELEMENT'),\n }\n );\n\n hopper.onload = function(items, position) {\n // get item children elements and sort based on list sort\n var list = root.ref.list.childViews[0];\n var visibleChildren = list.childViews.filter(function(child) {\n return child.rect.element.height;\n });\n var children = root\n .query('GET_ACTIVE_ITEMS')\n .map(function(item) {\n return visibleChildren.find(function(child) {\n return child.id === item.id;\n });\n })\n .filter(function(item) {\n return item;\n });\n\n applyFilterChain('ADD_ITEMS', items, { dispatch: root.dispatch }).then(function(\n queue\n ) {\n // these files don't fit so stop here\n if (exceedsMaxFiles(root, queue)) return false;\n\n // go\n root.dispatch('ADD_ITEMS', {\n items: queue,\n index: getDragIndex(root.ref.list, children, position),\n interactionMethod: InteractionMethod.DROP,\n });\n });\n\n root.dispatch('DID_DROP', { position: position });\n\n root.dispatch('DID_END_DRAG', { position: position });\n };\n\n hopper.ondragstart = function(position) {\n root.dispatch('DID_START_DRAG', { position: position });\n };\n\n hopper.ondrag = debounce(function(position) {\n root.dispatch('DID_DRAG', { position: position });\n });\n\n hopper.ondragend = function(position) {\n root.dispatch('DID_END_DRAG', { position: position });\n };\n\n root.ref.hopper = hopper;\n\n root.ref.drip = root.appendChildView(root.createChildView(drip));\n } else if (!enabled && root.ref.hopper) {\n root.ref.hopper.destroy();\n root.ref.hopper = null;\n root.removeChildView(root.ref.drip);\n }\n };\n\n /**\n * Enable or disable browse functionality\n */\n var toggleBrowse = function toggleBrowse(root, props) {\n var isAllowed = root.query('GET_ALLOW_BROWSE');\n var isDisabled = root.query('GET_DISABLED');\n var enabled = isAllowed && !isDisabled;\n if (enabled && !root.ref.browser) {\n root.ref.browser = root.appendChildView(\n root.createChildView(\n browser,\n Object.assign({}, props, {\n onload: function onload(items) {\n applyFilterChain('ADD_ITEMS', items, {\n dispatch: root.dispatch,\n }).then(function(queue) {\n // these files don't fit so stop here\n if (exceedsMaxFiles(root, queue)) return false;\n\n // add items!\n root.dispatch('ADD_ITEMS', {\n items: queue,\n index: -1,\n interactionMethod: InteractionMethod.BROWSE,\n });\n });\n },\n })\n ),\n\n 0\n );\n } else if (!enabled && root.ref.browser) {\n root.removeChildView(root.ref.browser);\n root.ref.browser = null;\n }\n };\n\n /**\n * Enable or disable paste functionality\n */\n var togglePaste = function togglePaste(root) {\n var isAllowed = root.query('GET_ALLOW_PASTE');\n var isDisabled = root.query('GET_DISABLED');\n var enabled = isAllowed && !isDisabled;\n if (enabled && !root.ref.paster) {\n root.ref.paster = createPaster();\n root.ref.paster.onload = function(items) {\n applyFilterChain('ADD_ITEMS', items, { dispatch: root.dispatch }).then(function(\n queue\n ) {\n // these files don't fit so stop here\n if (exceedsMaxFiles(root, queue)) return false;\n\n // add items!\n root.dispatch('ADD_ITEMS', {\n items: queue,\n index: -1,\n interactionMethod: InteractionMethod.PASTE,\n });\n });\n };\n } else if (!enabled && root.ref.paster) {\n root.ref.paster.destroy();\n root.ref.paster = null;\n }\n };\n\n /**\n * Route actions\n */\n var route$5 = createRoute({\n DID_SET_ALLOW_BROWSE: function DID_SET_ALLOW_BROWSE(_ref5) {\n var root = _ref5.root,\n props = _ref5.props;\n toggleBrowse(root, props);\n },\n DID_SET_ALLOW_DROP: function DID_SET_ALLOW_DROP(_ref6) {\n var root = _ref6.root;\n toggleDrop(root);\n },\n DID_SET_ALLOW_PASTE: function DID_SET_ALLOW_PASTE(_ref7) {\n var root = _ref7.root;\n togglePaste(root);\n },\n DID_SET_DISABLED: function DID_SET_DISABLED(_ref8) {\n var root = _ref8.root,\n props = _ref8.props;\n toggleDrop(root);\n togglePaste(root);\n toggleBrowse(root, props);\n var isDisabled = root.query('GET_DISABLED');\n if (isDisabled) {\n root.element.dataset.disabled = 'disabled';\n } else {\n // delete root.element.dataset.disabled; <= this does not work on iOS 10\n root.element.removeAttribute('data-disabled');\n }\n },\n });\n\n var root = createView({\n name: 'root',\n read: function read(_ref9) {\n var root = _ref9.root;\n if (root.ref.measure) {\n root.ref.measureHeight = root.ref.measure.offsetHeight;\n }\n },\n create: create$e,\n write: write$9,\n destroy: function destroy(_ref10) {\n var root = _ref10.root;\n if (root.ref.paster) {\n root.ref.paster.destroy();\n }\n if (root.ref.hopper) {\n root.ref.hopper.destroy();\n }\n root.element.removeEventListener('touchmove', prevent);\n root.element.removeEventListener('gesturestart', prevent);\n },\n mixins: {\n styles: ['height'],\n },\n });\n\n // creates the app\n var createApp = function createApp() {\n var initialOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // let element\n var originalElement = null;\n\n // get default options\n var defaultOptions = getOptions();\n\n // create the data store, this will contain all our app info\n var store = createStore(\n // initial state (should be serializable)\n createInitialState(defaultOptions),\n\n // queries\n [queries, createOptionQueries(defaultOptions)],\n\n // action handlers\n [actions, createOptionActions(defaultOptions)]\n );\n\n // set initial options\n store.dispatch('SET_OPTIONS', { options: initialOptions });\n\n // kick thread if visibility changes\n var visibilityHandler = function visibilityHandler() {\n if (document.hidden) return;\n store.dispatch('KICK');\n };\n document.addEventListener('visibilitychange', visibilityHandler);\n\n // re-render on window resize start and finish\n var resizeDoneTimer = null;\n var isResizing = false;\n var isResizingHorizontally = false;\n var initialWindowWidth = null;\n var currentWindowWidth = null;\n var resizeHandler = function resizeHandler() {\n if (!isResizing) {\n isResizing = true;\n }\n clearTimeout(resizeDoneTimer);\n resizeDoneTimer = setTimeout(function() {\n isResizing = false;\n initialWindowWidth = null;\n currentWindowWidth = null;\n if (isResizingHorizontally) {\n isResizingHorizontally = false;\n store.dispatch('DID_STOP_RESIZE');\n }\n }, 500);\n };\n window.addEventListener('resize', resizeHandler);\n\n // render initial view\n var view = root(store, { id: getUniqueId() });\n\n //\n // PRIVATE API -------------------------------------------------------------------------------------\n //\n var isResting = false;\n var isHidden = false;\n\n var readWriteApi = {\n // necessary for update loop\n\n /**\n * Reads from dom (never call manually)\n * @private\n */\n _read: function _read() {\n // test if we're resizing horizontally\n // TODO: see if we can optimize this by measuring root rect\n if (isResizing) {\n currentWindowWidth = window.innerWidth;\n if (!initialWindowWidth) {\n initialWindowWidth = currentWindowWidth;\n }\n\n if (!isResizingHorizontally && currentWindowWidth !== initialWindowWidth) {\n store.dispatch('DID_START_RESIZE');\n isResizingHorizontally = true;\n }\n }\n\n if (isHidden && isResting) {\n // test if is no longer hidden\n isResting = view.element.offsetParent === null;\n }\n\n // if resting, no need to read as numbers will still all be correct\n if (isResting) return;\n\n // read view data\n view._read();\n\n // if is hidden we need to know so we exit rest mode when revealed\n isHidden = view.rect.element.hidden;\n },\n\n /**\n * Writes to dom (never call manually)\n * @private\n */\n _write: function _write(ts) {\n // get all actions from store\n var actions = store\n .processActionQueue()\n\n // filter out set actions (these will automatically trigger DID_SET)\n .filter(function(action) {\n return !/^SET_/.test(action.type);\n });\n\n // if was idling and no actions stop here\n if (isResting && !actions.length) return;\n\n // some actions might trigger events\n routeActionsToEvents(actions);\n\n // update the view\n isResting = view._write(ts, actions, isResizingHorizontally);\n\n // will clean up all archived items\n removeReleasedItems(store.query('GET_ITEMS'));\n\n // now idling\n if (isResting) {\n store.processDispatchQueue();\n }\n },\n };\n\n //\n // EXPOSE EVENTS -------------------------------------------------------------------------------------\n //\n var createEvent = function createEvent(name) {\n return function(data) {\n // create default event\n var event = {\n type: name,\n };\n\n // no data to add\n if (!data) {\n return event;\n }\n\n // copy relevant props\n if (data.hasOwnProperty('error')) {\n event.error = data.error ? Object.assign({}, data.error) : null;\n }\n\n if (data.status) {\n event.status = Object.assign({}, data.status);\n }\n\n if (data.file) {\n event.output = data.file;\n }\n\n // only source is available, else add item if possible\n if (data.source) {\n event.file = data.source;\n } else if (data.item || data.id) {\n var item = data.item ? data.item : store.query('GET_ITEM', data.id);\n event.file = item ? createItemAPI(item) : null;\n }\n\n // map all items in a possible items array\n if (data.items) {\n event.items = data.items.map(createItemAPI);\n }\n\n // if this is a progress event add the progress amount\n if (/progress/.test(name)) {\n event.progress = data.progress;\n }\n\n // copy relevant props\n if (data.hasOwnProperty('origin') && data.hasOwnProperty('target')) {\n event.origin = data.origin;\n event.target = data.target;\n }\n\n return event;\n };\n };\n\n var eventRoutes = {\n DID_DESTROY: createEvent('destroy'),\n\n DID_INIT: createEvent('init'),\n\n DID_THROW_MAX_FILES: createEvent('warning'),\n\n DID_INIT_ITEM: createEvent('initfile'),\n DID_START_ITEM_LOAD: createEvent('addfilestart'),\n DID_UPDATE_ITEM_LOAD_PROGRESS: createEvent('addfileprogress'),\n DID_LOAD_ITEM: createEvent('addfile'),\n\n DID_THROW_ITEM_INVALID: [createEvent('error'), createEvent('addfile')],\n\n DID_THROW_ITEM_LOAD_ERROR: [createEvent('error'), createEvent('addfile')],\n\n DID_THROW_ITEM_REMOVE_ERROR: [createEvent('error'), createEvent('removefile')],\n\n DID_PREPARE_OUTPUT: createEvent('preparefile'),\n\n DID_START_ITEM_PROCESSING: createEvent('processfilestart'),\n DID_UPDATE_ITEM_PROCESS_PROGRESS: createEvent('processfileprogress'),\n DID_ABORT_ITEM_PROCESSING: createEvent('processfileabort'),\n DID_COMPLETE_ITEM_PROCESSING: createEvent('processfile'),\n DID_COMPLETE_ITEM_PROCESSING_ALL: createEvent('processfiles'),\n DID_REVERT_ITEM_PROCESSING: createEvent('processfilerevert'),\n\n DID_THROW_ITEM_PROCESSING_ERROR: [createEvent('error'), createEvent('processfile')],\n\n DID_REMOVE_ITEM: createEvent('removefile'),\n\n DID_UPDATE_ITEMS: createEvent('updatefiles'),\n\n DID_ACTIVATE_ITEM: createEvent('activatefile'),\n\n DID_REORDER_ITEMS: createEvent('reorderfiles'),\n };\n\n var exposeEvent = function exposeEvent(event) {\n // create event object to be dispatched\n var detail = Object.assign({ pond: exports }, event);\n delete detail.type;\n view.element.dispatchEvent(\n new CustomEvent('FilePond:' + event.type, {\n // event info\n detail: detail,\n\n // event behaviour\n bubbles: true,\n cancelable: true,\n composed: true, // triggers listeners outside of shadow root\n })\n );\n\n // event object to params used for `on()` event handlers and callbacks `oninit()`\n var params = [];\n\n // if is possible error event, make it the first param\n if (event.hasOwnProperty('error')) {\n params.push(event.error);\n }\n\n // file is always section\n if (event.hasOwnProperty('file')) {\n params.push(event.file);\n }\n\n // append other props\n var filtered = ['type', 'error', 'file'];\n Object.keys(event)\n .filter(function(key) {\n return !filtered.includes(key);\n })\n .forEach(function(key) {\n return params.push(event[key]);\n });\n\n // on(type, () => { })\n exports.fire.apply(exports, [event.type].concat(params));\n\n // oninit = () => {}\n var handler = store.query('GET_ON' + event.type.toUpperCase());\n if (handler) {\n handler.apply(void 0, params);\n }\n };\n\n var routeActionsToEvents = function routeActionsToEvents(actions) {\n if (!actions.length) return;\n actions\n .filter(function(action) {\n return eventRoutes[action.type];\n })\n .forEach(function(action) {\n var routes = eventRoutes[action.type];\n (Array.isArray(routes) ? routes : [routes]).forEach(function(route) {\n // this isn't fantastic, but because of the stacking of settimeouts plugins can handle the did_load before the did_init\n if (action.type === 'DID_INIT_ITEM') {\n exposeEvent(route(action.data));\n } else {\n setTimeout(function() {\n exposeEvent(route(action.data));\n }, 0);\n }\n });\n });\n };\n\n //\n // PUBLIC API -------------------------------------------------------------------------------------\n //\n var setOptions = function setOptions(options) {\n return store.dispatch('SET_OPTIONS', { options: options });\n };\n\n var getFile = function getFile(query) {\n return store.query('GET_ACTIVE_ITEM', query);\n };\n\n var prepareFile = function prepareFile(query) {\n return new Promise(function(resolve, reject) {\n store.dispatch('REQUEST_ITEM_PREPARE', {\n query: query,\n success: function success(item) {\n resolve(item);\n },\n failure: function failure(error) {\n reject(error);\n },\n });\n });\n };\n\n var addFile = function addFile(source) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new Promise(function(resolve, reject) {\n addFiles([{ source: source, options: options }], { index: options.index })\n .then(function(items) {\n return resolve(items && items[0]);\n })\n .catch(reject);\n });\n };\n\n var isFilePondFile = function isFilePondFile(obj) {\n return obj.file && obj.id;\n };\n\n var removeFile = function removeFile(query, options) {\n // if only passed options\n if (typeof query === 'object' && !isFilePondFile(query) && !options) {\n options = query;\n query = undefined;\n }\n\n // request item removal\n store.dispatch('REMOVE_ITEM', Object.assign({}, options, { query: query }));\n\n // see if item has been removed\n return store.query('GET_ACTIVE_ITEM', query) === null;\n };\n\n var addFiles = function addFiles() {\n for (\n var _len = arguments.length, args = new Array(_len), _key = 0;\n _key < _len;\n _key++\n ) {\n args[_key] = arguments[_key];\n }\n return new Promise(function(resolve, reject) {\n var sources = [];\n var options = {};\n\n // user passed a sources array\n if (isArray(args[0])) {\n sources.push.apply(sources, args[0]);\n Object.assign(options, args[1] || {});\n } else {\n // user passed sources as arguments, last one might be options object\n var lastArgument = args[args.length - 1];\n if (typeof lastArgument === 'object' && !(lastArgument instanceof Blob)) {\n Object.assign(options, args.pop());\n }\n\n // add rest to sources\n sources.push.apply(sources, args);\n }\n\n store.dispatch('ADD_ITEMS', {\n items: sources,\n index: options.index,\n interactionMethod: InteractionMethod.API,\n success: resolve,\n failure: reject,\n });\n });\n };\n\n var getFiles = function getFiles() {\n return store.query('GET_ACTIVE_ITEMS');\n };\n\n var processFile = function processFile(query) {\n return new Promise(function(resolve, reject) {\n store.dispatch('REQUEST_ITEM_PROCESSING', {\n query: query,\n success: function success(item) {\n resolve(item);\n },\n failure: function failure(error) {\n reject(error);\n },\n });\n });\n };\n\n var prepareFiles = function prepareFiles() {\n for (\n var _len2 = arguments.length, args = new Array(_len2), _key2 = 0;\n _key2 < _len2;\n _key2++\n ) {\n args[_key2] = arguments[_key2];\n }\n var queries = Array.isArray(args[0]) ? args[0] : args;\n var items = queries.length ? queries : getFiles();\n return Promise.all(items.map(prepareFile));\n };\n\n var processFiles = function processFiles() {\n for (\n var _len3 = arguments.length, args = new Array(_len3), _key3 = 0;\n _key3 < _len3;\n _key3++\n ) {\n args[_key3] = arguments[_key3];\n }\n var queries = Array.isArray(args[0]) ? args[0] : args;\n if (!queries.length) {\n var files = getFiles().filter(function(item) {\n return (\n !(item.status === ItemStatus.IDLE && item.origin === FileOrigin.LOCAL) &&\n item.status !== ItemStatus.PROCESSING &&\n item.status !== ItemStatus.PROCESSING_COMPLETE &&\n item.status !== ItemStatus.PROCESSING_REVERT_ERROR\n );\n });\n\n return Promise.all(files.map(processFile));\n }\n return Promise.all(queries.map(processFile));\n };\n\n var removeFiles = function removeFiles() {\n for (\n var _len4 = arguments.length, args = new Array(_len4), _key4 = 0;\n _key4 < _len4;\n _key4++\n ) {\n args[_key4] = arguments[_key4];\n }\n\n var queries = Array.isArray(args[0]) ? args[0] : args;\n\n var options;\n if (typeof queries[queries.length - 1] === 'object') {\n options = queries.pop();\n } else if (Array.isArray(args[0])) {\n options = args[1];\n }\n\n var files = getFiles();\n\n if (!queries.length)\n return Promise.all(\n files.map(function(file) {\n return removeFile(file, options);\n })\n );\n\n // when removing by index the indexes shift after each file removal so we need to convert indexes to ids\n var mappedQueries = queries\n .map(function(query) {\n return isNumber(query) ? (files[query] ? files[query].id : null) : query;\n })\n .filter(function(query) {\n return query;\n });\n\n return mappedQueries.map(function(q) {\n return removeFile(q, options);\n });\n };\n\n var exports = Object.assign(\n {},\n\n on(),\n {},\n\n readWriteApi,\n {},\n\n createOptionAPI(store, defaultOptions),\n {\n /**\n * Override options defined in options object\n * @param options\n */\n setOptions: setOptions,\n\n /**\n * Load the given file\n * @param source - the source of the file (either a File, base64 data uri or url)\n * @param options - object, { index: 0 }\n */\n addFile: addFile,\n\n /**\n * Load the given files\n * @param sources - the sources of the files to load\n * @param options - object, { index: 0 }\n */\n addFiles: addFiles,\n\n /**\n * Returns the file objects matching the given query\n * @param query { string, number, null }\n */\n getFile: getFile,\n\n /**\n * Upload file with given name\n * @param query { string, number, null }\n */\n processFile: processFile,\n\n /**\n * Request prepare output for file with given name\n * @param query { string, number, null }\n */\n prepareFile: prepareFile,\n\n /**\n * Removes a file by its name\n * @param query { string, number, null }\n */\n removeFile: removeFile,\n\n /**\n * Moves a file to a new location in the files list\n */\n moveFile: function moveFile(query, index) {\n return store.dispatch('MOVE_ITEM', { query: query, index: index });\n },\n\n /**\n * Returns all files (wrapped in public api)\n */\n getFiles: getFiles,\n\n /**\n * Starts uploading all files\n */\n processFiles: processFiles,\n\n /**\n * Clears all files from the files list\n */\n removeFiles: removeFiles,\n\n /**\n * Starts preparing output of all files\n */\n prepareFiles: prepareFiles,\n\n /**\n * Sort list of files\n */\n sort: function sort(compare) {\n return store.dispatch('SORT', { compare: compare });\n },\n\n /**\n * Browse the file system for a file\n */\n browse: function browse() {\n // needs to be trigger directly as user action needs to be traceable (is not traceable in requestAnimationFrame)\n var input = view.element.querySelector('input[type=file]');\n if (input) {\n input.click();\n }\n },\n\n /**\n * Destroys the app\n */\n destroy: function destroy() {\n // request destruction\n exports.fire('destroy', view.element);\n\n // stop active processes (file uploads, fetches, stuff like that)\n // loop over items and depending on states call abort for ongoing processes\n store.dispatch('ABORT_ALL');\n\n // destroy view\n view._destroy();\n\n // stop listening to resize\n window.removeEventListener('resize', resizeHandler);\n\n // stop listening to the visiblitychange event\n document.removeEventListener('visibilitychange', visibilityHandler);\n\n // dispatch destroy\n store.dispatch('DID_DESTROY');\n },\n\n /**\n * Inserts the plugin before the target element\n */\n insertBefore: function insertBefore$1(element) {\n return insertBefore(view.element, element);\n },\n\n /**\n * Inserts the plugin after the target element\n */\n insertAfter: function insertAfter$1(element) {\n return insertAfter(view.element, element);\n },\n\n /**\n * Appends the plugin to the target element\n */\n appendTo: function appendTo(element) {\n return element.appendChild(view.element);\n },\n\n /**\n * Replaces an element with the app\n */\n replaceElement: function replaceElement(element) {\n // insert the app before the element\n insertBefore(view.element, element);\n\n // remove the original element\n element.parentNode.removeChild(element);\n\n // remember original element\n originalElement = element;\n },\n\n /**\n * Restores the original element\n */\n restoreElement: function restoreElement() {\n if (!originalElement) {\n return; // no element to restore\n }\n\n // restore original element\n insertAfter(originalElement, view.element);\n\n // remove our element\n view.element.parentNode.removeChild(view.element);\n\n // remove reference\n originalElement = null;\n },\n\n /**\n * Returns true if the app root is attached to given element\n * @param element\n */\n isAttachedTo: function isAttachedTo(element) {\n return view.element === element || originalElement === element;\n },\n\n /**\n * Returns the root element\n */\n element: {\n get: function get() {\n return view.element;\n },\n },\n\n /**\n * Returns the current pond status\n */\n status: {\n get: function get() {\n return store.query('GET_STATUS');\n },\n },\n }\n );\n\n // Done!\n store.dispatch('DID_INIT');\n\n // create actual api object\n return createObject(exports);\n };\n\n var createAppObject = function createAppObject() {\n var customOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // default options\n var defaultOptions = {};\n forin(getOptions(), function(key, value) {\n defaultOptions[key] = value[0];\n });\n\n // set app options\n var app = createApp(\n Object.assign(\n {},\n\n defaultOptions,\n {},\n\n customOptions\n )\n );\n\n // return the plugin instance\n return app;\n };\n\n var lowerCaseFirstLetter = function lowerCaseFirstLetter(string) {\n return string.charAt(0).toLowerCase() + string.slice(1);\n };\n\n var attributeNameToPropertyName = function attributeNameToPropertyName(attributeName) {\n return toCamels(attributeName.replace(/^data-/, ''));\n };\n\n var mapObject = function mapObject(object, propertyMap) {\n // remove unwanted\n forin(propertyMap, function(selector, mapping) {\n forin(object, function(property, value) {\n // create regexp shortcut\n var selectorRegExp = new RegExp(selector);\n\n // tests if\n var matches = selectorRegExp.test(property);\n\n // no match, skip\n if (!matches) {\n return;\n }\n\n // if there's a mapping, the original property is always removed\n delete object[property];\n\n // should only remove, we done!\n if (mapping === false) {\n return;\n }\n\n // move value to new property\n if (isString(mapping)) {\n object[mapping] = value;\n return;\n }\n\n // move to group\n var group = mapping.group;\n if (isObject(mapping) && !object[group]) {\n object[group] = {};\n }\n\n object[group][lowerCaseFirstLetter(property.replace(selectorRegExp, ''))] = value;\n });\n\n // do submapping\n if (mapping.mapping) {\n mapObject(object[mapping.group], mapping.mapping);\n }\n });\n };\n\n var getAttributesAsObject = function getAttributesAsObject(node) {\n var attributeMapping =\n arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n // turn attributes into object\n var attributes = [];\n forin(node.attributes, function(index) {\n attributes.push(node.attributes[index]);\n });\n\n var output = attributes\n .filter(function(attribute) {\n return attribute.name;\n })\n .reduce(function(obj, attribute) {\n var value = attr(node, attribute.name);\n\n obj[attributeNameToPropertyName(attribute.name)] =\n value === attribute.name ? true : value;\n return obj;\n }, {});\n\n // do mapping of object properties\n mapObject(output, attributeMapping);\n\n return output;\n };\n\n var createAppAtElement = function createAppAtElement(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // how attributes of the input element are mapped to the options for the plugin\n var attributeMapping = {\n // translate to other name\n '^class$': 'className',\n '^multiple$': 'allowMultiple',\n '^capture$': 'captureMethod',\n '^webkitdirectory$': 'allowDirectoriesOnly',\n\n // group under single property\n '^server': {\n group: 'server',\n mapping: {\n '^process': {\n group: 'process',\n },\n\n '^revert': {\n group: 'revert',\n },\n\n '^fetch': {\n group: 'fetch',\n },\n\n '^restore': {\n group: 'restore',\n },\n\n '^load': {\n group: 'load',\n },\n },\n },\n\n // don't include in object\n '^type$': false,\n '^files$': false,\n };\n\n // add additional option translators\n applyFilters('SET_ATTRIBUTE_TO_OPTION_MAP', attributeMapping);\n\n // create final options object by setting options object and then overriding options supplied on element\n var mergedOptions = Object.assign({}, options);\n\n var attributeOptions = getAttributesAsObject(\n element.nodeName === 'FIELDSET' ? element.querySelector('input[type=file]') : element,\n attributeMapping\n );\n\n // merge with options object\n Object.keys(attributeOptions).forEach(function(key) {\n if (isObject(attributeOptions[key])) {\n if (!isObject(mergedOptions[key])) {\n mergedOptions[key] = {};\n }\n Object.assign(mergedOptions[key], attributeOptions[key]);\n } else {\n mergedOptions[key] = attributeOptions[key];\n }\n });\n\n // if parent is a fieldset, get files from parent by selecting all input fields that are not file upload fields\n // these will then be automatically set to the initial files\n mergedOptions.files = (options.files || []).concat(\n Array.from(element.querySelectorAll('input:not([type=file])')).map(function(input) {\n return {\n source: input.value,\n options: {\n type: input.dataset.type,\n },\n };\n })\n );\n\n // build plugin\n var app = createAppObject(mergedOptions);\n\n // add already selected files\n if (element.files) {\n Array.from(element.files).forEach(function(file) {\n app.addFile(file);\n });\n }\n\n // replace the target element\n app.replaceElement(element);\n\n // expose\n return app;\n };\n\n // if an element is passed, we create the instance at that element, if not, we just create an up object\n var createApp$1 = function createApp() {\n return isNode(arguments.length <= 0 ? undefined : arguments[0])\n ? createAppAtElement.apply(void 0, arguments)\n : createAppObject.apply(void 0, arguments);\n };\n\n var PRIVATE_METHODS = ['fire', '_read', '_write'];\n\n var createAppAPI = function createAppAPI(app) {\n var api = {};\n\n copyObjectPropertiesToObject(app, api, PRIVATE_METHODS);\n\n return api;\n };\n\n /**\n * Replaces placeholders in given string with replacements\n * @param string - \"Foo {bar}\"\"\n * @param replacements - { \"bar\": 10 }\n */\n var replaceInString = function replaceInString(string, replacements) {\n return string.replace(/(?:{([a-zA-Z]+)})/g, function(match, group) {\n return replacements[group];\n });\n };\n\n var createWorker = function createWorker(fn) {\n var workerBlob = new Blob(['(', fn.toString(), ')()'], {\n type: 'application/javascript',\n });\n\n var workerURL = URL.createObjectURL(workerBlob);\n var worker = new Worker(workerURL);\n\n return {\n transfer: function transfer(message, cb) {},\n post: function post(message, cb, transferList) {\n var id = getUniqueId();\n\n worker.onmessage = function(e) {\n if (e.data.id === id) {\n cb(e.data.message);\n }\n };\n\n worker.postMessage(\n {\n id: id,\n message: message,\n },\n\n transferList\n );\n },\n terminate: function terminate() {\n worker.terminate();\n URL.revokeObjectURL(workerURL);\n },\n };\n };\n\n var loadImage = function loadImage(url) {\n return new Promise(function(resolve, reject) {\n var img = new Image();\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 renameFile = function renameFile(file, name) {\n var renamedFile = file.slice(0, file.size, file.type);\n renamedFile.lastModifiedDate = file.lastModifiedDate;\n renamedFile.name = name;\n return renamedFile;\n };\n\n var copyFile = function copyFile(file) {\n return renameFile(file, file.name);\n };\n\n // already registered plugins (can't register twice)\n var registeredPlugins = [];\n\n // pass utils to plugin\n var createAppPlugin = function createAppPlugin(plugin) {\n // already registered\n if (registeredPlugins.includes(plugin)) {\n return;\n }\n\n // remember this plugin\n registeredPlugins.push(plugin);\n\n // setup!\n var pluginOutline = plugin({\n addFilter: addFilter,\n utils: {\n Type: Type,\n forin: forin,\n isString: isString,\n isFile: isFile,\n toNaturalFileSize: toNaturalFileSize,\n replaceInString: replaceInString,\n getExtensionFromFilename: getExtensionFromFilename,\n getFilenameWithoutExtension: getFilenameWithoutExtension,\n guesstimateMimeType: guesstimateMimeType,\n getFileFromBlob: getFileFromBlob,\n getFilenameFromURL: getFilenameFromURL,\n createRoute: createRoute,\n createWorker: createWorker,\n createView: createView,\n createItemAPI: createItemAPI,\n loadImage: loadImage,\n copyFile: copyFile,\n renameFile: renameFile,\n createBlob: createBlob,\n applyFilterChain: applyFilterChain,\n text: text,\n getNumericAspectRatioFromString: getNumericAspectRatioFromString,\n },\n\n views: {\n fileActionButton: fileActionButton,\n },\n });\n\n // add plugin options to default options\n extendDefaultOptions(pluginOutline.options);\n };\n\n // feature detection used by supported() method\n var isOperaMini = function isOperaMini() {\n return Object.prototype.toString.call(window.operamini) === '[object OperaMini]';\n };\n var hasPromises = function hasPromises() {\n return 'Promise' in window;\n };\n var hasBlobSlice = function hasBlobSlice() {\n return 'slice' in Blob.prototype;\n };\n var hasCreateObjectURL = function hasCreateObjectURL() {\n return 'URL' in window && 'createObjectURL' in window.URL;\n };\n var hasVisibility = function hasVisibility() {\n return 'visibilityState' in document;\n };\n var hasTiming = function hasTiming() {\n return 'performance' in window;\n }; // iOS 8.x\n var hasCSSSupports = function hasCSSSupports() {\n return 'supports' in (window.CSS || {});\n }; // use to detect Safari 9+\n var isIE11 = function isIE11() {\n return /MSIE|Trident/.test(window.navigator.userAgent);\n };\n\n var supported = (function() {\n // Runs immediately and then remembers result for subsequent calls\n var isSupported =\n // Has to be a browser\n isBrowser() &&\n // Can't run on Opera Mini due to lack of everything\n !isOperaMini() &&\n // Require these APIs to feature detect a modern browser\n hasVisibility() &&\n hasPromises() &&\n hasBlobSlice() &&\n hasCreateObjectURL() &&\n hasTiming() &&\n // doesn't need CSSSupports but is a good way to detect Safari 9+ (we do want to support IE11 though)\n (hasCSSSupports() || isIE11());\n\n return function() {\n return isSupported;\n };\n })();\n\n /**\n * Plugin internal state (over all instances)\n */\n var state = {\n // active app instances, used to redraw the apps and to find the later\n apps: [],\n };\n\n // plugin name\n var name = 'filepond';\n\n /**\n * Public Plugin methods\n */\n var fn = function fn() {};\n exports.Status = {};\n exports.FileStatus = {};\n exports.FileOrigin = {};\n exports.OptionTypes = {};\n exports.create = fn;\n exports.destroy = fn;\n exports.parse = fn;\n exports.find = fn;\n exports.registerPlugin = fn;\n exports.getOptions = fn;\n exports.setOptions = fn;\n\n // if not supported, no API\n if (supported()) {\n // start painter and fire load event\n createPainter(\n function() {\n state.apps.forEach(function(app) {\n return app._read();\n });\n },\n function(ts) {\n state.apps.forEach(function(app) {\n return app._write(ts);\n });\n }\n );\n\n // fire loaded event so we know when FilePond is available\n var dispatch = function dispatch() {\n // let others know we have area ready\n document.dispatchEvent(\n new CustomEvent('FilePond:loaded', {\n detail: {\n supported: supported,\n create: exports.create,\n destroy: exports.destroy,\n parse: exports.parse,\n find: exports.find,\n registerPlugin: exports.registerPlugin,\n setOptions: exports.setOptions,\n },\n })\n );\n\n // clean up event\n document.removeEventListener('DOMContentLoaded', dispatch);\n };\n\n if (document.readyState !== 'loading') {\n // move to back of execution queue, FilePond should have been exported by then\n setTimeout(function() {\n return dispatch();\n }, 0);\n } else {\n document.addEventListener('DOMContentLoaded', dispatch);\n }\n\n // updates the OptionTypes object based on the current options\n var updateOptionTypes = function updateOptionTypes() {\n return forin(getOptions(), function(key, value) {\n exports.OptionTypes[key] = value[1];\n });\n };\n\n exports.Status = Object.assign({}, Status);\n exports.FileOrigin = Object.assign({}, FileOrigin);\n exports.FileStatus = Object.assign({}, ItemStatus);\n\n exports.OptionTypes = {};\n updateOptionTypes();\n\n // create method, creates apps and adds them to the app array\n exports.create = function create() {\n var app = createApp$1.apply(void 0, arguments);\n app.on('destroy', exports.destroy);\n state.apps.push(app);\n return createAppAPI(app);\n };\n\n // destroys apps and removes them from the app array\n exports.destroy = function destroy(hook) {\n // returns true if the app was destroyed successfully\n var indexToRemove = state.apps.findIndex(function(app) {\n return app.isAttachedTo(hook);\n });\n if (indexToRemove >= 0) {\n // remove from apps\n var app = state.apps.splice(indexToRemove, 1)[0];\n\n // restore original dom element\n app.restoreElement();\n\n return true;\n }\n\n return false;\n };\n\n // parses the given context for plugins (does not include the context element itself)\n exports.parse = function parse(context) {\n // get all possible hooks\n var matchedHooks = Array.from(context.querySelectorAll('.' + name));\n\n // filter out already active hooks\n var newHooks = matchedHooks.filter(function(newHook) {\n return !state.apps.find(function(app) {\n return app.isAttachedTo(newHook);\n });\n });\n\n // create new instance for each hook\n return newHooks.map(function(hook) {\n return exports.create(hook);\n });\n };\n\n // returns an app based on the given element hook\n exports.find = function find(hook) {\n var app = state.apps.find(function(app) {\n return app.isAttachedTo(hook);\n });\n if (!app) {\n return null;\n }\n return createAppAPI(app);\n };\n\n // adds a plugin extension\n exports.registerPlugin = function registerPlugin() {\n for (\n var _len = arguments.length, plugins = new Array(_len), _key = 0;\n _key < _len;\n _key++\n ) {\n plugins[_key] = arguments[_key];\n }\n\n // register plugins\n plugins.forEach(createAppPlugin);\n\n // update OptionTypes, each plugin might have extended the default options\n updateOptionTypes();\n };\n\n exports.getOptions = function getOptions$1() {\n var opts = {};\n forin(getOptions(), function(key, value) {\n opts[key] = value[0];\n });\n return opts;\n };\n\n exports.setOptions = function setOptions$1(opts) {\n if (isObject(opts)) {\n // update existing plugins\n state.apps.forEach(function(app) {\n app.setOptions(opts);\n });\n\n // override defaults\n setOptions(opts);\n }\n\n // return new options\n return exports.getOptions();\n };\n }\n\n exports.supported = supported;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","module.exports = {\n IndexSizeError: { s: 'INDEX_SIZE_ERR', c: 1, m: 1 },\n DOMStringSizeError: { s: 'DOMSTRING_SIZE_ERR', c: 2, m: 0 },\n HierarchyRequestError: { s: 'HIERARCHY_REQUEST_ERR', c: 3, m: 1 },\n WrongDocumentError: { s: 'WRONG_DOCUMENT_ERR', c: 4, m: 1 },\n InvalidCharacterError: { s: 'INVALID_CHARACTER_ERR', c: 5, m: 1 },\n NoDataAllowedError: { s: 'NO_DATA_ALLOWED_ERR', c: 6, m: 0 },\n NoModificationAllowedError: { s: 'NO_MODIFICATION_ALLOWED_ERR', c: 7, m: 1 },\n NotFoundError: { s: 'NOT_FOUND_ERR', c: 8, m: 1 },\n NotSupportedError: { s: 'NOT_SUPPORTED_ERR', c: 9, m: 1 },\n InUseAttributeError: { s: 'INUSE_ATTRIBUTE_ERR', c: 10, m: 1 },\n InvalidStateError: { s: 'INVALID_STATE_ERR', c: 11, m: 1 },\n SyntaxError: { s: 'SYNTAX_ERR', c: 12, m: 1 },\n InvalidModificationError: { s: 'INVALID_MODIFICATION_ERR', c: 13, m: 1 },\n NamespaceError: { s: 'NAMESPACE_ERR', c: 14, m: 1 },\n InvalidAccessError: { s: 'INVALID_ACCESS_ERR', c: 15, m: 1 },\n ValidationError: { s: 'VALIDATION_ERR', c: 16, m: 0 },\n TypeMismatchError: { s: 'TYPE_MISMATCH_ERR', c: 17, m: 1 },\n SecurityError: { s: 'SECURITY_ERR', c: 18, m: 1 },\n NetworkError: { s: 'NETWORK_ERR', c: 19, m: 1 },\n AbortError: { s: 'ABORT_ERR', c: 20, m: 1 },\n URLMismatchError: { s: 'URL_MISMATCH_ERR', c: 21, m: 1 },\n QuotaExceededError: { s: 'QUOTA_EXCEEDED_ERR', c: 22, m: 1 },\n TimeoutError: { s: 'TIMEOUT_ERR', c: 23, m: 1 },\n InvalidNodeTypeError: { s: 'INVALID_NODE_TYPE_ERR', c: 24, m: 1 },\n DataCloneError: { s: 'DATA_CLONE_ERR', c: 25, m: 1 }\n};\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=style&index=0&id=29a6226e&prod&lang=scss&scoped=true&\"","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","var toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","// `Math.sign` method implementation\n// https://tc39.es/ecma262/#sec-math.sign\n// eslint-disable-next-line es/no-math-sign -- safe\nmodule.exports = Math.sign || function sign(x) {\n var n = +x;\n // eslint-disable-next-line no-self-compare -- NaN check\n return n == 0 || n != n ? n : n < 0 ? -1 : 1;\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","/*!\n * FilePondPluginImageEdit 1.6.3\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), (global.FilePondPluginImageEdit = factory()));\n})(this, function() {\n 'use strict';\n\n var isPreviewableImage = function isPreviewableImage(file) {\n return /^image/.test(file.type);\n };\n\n /**\n * Image Edit Proxy Plugin\n */\n var plugin = function plugin(_) {\n var addFilter = _.addFilter,\n utils = _.utils,\n views = _.views;\n var Type = utils.Type,\n createRoute = utils.createRoute,\n _utils$createItemAPI = utils.createItemAPI,\n createItemAPI =\n _utils$createItemAPI === void 0\n ? function(item) {\n return item;\n }\n : _utils$createItemAPI;\n var fileActionButton = views.fileActionButton;\n\n addFilter('SHOULD_REMOVE_ON_REVERT', function(shouldRemove, _ref) {\n var item = _ref.item,\n query = _ref.query;\n return new Promise(function(resolve) {\n var file = item.file;\n\n // if this file is editable it shouldn't be removed immidiately even when instant uploading\n var canEdit =\n query('GET_ALLOW_IMAGE_EDIT') &&\n query('GET_IMAGE_EDIT_ALLOW_EDIT') &&\n isPreviewableImage(file);\n\n // if the file cannot be edited it should be removed on revert\n resolve(!canEdit);\n });\n });\n\n // open editor when loading a new item\n addFilter('DID_LOAD_ITEM', function(item, _ref2) {\n var query = _ref2.query,\n dispatch = _ref2.dispatch;\n return new Promise(function(resolve, reject) {\n // if is temp or local file\n if (item.origin > 1) {\n resolve(item);\n return;\n }\n\n // get file reference\n var file = item.file;\n if (\n !query('GET_ALLOW_IMAGE_EDIT') ||\n !query('GET_IMAGE_EDIT_INSTANT_EDIT')\n ) {\n resolve(item);\n return;\n }\n\n // exit if this is not an image\n if (!isPreviewableImage(file)) {\n resolve(item);\n return;\n }\n\n var createEditorResponseHandler = function createEditorResponseHandler(\n item,\n resolve,\n reject\n ) {\n return function(userDidConfirm) {\n // remove item\n editRequestQueue.shift();\n\n // handle item\n if (userDidConfirm) {\n resolve(item);\n } else {\n reject(item);\n }\n\n // TODO: Fix, should not be needed to kick the internal loop in case no processes are running\n dispatch('KICK');\n\n // handle next item!\n requestEdit();\n };\n };\n\n var requestEdit = function requestEdit() {\n if (!editRequestQueue.length) return;\n var _editRequestQueue$ = editRequestQueue[0],\n item = _editRequestQueue$.item,\n resolve = _editRequestQueue$.resolve,\n reject = _editRequestQueue$.reject;\n\n dispatch('EDIT_ITEM', {\n id: item.id,\n handleEditorResponse: createEditorResponseHandler(\n item,\n resolve,\n reject\n )\n });\n };\n\n queueEditRequest({ item: item, resolve: resolve, reject: reject });\n\n if (editRequestQueue.length === 1) {\n requestEdit();\n }\n });\n });\n\n // extend item methods\n addFilter('DID_CREATE_ITEM', function(item, _ref3) {\n var query = _ref3.query,\n dispatch = _ref3.dispatch;\n item.extend('edit', function() {\n dispatch('EDIT_ITEM', { id: item.id });\n });\n });\n\n var editRequestQueue = [];\n var queueEditRequest = function queueEditRequest(editRequest) {\n editRequestQueue.push(editRequest);\n return editRequest;\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 if (!query('GET_ALLOW_IMAGE_EDIT')) return;\n\n var canShowImagePreview = query('GET_ALLOW_IMAGE_PREVIEW');\n\n // only run for either the file or the file info panel\n var shouldExtendView =\n (is('file-info') && !canShowImagePreview) ||\n (is('file') && canShowImagePreview);\n\n if (!shouldExtendView) return;\n\n // no editor defined, then exit\n var editor = query('GET_IMAGE_EDIT_EDITOR');\n if (!editor) return;\n\n // set default FilePond options and add bridge once\n if (!editor.filepondCallbackBridge) {\n editor.outputData = true;\n editor.outputFile = false;\n editor.filepondCallbackBridge = {\n onconfirm: editor.onconfirm || function() {},\n oncancel: editor.oncancel || function() {}\n };\n }\n\n // opens the editor, if it does not already exist, it creates the editor\n var openEditor = function openEditor(_ref4) {\n var root = _ref4.root,\n props = _ref4.props,\n action = _ref4.action;\n var id = props.id;\n var handleEditorResponse = action.handleEditorResponse;\n\n // update editor props that could have changed\n editor.cropAspectRatio =\n root.query('GET_IMAGE_CROP_ASPECT_RATIO') || editor.cropAspectRatio;\n editor.outputCanvasBackgroundColor =\n root.query('GET_IMAGE_TRANSFORM_CANVAS_BACKGROUND_COLOR') ||\n editor.outputCanvasBackgroundColor;\n\n // get item\n var item = root.query('GET_ITEM', id);\n if (!item) return;\n\n // file to open\n var file = item.file;\n\n // crop data to pass to editor\n var crop = item.getMetadata('crop');\n var cropDefault = {\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 // size data to pass to editor\n var resize = item.getMetadata('resize');\n\n // filter and color data to pass to editor\n var filter = item.getMetadata('filter') || null;\n var filters = item.getMetadata('filters') || null;\n var colors = item.getMetadata('colors') || null;\n var markup = item.getMetadata('markup') || null;\n\n // build parameters object\n var imageParameters = {\n crop: crop || cropDefault,\n size: resize\n ? {\n upscale: resize.upscale,\n mode: resize.mode,\n width: resize.size.width,\n height: resize.size.height\n }\n : null,\n filter: filters\n ? filters.id || filters.matrix\n : root.query('GET_ALLOW_IMAGE_FILTER') &&\n root.query('GET_IMAGE_FILTER_COLOR_MATRIX') &&\n !colors\n ? filter\n : null,\n color: colors,\n markup: markup\n };\n\n editor.onconfirm = function(_ref5) {\n var data = _ref5.data;\n var crop = data.crop,\n size = data.size,\n filter = data.filter,\n color = data.color,\n colorMatrix = data.colorMatrix,\n markup = data.markup;\n\n // create new metadata object\n var metadata = {};\n\n // append crop data\n if (crop) {\n metadata.crop = crop;\n }\n\n // append size data\n if (size) {\n var initialSize = (item.getMetadata('resize') || {}).size;\n var targetSize = {\n width: size.width,\n height: size.height\n };\n\n if (!(targetSize.width && targetSize.height) && initialSize) {\n targetSize.width = initialSize.width;\n targetSize.height = initialSize.height;\n }\n\n if (targetSize.width || targetSize.height) {\n metadata.resize = {\n upscale: size.upscale,\n mode: size.mode,\n size: targetSize\n };\n }\n }\n\n if (markup) {\n metadata.markup = markup;\n }\n\n // set filters and colors so we can restore them when re-editing the image\n metadata.colors = color;\n metadata.filters = filter;\n\n // set merged color matrix to use in preview plugin\n metadata.filter = colorMatrix;\n\n // update crop metadata\n item.setMetadata(metadata);\n\n // call\n editor.filepondCallbackBridge.onconfirm(data, createItemAPI(item));\n\n // used in instant edit mode\n if (!handleEditorResponse) return;\n editor.onclose = function() {\n handleEditorResponse(true);\n editor.onclose = null;\n };\n };\n\n editor.oncancel = function() {\n // call\n editor.filepondCallbackBridge.oncancel(createItemAPI(item));\n\n // used in instant edit mode\n if (!handleEditorResponse) return;\n editor.onclose = function() {\n handleEditorResponse(false);\n editor.onclose = null;\n };\n };\n\n editor.open(file, imageParameters);\n };\n\n /**\n * Image Preview related\n */\n\n // create the image edit plugin, but only do so if the item is an image\n var didLoadItem = function didLoadItem(_ref6) {\n var root = _ref6.root,\n props = _ref6.props;\n\n if (!query('GET_IMAGE_EDIT_ALLOW_EDIT')) return;\n var id = props.id;\n\n // try to access item\n var item = query('GET_ITEM', id);\n if (!item) 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 // handle interactions\n root.ref.handleEdit = function(e) {\n e.stopPropagation();\n root.dispatch('EDIT_ITEM', { id: id });\n };\n\n if (canShowImagePreview) {\n // add edit button to preview\n var buttonView = view.createChildView(fileActionButton, {\n label: 'edit',\n icon: query('GET_IMAGE_EDIT_ICON_EDIT'),\n opacity: 0\n });\n\n // edit item classname\n buttonView.element.classList.add('filepond--action-edit-item');\n buttonView.element.dataset.align = query(\n 'GET_STYLE_IMAGE_EDIT_BUTTON_EDIT_ITEM_POSITION'\n );\n buttonView.on('click', root.ref.handleEdit);\n\n root.ref.buttonEditItem = view.appendChildView(buttonView);\n } else {\n // view is file info\n var filenameElement = view.element.querySelector(\n '.filepond--file-info-main'\n );\n var editButton = document.createElement('button');\n editButton.className = 'filepond--action-edit-item-alt';\n editButton.innerHTML =\n query('GET_IMAGE_EDIT_ICON_EDIT') + 'edit';\n editButton.addEventListener('click', root.ref.handleEdit);\n filenameElement.appendChild(editButton);\n\n root.ref.editButton = editButton;\n }\n };\n\n view.registerDestroyer(function(_ref7) {\n var root = _ref7.root;\n if (root.ref.buttonEditItem) {\n root.ref.buttonEditItem.off('click', root.ref.handleEdit);\n }\n if (root.ref.editButton) {\n root.ref.editButton.removeEventListener('click', root.ref.handleEdit);\n }\n });\n\n var routes = {\n EDIT_ITEM: openEditor,\n DID_LOAD_ITEM: didLoadItem\n };\n\n if (canShowImagePreview) {\n // view is file\n var didPreviewUpdate = function didPreviewUpdate(_ref8) {\n var root = _ref8.root;\n if (!root.ref.buttonEditItem) return;\n root.ref.buttonEditItem.opacity = 1;\n };\n\n routes.DID_IMAGE_PREVIEW_SHOW = didPreviewUpdate;\n } else {\n }\n\n // start writing\n view.registerWriter(createRoute(routes));\n });\n\n // Expose plugin options\n return {\n options: {\n // enable or disable image editing\n allowImageEdit: [true, Type.BOOLEAN],\n\n // location of processing button\n styleImageEditButtonEditItemPosition: ['bottom center', Type.STRING],\n\n // open editor when image is dropped\n imageEditInstantEdit: [false, Type.BOOLEAN],\n\n // allow editing\n imageEditAllowEdit: [true, Type.BOOLEAN],\n\n // the icon to use for the edit button\n imageEditIconEdit: [\n '',\n Type.STRING\n ],\n\n // editor object\n imageEditEditor: [null, Type.OBJECT]\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"],"sourceRoot":""}