{"version":3,"file":"gp-file-upload-pro.js","mappings":"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","sources":["webpack://gp-file-upload-pro/webpack/runtime/create fake namespace object","webpack://gp-file-upload-pro/webpack/runtime/load script","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/index.js","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/load-image-exif-map.js","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/load-image-exif.js","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/load-image-fetch.js","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/load-image-iptc-map.js","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/load-image-iptc.js","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/load-image-meta.js","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/load-image-orientation.js","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/load-image-scale.js","webpack://gp-file-upload-pro/./node_modules/blueimp-load-image/js/load-image.js","webpack://gp-file-upload-pro/./node_modules/bytes/index.js","webpack://gp-file-upload-pro/./node_modules/core-js/es/array/filter.js","webpack://gp-file-upload-pro/./node_modules/core-js/es/array/includes.js","webpack://gp-file-upload-pro/./node_modules/core-js/es/number/is-finite.js","webpack://gp-file-upload-pro/./node_modules/core-js/es/object/assign.js","webpack://gp-file-upload-pro/./node_modules/core-js/es/object/entries.js","webpack://gp-file-upload-pro/./node_modules/core-js/es/object/values.js","webpack://gp-file-upload-pro/./node_modules/core-js/es/string/starts-with.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/a-callable.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/add-to-unscopables.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/an-object.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/array-includes.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/array-iteration.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/array-species-constructor.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/array-species-create.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/classof-raw.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/classof.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/create-property-descriptor.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/descriptors.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/document-create-element.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/engine-user-agent.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/engine-v8-version.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/entry-unbind.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/enum-bug-keys.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/export.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/fails.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/function-bind-context.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/function-bind-native.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/function-call.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/function-name.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/function-uncurry-this.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/get-built-in.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/get-method.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/global.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/has-own-property.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/hidden-keys.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/html.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/ie8-dom-define.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/indexed-object.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/inspect-source.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/internal-state.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/is-array.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/is-callable.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/is-constructor.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/is-forced.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/is-object.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/is-pure.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/is-regexp.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/is-symbol.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/length-of-array-like.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/native-symbol.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/native-weak-map.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/not-a-regexp.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/number-is-finite.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-assign.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-create.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-define-properties.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-define-property.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-keys-internal.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-keys.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/object-to-array.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/own-keys.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/path.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/redefine.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/require-object-coercible.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/set-global.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/shared-key.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/shared-store.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/shared.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/to-absolute-index.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/to-indexed-object.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/to-length.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/to-object.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/to-primitive.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/to-property-key.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/to-string-tag-support.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/to-string.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/try-to-string.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/uid.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://gp-file-upload-pro/./node_modules/core-js/internals/well-known-symbol.js","webpack://gp-file-upload-pro/./node_modules/core-js/modules/es.array.filter.js","webpack://gp-file-upload-pro/./node_modules/core-js/modules/es.array.includes.js","webpack://gp-file-upload-pro/./node_modules/core-js/modules/es.number.is-finite.js","webpack://gp-file-upload-pro/./node_modules/core-js/modules/es.object.assign.js","webpack://gp-file-upload-pro/./node_modules/core-js/modules/es.object.entries.js","webpack://gp-file-upload-pro/./node_modules/core-js/modules/es.object.values.js","webpack://gp-file-upload-pro/./node_modules/core-js/modules/es.string.starts-with.js","webpack://gp-file-upload-pro/./node_modules/debounce/index.js","webpack://gp-file-upload-pro/./node_modules/delay/index.js","webpack://gp-file-upload-pro/./node_modules/es6-promise/auto.js","webpack://gp-file-upload-pro/./node_modules/es6-promise/dist/es6-promise.js","webpack://gp-file-upload-pro/./node_modules/localforage/dist/localforage.js","webpack://gp-file-upload-pro/./node_modules/portal-vue/dist/portal-vue.common.js","webpack://gp-file-upload-pro/./node_modules/sortablejs/modular/sortable.esm.js","webpack://gp-file-upload-pro/./node_modules/vue-shortkey/dist/index.js","webpack://gp-file-upload-pro/./node_modules/vuedraggable/dist/vuedraggable.umd.js","webpack://gp-file-upload-pro/external var \"VueGPFUP\"","webpack://gp-file-upload-pro/webpack/bootstrap","webpack://gp-file-upload-pro/webpack/runtime/compat get default export","webpack://gp-file-upload-pro/webpack/runtime/define property getters","webpack://gp-file-upload-pro/webpack/runtime/ensure chunk","webpack://gp-file-upload-pro/webpack/runtime/get javascript chunk filename","webpack://gp-file-upload-pro/webpack/runtime/get mini-css chunk filename","webpack://gp-file-upload-pro/webpack/runtime/global","webpack://gp-file-upload-pro/webpack/runtime/hasOwnProperty shorthand","webpack://gp-file-upload-pro/webpack/runtime/make namespace object","webpack://gp-file-upload-pro/webpack/runtime/publicPath","webpack://gp-file-upload-pro/webpack/runtime/jsonp chunk loading","webpack://gp-file-upload-pro/./node_modules/vue-advanced-cropper/dist/index.es.js","webpack://gp-file-upload-pro/./node_modules/blob-util/dist/blob-util.es.js","webpack://gp-file-upload-pro/./node_modules/vuex/dist/vuex.esm.js","webpack://gp-file-upload-pro/./js/src/frontend/helpers/deleteFileFromHiddenGFInput.ts","webpack://gp-file-upload-pro/./js/src/frontend/helpers/replaceFile.ts","webpack://gp-file-upload-pro/./js/src/frontend/helpers/triggerUpload.ts","webpack://gp-file-upload-pro/./js/src/frontend/GPFUPCropper.vue?285e","webpack://gp-file-upload-pro/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://gp-file-upload-pro/./js/src/frontend/GPFUPCropper.vue?b126","webpack://gp-file-upload-pro/./js/src/frontend/GPFUPCropper.vue?9d51","webpack://gp-file-upload-pro/./js/src/frontend/GPFUPCropper.vue?507f","webpack://gp-file-upload-pro/./js/src/frontend/helpers/isImage.ts","webpack://gp-file-upload-pro/./js/src/frontend/ImagePreview.vue?d459","webpack://gp-file-upload-pro/./js/src/frontend/ImagePreview.vue?f2c4","webpack://gp-file-upload-pro/./js/src/frontend/ImagePreview.vue?d984","webpack://gp-file-upload-pro/./js/src/frontend/ImagePreview.vue?ece1","webpack://gp-file-upload-pro/./js/src/frontend/LoadingBar.vue?c0ba","webpack://gp-file-upload-pro/./js/src/frontend/LoadingBar.vue?2a65","webpack://gp-file-upload-pro/./js/src/frontend/LoadingBar.vue?f971","webpack://gp-file-upload-pro/./js/src/frontend/DragHandle.vue?8f17","webpack://gp-file-upload-pro/./js/src/frontend/DragHandle.vue?b2a7","webpack://gp-file-upload-pro/./js/src/frontend/DragHandle.vue?08ea","webpack://gp-file-upload-pro/./js/src/frontend/File.vue?fb8a","webpack://gp-file-upload-pro/./js/src/frontend/File.vue?c0fc","webpack://gp-file-upload-pro/./js/src/frontend/File.vue?93bc","webpack://gp-file-upload-pro/./js/src/frontend/File.vue?3d5b","webpack://gp-file-upload-pro/./js/src/frontend/ErredFile.vue?b9f6","webpack://gp-file-upload-pro/./js/src/frontend/ErredFile.vue?ccba","webpack://gp-file-upload-pro/./js/src/frontend/ErredFile.vue?08b6","webpack://gp-file-upload-pro/./js/src/frontend/Droparea.vue?3d5d","webpack://gp-file-upload-pro/./js/src/frontend/Droparea.vue?ace5","webpack://gp-file-upload-pro/./js/src/frontend/Droparea.vue?afdc","webpack://gp-file-upload-pro/./js/src/frontend/Droparea.vue?e515","webpack://gp-file-upload-pro/./js/src/frontend/GPFUP.vue?7a77","webpack://gp-file-upload-pro/./js/src/frontend/GPFUP.vue?41b3","webpack://gp-file-upload-pro/./js/src/frontend/GPFUP.vue?dac8","webpack://gp-file-upload-pro/./js/src/frontend/GPFUP.vue?9c07","webpack://gp-file-upload-pro/./js/src/frontend/helpers/getImageSize.ts","webpack://gp-file-upload-pro/./js/src/frontend/stores/GPFUPStore.ts","webpack://gp-file-upload-pro/./js/src/frontend/classes/Storage.ts","webpack://gp-file-upload-pro/./js/src/frontend/helpers/sortHidddenGFInput.ts","webpack://gp-file-upload-pro/./js/src/frontend/helpers/loadWithBlueimp.ts","webpack://gp-file-upload-pro/./node_modules/exifr/dist/full.esm.mjs","webpack://gp-file-upload-pro/./js/src/frontend/GPFUPField.ts","webpack://gp-file-upload-pro/./js/src/frontend/stores/modules/editor.ts","webpack://gp-file-upload-pro/./js/src/frontend/frontend.ts"],"sourcesContent":["var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"gp-file-upload-pro:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/* global module, require */\n\nmodule.exports = require('./load-image')\n\nrequire('./load-image-scale')\nrequire('./load-image-meta')\nrequire('./load-image-fetch')\nrequire('./load-image-exif')\nrequire('./load-image-exif-map')\nrequire('./load-image-iptc')\nrequire('./load-image-iptc-map')\nrequire('./load-image-orientation')\n","/*\n * JavaScript Load Image Exif Map\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Exif tags mapping based on\n * https://github.com/jseidelin/exif-js\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-exif'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-exif'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var ExifMapProto = loadImage.ExifMap.prototype\n\n ExifMapProto.tags = {\n // =================\n // TIFF tags (IFD0):\n // =================\n 0x0100: 'ImageWidth',\n 0x0101: 'ImageHeight',\n 0x0102: 'BitsPerSample',\n 0x0103: 'Compression',\n 0x0106: 'PhotometricInterpretation',\n 0x0112: 'Orientation',\n 0x0115: 'SamplesPerPixel',\n 0x011c: 'PlanarConfiguration',\n 0x0212: 'YCbCrSubSampling',\n 0x0213: 'YCbCrPositioning',\n 0x011a: 'XResolution',\n 0x011b: 'YResolution',\n 0x0128: 'ResolutionUnit',\n 0x0111: 'StripOffsets',\n 0x0116: 'RowsPerStrip',\n 0x0117: 'StripByteCounts',\n 0x0201: 'JPEGInterchangeFormat',\n 0x0202: 'JPEGInterchangeFormatLength',\n 0x012d: 'TransferFunction',\n 0x013e: 'WhitePoint',\n 0x013f: 'PrimaryChromaticities',\n 0x0211: 'YCbCrCoefficients',\n 0x0214: 'ReferenceBlackWhite',\n 0x0132: 'DateTime',\n 0x010e: 'ImageDescription',\n 0x010f: 'Make',\n 0x0110: 'Model',\n 0x0131: 'Software',\n 0x013b: 'Artist',\n 0x8298: 'Copyright',\n 0x8769: {\n // ExifIFDPointer\n 0x9000: 'ExifVersion', // EXIF version\n 0xa000: 'FlashpixVersion', // Flashpix format version\n 0xa001: 'ColorSpace', // Color space information tag\n 0xa002: 'PixelXDimension', // Valid width of meaningful image\n 0xa003: 'PixelYDimension', // Valid height of meaningful image\n 0xa500: 'Gamma',\n 0x9101: 'ComponentsConfiguration', // Information about channels\n 0x9102: 'CompressedBitsPerPixel', // Compressed bits per pixel\n 0x927c: 'MakerNote', // Any desired information written by the manufacturer\n 0x9286: 'UserComment', // Comments by user\n 0xa004: 'RelatedSoundFile', // Name of related sound file\n 0x9003: 'DateTimeOriginal', // Date and time when the original image was generated\n 0x9004: 'DateTimeDigitized', // Date and time when the image was stored digitally\n 0x9010: 'OffsetTime', // Time zone when the image file was last changed\n 0x9011: 'OffsetTimeOriginal', // Time zone when the image was stored digitally\n 0x9012: 'OffsetTimeDigitized', // Time zone when the image was stored digitally\n 0x9290: 'SubSecTime', // Fractions of seconds for DateTime\n 0x9291: 'SubSecTimeOriginal', // Fractions of seconds for DateTimeOriginal\n 0x9292: 'SubSecTimeDigitized', // Fractions of seconds for DateTimeDigitized\n 0x829a: 'ExposureTime', // Exposure time (in seconds)\n 0x829d: 'FNumber',\n 0x8822: 'ExposureProgram', // Exposure program\n 0x8824: 'SpectralSensitivity', // Spectral sensitivity\n 0x8827: 'PhotographicSensitivity', // EXIF 2.3, ISOSpeedRatings in EXIF 2.2\n 0x8828: 'OECF', // Optoelectric conversion factor\n 0x8830: 'SensitivityType',\n 0x8831: 'StandardOutputSensitivity',\n 0x8832: 'RecommendedExposureIndex',\n 0x8833: 'ISOSpeed',\n 0x8834: 'ISOSpeedLatitudeyyy',\n 0x8835: 'ISOSpeedLatitudezzz',\n 0x9201: 'ShutterSpeedValue', // Shutter speed\n 0x9202: 'ApertureValue', // Lens aperture\n 0x9203: 'BrightnessValue', // Value of brightness\n 0x9204: 'ExposureBias', // Exposure bias\n 0x9205: 'MaxApertureValue', // Smallest F number of lens\n 0x9206: 'SubjectDistance', // Distance to subject in meters\n 0x9207: 'MeteringMode', // Metering mode\n 0x9208: 'LightSource', // Kind of light source\n 0x9209: 'Flash', // Flash status\n 0x9214: 'SubjectArea', // Location and area of main subject\n 0x920a: 'FocalLength', // Focal length of the lens in mm\n 0xa20b: 'FlashEnergy', // Strobe energy in BCPS\n 0xa20c: 'SpatialFrequencyResponse',\n 0xa20e: 'FocalPlaneXResolution', // Number of pixels in width direction per FPRUnit\n 0xa20f: 'FocalPlaneYResolution', // Number of pixels in height direction per FPRUnit\n 0xa210: 'FocalPlaneResolutionUnit', // Unit for measuring the focal plane resolution\n 0xa214: 'SubjectLocation', // Location of subject in image\n 0xa215: 'ExposureIndex', // Exposure index selected on camera\n 0xa217: 'SensingMethod', // Image sensor type\n 0xa300: 'FileSource', // Image source (3 == DSC)\n 0xa301: 'SceneType', // Scene type (1 == directly photographed)\n 0xa302: 'CFAPattern', // Color filter array geometric pattern\n 0xa401: 'CustomRendered', // Special processing\n 0xa402: 'ExposureMode', // Exposure mode\n 0xa403: 'WhiteBalance', // 1 = auto white balance, 2 = manual\n 0xa404: 'DigitalZoomRatio', // Digital zoom ratio\n 0xa405: 'FocalLengthIn35mmFilm',\n 0xa406: 'SceneCaptureType', // Type of scene\n 0xa407: 'GainControl', // Degree of overall image gain adjustment\n 0xa408: 'Contrast', // Direction of contrast processing applied by camera\n 0xa409: 'Saturation', // Direction of saturation processing applied by camera\n 0xa40a: 'Sharpness', // Direction of sharpness processing applied by camera\n 0xa40b: 'DeviceSettingDescription',\n 0xa40c: 'SubjectDistanceRange', // Distance to subject\n 0xa420: 'ImageUniqueID', // Identifier assigned uniquely to each image\n 0xa430: 'CameraOwnerName',\n 0xa431: 'BodySerialNumber',\n 0xa432: 'LensSpecification',\n 0xa433: 'LensMake',\n 0xa434: 'LensModel',\n 0xa435: 'LensSerialNumber'\n },\n 0x8825: {\n // GPSInfoIFDPointer\n 0x0000: 'GPSVersionID',\n 0x0001: 'GPSLatitudeRef',\n 0x0002: 'GPSLatitude',\n 0x0003: 'GPSLongitudeRef',\n 0x0004: 'GPSLongitude',\n 0x0005: 'GPSAltitudeRef',\n 0x0006: 'GPSAltitude',\n 0x0007: 'GPSTimeStamp',\n 0x0008: 'GPSSatellites',\n 0x0009: 'GPSStatus',\n 0x000a: 'GPSMeasureMode',\n 0x000b: 'GPSDOP',\n 0x000c: 'GPSSpeedRef',\n 0x000d: 'GPSSpeed',\n 0x000e: 'GPSTrackRef',\n 0x000f: 'GPSTrack',\n 0x0010: 'GPSImgDirectionRef',\n 0x0011: 'GPSImgDirection',\n 0x0012: 'GPSMapDatum',\n 0x0013: 'GPSDestLatitudeRef',\n 0x0014: 'GPSDestLatitude',\n 0x0015: 'GPSDestLongitudeRef',\n 0x0016: 'GPSDestLongitude',\n 0x0017: 'GPSDestBearingRef',\n 0x0018: 'GPSDestBearing',\n 0x0019: 'GPSDestDistanceRef',\n 0x001a: 'GPSDestDistance',\n 0x001b: 'GPSProcessingMethod',\n 0x001c: 'GPSAreaInformation',\n 0x001d: 'GPSDateStamp',\n 0x001e: 'GPSDifferential',\n 0x001f: 'GPSHPositioningError'\n },\n 0xa005: {\n // InteroperabilityIFDPointer\n 0x0001: 'InteroperabilityIndex'\n }\n }\n\n // IFD1 directory can contain any IFD0 tags:\n ExifMapProto.tags.ifd1 = ExifMapProto.tags\n\n ExifMapProto.stringValues = {\n ExposureProgram: {\n 0: 'Undefined',\n 1: 'Manual',\n 2: 'Normal program',\n 3: 'Aperture priority',\n 4: 'Shutter priority',\n 5: 'Creative program',\n 6: 'Action program',\n 7: 'Portrait mode',\n 8: 'Landscape mode'\n },\n MeteringMode: {\n 0: 'Unknown',\n 1: 'Average',\n 2: 'CenterWeightedAverage',\n 3: 'Spot',\n 4: 'MultiSpot',\n 5: 'Pattern',\n 6: 'Partial',\n 255: 'Other'\n },\n LightSource: {\n 0: 'Unknown',\n 1: 'Daylight',\n 2: 'Fluorescent',\n 3: 'Tungsten (incandescent light)',\n 4: 'Flash',\n 9: 'Fine weather',\n 10: 'Cloudy weather',\n 11: 'Shade',\n 12: 'Daylight fluorescent (D 5700 - 7100K)',\n 13: 'Day white fluorescent (N 4600 - 5400K)',\n 14: 'Cool white fluorescent (W 3900 - 4500K)',\n 15: 'White fluorescent (WW 3200 - 3700K)',\n 17: 'Standard light A',\n 18: 'Standard light B',\n 19: 'Standard light C',\n 20: 'D55',\n 21: 'D65',\n 22: 'D75',\n 23: 'D50',\n 24: 'ISO studio tungsten',\n 255: 'Other'\n },\n Flash: {\n 0x0000: 'Flash did not fire',\n 0x0001: 'Flash fired',\n 0x0005: 'Strobe return light not detected',\n 0x0007: 'Strobe return light detected',\n 0x0009: 'Flash fired, compulsory flash mode',\n 0x000d: 'Flash fired, compulsory flash mode, return light not detected',\n 0x000f: 'Flash fired, compulsory flash mode, return light detected',\n 0x0010: 'Flash did not fire, compulsory flash mode',\n 0x0018: 'Flash did not fire, auto mode',\n 0x0019: 'Flash fired, auto mode',\n 0x001d: 'Flash fired, auto mode, return light not detected',\n 0x001f: 'Flash fired, auto mode, return light detected',\n 0x0020: 'No flash function',\n 0x0041: 'Flash fired, red-eye reduction mode',\n 0x0045: 'Flash fired, red-eye reduction mode, return light not detected',\n 0x0047: 'Flash fired, red-eye reduction mode, return light detected',\n 0x0049: 'Flash fired, compulsory flash mode, red-eye reduction mode',\n 0x004d: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected',\n 0x004f: 'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected',\n 0x0059: 'Flash fired, auto mode, red-eye reduction mode',\n 0x005d: 'Flash fired, auto mode, return light not detected, red-eye reduction mode',\n 0x005f: 'Flash fired, auto mode, return light detected, red-eye reduction mode'\n },\n SensingMethod: {\n 1: 'Undefined',\n 2: 'One-chip color area sensor',\n 3: 'Two-chip color area sensor',\n 4: 'Three-chip color area sensor',\n 5: 'Color sequential area sensor',\n 7: 'Trilinear sensor',\n 8: 'Color sequential linear sensor'\n },\n SceneCaptureType: {\n 0: 'Standard',\n 1: 'Landscape',\n 2: 'Portrait',\n 3: 'Night scene'\n },\n SceneType: {\n 1: 'Directly photographed'\n },\n CustomRendered: {\n 0: 'Normal process',\n 1: 'Custom process'\n },\n WhiteBalance: {\n 0: 'Auto white balance',\n 1: 'Manual white balance'\n },\n GainControl: {\n 0: 'None',\n 1: 'Low gain up',\n 2: 'High gain up',\n 3: 'Low gain down',\n 4: 'High gain down'\n },\n Contrast: {\n 0: 'Normal',\n 1: 'Soft',\n 2: 'Hard'\n },\n Saturation: {\n 0: 'Normal',\n 1: 'Low saturation',\n 2: 'High saturation'\n },\n Sharpness: {\n 0: 'Normal',\n 1: 'Soft',\n 2: 'Hard'\n },\n SubjectDistanceRange: {\n 0: 'Unknown',\n 1: 'Macro',\n 2: 'Close view',\n 3: 'Distant view'\n },\n FileSource: {\n 3: 'DSC'\n },\n ComponentsConfiguration: {\n 0: '',\n 1: 'Y',\n 2: 'Cb',\n 3: 'Cr',\n 4: 'R',\n 5: 'G',\n 6: 'B'\n },\n Orientation: {\n 1: 'Original',\n 2: 'Horizontal flip',\n 3: 'Rotate 180° CCW',\n 4: 'Vertical flip',\n 5: 'Vertical flip + Rotate 90° CW',\n 6: 'Rotate 90° CW',\n 7: 'Horizontal flip + Rotate 90° CW',\n 8: 'Rotate 90° CCW'\n }\n }\n\n ExifMapProto.getText = function (name) {\n var value = this.get(name)\n switch (name) {\n case 'LightSource':\n case 'Flash':\n case 'MeteringMode':\n case 'ExposureProgram':\n case 'SensingMethod':\n case 'SceneCaptureType':\n case 'SceneType':\n case 'CustomRendered':\n case 'WhiteBalance':\n case 'GainControl':\n case 'Contrast':\n case 'Saturation':\n case 'Sharpness':\n case 'SubjectDistanceRange':\n case 'FileSource':\n case 'Orientation':\n return this.stringValues[name][value]\n case 'ExifVersion':\n case 'FlashpixVersion':\n if (!value) return\n return String.fromCharCode(value[0], value[1], value[2], value[3])\n case 'ComponentsConfiguration':\n if (!value) return\n return (\n this.stringValues[name][value[0]] +\n this.stringValues[name][value[1]] +\n this.stringValues[name][value[2]] +\n this.stringValues[name][value[3]]\n )\n case 'GPSVersionID':\n if (!value) return\n return value[0] + '.' + value[1] + '.' + value[2] + '.' + value[3]\n }\n return String(value)\n }\n\n ExifMapProto.getAll = function () {\n var map = {}\n var prop\n var obj\n var name\n for (prop in this) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n obj = this[prop]\n if (obj && obj.getAll) {\n map[this.ifds[prop].name] = obj.getAll()\n } else {\n name = this.tags[prop]\n if (name) map[name] = this.getText(name)\n }\n }\n }\n return map\n }\n\n ExifMapProto.getName = function (tagCode) {\n var name = this.tags[tagCode]\n if (typeof name === 'object') return this.ifds[tagCode].name\n return name\n }\n\n // Extend the map of tag names to tag codes:\n ;(function () {\n var tags = ExifMapProto.tags\n var prop\n var ifd\n var subTags\n // Map the tag names to tags:\n for (prop in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, prop)) {\n ifd = ExifMapProto.ifds[prop]\n if (ifd) {\n subTags = tags[prop]\n for (prop in subTags) {\n if (Object.prototype.hasOwnProperty.call(subTags, prop)) {\n ifd.map[subTags[prop]] = Number(prop)\n }\n }\n } else {\n ExifMapProto.map[tags[prop]] = Number(prop)\n }\n }\n }\n })()\n})\n","/*\n * JavaScript Load Image Exif Parser\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, DataView */\n\n/* eslint-disable no-console */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-meta'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-meta'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n /**\n * Exif tag map\n *\n * @name ExifMap\n * @class\n * @param {number|string} tagCode IFD tag code\n */\n function ExifMap(tagCode) {\n if (tagCode) {\n Object.defineProperty(this, 'map', {\n value: this.ifds[tagCode].map\n })\n Object.defineProperty(this, 'tags', {\n value: (this.tags && this.tags[tagCode]) || {}\n })\n }\n }\n\n ExifMap.prototype.map = {\n Orientation: 0x0112,\n Thumbnail: 'ifd1',\n Blob: 0x0201, // Alias for JPEGInterchangeFormat\n Exif: 0x8769,\n GPSInfo: 0x8825,\n Interoperability: 0xa005\n }\n\n ExifMap.prototype.ifds = {\n ifd1: { name: 'Thumbnail', map: ExifMap.prototype.map },\n 0x8769: { name: 'Exif', map: {} },\n 0x8825: { name: 'GPSInfo', map: {} },\n 0xa005: { name: 'Interoperability', map: {} }\n }\n\n /**\n * Retrieves exif tag value\n *\n * @param {number|string} id Exif tag code or name\n * @returns {object} Exif tag value\n */\n ExifMap.prototype.get = function (id) {\n return this[id] || this[this.map[id]]\n }\n\n /**\n * Returns the Exif Thumbnail data as Blob.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Thumbnail data offset\n * @param {number} length Thumbnail data length\n * @returns {undefined|Blob} Returns the Thumbnail Blob or undefined\n */\n function getExifThumbnail(dataView, offset, length) {\n if (!length) return\n if (offset + length > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid thumbnail data.')\n return\n }\n return new Blob(\n [loadImage.bufferSlice.call(dataView.buffer, offset, offset + length)],\n {\n type: 'image/jpeg'\n }\n )\n }\n\n var ExifTagTypes = {\n // byte, 8-bit unsigned int:\n 1: {\n getValue: function (dataView, dataOffset) {\n return dataView.getUint8(dataOffset)\n },\n size: 1\n },\n // ascii, 8-bit byte:\n 2: {\n getValue: function (dataView, dataOffset) {\n return String.fromCharCode(dataView.getUint8(dataOffset))\n },\n size: 1,\n ascii: true\n },\n // short, 16 bit int:\n 3: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getUint16(dataOffset, littleEndian)\n },\n size: 2\n },\n // long, 32 bit int:\n 4: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getUint32(dataOffset, littleEndian)\n },\n size: 4\n },\n // rational = two long values, first is numerator, second is denominator:\n 5: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return (\n dataView.getUint32(dataOffset, littleEndian) /\n dataView.getUint32(dataOffset + 4, littleEndian)\n )\n },\n size: 8\n },\n // slong, 32 bit signed int:\n 9: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return dataView.getInt32(dataOffset, littleEndian)\n },\n size: 4\n },\n // srational, two slongs, first is numerator, second is denominator:\n 10: {\n getValue: function (dataView, dataOffset, littleEndian) {\n return (\n dataView.getInt32(dataOffset, littleEndian) /\n dataView.getInt32(dataOffset + 4, littleEndian)\n )\n },\n size: 8\n }\n }\n // undefined, 8-bit byte, value depending on field:\n ExifTagTypes[7] = ExifTagTypes[1]\n\n /**\n * Returns Exif tag value.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {number} offset Tag offset\n * @param {number} type Tag type\n * @param {number} length Tag length\n * @param {boolean} littleEndian Little endian encoding\n * @returns {object} Tag value\n */\n function getExifValue(\n dataView,\n tiffOffset,\n offset,\n type,\n length,\n littleEndian\n ) {\n var tagType = ExifTagTypes[type]\n var tagSize\n var dataOffset\n var values\n var i\n var str\n var c\n if (!tagType) {\n console.log('Invalid Exif data: Invalid tag type.')\n return\n }\n tagSize = tagType.size * length\n // Determine if the value is contained in the dataOffset bytes,\n // or if the value at the dataOffset is a pointer to the actual data:\n dataOffset =\n tagSize > 4\n ? tiffOffset + dataView.getUint32(offset + 8, littleEndian)\n : offset + 8\n if (dataOffset + tagSize > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid data offset.')\n return\n }\n if (length === 1) {\n return tagType.getValue(dataView, dataOffset, littleEndian)\n }\n values = []\n for (i = 0; i < length; i += 1) {\n values[i] = tagType.getValue(\n dataView,\n dataOffset + i * tagType.size,\n littleEndian\n )\n }\n if (tagType.ascii) {\n str = ''\n // Concatenate the chars:\n for (i = 0; i < values.length; i += 1) {\n c = values[i]\n // Ignore the terminating NULL byte(s):\n if (c === '\\u0000') {\n break\n }\n str += c\n }\n return str\n }\n return values\n }\n\n /**\n * Determines if the given tag should be included.\n *\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n * @param {number|string} tagCode Tag code to check\n * @returns {boolean} True if the tag should be included\n */\n function shouldIncludeTag(includeTags, excludeTags, tagCode) {\n return (\n (!includeTags || includeTags[tagCode]) &&\n (!excludeTags || excludeTags[tagCode] !== true)\n )\n }\n\n /**\n * Parses Exif tags.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {number} dirOffset Directory offset\n * @param {boolean} littleEndian Little endian encoding\n * @param {ExifMap} tags Map to store parsed exif tags\n * @param {ExifMap} tagOffsets Map to store parsed exif tag offsets\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n * @returns {number} Next directory offset\n */\n function parseExifTags(\n dataView,\n tiffOffset,\n dirOffset,\n littleEndian,\n tags,\n tagOffsets,\n includeTags,\n excludeTags\n ) {\n var tagsNumber, dirEndOffset, i, tagOffset, tagNumber, tagValue\n if (dirOffset + 6 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid directory offset.')\n return\n }\n tagsNumber = dataView.getUint16(dirOffset, littleEndian)\n dirEndOffset = dirOffset + 2 + 12 * tagsNumber\n if (dirEndOffset + 4 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid directory size.')\n return\n }\n for (i = 0; i < tagsNumber; i += 1) {\n tagOffset = dirOffset + 2 + 12 * i\n tagNumber = dataView.getUint16(tagOffset, littleEndian)\n if (!shouldIncludeTag(includeTags, excludeTags, tagNumber)) continue\n tagValue = getExifValue(\n dataView,\n tiffOffset,\n tagOffset,\n dataView.getUint16(tagOffset + 2, littleEndian), // tag type\n dataView.getUint32(tagOffset + 4, littleEndian), // tag length\n littleEndian\n )\n tags[tagNumber] = tagValue\n if (tagOffsets) {\n tagOffsets[tagNumber] = tagOffset\n }\n }\n // Return the offset to the next directory:\n return dataView.getUint32(dirEndOffset, littleEndian)\n }\n\n /**\n * Parses tags in a given IFD (Image File Directory).\n *\n * @param {object} data Data object to store exif tags and offsets\n * @param {number|string} tagCode IFD tag code\n * @param {DataView} dataView Data view interface\n * @param {number} tiffOffset TIFF offset\n * @param {boolean} littleEndian Little endian encoding\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n */\n function parseExifIFD(\n data,\n tagCode,\n dataView,\n tiffOffset,\n littleEndian,\n includeTags,\n excludeTags\n ) {\n var dirOffset = data.exif[tagCode]\n if (dirOffset) {\n data.exif[tagCode] = new ExifMap(tagCode)\n if (data.exifOffsets) {\n data.exifOffsets[tagCode] = new ExifMap(tagCode)\n }\n parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + dirOffset,\n littleEndian,\n data.exif[tagCode],\n data.exifOffsets && data.exifOffsets[tagCode],\n includeTags && includeTags[tagCode],\n excludeTags && excludeTags[tagCode]\n )\n }\n }\n\n loadImage.parseExifData = function (dataView, offset, length, data, options) {\n if (options.disableExif) {\n return\n }\n var includeTags = options.includeExifTags\n var excludeTags = options.excludeExifTags || {\n 0x8769: {\n // ExifIFDPointer\n 0x927c: true // MakerNote\n }\n }\n var tiffOffset = offset + 10\n var littleEndian\n var dirOffset\n var thumbnailIFD\n // Check for the ASCII code for \"Exif\" (0x45786966):\n if (dataView.getUint32(offset + 4) !== 0x45786966) {\n // No Exif data, might be XMP data instead\n return\n }\n if (tiffOffset + 8 > dataView.byteLength) {\n console.log('Invalid Exif data: Invalid segment size.')\n return\n }\n // Check for the two null bytes:\n if (dataView.getUint16(offset + 8) !== 0x0000) {\n console.log('Invalid Exif data: Missing byte alignment offset.')\n return\n }\n // Check the byte alignment:\n switch (dataView.getUint16(tiffOffset)) {\n case 0x4949:\n littleEndian = true\n break\n case 0x4d4d:\n littleEndian = false\n break\n default:\n console.log('Invalid Exif data: Invalid byte alignment marker.')\n return\n }\n // Check for the TIFF tag marker (0x002A):\n if (dataView.getUint16(tiffOffset + 2, littleEndian) !== 0x002a) {\n console.log('Invalid Exif data: Missing TIFF marker.')\n return\n }\n // Retrieve the directory offset bytes, usually 0x00000008 or 8 decimal:\n dirOffset = dataView.getUint32(tiffOffset + 4, littleEndian)\n // Create the exif object to store the tags:\n data.exif = new ExifMap()\n if (!options.disableExifOffsets) {\n data.exifOffsets = new ExifMap()\n data.exifTiffOffset = tiffOffset\n data.exifLittleEndian = littleEndian\n }\n // Parse the tags of the main image directory (IFD0) and retrieve the\n // offset to the next directory (IFD1), usually the thumbnail directory:\n dirOffset = parseExifTags(\n dataView,\n tiffOffset,\n tiffOffset + dirOffset,\n littleEndian,\n data.exif,\n data.exifOffsets,\n includeTags,\n excludeTags\n )\n if (dirOffset && shouldIncludeTag(includeTags, excludeTags, 'ifd1')) {\n data.exif.ifd1 = dirOffset\n if (data.exifOffsets) {\n data.exifOffsets.ifd1 = tiffOffset + dirOffset\n }\n }\n Object.keys(data.exif.ifds).forEach(function (tagCode) {\n parseExifIFD(\n data,\n tagCode,\n dataView,\n tiffOffset,\n littleEndian,\n includeTags,\n excludeTags\n )\n })\n thumbnailIFD = data.exif.ifd1\n // Check for JPEG Thumbnail offset and data length:\n if (thumbnailIFD && thumbnailIFD[0x0201]) {\n thumbnailIFD[0x0201] = getExifThumbnail(\n dataView,\n tiffOffset + thumbnailIFD[0x0201],\n thumbnailIFD[0x0202] // Thumbnail data length\n )\n }\n }\n\n // Registers the Exif parser for the APP1 JPEG metadata segment:\n loadImage.metaDataParsers.jpeg[0xffe1].push(loadImage.parseExifData)\n\n loadImage.exifWriters = {\n // Orientation writer:\n 0x0112: function (buffer, data, value) {\n var orientationOffset = data.exifOffsets[0x0112]\n if (!orientationOffset) return buffer\n var view = new DataView(buffer, orientationOffset + 8, 2)\n view.setUint16(0, value, data.exifLittleEndian)\n return buffer\n }\n }\n\n loadImage.writeExifData = function (buffer, data, id, value) {\n return loadImage.exifWriters[data.exif.map[id]](buffer, data, value)\n }\n\n loadImage.ExifMap = ExifMap\n\n // Adds the following properties to the parseMetaData callback data:\n // - exif: The parsed Exif tags\n // - exifOffsets: The parsed Exif tag offsets\n // - exifTiffOffset: TIFF header offset (used for offset pointers)\n // - exifLittleEndian: little endian order if true, big endian if false\n\n // Adds the following options to the parseMetaData method:\n // - disableExif: Disables Exif parsing when true.\n // - disableExifOffsets: Disables storing Exif tag offsets when true.\n // - includeExifTags: A map of Exif tags to include for parsing.\n // - excludeExifTags: A map of Exif tags to exclude from parsing.\n})\n","/*\n * JavaScript Load Image Fetch\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2017, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, Promise */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var global = loadImage.global\n\n if (\n global.fetch &&\n global.Request &&\n global.Response &&\n global.Response.prototype.blob\n ) {\n loadImage.fetchBlob = function (url, callback, options) {\n /**\n * Fetch response handler.\n *\n * @param {Response} response Fetch response\n * @returns {Blob} Fetched Blob.\n */\n function responseHandler(response) {\n return response.blob()\n }\n if (global.Promise && typeof callback !== 'function') {\n return fetch(new Request(url, callback)).then(responseHandler)\n }\n fetch(new Request(url, options))\n .then(responseHandler)\n .then(callback)\n [\n // Avoid parsing error in IE<9, where catch is a reserved word.\n // eslint-disable-next-line dot-notation\n 'catch'\n ](function (err) {\n callback(null, err)\n })\n }\n } else if (\n global.XMLHttpRequest &&\n // https://xhr.spec.whatwg.org/#the-responsetype-attribute\n new XMLHttpRequest().responseType === ''\n ) {\n loadImage.fetchBlob = function (url, callback, options) {\n /**\n * Promise executor\n *\n * @param {Function} resolve Resolution function\n * @param {Function} reject Rejection function\n */\n function executor(resolve, reject) {\n options = options || {} // eslint-disable-line no-param-reassign\n var req = new XMLHttpRequest()\n req.open(options.method || 'GET', url)\n if (options.headers) {\n Object.keys(options.headers).forEach(function (key) {\n req.setRequestHeader(key, options.headers[key])\n })\n }\n req.withCredentials = options.credentials === 'include'\n req.responseType = 'blob'\n req.onload = function () {\n resolve(req.response)\n }\n req.onerror = req.onabort = req.ontimeout = function (err) {\n if (resolve === reject) {\n // Not using Promises\n reject(null, err)\n } else {\n reject(err)\n }\n }\n req.send(options.body)\n }\n if (global.Promise && typeof callback !== 'function') {\n options = callback // eslint-disable-line no-param-reassign\n return new Promise(executor)\n }\n return executor(callback, callback)\n }\n }\n})\n","/*\n * JavaScript Load Image IPTC Map\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * Copyright 2018, Dave Bevan\n *\n * IPTC tags mapping based on\n * https://iptc.org/standards/photo-metadata\n * https://exiftool.org/TagNames/IPTC.html\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-iptc'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-iptc'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var IptcMapProto = loadImage.IptcMap.prototype\n\n IptcMapProto.tags = {\n 0: 'ApplicationRecordVersion',\n 3: 'ObjectTypeReference',\n 4: 'ObjectAttributeReference',\n 5: 'ObjectName',\n 7: 'EditStatus',\n 8: 'EditorialUpdate',\n 10: 'Urgency',\n 12: 'SubjectReference',\n 15: 'Category',\n 20: 'SupplementalCategories',\n 22: 'FixtureIdentifier',\n 25: 'Keywords',\n 26: 'ContentLocationCode',\n 27: 'ContentLocationName',\n 30: 'ReleaseDate',\n 35: 'ReleaseTime',\n 37: 'ExpirationDate',\n 38: 'ExpirationTime',\n 40: 'SpecialInstructions',\n 42: 'ActionAdvised',\n 45: 'ReferenceService',\n 47: 'ReferenceDate',\n 50: 'ReferenceNumber',\n 55: 'DateCreated',\n 60: 'TimeCreated',\n 62: 'DigitalCreationDate',\n 63: 'DigitalCreationTime',\n 65: 'OriginatingProgram',\n 70: 'ProgramVersion',\n 75: 'ObjectCycle',\n 80: 'Byline',\n 85: 'BylineTitle',\n 90: 'City',\n 92: 'Sublocation',\n 95: 'State',\n 100: 'CountryCode',\n 101: 'Country',\n 103: 'OriginalTransmissionReference',\n 105: 'Headline',\n 110: 'Credit',\n 115: 'Source',\n 116: 'CopyrightNotice',\n 118: 'Contact',\n 120: 'Caption',\n 121: 'LocalCaption',\n 122: 'Writer',\n 125: 'RasterizedCaption',\n 130: 'ImageType',\n 131: 'ImageOrientation',\n 135: 'LanguageIdentifier',\n 150: 'AudioType',\n 151: 'AudioSamplingRate',\n 152: 'AudioSamplingResolution',\n 153: 'AudioDuration',\n 154: 'AudioOutcue',\n 184: 'JobID',\n 185: 'MasterDocumentID',\n 186: 'ShortDocumentID',\n 187: 'UniqueDocumentID',\n 188: 'OwnerID',\n 200: 'ObjectPreviewFileFormat',\n 201: 'ObjectPreviewFileVersion',\n 202: 'ObjectPreviewData',\n 221: 'Prefs',\n 225: 'ClassifyState',\n 228: 'SimilarityIndex',\n 230: 'DocumentNotes',\n 231: 'DocumentHistory',\n 232: 'ExifCameraInfo',\n 255: 'CatalogSets'\n }\n\n IptcMapProto.stringValues = {\n 10: {\n 0: '0 (reserved)',\n 1: '1 (most urgent)',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5 (normal urgency)',\n 6: '6',\n 7: '7',\n 8: '8 (least urgent)',\n 9: '9 (user-defined priority)'\n },\n 75: {\n a: 'Morning',\n b: 'Both Morning and Evening',\n p: 'Evening'\n },\n 131: {\n L: 'Landscape',\n P: 'Portrait',\n S: 'Square'\n }\n }\n\n IptcMapProto.getText = function (id) {\n var value = this.get(id)\n var tagCode = this.map[id]\n var stringValue = this.stringValues[tagCode]\n if (stringValue) return stringValue[value]\n return String(value)\n }\n\n IptcMapProto.getAll = function () {\n var map = {}\n var prop\n var name\n for (prop in this) {\n if (Object.prototype.hasOwnProperty.call(this, prop)) {\n name = this.tags[prop]\n if (name) map[name] = this.getText(name)\n }\n }\n return map\n }\n\n IptcMapProto.getName = function (tagCode) {\n return this.tags[tagCode]\n }\n\n // Extend the map of tag names to tag codes:\n ;(function () {\n var tags = IptcMapProto.tags\n var map = IptcMapProto.map || {}\n var prop\n // Map the tag names to tags:\n for (prop in tags) {\n if (Object.prototype.hasOwnProperty.call(tags, prop)) {\n map[tags[prop]] = Number(prop)\n }\n }\n })()\n})\n","/*\n * JavaScript Load Image IPTC Parser\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * Copyright 2018, Dave Bevan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, DataView */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-meta'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'), require('./load-image-meta'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n /**\n * IPTC tag map\n *\n * @name IptcMap\n * @class\n */\n function IptcMap() {}\n\n IptcMap.prototype.map = {\n ObjectName: 5\n }\n\n IptcMap.prototype.types = {\n 0: 'Uint16', // ApplicationRecordVersion\n 200: 'Uint16', // ObjectPreviewFileFormat\n 201: 'Uint16', // ObjectPreviewFileVersion\n 202: 'binary' // ObjectPreviewData\n }\n\n /**\n * Retrieves IPTC tag value\n *\n * @param {number|string} id IPTC tag code or name\n * @returns {object} IPTC tag value\n */\n IptcMap.prototype.get = function (id) {\n return this[id] || this[this.map[id]]\n }\n\n /**\n * Retrieves string for the given DataView and range\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Offset start\n * @param {number} length Offset length\n * @returns {string} String value\n */\n function getStringValue(dataView, offset, length) {\n var outstr = ''\n var end = offset + length\n for (var n = offset; n < end; n += 1) {\n outstr += String.fromCharCode(dataView.getUint8(n))\n }\n return outstr\n }\n\n /**\n * Retrieves tag value for the given DataView and range\n *\n * @param {number} tagCode tag code\n * @param {IptcMap} map IPTC tag map\n * @param {DataView} dataView Data view interface\n * @param {number} offset Range start\n * @param {number} length Range length\n * @returns {object} Tag value\n */\n function getTagValue(tagCode, map, dataView, offset, length) {\n if (map.types[tagCode] === 'binary') {\n return new Blob([dataView.buffer.slice(offset, offset + length)])\n }\n if (map.types[tagCode] === 'Uint16') {\n return dataView.getUint16(offset)\n }\n return getStringValue(dataView, offset, length)\n }\n\n /**\n * Combines IPTC value with existing ones.\n *\n * @param {object} value Existing IPTC field value\n * @param {object} newValue New IPTC field value\n * @returns {object} Resulting IPTC field value\n */\n function combineTagValues(value, newValue) {\n if (value === undefined) return newValue\n if (value instanceof Array) {\n value.push(newValue)\n return value\n }\n return [value, newValue]\n }\n\n /**\n * Parses IPTC tags.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} segmentOffset Segment offset\n * @param {number} segmentLength Segment length\n * @param {object} data Data export object\n * @param {object} includeTags Map of tags to include\n * @param {object} excludeTags Map of tags to exclude\n */\n function parseIptcTags(\n dataView,\n segmentOffset,\n segmentLength,\n data,\n includeTags,\n excludeTags\n ) {\n var value, tagSize, tagCode\n var segmentEnd = segmentOffset + segmentLength\n var offset = segmentOffset\n while (offset < segmentEnd) {\n if (\n dataView.getUint8(offset) === 0x1c && // tag marker\n dataView.getUint8(offset + 1) === 0x02 // record number, only handles v2\n ) {\n tagCode = dataView.getUint8(offset + 2)\n if (\n (!includeTags || includeTags[tagCode]) &&\n (!excludeTags || !excludeTags[tagCode])\n ) {\n tagSize = dataView.getInt16(offset + 3)\n value = getTagValue(tagCode, data.iptc, dataView, offset + 5, tagSize)\n data.iptc[tagCode] = combineTagValues(data.iptc[tagCode], value)\n if (data.iptcOffsets) {\n data.iptcOffsets[tagCode] = offset\n }\n }\n }\n offset += 1\n }\n }\n\n /**\n * Tests if field segment starts at offset.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Segment offset\n * @returns {boolean} True if '8BIM<EOT><EOT>' exists at offset\n */\n function isSegmentStart(dataView, offset) {\n return (\n dataView.getUint32(offset) === 0x3842494d && // Photoshop segment start\n dataView.getUint16(offset + 4) === 0x0404 // IPTC segment start\n )\n }\n\n /**\n * Returns header length.\n *\n * @param {DataView} dataView Data view interface\n * @param {number} offset Segment offset\n * @returns {number} Header length\n */\n function getHeaderLength(dataView, offset) {\n var length = dataView.getUint8(offset + 7)\n if (length % 2 !== 0) length += 1\n // Check for pre photoshop 6 format\n if (length === 0) {\n // Always 4\n length = 4\n }\n return length\n }\n\n loadImage.parseIptcData = function (dataView, offset, length, data, options) {\n if (options.disableIptc) {\n return\n }\n var markerLength = offset + length\n while (offset + 8 < markerLength) {\n if (isSegmentStart(dataView, offset)) {\n var headerLength = getHeaderLength(dataView, offset)\n var segmentOffset = offset + 8 + headerLength\n if (segmentOffset > markerLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid IPTC data: Invalid segment offset.')\n break\n }\n var segmentLength = dataView.getUint16(offset + 6 + headerLength)\n if (offset + segmentLength > markerLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid IPTC data: Invalid segment size.')\n break\n }\n // Create the iptc object to store the tags:\n data.iptc = new IptcMap()\n if (!options.disableIptcOffsets) {\n data.iptcOffsets = new IptcMap()\n }\n parseIptcTags(\n dataView,\n segmentOffset,\n segmentLength,\n data,\n options.includeIptcTags,\n options.excludeIptcTags || { 202: true } // ObjectPreviewData\n )\n return\n }\n // eslint-disable-next-line no-param-reassign\n offset += 1\n }\n }\n\n // Registers this IPTC parser for the APP13 JPEG metadata segment:\n loadImage.metaDataParsers.jpeg[0xffed].push(loadImage.parseIptcData)\n\n loadImage.IptcMap = IptcMap\n\n // Adds the following properties to the parseMetaData callback data:\n // - iptc: The iptc tags, parsed by the parseIptcData method\n\n // Adds the following options to the parseMetaData method:\n // - disableIptc: Disables IPTC parsing when true.\n // - disableIptcOffsets: Disables storing IPTC tag offsets when true.\n // - includeIptcTags: A map of IPTC tags to include for parsing.\n // - excludeIptcTags: A map of IPTC tags to exclude from parsing.\n})\n","/*\n * JavaScript Load Image Meta\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Image metadata handling implementation\n * based on the help and contribution of\n * Achim Stöhr.\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require, Promise, DataView, Uint8Array, ArrayBuffer */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var global = loadImage.global\n var originalTransform = loadImage.transform\n\n var blobSlice =\n global.Blob &&\n (Blob.prototype.slice ||\n Blob.prototype.webkitSlice ||\n Blob.prototype.mozSlice)\n\n var bufferSlice =\n (global.ArrayBuffer && ArrayBuffer.prototype.slice) ||\n function (begin, end) {\n // Polyfill for IE10, which does not support ArrayBuffer.slice\n // eslint-disable-next-line no-param-reassign\n end = end || this.byteLength - begin\n var arr1 = new Uint8Array(this, begin, end)\n var arr2 = new Uint8Array(end)\n arr2.set(arr1)\n return arr2.buffer\n }\n\n var metaDataParsers = {\n jpeg: {\n 0xffe1: [], // APP1 marker\n 0xffed: [] // APP13 marker\n }\n }\n\n /**\n * Parses image metadata and calls the callback with an object argument\n * with the following property:\n * - imageHead: The complete image head as ArrayBuffer\n * The options argument accepts an object and supports the following\n * properties:\n * - maxMetaDataSize: Defines the maximum number of bytes to parse.\n * - disableImageHead: Disables creating the imageHead property.\n *\n * @param {Blob} file Blob object\n * @param {Function} [callback] Callback function\n * @param {object} [options] Parsing options\n * @param {object} [data] Result data object\n * @returns {Promise<object>|undefined} Returns Promise if no callback given.\n */\n function parseMetaData(file, callback, options, data) {\n var that = this\n /**\n * Promise executor\n *\n * @param {Function} resolve Resolution function\n * @param {Function} reject Rejection function\n * @returns {undefined} Undefined\n */\n function executor(resolve, reject) {\n if (\n !(\n global.DataView &&\n blobSlice &&\n file &&\n file.size >= 12 &&\n file.type === 'image/jpeg'\n )\n ) {\n // Nothing to parse\n return resolve(data)\n }\n // 256 KiB should contain all EXIF/ICC/IPTC segments:\n var maxMetaDataSize = options.maxMetaDataSize || 262144\n if (\n !loadImage.readFile(\n blobSlice.call(file, 0, maxMetaDataSize),\n function (buffer) {\n // Note on endianness:\n // Since the marker and length bytes in JPEG files are always\n // stored in big endian order, we can leave the endian parameter\n // of the DataView methods undefined, defaulting to big endian.\n var dataView = new DataView(buffer)\n // Check for the JPEG marker (0xffd8):\n if (dataView.getUint16(0) !== 0xffd8) {\n return reject(\n new Error('Invalid JPEG file: Missing JPEG marker.')\n )\n }\n var offset = 2\n var maxOffset = dataView.byteLength - 4\n var headLength = offset\n var markerBytes\n var markerLength\n var parsers\n var i\n while (offset < maxOffset) {\n markerBytes = dataView.getUint16(offset)\n // Search for APPn (0xffeN) and COM (0xfffe) markers,\n // which contain application-specific metadata like\n // Exif, ICC and IPTC data and text comments:\n if (\n (markerBytes >= 0xffe0 && markerBytes <= 0xffef) ||\n markerBytes === 0xfffe\n ) {\n // The marker bytes (2) are always followed by\n // the length bytes (2), indicating the length of the\n // marker segment, which includes the length bytes,\n // but not the marker bytes, so we add 2:\n markerLength = dataView.getUint16(offset + 2) + 2\n if (offset + markerLength > dataView.byteLength) {\n // eslint-disable-next-line no-console\n console.log('Invalid JPEG metadata: Invalid segment size.')\n break\n }\n parsers = metaDataParsers.jpeg[markerBytes]\n if (parsers && !options.disableMetaDataParsers) {\n for (i = 0; i < parsers.length; i += 1) {\n parsers[i].call(\n that,\n dataView,\n offset,\n markerLength,\n data,\n options\n )\n }\n }\n offset += markerLength\n headLength = offset\n } else {\n // Not an APPn or COM marker, probably safe to\n // assume that this is the end of the metadata\n break\n }\n }\n // Meta length must be longer than JPEG marker (2)\n // plus APPn marker (2), followed by length bytes (2):\n if (!options.disableImageHead && headLength > 6) {\n data.imageHead = bufferSlice.call(buffer, 0, headLength)\n }\n resolve(data)\n },\n reject,\n 'readAsArrayBuffer'\n )\n ) {\n // No support for the FileReader interface, nothing to parse\n resolve(data)\n }\n }\n options = options || {} // eslint-disable-line no-param-reassign\n if (global.Promise && typeof callback !== 'function') {\n options = callback || {} // eslint-disable-line no-param-reassign\n data = options // eslint-disable-line no-param-reassign\n return new Promise(executor)\n }\n data = data || {} // eslint-disable-line no-param-reassign\n return executor(callback, callback)\n }\n\n /**\n * Replaces the head of a JPEG Blob\n *\n * @param {Blob} blob Blob object\n * @param {ArrayBuffer} oldHead Old JPEG head\n * @param {ArrayBuffer} newHead New JPEG head\n * @returns {Blob} Combined Blob\n */\n function replaceJPEGHead(blob, oldHead, newHead) {\n if (!blob || !oldHead || !newHead) return null\n return new Blob([newHead, blobSlice.call(blob, oldHead.byteLength)], {\n type: 'image/jpeg'\n })\n }\n\n /**\n * Replaces the image head of a JPEG blob with the given one.\n * Returns a Promise or calls the callback with the new Blob.\n *\n * @param {Blob} blob Blob object\n * @param {ArrayBuffer} head New JPEG head\n * @param {Function} [callback] Callback function\n * @returns {Promise<Blob|null>|undefined} Combined Blob\n */\n function replaceHead(blob, head, callback) {\n var options = { maxMetaDataSize: 256, disableMetaDataParsers: true }\n if (!callback && global.Promise) {\n return parseMetaData(blob, options).then(function (data) {\n return replaceJPEGHead(blob, data.imageHead, head)\n })\n }\n parseMetaData(\n blob,\n function (data) {\n callback(replaceJPEGHead(blob, data.imageHead, head))\n },\n options\n )\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n if (loadImage.requiresMetaData(options)) {\n data = data || {} // eslint-disable-line no-param-reassign\n parseMetaData(\n file,\n function (result) {\n if (result !== data) {\n // eslint-disable-next-line no-console\n if (global.console) console.log(result)\n result = data // eslint-disable-line no-param-reassign\n }\n originalTransform.call(\n loadImage,\n img,\n options,\n callback,\n file,\n result\n )\n },\n options,\n data\n )\n } else {\n originalTransform.apply(loadImage, arguments)\n }\n }\n\n loadImage.blobSlice = blobSlice\n loadImage.bufferSlice = bufferSlice\n loadImage.replaceHead = replaceHead\n loadImage.parseMetaData = parseMetaData\n loadImage.metaDataParsers = metaDataParsers\n})\n","/*\n * JavaScript Load Image Orientation\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/*\nExif orientation values to correctly display the letter F:\n\n 1 2\n ██████ ██████\n ██ ██\n ████ ████\n ██ ██\n ██ ██\n\n 3 4\n ██ ██\n ██ ██\n ████ ████\n ██ ██\n ██████ ██████\n\n 5 6\n██████████ ██\n██ ██ ██ ██\n██ ██████████\n\n 7 8\n ██ ██████████\n ██ ██ ██ ██\n██████████ ██\n\n*/\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image', './load-image-scale', './load-image-meta'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(\n require('./load-image'),\n require('./load-image-scale'),\n require('./load-image-meta')\n )\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var originalTransform = loadImage.transform\n var originalRequiresCanvas = loadImage.requiresCanvas\n var originalRequiresMetaData = loadImage.requiresMetaData\n var originalTransformCoordinates = loadImage.transformCoordinates\n var originalGetTransformedOptions = loadImage.getTransformedOptions\n\n ;(function ($) {\n // Guard for non-browser environments (e.g. server-side rendering):\n if (!$.global.document) return\n // black+white 3x2 JPEG, with the following meta information set:\n // - EXIF Orientation: 6 (Rotated 90° CCW)\n // Image data layout (B=black, F=white):\n // BFF\n // BBB\n var testImageURL =\n 'data:image/jpeg;base64,/9j/4QAiRXhpZgAATU0AKgAAAAgAAQESAAMAAAABAAYAAAA' +\n 'AAAD/2wCEAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA' +\n 'QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQE' +\n 'BAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAf/AABEIAAIAAwMBEQACEQEDEQH/x' +\n 'ABRAAEAAAAAAAAAAAAAAAAAAAAKEAEBAQADAQEAAAAAAAAAAAAGBQQDCAkCBwEBAAAAAAA' +\n 'AAAAAAAAAAAAAABEBAAAAAAAAAAAAAAAAAAAAAP/aAAwDAQACEQMRAD8AG8T9NfSMEVMhQ' +\n 'voP3fFiRZ+MTHDifa/95OFSZU5OzRzxkyejv8ciEfhSceSXGjS8eSdLnZc2HDm4M3BxcXw' +\n 'H/9k='\n var img = document.createElement('img')\n img.onload = function () {\n // Check if the browser supports automatic image orientation:\n $.orientation = img.width === 2 && img.height === 3\n if ($.orientation) {\n var canvas = $.createCanvas(1, 1, true)\n var ctx = canvas.getContext('2d')\n ctx.drawImage(img, 1, 1, 1, 1, 0, 0, 1, 1)\n // Check if the source image coordinates (sX, sY, sWidth, sHeight) are\n // correctly applied to the auto-orientated image, which should result\n // in a white opaque pixel (e.g. in Safari).\n // Browsers that show a transparent pixel (e.g. Chromium) fail to crop\n // auto-oriented images correctly and require a workaround, e.g.\n // drawing the complete source image to an intermediate canvas first.\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=1074354\n $.orientationCropBug =\n ctx.getImageData(0, 0, 1, 1).data.toString() !== '255,255,255,255'\n }\n }\n img.src = testImageURL\n })(loadImage)\n\n /**\n * Determines if the orientation requires a canvas element.\n *\n * @param {object} [options] Options object\n * @param {boolean} [withMetaData] Is metadata required for orientation\n * @returns {boolean} Returns true if orientation requires canvas/meta\n */\n function requiresCanvasOrientation(options, withMetaData) {\n var orientation = options && options.orientation\n return (\n // Exif orientation for browsers without automatic image orientation:\n (orientation === true && !loadImage.orientation) ||\n // Orientation reset for browsers with automatic image orientation:\n (orientation === 1 && loadImage.orientation) ||\n // Orientation to defined value, requires meta for orientation reset only:\n ((!withMetaData || loadImage.orientation) &&\n orientation > 1 &&\n orientation < 9)\n )\n }\n\n /**\n * Determines if the image requires an orientation change.\n *\n * @param {number} [orientation] Defined orientation value\n * @param {number} [autoOrientation] Auto-orientation based on Exif data\n * @returns {boolean} Returns true if an orientation change is required\n */\n function requiresOrientationChange(orientation, autoOrientation) {\n return (\n orientation !== autoOrientation &&\n ((orientation === 1 && autoOrientation > 1 && autoOrientation < 9) ||\n (orientation > 1 && orientation < 9))\n )\n }\n\n /**\n * Determines orientation combinations that require a rotation by 180°.\n *\n * The following is a list of combinations that return true:\n *\n * 2 (flip) => 5 (rot90,flip), 7 (rot90,flip), 6 (rot90), 8 (rot90)\n * 4 (flip) => 5 (rot90,flip), 7 (rot90,flip), 6 (rot90), 8 (rot90)\n *\n * 5 (rot90,flip) => 2 (flip), 4 (flip), 6 (rot90), 8 (rot90)\n * 7 (rot90,flip) => 2 (flip), 4 (flip), 6 (rot90), 8 (rot90)\n *\n * 6 (rot90) => 2 (flip), 4 (flip), 5 (rot90,flip), 7 (rot90,flip)\n * 8 (rot90) => 2 (flip), 4 (flip), 5 (rot90,flip), 7 (rot90,flip)\n *\n * @param {number} [orientation] Defined orientation value\n * @param {number} [autoOrientation] Auto-orientation based on Exif data\n * @returns {boolean} Returns true if rotation by 180° is required\n */\n function requiresRot180(orientation, autoOrientation) {\n if (autoOrientation > 1 && autoOrientation < 9) {\n switch (orientation) {\n case 2:\n case 4:\n return autoOrientation > 4\n case 5:\n case 7:\n return autoOrientation % 2 === 0\n case 6:\n case 8:\n return (\n autoOrientation === 2 ||\n autoOrientation === 4 ||\n autoOrientation === 5 ||\n autoOrientation === 7\n )\n }\n }\n return false\n }\n\n // Determines if the target image should be a canvas element:\n loadImage.requiresCanvas = function (options) {\n return (\n requiresCanvasOrientation(options) ||\n originalRequiresCanvas.call(loadImage, options)\n )\n }\n\n // Determines if metadata should be loaded automatically:\n loadImage.requiresMetaData = function (options) {\n return (\n requiresCanvasOrientation(options, true) ||\n originalRequiresMetaData.call(loadImage, options)\n )\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n originalTransform.call(\n loadImage,\n img,\n options,\n function (img, data) {\n if (data) {\n var autoOrientation =\n loadImage.orientation && data.exif && data.exif.get('Orientation')\n if (autoOrientation > 4 && autoOrientation < 9) {\n // Automatic image orientation switched image dimensions\n var originalWidth = data.originalWidth\n var originalHeight = data.originalHeight\n data.originalWidth = originalHeight\n data.originalHeight = originalWidth\n }\n }\n callback(img, data)\n },\n file,\n data\n )\n }\n\n // Transforms coordinate and dimension options\n // based on the given orientation option:\n loadImage.getTransformedOptions = function (img, opts, data) {\n var options = originalGetTransformedOptions.call(loadImage, img, opts)\n var exifOrientation = data.exif && data.exif.get('Orientation')\n var orientation = options.orientation\n var autoOrientation = loadImage.orientation && exifOrientation\n if (orientation === true) orientation = exifOrientation\n if (!requiresOrientationChange(orientation, autoOrientation)) {\n return options\n }\n var top = options.top\n var right = options.right\n var bottom = options.bottom\n var left = options.left\n var newOptions = {}\n for (var i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n newOptions[i] = options[i]\n }\n }\n newOptions.orientation = orientation\n if (\n (orientation > 4 && !(autoOrientation > 4)) ||\n (orientation < 5 && autoOrientation > 4)\n ) {\n // Image dimensions and target dimensions are switched\n newOptions.maxWidth = options.maxHeight\n newOptions.maxHeight = options.maxWidth\n newOptions.minWidth = options.minHeight\n newOptions.minHeight = options.minWidth\n newOptions.sourceWidth = options.sourceHeight\n newOptions.sourceHeight = options.sourceWidth\n }\n if (autoOrientation > 1) {\n // Browsers which correctly apply source image coordinates to\n // auto-oriented images\n switch (autoOrientation) {\n case 2:\n // Horizontal flip\n right = options.left\n left = options.right\n break\n case 3:\n // 180° Rotate CCW\n top = options.bottom\n right = options.left\n bottom = options.top\n left = options.right\n break\n case 4:\n // Vertical flip\n top = options.bottom\n bottom = options.top\n break\n case 5:\n // Horizontal flip + 90° Rotate CCW\n top = options.left\n right = options.bottom\n bottom = options.right\n left = options.top\n break\n case 6:\n // 90° Rotate CCW\n top = options.left\n right = options.top\n bottom = options.right\n left = options.bottom\n break\n case 7:\n // Vertical flip + 90° Rotate CCW\n top = options.right\n right = options.top\n bottom = options.left\n left = options.bottom\n break\n case 8:\n // 90° Rotate CW\n top = options.right\n right = options.bottom\n bottom = options.left\n left = options.top\n break\n }\n // Some orientation combinations require additional rotation by 180°:\n if (requiresRot180(orientation, autoOrientation)) {\n var tmpTop = top\n var tmpRight = right\n top = bottom\n right = left\n bottom = tmpTop\n left = tmpRight\n }\n }\n newOptions.top = top\n newOptions.right = right\n newOptions.bottom = bottom\n newOptions.left = left\n // Account for defined browser orientation:\n switch (orientation) {\n case 2:\n // Horizontal flip\n newOptions.right = left\n newOptions.left = right\n break\n case 3:\n // 180° Rotate CCW\n newOptions.top = bottom\n newOptions.right = left\n newOptions.bottom = top\n newOptions.left = right\n break\n case 4:\n // Vertical flip\n newOptions.top = bottom\n newOptions.bottom = top\n break\n case 5:\n // Vertical flip + 90° Rotate CW\n newOptions.top = left\n newOptions.right = bottom\n newOptions.bottom = right\n newOptions.left = top\n break\n case 6:\n // 90° Rotate CW\n newOptions.top = right\n newOptions.right = bottom\n newOptions.bottom = left\n newOptions.left = top\n break\n case 7:\n // Horizontal flip + 90° Rotate CW\n newOptions.top = right\n newOptions.right = top\n newOptions.bottom = left\n newOptions.left = bottom\n break\n case 8:\n // 90° Rotate CCW\n newOptions.top = left\n newOptions.right = top\n newOptions.bottom = right\n newOptions.left = bottom\n break\n }\n return newOptions\n }\n\n // Transform image orientation based on the given EXIF orientation option:\n loadImage.transformCoordinates = function (canvas, options, data) {\n originalTransformCoordinates.call(loadImage, canvas, options, data)\n var orientation = options.orientation\n var autoOrientation =\n loadImage.orientation && data.exif && data.exif.get('Orientation')\n if (!requiresOrientationChange(orientation, autoOrientation)) {\n return\n }\n var ctx = canvas.getContext('2d')\n var width = canvas.width\n var height = canvas.height\n var sourceWidth = width\n var sourceHeight = height\n if (\n (orientation > 4 && !(autoOrientation > 4)) ||\n (orientation < 5 && autoOrientation > 4)\n ) {\n // Image dimensions and target dimensions are switched\n canvas.width = height\n canvas.height = width\n }\n if (orientation > 4) {\n // Destination and source dimensions are switched\n sourceWidth = height\n sourceHeight = width\n }\n // Reset automatic browser orientation:\n switch (autoOrientation) {\n case 2:\n // Horizontal flip\n ctx.translate(sourceWidth, 0)\n ctx.scale(-1, 1)\n break\n case 3:\n // 180° Rotate CCW\n ctx.translate(sourceWidth, sourceHeight)\n ctx.rotate(Math.PI)\n break\n case 4:\n // Vertical flip\n ctx.translate(0, sourceHeight)\n ctx.scale(1, -1)\n break\n case 5:\n // Horizontal flip + 90° Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.scale(-1, 1)\n break\n case 6:\n // 90° Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-sourceWidth, 0)\n break\n case 7:\n // Vertical flip + 90° Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-sourceWidth, sourceHeight)\n ctx.scale(1, -1)\n break\n case 8:\n // 90° Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(0, -sourceHeight)\n break\n }\n // Some orientation combinations require additional rotation by 180°:\n if (requiresRot180(orientation, autoOrientation)) {\n ctx.translate(sourceWidth, sourceHeight)\n ctx.rotate(Math.PI)\n }\n switch (orientation) {\n case 2:\n // Horizontal flip\n ctx.translate(width, 0)\n ctx.scale(-1, 1)\n break\n case 3:\n // 180° Rotate CCW\n ctx.translate(width, height)\n ctx.rotate(Math.PI)\n break\n case 4:\n // Vertical flip\n ctx.translate(0, height)\n ctx.scale(1, -1)\n break\n case 5:\n // Vertical flip + 90° Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.scale(1, -1)\n break\n case 6:\n // 90° Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(0, -height)\n break\n case 7:\n // Horizontal flip + 90° Rotate CW\n ctx.rotate(0.5 * Math.PI)\n ctx.translate(width, -height)\n ctx.scale(-1, 1)\n break\n case 8:\n // 90° Rotate CCW\n ctx.rotate(-0.5 * Math.PI)\n ctx.translate(-width, 0)\n break\n }\n }\n})\n","/*\n * JavaScript Load Image Scaling\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, require */\n\n;(function (factory) {\n 'use strict'\n if (typeof define === 'function' && define.amd) {\n // Register as an anonymous AMD module:\n define(['./load-image'], factory)\n } else if (typeof module === 'object' && module.exports) {\n factory(require('./load-image'))\n } else {\n // Browser globals:\n factory(window.loadImage)\n }\n})(function (loadImage) {\n 'use strict'\n\n var originalTransform = loadImage.transform\n\n loadImage.createCanvas = function (width, height, offscreen) {\n if (offscreen && loadImage.global.OffscreenCanvas) {\n return new OffscreenCanvas(width, height)\n }\n var canvas = document.createElement('canvas')\n canvas.width = width\n canvas.height = height\n return canvas\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n originalTransform.call(\n loadImage,\n loadImage.scale(img, options, data),\n options,\n callback,\n file,\n data\n )\n }\n\n // Transform image coordinates, allows to override e.g.\n // the canvas orientation based on the orientation option,\n // gets canvas, options and data passed as arguments:\n loadImage.transformCoordinates = function () {}\n\n // Returns transformed options, allows to override e.g.\n // maxWidth, maxHeight and crop options based on the aspectRatio.\n // gets img, options, data passed as arguments:\n loadImage.getTransformedOptions = function (img, options) {\n var aspectRatio = options.aspectRatio\n var newOptions\n var i\n var width\n var height\n if (!aspectRatio) {\n return options\n }\n newOptions = {}\n for (i in options) {\n if (Object.prototype.hasOwnProperty.call(options, i)) {\n newOptions[i] = options[i]\n }\n }\n newOptions.crop = true\n width = options.maxWidth || img.naturalWidth || img.width\n height = options.maxHeight || img.naturalHeight || img.height\n if (width / height > aspectRatio) {\n newOptions.maxWidth = height * aspectRatio\n newOptions.maxHeight = height\n } else {\n newOptions.maxWidth = width\n newOptions.maxHeight = width / aspectRatio\n }\n return newOptions\n }\n\n // Canvas render method, allows to implement a different rendering algorithm:\n loadImage.drawImage = function (\n img,\n canvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destWidth,\n destHeight,\n options\n ) {\n var ctx = canvas.getContext('2d')\n if (options.imageSmoothingEnabled === false) {\n ctx.msImageSmoothingEnabled = false\n ctx.imageSmoothingEnabled = false\n } else if (options.imageSmoothingQuality) {\n ctx.imageSmoothingQuality = options.imageSmoothingQuality\n }\n ctx.drawImage(\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n destWidth,\n destHeight\n )\n return ctx\n }\n\n // Determines if the target image should be a canvas element:\n loadImage.requiresCanvas = function (options) {\n return options.canvas || options.crop || !!options.aspectRatio\n }\n\n // Scales and/or crops the given image (img or canvas HTML element)\n // using the given options:\n loadImage.scale = function (img, options, data) {\n // eslint-disable-next-line no-param-reassign\n options = options || {}\n // eslint-disable-next-line no-param-reassign\n data = data || {}\n var useCanvas =\n img.getContext ||\n (loadImage.requiresCanvas(options) &&\n !!loadImage.global.HTMLCanvasElement)\n var width = img.naturalWidth || img.width\n var height = img.naturalHeight || img.height\n var destWidth = width\n var destHeight = height\n var maxWidth\n var maxHeight\n var minWidth\n var minHeight\n var sourceWidth\n var sourceHeight\n var sourceX\n var sourceY\n var pixelRatio\n var downsamplingRatio\n var tmp\n var canvas\n /**\n * Scales up image dimensions\n */\n function scaleUp() {\n var scale = Math.max(\n (minWidth || destWidth) / destWidth,\n (minHeight || destHeight) / destHeight\n )\n if (scale > 1) {\n /**\n * These value are used to create canvas elements. Ensuring that they are integers\n * (rather than floats) avoids a potential 1px rounding error in the canvas element\n * as canvas elements will always round it down to the nearest integer rather than\n * following standard rounding rules. For example, using a value of 199.9999999px\n * for a canvas height would result in a height of 199px rather than 200px.\n */\n destWidth = Math.round(destWidth * scale)\n destHeight = Math.round(destHeight * scale)\n }\n }\n /**\n * Scales down image dimensions\n */\n function scaleDown() {\n var scale = Math.min(\n (maxWidth || destWidth) / destWidth,\n (maxHeight || destHeight) / destHeight\n )\n if (scale < 1) {\n /**\n * These value are used to create canvas elements. Ensuring that they are integers\n * (rather than floats) avoids a potential 1px rounding error in the canvas element\n * as canvas elements will always round it down to the nearest integer rather than\n * following standard rounding rules. For example, using a value of 199.9999999px\n * for a canvas height would result in a height of 199px rather than 200px.\n */\n destWidth = Math.round(destWidth * scale)\n destHeight = Math.round(destHeight * scale)\n }\n }\n if (useCanvas) {\n // eslint-disable-next-line no-param-reassign\n options = loadImage.getTransformedOptions(img, options, data)\n sourceX = options.left || 0\n sourceY = options.top || 0\n if (options.sourceWidth) {\n sourceWidth = options.sourceWidth\n if (options.right !== undefined && options.left === undefined) {\n sourceX = width - sourceWidth - options.right\n }\n } else {\n sourceWidth = width - sourceX - (options.right || 0)\n }\n if (options.sourceHeight) {\n sourceHeight = options.sourceHeight\n if (options.bottom !== undefined && options.top === undefined) {\n sourceY = height - sourceHeight - options.bottom\n }\n } else {\n sourceHeight = height - sourceY - (options.bottom || 0)\n }\n destWidth = sourceWidth\n destHeight = sourceHeight\n }\n maxWidth = options.maxWidth\n maxHeight = options.maxHeight\n minWidth = options.minWidth\n minHeight = options.minHeight\n if (useCanvas && maxWidth && maxHeight && options.crop) {\n destWidth = maxWidth\n destHeight = maxHeight\n tmp = sourceWidth / sourceHeight - maxWidth / maxHeight\n if (tmp < 0) {\n sourceHeight = (maxHeight * sourceWidth) / maxWidth\n if (options.top === undefined && options.bottom === undefined) {\n sourceY = (height - sourceHeight) / 2\n }\n } else if (tmp > 0) {\n sourceWidth = (maxWidth * sourceHeight) / maxHeight\n if (options.left === undefined && options.right === undefined) {\n sourceX = (width - sourceWidth) / 2\n }\n }\n } else {\n if (options.contain || options.cover) {\n minWidth = maxWidth = maxWidth || minWidth\n minHeight = maxHeight = maxHeight || minHeight\n }\n if (options.cover) {\n scaleDown()\n scaleUp()\n } else {\n scaleUp()\n scaleDown()\n }\n }\n if (useCanvas) {\n pixelRatio = options.pixelRatio\n if (\n pixelRatio > 1 &&\n // Check if the image has not yet had the device pixel ratio applied:\n !(\n img.style.width &&\n Math.floor(parseFloat(img.style.width, 10)) ===\n Math.floor(width / pixelRatio)\n )\n ) {\n destWidth *= pixelRatio\n destHeight *= pixelRatio\n }\n // Check if workaround for Chromium orientation crop bug is required:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=1074354\n if (\n loadImage.orientationCropBug &&\n !img.getContext &&\n (sourceX || sourceY || sourceWidth !== width || sourceHeight !== height)\n ) {\n // Write the complete source image to an intermediate canvas first:\n tmp = img\n // eslint-disable-next-line no-param-reassign\n img = loadImage.createCanvas(width, height, true)\n loadImage.drawImage(\n tmp,\n img,\n 0,\n 0,\n width,\n height,\n width,\n height,\n options\n )\n }\n downsamplingRatio = options.downsamplingRatio\n if (\n downsamplingRatio > 0 &&\n downsamplingRatio < 1 &&\n destWidth < sourceWidth &&\n destHeight < sourceHeight\n ) {\n while (sourceWidth * downsamplingRatio > destWidth) {\n canvas = loadImage.createCanvas(\n sourceWidth * downsamplingRatio,\n sourceHeight * downsamplingRatio,\n true\n )\n loadImage.drawImage(\n img,\n canvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n canvas.width,\n canvas.height,\n options\n )\n sourceX = 0\n sourceY = 0\n sourceWidth = canvas.width\n sourceHeight = canvas.height\n // eslint-disable-next-line no-param-reassign\n img = canvas\n }\n }\n canvas = loadImage.createCanvas(destWidth, destHeight)\n loadImage.transformCoordinates(canvas, options, data)\n if (pixelRatio > 1) {\n canvas.style.width = canvas.width / pixelRatio + 'px'\n }\n loadImage\n .drawImage(\n img,\n canvas,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destWidth,\n destHeight,\n options\n )\n .setTransform(1, 0, 0, 1, 0, 0) // reset to the identity matrix\n return canvas\n }\n img.width = destWidth\n img.height = destHeight\n return img\n }\n})\n","/*\n * JavaScript Load Image\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n */\n\n/* global define, module, Promise */\n\n;(function ($) {\n 'use strict'\n\n var urlAPI = $.URL || $.webkitURL\n\n /**\n * Creates an object URL for a given File object.\n *\n * @param {Blob} blob Blob object\n * @returns {string|boolean} Returns object URL if API exists, else false.\n */\n function createObjectURL(blob) {\n return urlAPI ? urlAPI.createObjectURL(blob) : false\n }\n\n /**\n * Revokes a given object URL.\n *\n * @param {string} url Blob object URL\n * @returns {undefined|boolean} Returns undefined if API exists, else false.\n */\n function revokeObjectURL(url) {\n return urlAPI ? urlAPI.revokeObjectURL(url) : false\n }\n\n /**\n * Helper function to revoke an object URL\n *\n * @param {string} url Blob Object URL\n * @param {object} [options] Options object\n */\n function revokeHelper(url, options) {\n if (url && url.slice(0, 5) === 'blob:' && !(options && options.noRevoke)) {\n revokeObjectURL(url)\n }\n }\n\n /**\n * Loads a given File object via FileReader interface.\n *\n * @param {Blob} file Blob object\n * @param {Function} onload Load event callback\n * @param {Function} [onerror] Error/Abort event callback\n * @param {string} [method=readAsDataURL] FileReader method\n * @returns {FileReader|boolean} Returns FileReader if API exists, else false.\n */\n function readFile(file, onload, onerror, method) {\n if (!$.FileReader) return false\n var reader = new FileReader()\n reader.onload = function () {\n onload.call(reader, this.result)\n }\n if (onerror) {\n reader.onabort = reader.onerror = function () {\n onerror.call(reader, this.error)\n }\n }\n var readerMethod = reader[method || 'readAsDataURL']\n if (readerMethod) {\n readerMethod.call(reader, file)\n return reader\n }\n }\n\n /**\n * Cross-frame instanceof check.\n *\n * @param {string} type Instance type\n * @param {object} obj Object instance\n * @returns {boolean} Returns true if the object is of the given instance.\n */\n function isInstanceOf(type, obj) {\n // Cross-frame instanceof check\n return Object.prototype.toString.call(obj) === '[object ' + type + ']'\n }\n\n /**\n * @typedef { HTMLImageElement|HTMLCanvasElement } Result\n */\n\n /**\n * Loads an image for a given File object.\n *\n * @param {Blob|string} file Blob object or image URL\n * @param {Function|object} [callback] Image load event callback or options\n * @param {object} [options] Options object\n * @returns {HTMLImageElement|FileReader|Promise<Result>} Object\n */\n function loadImage(file, callback, options) {\n /**\n * Promise executor\n *\n * @param {Function} resolve Resolution function\n * @param {Function} reject Rejection function\n * @returns {HTMLImageElement|FileReader} Object\n */\n function executor(resolve, reject) {\n var img = document.createElement('img')\n var url\n /**\n * Callback for the fetchBlob call.\n *\n * @param {HTMLImageElement|HTMLCanvasElement} img Error object\n * @param {object} data Data object\n * @returns {undefined} Undefined\n */\n function resolveWrapper(img, data) {\n if (resolve === reject) {\n // Not using Promises\n if (resolve) resolve(img, data)\n return\n } else if (img instanceof Error) {\n reject(img)\n return\n }\n data = data || {} // eslint-disable-line no-param-reassign\n data.image = img\n resolve(data)\n }\n /**\n * Callback for the fetchBlob call.\n *\n * @param {Blob} blob Blob object\n * @param {Error} err Error object\n */\n function fetchBlobCallback(blob, err) {\n if (err && $.console) console.log(err) // eslint-disable-line no-console\n if (blob && isInstanceOf('Blob', blob)) {\n file = blob // eslint-disable-line no-param-reassign\n url = createObjectURL(file)\n } else {\n url = file\n if (options && options.crossOrigin) {\n img.crossOrigin = options.crossOrigin\n }\n }\n img.src = url\n }\n img.onerror = function (event) {\n revokeHelper(url, options)\n if (reject) reject.call(img, event)\n }\n img.onload = function () {\n revokeHelper(url, options)\n var data = {\n originalWidth: img.naturalWidth || img.width,\n originalHeight: img.naturalHeight || img.height\n }\n try {\n loadImage.transform(img, options, resolveWrapper, file, data)\n } catch (error) {\n if (reject) reject(error)\n }\n }\n if (typeof file === 'string') {\n if (loadImage.requiresMetaData(options)) {\n loadImage.fetchBlob(file, fetchBlobCallback, options)\n } else {\n fetchBlobCallback()\n }\n return img\n } else if (isInstanceOf('Blob', file) || isInstanceOf('File', file)) {\n url = createObjectURL(file)\n if (url) {\n img.src = url\n return img\n }\n return readFile(\n file,\n function (url) {\n img.src = url\n },\n reject\n )\n }\n }\n if ($.Promise && typeof callback !== 'function') {\n options = callback // eslint-disable-line no-param-reassign\n return new Promise(executor)\n }\n return executor(callback, callback)\n }\n\n // Determines if metadata should be loaded automatically.\n // Requires the load image meta extension to load metadata.\n loadImage.requiresMetaData = function (options) {\n return options && options.meta\n }\n\n // If the callback given to this function returns a blob, it is used as image\n // source instead of the original url and overrides the file argument used in\n // the onload and onerror event callbacks:\n loadImage.fetchBlob = function (url, callback) {\n callback()\n }\n\n loadImage.transform = function (img, options, callback, file, data) {\n callback(img, data)\n }\n\n loadImage.global = $\n loadImage.readFile = readFile\n loadImage.isInstanceOf = isInstanceOf\n loadImage.createObjectURL = createObjectURL\n loadImage.revokeObjectURL = revokeObjectURL\n\n if (typeof define === 'function' && define.amd) {\n define(function () {\n return loadImage\n })\n } else if (typeof module === 'object' && module.exports) {\n module.exports = loadImage\n } else {\n $.loadImage = loadImage\n }\n})((typeof window !== 'undefined' && window) || this)\n","/*!\n * bytes\n * Copyright(c) 2012-2014 TJ Holowaychuk\n * Copyright(c) 2015 Jed Watson\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = bytes;\nmodule.exports.format = format;\nmodule.exports.parse = parse;\n\n/**\n * Module variables.\n * @private\n */\n\nvar formatThousandsRegExp = /\\B(?=(\\d{3})+(?!\\d))/g;\n\nvar formatDecimalsRegExp = /(?:\\.0*|(\\.[^0]+)0+)$/;\n\nvar map = {\n b: 1,\n kb: 1 << 10,\n mb: 1 << 20,\n gb: 1 << 30,\n tb: Math.pow(1024, 4),\n pb: Math.pow(1024, 5),\n};\n\nvar parseRegExp = /^((-|\\+)?(\\d+(?:\\.\\d+)?)) *(kb|mb|gb|tb|pb)$/i;\n\n/**\n * Convert the given value in bytes into a string or parse to string to an integer in bytes.\n *\n * @param {string|number} value\n * @param {{\n * case: [string],\n * decimalPlaces: [number]\n * fixedDecimals: [boolean]\n * thousandsSeparator: [string]\n * unitSeparator: [string]\n * }} [options] bytes options.\n *\n * @returns {string|number|null}\n */\n\nfunction bytes(value, options) {\n if (typeof value === 'string') {\n return parse(value);\n }\n\n if (typeof value === 'number') {\n return format(value, options);\n }\n\n return null;\n}\n\n/**\n * Format the given value in bytes into a string.\n *\n * If the value is negative, it is kept as such. If it is a float,\n * it is rounded.\n *\n * @param {number} value\n * @param {object} [options]\n * @param {number} [options.decimalPlaces=2]\n * @param {number} [options.fixedDecimals=false]\n * @param {string} [options.thousandsSeparator=]\n * @param {string} [options.unit=]\n * @param {string} [options.unitSeparator=]\n *\n * @returns {string|null}\n * @public\n */\n\nfunction format(value, options) {\n if (!Number.isFinite(value)) {\n return null;\n }\n\n var mag = Math.abs(value);\n var thousandsSeparator = (options && options.thousandsSeparator) || '';\n var unitSeparator = (options && options.unitSeparator) || '';\n var decimalPlaces = (options && options.decimalPlaces !== undefined) ? options.decimalPlaces : 2;\n var fixedDecimals = Boolean(options && options.fixedDecimals);\n var unit = (options && options.unit) || '';\n\n if (!unit || !map[unit.toLowerCase()]) {\n if (mag >= map.pb) {\n unit = 'PB';\n } else if (mag >= map.tb) {\n unit = 'TB';\n } else if (mag >= map.gb) {\n unit = 'GB';\n } else if (mag >= map.mb) {\n unit = 'MB';\n } else if (mag >= map.kb) {\n unit = 'KB';\n } else {\n unit = 'B';\n }\n }\n\n var val = value / map[unit.toLowerCase()];\n var str = val.toFixed(decimalPlaces);\n\n if (!fixedDecimals) {\n str = str.replace(formatDecimalsRegExp, '$1');\n }\n\n if (thousandsSeparator) {\n str = str.split('.').map(function (s, i) {\n return i === 0\n ? s.replace(formatThousandsRegExp, thousandsSeparator)\n : s\n }).join('.');\n }\n\n return str + unitSeparator + unit;\n}\n\n/**\n * Parse the string value into an integer in bytes.\n *\n * If no unit is given, it is assumed the value is in bytes.\n *\n * @param {number|string} val\n *\n * @returns {number|null}\n * @public\n */\n\nfunction parse(val) {\n if (typeof val === 'number' && !isNaN(val)) {\n return val;\n }\n\n if (typeof val !== 'string') {\n return null;\n }\n\n // Test if the string passed is valid\n var results = parseRegExp.exec(val);\n var floatValue;\n var unit = 'b';\n\n if (!results) {\n // Nothing could be extracted from the given string\n floatValue = parseInt(val, 10);\n unit = 'b'\n } else {\n // Retrieve the value and the unit\n floatValue = parseFloat(results[1]);\n unit = results[4].toLowerCase();\n }\n\n if (isNaN(floatValue)) {\n return null;\n }\n\n return Math.floor(map[unit] * floatValue);\n}\n","require('../../modules/es.array.filter');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'filter');\n","require('../../modules/es.array.includes');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('Array', 'includes');\n","require('../../modules/es.number.is-finite');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Number.isFinite;\n","require('../../modules/es.object.assign');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.assign;\n","require('../../modules/es.object.entries');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.entries;\n","require('../../modules/es.object.values');\nvar path = require('../../internals/path');\n\nmodule.exports = path.Object.values;\n","require('../../modules/es.string.starts-with');\nvar entryUnbind = require('../../internals/entry-unbind');\n\nmodule.exports = entryUnbind('String', 'startsWith');\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","var global = require('../internals/global');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar Array = global.Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = function (CONSTRUCTOR, METHOD) {\n return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar uncurryThis = NATIVE_BIND && bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? function (fn) {\n return fn && uncurryThis(fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var global = require('../internals/global');\nvar isRegExp = require('../internals/is-regexp');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","var global = require('../internals/global');\n\nvar globalIsFinite = global.isFinite;\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n// eslint-disable-next-line es/no-number-isfinite -- safe\nmodule.exports = Number.isFinite || function isFinite(it) {\n return typeof it == 'number' && globalIsFinite(it);\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.20.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.20.3/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","var $ = require('../internals/export');\nvar numberIsFinite = require('../internals/number-is-finite');\n\n// `Number.isFinite` method\n// https://tc39.es/ecma262/#sec-number.isfinite\n$({ target: 'Number', stat: true }, { isFinite: numberIsFinite });\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = require('../internals/export');\nvar $values = require('../internals/object-to-array').values;\n\n// `Object.values` method\n// https://tc39.es/ecma262/#sec-object.values\n$({ target: 'Object', stat: true }, {\n values: function values(O) {\n return $values(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar un$StartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return un$StartsWith\n ? un$StartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","'use strict';\n\n// From https://github.com/sindresorhus/random-int/blob/c37741b56f76b9160b0b63dae4e9c64875128146/index.js#L13-L15\nconst randomInteger = (minimum, maximum) => Math.floor((Math.random() * (maximum - minimum + 1)) + minimum);\n\nconst createAbortError = () => {\n\tconst error = new Error('Delay aborted');\n\terror.name = 'AbortError';\n\treturn error;\n};\n\nconst createDelay = ({clearTimeout: defaultClear, setTimeout: set, willResolve}) => (ms, {value, signal} = {}) => {\n\tif (signal && signal.aborted) {\n\t\treturn Promise.reject(createAbortError());\n\t}\n\n\tlet timeoutId;\n\tlet settle;\n\tlet rejectFn;\n\tconst clear = defaultClear || clearTimeout;\n\n\tconst signalListener = () => {\n\t\tclear(timeoutId);\n\t\trejectFn(createAbortError());\n\t};\n\n\tconst cleanup = () => {\n\t\tif (signal) {\n\t\t\tsignal.removeEventListener('abort', signalListener);\n\t\t}\n\t};\n\n\tconst delayPromise = new Promise((resolve, reject) => {\n\t\tsettle = () => {\n\t\t\tcleanup();\n\t\t\tif (willResolve) {\n\t\t\t\tresolve(value);\n\t\t\t} else {\n\t\t\t\treject(value);\n\t\t\t}\n\t\t};\n\n\t\trejectFn = reject;\n\t\ttimeoutId = (set || setTimeout)(settle, ms);\n\t});\n\n\tif (signal) {\n\t\tsignal.addEventListener('abort', signalListener, {once: true});\n\t}\n\n\tdelayPromise.clear = () => {\n\t\tclear(timeoutId);\n\t\ttimeoutId = null;\n\t\tsettle();\n\t};\n\n\treturn delayPromise;\n};\n\nconst createWithTimers = clearAndSet => {\n\tconst delay = createDelay({...clearAndSet, willResolve: true});\n\tdelay.reject = createDelay({...clearAndSet, willResolve: false});\n\tdelay.range = (minimum, maximum, options) => delay(randomInteger(minimum, maximum), options);\n\treturn delay;\n};\n\nconst delay = createWithTimers();\ndelay.createWithTimers = createWithTimers;\n\nmodule.exports = delay;\n// TODO: Remove this for the next major release\nmodule.exports.default = delay;\n","// This file can be required in Browserify and Node.js for automatic polyfill\n// To use it: require('es6-promise/auto');\n'use strict';\nmodule.exports = require('./').polyfill();\n","/*!\n * @overview es6-promise - a tiny implementation of Promises/A+.\n * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)\n * @license Licensed under MIT license\n * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE\n * @version v4.2.8+1e68dce6\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global.ES6Promise = factory());\n}(this, (function () { 'use strict';\n\nfunction objectOrFunction(x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n}\n\nfunction isFunction(x) {\n return typeof x === 'function';\n}\n\n\n\nvar _isArray = void 0;\nif (Array.isArray) {\n _isArray = Array.isArray;\n} else {\n _isArray = function (x) {\n return Object.prototype.toString.call(x) === '[object Array]';\n };\n}\n\nvar isArray = _isArray;\n\nvar len = 0;\nvar vertxNext = void 0;\nvar customSchedulerFn = void 0;\n\nvar asap = function asap(callback, arg) {\n queue[len] = callback;\n queue[len + 1] = arg;\n len += 2;\n if (len === 2) {\n // If len is 2, that means that we need to schedule an async flush.\n // If additional callbacks are queued before the queue is flushed, they\n // will be processed by this flush that we are scheduling.\n if (customSchedulerFn) {\n customSchedulerFn(flush);\n } else {\n scheduleFlush();\n }\n }\n};\n\nfunction setScheduler(scheduleFn) {\n customSchedulerFn = scheduleFn;\n}\n\nfunction setAsap(asapFn) {\n asap = asapFn;\n}\n\nvar browserWindow = typeof window !== 'undefined' ? window : undefined;\nvar browserGlobal = browserWindow || {};\nvar BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;\nvar isNode = typeof self === 'undefined' && typeof process !== 'undefined' && {}.toString.call(process) === '[object process]';\n\n// test for web worker but not in IE10\nvar isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';\n\n// node\nfunction useNextTick() {\n // node version 0.10.x displays a deprecation warning when nextTick is used recursively\n // see https://github.com/cujojs/when/issues/410 for details\n return function () {\n return process.nextTick(flush);\n };\n}\n\n// vertx\nfunction useVertxTimer() {\n if (typeof vertxNext !== 'undefined') {\n return function () {\n vertxNext(flush);\n };\n }\n\n return useSetTimeout();\n}\n\nfunction useMutationObserver() {\n var iterations = 0;\n var observer = new BrowserMutationObserver(flush);\n var node = document.createTextNode('');\n observer.observe(node, { characterData: true });\n\n return function () {\n node.data = iterations = ++iterations % 2;\n };\n}\n\n// web worker\nfunction useMessageChannel() {\n var channel = new MessageChannel();\n channel.port1.onmessage = flush;\n return function () {\n return channel.port2.postMessage(0);\n };\n}\n\nfunction useSetTimeout() {\n // Store setTimeout reference so es6-promise will be unaffected by\n // other code modifying setTimeout (like sinon.useFakeTimers())\n var globalSetTimeout = setTimeout;\n return function () {\n return globalSetTimeout(flush, 1);\n };\n}\n\nvar queue = new Array(1000);\nfunction flush() {\n for (var i = 0; i < len; i += 2) {\n var callback = queue[i];\n var arg = queue[i + 1];\n\n callback(arg);\n\n queue[i] = undefined;\n queue[i + 1] = undefined;\n }\n\n len = 0;\n}\n\nfunction attemptVertx() {\n try {\n var vertx = Function('return this')().require('vertx');\n vertxNext = vertx.runOnLoop || vertx.runOnContext;\n return useVertxTimer();\n } catch (e) {\n return useSetTimeout();\n }\n}\n\nvar scheduleFlush = void 0;\n// Decide what async method to use to triggering processing of queued callbacks:\nif (isNode) {\n scheduleFlush = useNextTick();\n} else if (BrowserMutationObserver) {\n scheduleFlush = useMutationObserver();\n} else if (isWorker) {\n scheduleFlush = useMessageChannel();\n} else if (browserWindow === undefined && typeof require === 'function') {\n scheduleFlush = attemptVertx();\n} else {\n scheduleFlush = useSetTimeout();\n}\n\nfunction then(onFulfillment, onRejection) {\n var parent = this;\n\n var child = new this.constructor(noop);\n\n if (child[PROMISE_ID] === undefined) {\n makePromise(child);\n }\n\n var _state = parent._state;\n\n\n if (_state) {\n var callback = arguments[_state - 1];\n asap(function () {\n return invokeCallback(_state, child, callback, parent._result);\n });\n } else {\n subscribe(parent, child, onFulfillment, onRejection);\n }\n\n return child;\n}\n\n/**\n `Promise.resolve` returns a promise that will become resolved with the\n passed `value`. It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n resolve(1);\n });\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.resolve(1);\n\n promise.then(function(value){\n // value === 1\n });\n ```\n\n @method resolve\n @static\n @param {Any} value value that the returned promise will be resolved with\n Useful for tooling.\n @return {Promise} a promise that will become fulfilled with the given\n `value`\n*/\nfunction resolve$1(object) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (object && typeof object === 'object' && object.constructor === Constructor) {\n return object;\n }\n\n var promise = new Constructor(noop);\n resolve(promise, object);\n return promise;\n}\n\nvar PROMISE_ID = Math.random().toString(36).substring(2);\n\nfunction noop() {}\n\nvar PENDING = void 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\n\nfunction selfFulfillment() {\n return new TypeError(\"You cannot resolve a promise with itself\");\n}\n\nfunction cannotReturnOwn() {\n return new TypeError('A promises callback cannot return that same promise.');\n}\n\nfunction tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {\n try {\n then$$1.call(value, fulfillmentHandler, rejectionHandler);\n } catch (e) {\n return e;\n }\n}\n\nfunction handleForeignThenable(promise, thenable, then$$1) {\n asap(function (promise) {\n var sealed = false;\n var error = tryThen(then$$1, thenable, function (value) {\n if (sealed) {\n return;\n }\n sealed = true;\n if (thenable !== value) {\n resolve(promise, value);\n } else {\n fulfill(promise, value);\n }\n }, function (reason) {\n if (sealed) {\n return;\n }\n sealed = true;\n\n reject(promise, reason);\n }, 'Settle: ' + (promise._label || ' unknown promise'));\n\n if (!sealed && error) {\n sealed = true;\n reject(promise, error);\n }\n }, promise);\n}\n\nfunction handleOwnThenable(promise, thenable) {\n if (thenable._state === FULFILLED) {\n fulfill(promise, thenable._result);\n } else if (thenable._state === REJECTED) {\n reject(promise, thenable._result);\n } else {\n subscribe(thenable, undefined, function (value) {\n return resolve(promise, value);\n }, function (reason) {\n return reject(promise, reason);\n });\n }\n}\n\nfunction handleMaybeThenable(promise, maybeThenable, then$$1) {\n if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {\n handleOwnThenable(promise, maybeThenable);\n } else {\n if (then$$1 === undefined) {\n fulfill(promise, maybeThenable);\n } else if (isFunction(then$$1)) {\n handleForeignThenable(promise, maybeThenable, then$$1);\n } else {\n fulfill(promise, maybeThenable);\n }\n }\n}\n\nfunction resolve(promise, value) {\n if (promise === value) {\n reject(promise, selfFulfillment());\n } else if (objectOrFunction(value)) {\n var then$$1 = void 0;\n try {\n then$$1 = value.then;\n } catch (error) {\n reject(promise, error);\n return;\n }\n handleMaybeThenable(promise, value, then$$1);\n } else {\n fulfill(promise, value);\n }\n}\n\nfunction publishRejection(promise) {\n if (promise._onerror) {\n promise._onerror(promise._result);\n }\n\n publish(promise);\n}\n\nfunction fulfill(promise, value) {\n if (promise._state !== PENDING) {\n return;\n }\n\n promise._result = value;\n promise._state = FULFILLED;\n\n if (promise._subscribers.length !== 0) {\n asap(publish, promise);\n }\n}\n\nfunction reject(promise, reason) {\n if (promise._state !== PENDING) {\n return;\n }\n promise._state = REJECTED;\n promise._result = reason;\n\n asap(publishRejection, promise);\n}\n\nfunction subscribe(parent, child, onFulfillment, onRejection) {\n var _subscribers = parent._subscribers;\n var length = _subscribers.length;\n\n\n parent._onerror = null;\n\n _subscribers[length] = child;\n _subscribers[length + FULFILLED] = onFulfillment;\n _subscribers[length + REJECTED] = onRejection;\n\n if (length === 0 && parent._state) {\n asap(publish, parent);\n }\n}\n\nfunction publish(promise) {\n var subscribers = promise._subscribers;\n var settled = promise._state;\n\n if (subscribers.length === 0) {\n return;\n }\n\n var child = void 0,\n callback = void 0,\n detail = promise._result;\n\n for (var i = 0; i < subscribers.length; i += 3) {\n child = subscribers[i];\n callback = subscribers[i + settled];\n\n if (child) {\n invokeCallback(settled, child, callback, detail);\n } else {\n callback(detail);\n }\n }\n\n promise._subscribers.length = 0;\n}\n\nfunction invokeCallback(settled, promise, callback, detail) {\n var hasCallback = isFunction(callback),\n value = void 0,\n error = void 0,\n succeeded = true;\n\n if (hasCallback) {\n try {\n value = callback(detail);\n } catch (e) {\n succeeded = false;\n error = e;\n }\n\n if (promise === value) {\n reject(promise, cannotReturnOwn());\n return;\n }\n } else {\n value = detail;\n }\n\n if (promise._state !== PENDING) {\n // noop\n } else if (hasCallback && succeeded) {\n resolve(promise, value);\n } else if (succeeded === false) {\n reject(promise, error);\n } else if (settled === FULFILLED) {\n fulfill(promise, value);\n } else if (settled === REJECTED) {\n reject(promise, value);\n }\n}\n\nfunction initializePromise(promise, resolver) {\n try {\n resolver(function resolvePromise(value) {\n resolve(promise, value);\n }, function rejectPromise(reason) {\n reject(promise, reason);\n });\n } catch (e) {\n reject(promise, e);\n }\n}\n\nvar id = 0;\nfunction nextId() {\n return id++;\n}\n\nfunction makePromise(promise) {\n promise[PROMISE_ID] = id++;\n promise._state = undefined;\n promise._result = undefined;\n promise._subscribers = [];\n}\n\nfunction validationError() {\n return new Error('Array Methods must be provided an Array');\n}\n\nvar Enumerator = function () {\n function Enumerator(Constructor, input) {\n this._instanceConstructor = Constructor;\n this.promise = new Constructor(noop);\n\n if (!this.promise[PROMISE_ID]) {\n makePromise(this.promise);\n }\n\n if (isArray(input)) {\n this.length = input.length;\n this._remaining = input.length;\n\n this._result = new Array(this.length);\n\n if (this.length === 0) {\n fulfill(this.promise, this._result);\n } else {\n this.length = this.length || 0;\n this._enumerate(input);\n if (this._remaining === 0) {\n fulfill(this.promise, this._result);\n }\n }\n } else {\n reject(this.promise, validationError());\n }\n }\n\n Enumerator.prototype._enumerate = function _enumerate(input) {\n for (var i = 0; this._state === PENDING && i < input.length; i++) {\n this._eachEntry(input[i], i);\n }\n };\n\n Enumerator.prototype._eachEntry = function _eachEntry(entry, i) {\n var c = this._instanceConstructor;\n var resolve$$1 = c.resolve;\n\n\n if (resolve$$1 === resolve$1) {\n var _then = void 0;\n var error = void 0;\n var didError = false;\n try {\n _then = entry.then;\n } catch (e) {\n didError = true;\n error = e;\n }\n\n if (_then === then && entry._state !== PENDING) {\n this._settledAt(entry._state, i, entry._result);\n } else if (typeof _then !== 'function') {\n this._remaining--;\n this._result[i] = entry;\n } else if (c === Promise$1) {\n var promise = new c(noop);\n if (didError) {\n reject(promise, error);\n } else {\n handleMaybeThenable(promise, entry, _then);\n }\n this._willSettleAt(promise, i);\n } else {\n this._willSettleAt(new c(function (resolve$$1) {\n return resolve$$1(entry);\n }), i);\n }\n } else {\n this._willSettleAt(resolve$$1(entry), i);\n }\n };\n\n Enumerator.prototype._settledAt = function _settledAt(state, i, value) {\n var promise = this.promise;\n\n\n if (promise._state === PENDING) {\n this._remaining--;\n\n if (state === REJECTED) {\n reject(promise, value);\n } else {\n this._result[i] = value;\n }\n }\n\n if (this._remaining === 0) {\n fulfill(promise, this._result);\n }\n };\n\n Enumerator.prototype._willSettleAt = function _willSettleAt(promise, i) {\n var enumerator = this;\n\n subscribe(promise, undefined, function (value) {\n return enumerator._settledAt(FULFILLED, i, value);\n }, function (reason) {\n return enumerator._settledAt(REJECTED, i, reason);\n });\n };\n\n return Enumerator;\n}();\n\n/**\n `Promise.all` accepts an array of promises, and returns a new promise which\n is fulfilled with an array of fulfillment values for the passed promises, or\n rejected with the reason of the first passed promise to be rejected. It casts all\n elements of the passed iterable to promises as it runs this algorithm.\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = resolve(2);\n let promise3 = resolve(3);\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // The array here would be [ 1, 2, 3 ];\n });\n ```\n\n If any of the `promises` given to `all` are rejected, the first promise\n that is rejected will be given as an argument to the returned promises's\n rejection handler. For example:\n\n Example:\n\n ```javascript\n let promise1 = resolve(1);\n let promise2 = reject(new Error(\"2\"));\n let promise3 = reject(new Error(\"3\"));\n let promises = [ promise1, promise2, promise3 ];\n\n Promise.all(promises).then(function(array){\n // Code here never runs because there are rejected promises!\n }, function(error) {\n // error.message === \"2\"\n });\n ```\n\n @method all\n @static\n @param {Array} entries array of promises\n @param {String} label optional string for labeling the promise.\n Useful for tooling.\n @return {Promise} promise that is fulfilled when all `promises` have been\n fulfilled, or rejected if any of them become rejected.\n @static\n*/\nfunction all(entries) {\n return new Enumerator(this, entries).promise;\n}\n\n/**\n `Promise.race` returns a new promise which is settled in the same way as the\n first passed promise to settle.\n\n Example:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 2');\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // result === 'promise 2' because it was resolved before promise1\n // was resolved.\n });\n ```\n\n `Promise.race` is deterministic in that only the state of the first\n settled promise matters. For example, even if other promises given to the\n `promises` array argument are resolved, but the first settled promise has\n become rejected before the other promises became fulfilled, the returned\n promise will become rejected:\n\n ```javascript\n let promise1 = new Promise(function(resolve, reject){\n setTimeout(function(){\n resolve('promise 1');\n }, 200);\n });\n\n let promise2 = new Promise(function(resolve, reject){\n setTimeout(function(){\n reject(new Error('promise 2'));\n }, 100);\n });\n\n Promise.race([promise1, promise2]).then(function(result){\n // Code here never runs\n }, function(reason){\n // reason.message === 'promise 2' because promise 2 became rejected before\n // promise 1 became fulfilled\n });\n ```\n\n An example real-world use case is implementing timeouts:\n\n ```javascript\n Promise.race([ajax('foo.json'), timeout(5000)])\n ```\n\n @method race\n @static\n @param {Array} promises array of promises to observe\n Useful for tooling.\n @return {Promise} a promise which settles in the same way as the first passed\n promise to settle.\n*/\nfunction race(entries) {\n /*jshint validthis:true */\n var Constructor = this;\n\n if (!isArray(entries)) {\n return new Constructor(function (_, reject) {\n return reject(new TypeError('You must pass an array to race.'));\n });\n } else {\n return new Constructor(function (resolve, reject) {\n var length = entries.length;\n for (var i = 0; i < length; i++) {\n Constructor.resolve(entries[i]).then(resolve, reject);\n }\n });\n }\n}\n\n/**\n `Promise.reject` returns a promise rejected with the passed `reason`.\n It is shorthand for the following:\n\n ```javascript\n let promise = new Promise(function(resolve, reject){\n reject(new Error('WHOOPS'));\n });\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n Instead of writing the above, your code now simply becomes the following:\n\n ```javascript\n let promise = Promise.reject(new Error('WHOOPS'));\n\n promise.then(function(value){\n // Code here doesn't run because the promise is rejected!\n }, function(reason){\n // reason.message === 'WHOOPS'\n });\n ```\n\n @method reject\n @static\n @param {Any} reason value that the returned promise will be rejected with.\n Useful for tooling.\n @return {Promise} a promise rejected with the given `reason`.\n*/\nfunction reject$1(reason) {\n /*jshint validthis:true */\n var Constructor = this;\n var promise = new Constructor(noop);\n reject(promise, reason);\n return promise;\n}\n\nfunction needsResolver() {\n throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');\n}\n\nfunction needsNew() {\n throw new TypeError(\"Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.\");\n}\n\n/**\n Promise objects represent the eventual result of an asynchronous operation. The\n primary way of interacting with a promise is through its `then` method, which\n registers callbacks to receive either a promise's eventual value or the reason\n why the promise cannot be fulfilled.\n\n Terminology\n -----------\n\n - `promise` is an object or function with a `then` method whose behavior conforms to this specification.\n - `thenable` is an object or function that defines a `then` method.\n - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).\n - `exception` is a value that is thrown using the throw statement.\n - `reason` is a value that indicates why a promise was rejected.\n - `settled` the final resting state of a promise, fulfilled or rejected.\n\n A promise can be in one of three states: pending, fulfilled, or rejected.\n\n Promises that are fulfilled have a fulfillment value and are in the fulfilled\n state. Promises that are rejected have a rejection reason and are in the\n rejected state. A fulfillment value is never a thenable.\n\n Promises can also be said to *resolve* a value. If this value is also a\n promise, then the original promise's settled state will match the value's\n settled state. So a promise that *resolves* a promise that rejects will\n itself reject, and a promise that *resolves* a promise that fulfills will\n itself fulfill.\n\n\n Basic Usage:\n ------------\n\n ```js\n let promise = new Promise(function(resolve, reject) {\n // on success\n resolve(value);\n\n // on failure\n reject(reason);\n });\n\n promise.then(function(value) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Advanced Usage:\n ---------------\n\n Promises shine when abstracting away asynchronous interactions such as\n `XMLHttpRequest`s.\n\n ```js\n function getJSON(url) {\n return new Promise(function(resolve, reject){\n let xhr = new XMLHttpRequest();\n\n xhr.open('GET', url);\n xhr.onreadystatechange = handler;\n xhr.responseType = 'json';\n xhr.setRequestHeader('Accept', 'application/json');\n xhr.send();\n\n function handler() {\n if (this.readyState === this.DONE) {\n if (this.status === 200) {\n resolve(this.response);\n } else {\n reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));\n }\n }\n };\n });\n }\n\n getJSON('/posts.json').then(function(json) {\n // on fulfillment\n }, function(reason) {\n // on rejection\n });\n ```\n\n Unlike callbacks, promises are great composable primitives.\n\n ```js\n Promise.all([\n getJSON('/posts'),\n getJSON('/comments')\n ]).then(function(values){\n values[0] // => postsJSON\n values[1] // => commentsJSON\n\n return values;\n });\n ```\n\n @class Promise\n @param {Function} resolver\n Useful for tooling.\n @constructor\n*/\n\nvar Promise$1 = function () {\n function Promise(resolver) {\n this[PROMISE_ID] = nextId();\n this._result = this._state = undefined;\n this._subscribers = [];\n\n if (noop !== resolver) {\n typeof resolver !== 'function' && needsResolver();\n this instanceof Promise ? initializePromise(this, resolver) : needsNew();\n }\n }\n\n /**\n The primary way of interacting with a promise is through its `then` method,\n which registers callbacks to receive either a promise's eventual value or the\n reason why the promise cannot be fulfilled.\n ```js\n findUser().then(function(user){\n // user is available\n }, function(reason){\n // user is unavailable, and you are given the reason why\n });\n ```\n Chaining\n --------\n The return value of `then` is itself a promise. This second, 'downstream'\n promise is resolved with the return value of the first promise's fulfillment\n or rejection handler, or rejected if the handler throws an exception.\n ```js\n findUser().then(function (user) {\n return user.name;\n }, function (reason) {\n return 'default name';\n }).then(function (userName) {\n // If `findUser` fulfilled, `userName` will be the user's name, otherwise it\n // will be `'default name'`\n });\n findUser().then(function (user) {\n throw new Error('Found user, but still unhappy');\n }, function (reason) {\n throw new Error('`findUser` rejected and we're unhappy');\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.\n // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.\n });\n ```\n If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.\n ```js\n findUser().then(function (user) {\n throw new PedagogicalException('Upstream error');\n }).then(function (value) {\n // never reached\n }).then(function (value) {\n // never reached\n }, function (reason) {\n // The `PedgagocialException` is propagated all the way down to here\n });\n ```\n Assimilation\n ------------\n Sometimes the value you want to propagate to a downstream promise can only be\n retrieved asynchronously. This can be achieved by returning a promise in the\n fulfillment or rejection handler. The downstream promise will then be pending\n until the returned promise is settled. This is called *assimilation*.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // The user's comments are now available\n });\n ```\n If the assimliated promise rejects, then the downstream promise will also reject.\n ```js\n findUser().then(function (user) {\n return findCommentsByAuthor(user);\n }).then(function (comments) {\n // If `findCommentsByAuthor` fulfills, we'll have the value here\n }, function (reason) {\n // If `findCommentsByAuthor` rejects, we'll have the reason here\n });\n ```\n Simple Example\n --------------\n Synchronous Example\n ```javascript\n let result;\n try {\n result = findResult();\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n findResult(function(result, err){\n if (err) {\n // failure\n } else {\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findResult().then(function(result){\n // success\n }, function(reason){\n // failure\n });\n ```\n Advanced Example\n --------------\n Synchronous Example\n ```javascript\n let author, books;\n try {\n author = findAuthor();\n books = findBooksByAuthor(author);\n // success\n } catch(reason) {\n // failure\n }\n ```\n Errback Example\n ```js\n function foundBooks(books) {\n }\n function failure(reason) {\n }\n findAuthor(function(author, err){\n if (err) {\n failure(err);\n // failure\n } else {\n try {\n findBoooksByAuthor(author, function(books, err) {\n if (err) {\n failure(err);\n } else {\n try {\n foundBooks(books);\n } catch(reason) {\n failure(reason);\n }\n }\n });\n } catch(error) {\n failure(err);\n }\n // success\n }\n });\n ```\n Promise Example;\n ```javascript\n findAuthor().\n then(findBooksByAuthor).\n then(function(books){\n // found books\n }).catch(function(reason){\n // something went wrong\n });\n ```\n @method then\n @param {Function} onFulfilled\n @param {Function} onRejected\n Useful for tooling.\n @return {Promise}\n */\n\n /**\n `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same\n as the catch block of a try/catch statement.\n ```js\n function findAuthor(){\n throw new Error('couldn't find that author');\n }\n // synchronous\n try {\n findAuthor();\n } catch(reason) {\n // something went wrong\n }\n // async with promises\n findAuthor().catch(function(reason){\n // something went wrong\n });\n ```\n @method catch\n @param {Function} onRejection\n Useful for tooling.\n @return {Promise}\n */\n\n\n Promise.prototype.catch = function _catch(onRejection) {\n return this.then(null, onRejection);\n };\n\n /**\n `finally` will be invoked regardless of the promise's fate just as native\n try/catch/finally behaves\n \n Synchronous example:\n \n ```js\n findAuthor() {\n if (Math.random() > 0.5) {\n throw new Error();\n }\n return new Author();\n }\n \n try {\n return findAuthor(); // succeed or fail\n } catch(error) {\n return findOtherAuther();\n } finally {\n // always runs\n // doesn't affect the return value\n }\n ```\n \n Asynchronous example:\n \n ```js\n findAuthor().catch(function(reason){\n return findOtherAuther();\n }).finally(function(){\n // author was either found, or not\n });\n ```\n \n @method finally\n @param {Function} callback\n @return {Promise}\n */\n\n\n Promise.prototype.finally = function _finally(callback) {\n var promise = this;\n var constructor = promise.constructor;\n\n if (isFunction(callback)) {\n return promise.then(function (value) {\n return constructor.resolve(callback()).then(function () {\n return value;\n });\n }, function (reason) {\n return constructor.resolve(callback()).then(function () {\n throw reason;\n });\n });\n }\n\n return promise.then(callback, callback);\n };\n\n return Promise;\n}();\n\nPromise$1.prototype.then = then;\nPromise$1.all = all;\nPromise$1.race = race;\nPromise$1.resolve = resolve$1;\nPromise$1.reject = reject$1;\nPromise$1._setScheduler = setScheduler;\nPromise$1._setAsap = setAsap;\nPromise$1._asap = asap;\n\n/*global self*/\nfunction polyfill() {\n var local = void 0;\n\n if (typeof global !== 'undefined') {\n local = global;\n } else if (typeof self !== 'undefined') {\n local = self;\n } else {\n try {\n local = Function('return this')();\n } catch (e) {\n throw new Error('polyfill failed because global object is unavailable in this environment');\n }\n }\n\n var P = local.Promise;\n\n if (P) {\n var promiseToString = null;\n try {\n promiseToString = Object.prototype.toString.call(P.resolve());\n } catch (e) {\n // silently ignored\n }\n\n if (promiseToString === '[object Promise]' && !P.cast) {\n return;\n }\n }\n\n local.Promise = Promise$1;\n}\n\n// Strange compat..\nPromise$1.polyfill = polyfill;\nPromise$1.Promise = Promise$1;\n\nreturn Promise$1;\n\n})));\n\n\n\n//# sourceMappingURL=es6-promise.map\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nvar scheduleDrain;\n\n{\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n scheduleDrain = function () {\n element.data = (called = ++called % 2);\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n scheduleDrain = function () {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function () {\n\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\n","\n /*! \n * portal-vue © Thorsten Lünborg, 2019 \n * \n * Version: 2.1.7\n * \n * LICENCE: MIT \n * \n * https://github.com/linusborg/portal-vue\n * \n */\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nfunction _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 && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar inBrowser = typeof window !== 'undefined';\nfunction freeze(item) {\n if (Array.isArray(item) || _typeof(item) === 'object') {\n return Object.freeze(item);\n }\n\n return item;\n}\nfunction combinePassengers(transports) {\n var slotProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return transports.reduce(function (passengers, transport) {\n var temp = transport.passengers[0];\n var newPassengers = typeof temp === 'function' ? temp(slotProps) : transport.passengers;\n return passengers.concat(newPassengers);\n }, []);\n}\nfunction stableSort(array, compareFn) {\n return array.map(function (v, idx) {\n return [idx, v];\n }).sort(function (a, b) {\n return compareFn(a[1], b[1]) || a[0] - b[0];\n }).map(function (c) {\n return c[1];\n });\n}\nfunction pick(obj, keys) {\n return keys.reduce(function (acc, key) {\n if (obj.hasOwnProperty(key)) {\n acc[key] = obj[key];\n }\n\n return acc;\n }, {});\n}\n\nvar transports = {};\nvar targets = {};\nvar sources = {};\nvar Wormhole = Vue.extend({\n data: function data() {\n return {\n transports: transports,\n targets: targets,\n sources: sources,\n trackInstances: inBrowser\n };\n },\n methods: {\n open: function open(transport) {\n if (!inBrowser) return;\n var to = transport.to,\n from = transport.from,\n passengers = transport.passengers,\n _transport$order = transport.order,\n order = _transport$order === void 0 ? Infinity : _transport$order;\n if (!to || !from || !passengers) return;\n var newTransport = {\n to: to,\n from: from,\n passengers: freeze(passengers),\n order: order\n };\n var keys = Object.keys(this.transports);\n\n if (keys.indexOf(to) === -1) {\n Vue.set(this.transports, to, []);\n }\n\n var currentIndex = this.$_getTransportIndex(newTransport); // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n\n var newTransports = this.transports[to].slice(0);\n\n if (currentIndex === -1) {\n newTransports.push(newTransport);\n } else {\n newTransports[currentIndex] = newTransport;\n }\n\n this.transports[to] = stableSort(newTransports, function (a, b) {\n return a.order - b.order;\n });\n },\n close: function close(transport) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var to = transport.to,\n from = transport.from;\n if (!to || !from && force === false) return;\n\n if (!this.transports[to]) {\n return;\n }\n\n if (force) {\n this.transports[to] = [];\n } else {\n var index = this.$_getTransportIndex(transport);\n\n if (index >= 0) {\n // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n var newTransports = this.transports[to].slice(0);\n newTransports.splice(index, 1);\n this.transports[to] = newTransports;\n }\n }\n },\n registerTarget: function registerTarget(target, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.targets[target]) {\n console.warn(\"[portal-vue]: Target \".concat(target, \" already exists\"));\n }\n\n this.$set(this.targets, target, Object.freeze([vm]));\n },\n unregisterTarget: function unregisterTarget(target) {\n this.$delete(this.targets, target);\n },\n registerSource: function registerSource(source, vm, force) {\n if (!inBrowser) return;\n\n if (this.trackInstances && !force && this.sources[source]) {\n console.warn(\"[portal-vue]: source \".concat(source, \" already exists\"));\n }\n\n this.$set(this.sources, source, Object.freeze([vm]));\n },\n unregisterSource: function unregisterSource(source) {\n this.$delete(this.sources, source);\n },\n hasTarget: function hasTarget(to) {\n return !!(this.targets[to] && this.targets[to][0]);\n },\n hasSource: function hasSource(to) {\n return !!(this.sources[to] && this.sources[to][0]);\n },\n hasContentFor: function hasContentFor(to) {\n return !!this.transports[to] && !!this.transports[to].length;\n },\n // Internal\n $_getTransportIndex: function $_getTransportIndex(_ref) {\n var to = _ref.to,\n from = _ref.from;\n\n for (var i in this.transports[to]) {\n if (this.transports[to][i].from === from) {\n return +i;\n }\n }\n\n return -1;\n }\n }\n});\nvar wormhole = new Wormhole(transports);\n\nvar _id = 1;\nvar Portal = Vue.extend({\n name: 'portal',\n props: {\n disabled: {\n type: Boolean\n },\n name: {\n type: String,\n default: function _default() {\n return String(_id++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n }\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerSource(_this.name, _this);\n });\n },\n mounted: function mounted() {\n if (!this.disabled) {\n this.sendUpdate();\n }\n },\n updated: function updated() {\n if (this.disabled) {\n this.clear();\n } else {\n this.sendUpdate();\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterSource(this.name);\n this.clear();\n },\n watch: {\n to: function to(newValue, oldValue) {\n oldValue && oldValue !== newValue && this.clear(oldValue);\n this.sendUpdate();\n }\n },\n methods: {\n clear: function clear(target) {\n var closer = {\n from: this.name,\n to: target || this.to\n };\n wormhole.close(closer);\n },\n normalizeSlots: function normalizeSlots() {\n return this.$scopedSlots.default ? [this.$scopedSlots.default] : this.$slots.default;\n },\n normalizeOwnChildren: function normalizeOwnChildren(children) {\n return typeof children === 'function' ? children(this.slotProps) : children;\n },\n sendUpdate: function sendUpdate() {\n var slotContent = this.normalizeSlots();\n\n if (slotContent) {\n var transport = {\n from: this.name,\n to: this.to,\n passengers: _toConsumableArray(slotContent),\n order: this.order\n };\n wormhole.open(transport);\n } else {\n this.clear();\n }\n }\n },\n render: function render(h) {\n var children = this.$slots.default || this.$scopedSlots.default || [];\n var Tag = this.tag;\n\n if (children && this.disabled) {\n return children.length <= 1 && this.slim ? this.normalizeOwnChildren(children)[0] : h(Tag, [this.normalizeOwnChildren(children)]);\n } else {\n return this.slim ? h() : h(Tag, {\n class: {\n 'v-portal': true\n },\n style: {\n display: 'none'\n },\n key: 'v-portal-placeholder'\n });\n }\n }\n});\n\nvar PortalTarget = Vue.extend({\n name: 'portalTarget',\n props: {\n multiple: {\n type: Boolean,\n default: false\n },\n name: {\n type: String,\n required: true\n },\n slim: {\n type: Boolean,\n default: false\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n data: function data() {\n return {\n transports: wormhole.transports,\n firstRender: true\n };\n },\n created: function created() {\n var _this = this;\n\n this.$nextTick(function () {\n wormhole.registerTarget(_this.name, _this);\n });\n },\n watch: {\n ownTransports: function ownTransports() {\n this.$emit('change', this.children().length > 0);\n },\n name: function name(newVal, oldVal) {\n /**\r\n * TODO\r\n * This should warn as well ...\r\n */\n wormhole.unregisterTarget(oldVal);\n wormhole.registerTarget(newVal, this);\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n if (this.transition) {\n this.$nextTick(function () {\n // only when we have a transition, because it causes a re-render\n _this2.firstRender = false;\n });\n }\n },\n beforeDestroy: function beforeDestroy() {\n wormhole.unregisterTarget(this.name);\n },\n computed: {\n ownTransports: function ownTransports() {\n var transports = this.transports[this.name] || [];\n\n if (this.multiple) {\n return transports;\n }\n\n return transports.length === 0 ? [] : [transports[transports.length - 1]];\n },\n passengers: function passengers() {\n return combinePassengers(this.ownTransports, this.slotProps);\n }\n },\n methods: {\n // can't be a computed prop because it has to \"react\" to $slot changes.\n children: function children() {\n return this.passengers.length !== 0 ? this.passengers : this.$scopedSlots.default ? this.$scopedSlots.default(this.slotProps) : this.$slots.default || [];\n },\n // can't be a computed prop because it has to \"react\" to this.children().\n noWrapper: function noWrapper() {\n var noWrapper = this.slim && !this.transition;\n\n if (noWrapper && this.children().length > 1) {\n console.warn('[portal-vue]: PortalTarget with `slim` option received more than one child element.');\n }\n\n return noWrapper;\n }\n },\n render: function render(h) {\n var noWrapper = this.noWrapper();\n var children = this.children();\n var Tag = this.transition || this.tag;\n return noWrapper ? children[0] : this.slim && !Tag ? h() : h(Tag, {\n props: {\n // if we have a transition component, pass the tag if it exists\n tag: this.transition && this.tag ? this.tag : undefined\n },\n class: {\n 'vue-portal-target': true\n }\n }, children);\n }\n});\n\nvar _id$1 = 0;\nvar portalProps = ['disabled', 'name', 'order', 'slim', 'slotProps', 'tag', 'to'];\nvar targetProps = ['multiple', 'transition'];\nvar MountingPortal = Vue.extend({\n name: 'MountingPortal',\n inheritAttrs: false,\n props: {\n append: {\n type: [Boolean, String]\n },\n bail: {\n type: Boolean\n },\n mountTo: {\n type: String,\n required: true\n },\n // Portal\n disabled: {\n type: Boolean\n },\n // name for the portal\n name: {\n type: String,\n default: function _default() {\n return 'mounted_' + String(_id$1++);\n }\n },\n order: {\n type: Number,\n default: 0\n },\n slim: {\n type: Boolean\n },\n slotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n tag: {\n type: String,\n default: 'DIV'\n },\n // name for the target\n to: {\n type: String,\n default: function _default() {\n return String(Math.round(Math.random() * 10000000));\n }\n },\n // Target\n multiple: {\n type: Boolean,\n default: false\n },\n targetSlim: {\n type: Boolean\n },\n targetSlotProps: {\n type: Object,\n default: function _default() {\n return {};\n }\n },\n targetTag: {\n type: String,\n default: 'div'\n },\n transition: {\n type: [String, Object, Function]\n }\n },\n created: function created() {\n if (typeof document === 'undefined') return;\n var el = document.querySelector(this.mountTo);\n\n if (!el) {\n console.error(\"[portal-vue]: Mount Point '\".concat(this.mountTo, \"' not found in document\"));\n return;\n }\n\n var props = this.$props; // Target already exists\n\n if (wormhole.targets[props.name]) {\n if (props.bail) {\n console.warn(\"[portal-vue]: Target \".concat(props.name, \" is already mounted.\\n Aborting because 'bail: true' is set\"));\n } else {\n this.portalTarget = wormhole.targets[props.name];\n }\n\n return;\n }\n\n var append = props.append;\n\n if (append) {\n var type = typeof append === 'string' ? append : 'DIV';\n var mountEl = document.createElement(type);\n el.appendChild(mountEl);\n el = mountEl;\n } // get props for target from $props\n // we have to rename a few of them\n\n\n var _props = pick(this.$props, targetProps);\n\n _props.slim = this.targetSlim;\n _props.tag = this.targetTag;\n _props.slotProps = this.targetSlotProps;\n _props.name = this.to;\n this.portalTarget = new PortalTarget({\n el: el,\n parent: this.$parent || this,\n propsData: _props\n });\n },\n beforeDestroy: function beforeDestroy() {\n var target = this.portalTarget;\n\n if (this.append) {\n var el = target.$el;\n el.parentNode.removeChild(el);\n }\n\n target.$destroy();\n },\n render: function render(h) {\n if (!this.portalTarget) {\n console.warn(\"[portal-vue] Target wasn't mounted\");\n return h();\n } // if there's no \"manual\" scoped slot, so we create a <Portal> ourselves\n\n\n if (!this.$scopedSlots.manual) {\n var props = pick(this.$props, portalProps);\n return h(Portal, {\n props: props,\n attrs: this.$attrs,\n on: this.$listeners,\n scopedSlots: this.$scopedSlots\n }, this.$slots.default);\n } // else, we render the scoped slot\n\n\n var content = this.$scopedSlots.manual({\n to: this.to\n }); // if user used <template> for the scoped slot\n // content will be an array\n\n if (Array.isArray(content)) {\n content = content[0];\n }\n\n if (!content) return h();\n return content;\n }\n});\n\nfunction install(Vue$$1) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Vue$$1.component(options.portalName || 'Portal', Portal);\n Vue$$1.component(options.portalTargetName || 'PortalTarget', PortalTarget);\n Vue$$1.component(options.MountingPortalName || 'MountingPortal', MountingPortal);\n}\n\nvar index = {\n install: install\n};\n\nexports.default = index;\nexports.Portal = Portal;\nexports.PortalTarget = PortalTarget;\nexports.MountingPortal = MountingPortal;\nexports.Wormhole = wormhole;\n//# sourceMappingURL=portal-vue.common.js.map\n","/**!\n * Sortable 1.10.2\n * @author\tRubaXa <trash@rubaxa.org>\n * @author\towenm <owen23355@gmail.com>\n * @license MIT\n */\nfunction _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 && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _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\nfunction _extends() {\n _extends = Object.assign || 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\nfunction _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(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _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\nfunction _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\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _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\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar version = \"1.10.2\";\n\nfunction userAgent(pattern) {\n if (typeof window !== 'undefined' && window.navigator) {\n return !!\n /*@__PURE__*/\n navigator.userAgent.match(pattern);\n }\n}\n\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n capture: false,\n passive: false\n};\n\nfunction on(el, event, fn) {\n el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction off(el, event, fn) {\n el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\n\nfunction matches(\n/**HTMLElement*/\nel,\n/**String*/\nselector) {\n if (!selector) return;\n selector[0] === '>' && (selector = selector.substring(1));\n\n if (el) {\n try {\n if (el.matches) {\n return el.matches(selector);\n } else if (el.msMatchesSelector) {\n return el.msMatchesSelector(selector);\n } else if (el.webkitMatchesSelector) {\n return el.webkitMatchesSelector(selector);\n }\n } catch (_) {\n return false;\n }\n }\n\n return false;\n}\n\nfunction getParentOrHost(el) {\n return el.host && el !== document && el.host.nodeType ? el.host : el.parentNode;\n}\n\nfunction closest(\n/**HTMLElement*/\nel,\n/**String*/\nselector,\n/**HTMLElement*/\nctx, includeCTX) {\n if (el) {\n ctx = ctx || document;\n\n do {\n if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n return el;\n }\n\n if (el === ctx) break;\n /* jshint boss:true */\n } while (el = getParentOrHost(el));\n }\n\n return null;\n}\n\nvar R_SPACE = /\\s+/g;\n\nfunction toggleClass(el, name, state) {\n if (el && name) {\n if (el.classList) {\n el.classList[state ? 'add' : 'remove'](name);\n } else {\n var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n }\n }\n}\n\nfunction css(el, prop, val) {\n var style = el && el.style;\n\n if (style) {\n if (val === void 0) {\n if (document.defaultView && document.defaultView.getComputedStyle) {\n val = document.defaultView.getComputedStyle(el, '');\n } else if (el.currentStyle) {\n val = el.currentStyle;\n }\n\n return prop === void 0 ? val : val[prop];\n } else {\n if (!(prop in style) && prop.indexOf('webkit') === -1) {\n prop = '-webkit-' + prop;\n }\n\n style[prop] = val + (typeof val === 'string' ? '' : 'px');\n }\n }\n}\n\nfunction matrix(el, selfOnly) {\n var appliedTransforms = '';\n\n if (typeof el === 'string') {\n appliedTransforms = el;\n } else {\n do {\n var transform = css(el, 'transform');\n\n if (transform && transform !== 'none') {\n appliedTransforms = transform + ' ' + appliedTransforms;\n }\n /* jshint boss:true */\n\n } while (!selfOnly && (el = el.parentNode));\n }\n\n var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n /*jshint -W056 */\n\n return matrixFn && new matrixFn(appliedTransforms);\n}\n\nfunction find(ctx, tagName, iterator) {\n if (ctx) {\n var list = ctx.getElementsByTagName(tagName),\n i = 0,\n n = list.length;\n\n if (iterator) {\n for (; i < n; i++) {\n iterator(list[i], i);\n }\n }\n\n return list;\n }\n\n return [];\n}\n\nfunction getWindowScrollingElement() {\n var scrollingElement = document.scrollingElement;\n\n if (scrollingElement) {\n return scrollingElement;\n } else {\n return document.documentElement;\n }\n}\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param {HTMLElement} el The element whose boundingClientRect is wanted\r\n * @param {[Boolean]} relativeToContainingBlock Whether the rect should be relative to the containing block of (including) the container\r\n * @param {[Boolean]} relativeToNonStaticParent Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param {[Boolean]} undoScale Whether the container's scale() should be undone\r\n * @param {[HTMLElement]} container The parent the element will be placed in\r\n * @return {Object} The boundingClientRect of el, with specified adjustments\r\n */\n\n\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n if (!el.getBoundingClientRect && el !== window) return;\n var elRect, top, left, bottom, right, height, width;\n\n if (el !== window && el !== getWindowScrollingElement()) {\n elRect = el.getBoundingClientRect();\n top = elRect.top;\n left = elRect.left;\n bottom = elRect.bottom;\n right = elRect.right;\n height = elRect.height;\n width = elRect.width;\n } else {\n top = 0;\n left = 0;\n bottom = window.innerHeight;\n right = window.innerWidth;\n height = window.innerHeight;\n width = window.innerWidth;\n }\n\n if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n // Adjust for translate()\n container = container || el.parentNode; // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n // Not needed on <= IE11\n\n if (!IE11OrLess) {\n do {\n if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n var containerRect = container.getBoundingClientRect(); // Set relative to edges of padding box of container\n\n top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n bottom = top + elRect.height;\n right = left + elRect.width;\n break;\n }\n /* jshint boss:true */\n\n } while (container = container.parentNode);\n }\n }\n\n if (undoScale && el !== window) {\n // Adjust for scale()\n var elMatrix = matrix(container || el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d;\n\n if (elMatrix) {\n top /= scaleY;\n left /= scaleX;\n width /= scaleX;\n height /= scaleY;\n bottom = top + height;\n right = left + width;\n }\n }\n\n return {\n top: top,\n left: left,\n bottom: bottom,\n right: right,\n width: width,\n height: height\n };\n}\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param {HTMLElement} el The element who's side being scrolled out of view is in question\r\n * @param {String} elSide Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param {String} parentSide Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement} The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\n\n\nfunction isScrolledPast(el, elSide, parentSide) {\n var parent = getParentAutoScrollElement(el, true),\n elSideVal = getRect(el)[elSide];\n /* jshint boss:true */\n\n while (parent) {\n var parentSideVal = getRect(parent)[parentSide],\n visible = void 0;\n\n if (parentSide === 'top' || parentSide === 'left') {\n visible = elSideVal >= parentSideVal;\n } else {\n visible = elSideVal <= parentSideVal;\n }\n\n if (!visible) return parent;\n if (parent === getWindowScrollingElement()) break;\n parent = getParentAutoScrollElement(parent, false);\n }\n\n return false;\n}\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param {HTMLElement} el The parent element\r\n * @param {Number} childNum The index of the child\r\n * @param {Object} options Parent Sortable's options\r\n * @return {HTMLElement} The child at index childNum, or null if not found\r\n */\n\n\nfunction getChild(el, childNum, options) {\n var currentChild = 0,\n i = 0,\n children = el.children;\n\n while (i < children.length) {\n if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && children[i] !== Sortable.dragged && closest(children[i], options.draggable, el, false)) {\n if (currentChild === childNum) {\n return children[i];\n }\n\n currentChild++;\n }\n\n i++;\n }\n\n return null;\n}\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param {HTMLElement} el Parent element\r\n * @param {selector} selector Any other elements that should be ignored\r\n * @return {HTMLElement} The last child, ignoring ghostEl\r\n */\n\n\nfunction lastChild(el, selector) {\n var last = el.lastElementChild;\n\n while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n last = last.previousElementSibling;\n }\n\n return last || null;\n}\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param {HTMLElement} el\r\n * @param {selector} selector\r\n * @return {number}\r\n */\n\n\nfunction index(el, selector) {\n var index = 0;\n\n if (!el || !el.parentNode) {\n return -1;\n }\n /* jshint boss:true */\n\n\n while (el = el.previousElementSibling) {\n if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n index++;\n }\n }\n\n return index;\n}\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param {HTMLElement} el\r\n * @return {Array} Offsets in the format of [left, top]\r\n */\n\n\nfunction getRelativeScrollOffset(el) {\n var offsetLeft = 0,\n offsetTop = 0,\n winScroller = getWindowScrollingElement();\n\n if (el) {\n do {\n var elMatrix = matrix(el),\n scaleX = elMatrix.a,\n scaleY = elMatrix.d;\n offsetLeft += el.scrollLeft * scaleX;\n offsetTop += el.scrollTop * scaleY;\n } while (el !== winScroller && (el = el.parentNode));\n }\n\n return [offsetLeft, offsetTop];\n}\n/**\r\n * Returns the index of the object within the given array\r\n * @param {Array} arr Array that may or may not hold the object\r\n * @param {Object} obj An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number} The index of the object in the array, or -1\r\n */\n\n\nfunction indexOfObject(arr, obj) {\n for (var i in arr) {\n if (!arr.hasOwnProperty(i)) continue;\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n }\n }\n\n return -1;\n}\n\nfunction getParentAutoScrollElement(el, includeSelf) {\n // skip to window\n if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n var elem = el;\n var gotSelf = false;\n\n do {\n // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n var elemCSS = css(elem);\n\n if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n if (gotSelf || includeSelf) return elem;\n gotSelf = true;\n }\n }\n /* jshint boss:true */\n\n } while (elem = elem.parentNode);\n\n return getWindowScrollingElement();\n}\n\nfunction extend(dst, src) {\n if (dst && src) {\n for (var key in src) {\n if (src.hasOwnProperty(key)) {\n dst[key] = src[key];\n }\n }\n }\n\n return dst;\n}\n\nfunction isRectEqual(rect1, rect2) {\n return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\n\nvar _throttleTimeout;\n\nfunction throttle(callback, ms) {\n return function () {\n if (!_throttleTimeout) {\n var args = arguments,\n _this = this;\n\n if (args.length === 1) {\n callback.call(_this, args[0]);\n } else {\n callback.apply(_this, args);\n }\n\n _throttleTimeout = setTimeout(function () {\n _throttleTimeout = void 0;\n }, ms);\n }\n };\n}\n\nfunction cancelThrottle() {\n clearTimeout(_throttleTimeout);\n _throttleTimeout = void 0;\n}\n\nfunction scrollBy(el, x, y) {\n el.scrollLeft += x;\n el.scrollTop += y;\n}\n\nfunction clone(el) {\n var Polymer = window.Polymer;\n var $ = window.jQuery || window.Zepto;\n\n if (Polymer && Polymer.dom) {\n return Polymer.dom(el).cloneNode(true);\n } else if ($) {\n return $(el).clone(true)[0];\n } else {\n return el.cloneNode(true);\n }\n}\n\nfunction setRect(el, rect) {\n css(el, 'position', 'absolute');\n css(el, 'top', rect.top);\n css(el, 'left', rect.left);\n css(el, 'width', rect.width);\n css(el, 'height', rect.height);\n}\n\nfunction unsetRect(el) {\n css(el, 'position', '');\n css(el, 'top', '');\n css(el, 'left', '');\n css(el, 'width', '');\n css(el, 'height', '');\n}\n\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n var animationStates = [],\n animationCallbackId;\n return {\n captureAnimationState: function captureAnimationState() {\n animationStates = [];\n if (!this.options.animation) return;\n var children = [].slice.call(this.el.children);\n children.forEach(function (child) {\n if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n animationStates.push({\n target: child,\n rect: getRect(child)\n });\n\n var fromRect = _objectSpread({}, animationStates[animationStates.length - 1].rect); // If animating: compensate for current animation\n\n\n if (child.thisAnimationDuration) {\n var childMatrix = matrix(child, true);\n\n if (childMatrix) {\n fromRect.top -= childMatrix.f;\n fromRect.left -= childMatrix.e;\n }\n }\n\n child.fromRect = fromRect;\n });\n },\n addAnimationState: function addAnimationState(state) {\n animationStates.push(state);\n },\n removeAnimationState: function removeAnimationState(target) {\n animationStates.splice(indexOfObject(animationStates, {\n target: target\n }), 1);\n },\n animateAll: function animateAll(callback) {\n var _this = this;\n\n if (!this.options.animation) {\n clearTimeout(animationCallbackId);\n if (typeof callback === 'function') callback();\n return;\n }\n\n var animating = false,\n animationTime = 0;\n animationStates.forEach(function (state) {\n var time = 0,\n target = state.target,\n fromRect = target.fromRect,\n toRect = getRect(target),\n prevFromRect = target.prevFromRect,\n prevToRect = target.prevToRect,\n animatingRect = state.rect,\n targetMatrix = matrix(target, true);\n\n if (targetMatrix) {\n // Compensate for current animation\n toRect.top -= targetMatrix.f;\n toRect.left -= targetMatrix.e;\n }\n\n target.toRect = toRect;\n\n if (target.thisAnimationDuration) {\n // Could also check if animatingRect is between fromRect and toRect\n if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) && // Make sure animatingRect is on line between toRect & fromRect\n (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n // If returning to same place as started from animation and on same axis\n time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n }\n } // if fromRect != toRect: animate\n\n\n if (!isRectEqual(toRect, fromRect)) {\n target.prevFromRect = fromRect;\n target.prevToRect = toRect;\n\n if (!time) {\n time = _this.options.animation;\n }\n\n _this.animate(target, animatingRect, toRect, time);\n }\n\n if (time) {\n animating = true;\n animationTime = Math.max(animationTime, time);\n clearTimeout(target.animationResetTimer);\n target.animationResetTimer = setTimeout(function () {\n target.animationTime = 0;\n target.prevFromRect = null;\n target.fromRect = null;\n target.prevToRect = null;\n target.thisAnimationDuration = null;\n }, time);\n target.thisAnimationDuration = time;\n }\n });\n clearTimeout(animationCallbackId);\n\n if (!animating) {\n if (typeof callback === 'function') callback();\n } else {\n animationCallbackId = setTimeout(function () {\n if (typeof callback === 'function') callback();\n }, animationTime);\n }\n\n animationStates = [];\n },\n animate: function animate(target, currentRect, toRect, duration) {\n if (duration) {\n css(target, 'transition', '');\n css(target, 'transform', '');\n var elMatrix = matrix(this.el),\n scaleX = elMatrix && elMatrix.a,\n scaleY = elMatrix && elMatrix.d,\n translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n target.animatingX = !!translateX;\n target.animatingY = !!translateY;\n css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n repaint(target); // repaint\n\n css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n css(target, 'transform', 'translate3d(0,0,0)');\n typeof target.animated === 'number' && clearTimeout(target.animated);\n target.animated = setTimeout(function () {\n css(target, 'transition', '');\n css(target, 'transform', '');\n target.animated = false;\n target.animatingX = false;\n target.animatingY = false;\n }, duration);\n }\n }\n };\n}\n\nfunction repaint(target) {\n return target.offsetWidth;\n}\n\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n initializeByDefault: true\n};\nvar PluginManager = {\n mount: function mount(plugin) {\n // Set default static properties\n for (var option in defaults) {\n if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n plugin[option] = defaults[option];\n }\n }\n\n plugins.push(plugin);\n },\n pluginEvent: function pluginEvent(eventName, sortable, evt) {\n var _this = this;\n\n this.eventCanceled = false;\n\n evt.cancel = function () {\n _this.eventCanceled = true;\n };\n\n var eventNameGlobal = eventName + 'Global';\n plugins.forEach(function (plugin) {\n if (!sortable[plugin.pluginName]) return; // Fire global events if it exists in this sortable\n\n if (sortable[plugin.pluginName][eventNameGlobal]) {\n sortable[plugin.pluginName][eventNameGlobal](_objectSpread({\n sortable: sortable\n }, evt));\n } // Only fire plugin event if plugin is enabled in this sortable,\n // and plugin has event defined\n\n\n if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n sortable[plugin.pluginName][eventName](_objectSpread({\n sortable: sortable\n }, evt));\n }\n });\n },\n initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n plugins.forEach(function (plugin) {\n var pluginName = plugin.pluginName;\n if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n var initialized = new plugin(sortable, el, sortable.options);\n initialized.sortable = sortable;\n initialized.options = sortable.options;\n sortable[pluginName] = initialized; // Add default options from plugin\n\n _extends(defaults, initialized.defaults);\n });\n\n for (var option in sortable.options) {\n if (!sortable.options.hasOwnProperty(option)) continue;\n var modified = this.modifyOption(sortable, option, sortable.options[option]);\n\n if (typeof modified !== 'undefined') {\n sortable.options[option] = modified;\n }\n }\n },\n getEventProperties: function getEventProperties(name, sortable) {\n var eventProperties = {};\n plugins.forEach(function (plugin) {\n if (typeof plugin.eventProperties !== 'function') return;\n\n _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n });\n return eventProperties;\n },\n modifyOption: function modifyOption(sortable, name, value) {\n var modifiedValue;\n plugins.forEach(function (plugin) {\n // Plugin must exist on the Sortable\n if (!sortable[plugin.pluginName]) return; // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n\n if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n }\n });\n return modifiedValue;\n }\n};\n\nfunction dispatchEvent(_ref) {\n var sortable = _ref.sortable,\n rootEl = _ref.rootEl,\n name = _ref.name,\n targetEl = _ref.targetEl,\n cloneEl = _ref.cloneEl,\n toEl = _ref.toEl,\n fromEl = _ref.fromEl,\n oldIndex = _ref.oldIndex,\n newIndex = _ref.newIndex,\n oldDraggableIndex = _ref.oldDraggableIndex,\n newDraggableIndex = _ref.newDraggableIndex,\n originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n extraEventProperties = _ref.extraEventProperties;\n sortable = sortable || rootEl && rootEl[expando];\n if (!sortable) return;\n var evt,\n options = sortable.options,\n onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1); // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent(name, {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent(name, true, true);\n }\n\n evt.to = toEl || rootEl;\n evt.from = fromEl || rootEl;\n evt.item = targetEl || rootEl;\n evt.clone = cloneEl;\n evt.oldIndex = oldIndex;\n evt.newIndex = newIndex;\n evt.oldDraggableIndex = oldDraggableIndex;\n evt.newDraggableIndex = newDraggableIndex;\n evt.originalEvent = originalEvent;\n evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n\n var allEventProperties = _objectSpread({}, extraEventProperties, PluginManager.getEventProperties(name, sortable));\n\n for (var option in allEventProperties) {\n evt[option] = allEventProperties[option];\n }\n\n if (rootEl) {\n rootEl.dispatchEvent(evt);\n }\n\n if (options[onName]) {\n options[onName].call(sortable, evt);\n }\n}\n\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n originalEvent = _ref.evt,\n data = _objectWithoutProperties(_ref, [\"evt\"]);\n\n PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread({\n dragEl: dragEl,\n parentEl: parentEl,\n ghostEl: ghostEl,\n rootEl: rootEl,\n nextEl: nextEl,\n lastDownEl: lastDownEl,\n cloneEl: cloneEl,\n cloneHidden: cloneHidden,\n dragStarted: moved,\n putSortable: putSortable,\n activeSortable: Sortable.active,\n originalEvent: originalEvent,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n hideGhostForTarget: _hideGhostForTarget,\n unhideGhostForTarget: _unhideGhostForTarget,\n cloneNowHidden: function cloneNowHidden() {\n cloneHidden = true;\n },\n cloneNowShown: function cloneNowShown() {\n cloneHidden = false;\n },\n dispatchSortableEvent: function dispatchSortableEvent(name) {\n _dispatchEvent({\n sortable: sortable,\n name: name,\n originalEvent: originalEvent\n });\n }\n }, data));\n};\n\nfunction _dispatchEvent(info) {\n dispatchEvent(_objectSpread({\n putSortable: putSortable,\n cloneEl: cloneEl,\n targetEl: dragEl,\n rootEl: rootEl,\n oldIndex: oldIndex,\n oldDraggableIndex: oldDraggableIndex,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex\n }, info));\n}\n\nvar dragEl,\n parentEl,\n ghostEl,\n rootEl,\n nextEl,\n lastDownEl,\n cloneEl,\n cloneHidden,\n oldIndex,\n newIndex,\n oldDraggableIndex,\n newDraggableIndex,\n activeGroup,\n putSortable,\n awaitingDragStarted = false,\n ignoreNextClick = false,\n sortables = [],\n tapEvt,\n touchEvt,\n lastDx,\n lastDy,\n tapDistanceLeft,\n tapDistanceTop,\n moved,\n lastTarget,\n lastDirection,\n pastFirstInvertThresh = false,\n isCircumstantialInvert = false,\n targetMoveDistance,\n // For positioning ghost absolutely\nghostRelativeParent,\n ghostRelativeParentInitialScroll = [],\n // (left, top)\n_silent = false,\n savedInputChecked = [];\n/** @const */\n\nvar documentExists = typeof document !== 'undefined',\n PositionGhostAbsolutely = IOS,\n CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n // This will not pass for IE9, because IE9 DnD only works on anchors\nsupportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n supportCssPointerEvents = function () {\n if (!documentExists) return; // false when <= IE11\n\n if (IE11OrLess) {\n return false;\n }\n\n var el = document.createElement('x');\n el.style.cssText = 'pointer-events:auto';\n return el.style.pointerEvents === 'auto';\n}(),\n _detectDirection = function _detectDirection(el, options) {\n var elCSS = css(el),\n elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n child1 = getChild(el, 0, options),\n child2 = getChild(el, 1, options),\n firstChildCSS = child1 && css(child1),\n secondChildCSS = child2 && css(child2),\n firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n\n if (elCSS.display === 'flex') {\n return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n }\n\n if (elCSS.display === 'grid') {\n return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n }\n\n if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n }\n\n return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n},\n _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n dragElOppLength = vertical ? dragRect.width : dragRect.height,\n targetS1Opp = vertical ? targetRect.left : targetRect.top,\n targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n targetOppLength = vertical ? targetRect.width : targetRect.height;\n return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n},\n\n/**\n * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\n * @param {Number} x X position\n * @param {Number} y Y position\n * @return {HTMLElement} Element of the first found nearest Sortable\n */\n_detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n var ret;\n sortables.some(function (sortable) {\n if (lastChild(sortable)) return;\n var rect = getRect(sortable),\n threshold = sortable[expando].options.emptyInsertThreshold,\n insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n\n if (threshold && insideHorizontally && insideVertically) {\n return ret = sortable;\n }\n });\n return ret;\n},\n _prepareGroup = function _prepareGroup(options) {\n function toFn(value, pull) {\n return function (to, from, dragEl, evt) {\n var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n\n if (value == null && (pull || sameGroup)) {\n // Default pull value\n // Default pull and put value if same group\n return true;\n } else if (value == null || value === false) {\n return false;\n } else if (pull && value === 'clone') {\n return value;\n } else if (typeof value === 'function') {\n return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n } else {\n var otherGroup = (pull ? to : from).options.group.name;\n return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n }\n };\n }\n\n var group = {};\n var originalGroup = options.group;\n\n if (!originalGroup || _typeof(originalGroup) != 'object') {\n originalGroup = {\n name: originalGroup\n };\n }\n\n group.name = originalGroup.name;\n group.checkPull = toFn(originalGroup.pull, true);\n group.checkPut = toFn(originalGroup.put);\n group.revertClone = originalGroup.revertClone;\n options.group = group;\n},\n _hideGhostForTarget = function _hideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', 'none');\n }\n},\n _unhideGhostForTarget = function _unhideGhostForTarget() {\n if (!supportCssPointerEvents && ghostEl) {\n css(ghostEl, 'display', '');\n }\n}; // #1184 fix - Prevent click event on fallback if dragged but item not changed position\n\n\nif (documentExists) {\n document.addEventListener('click', function (evt) {\n if (ignoreNextClick) {\n evt.preventDefault();\n evt.stopPropagation && evt.stopPropagation();\n evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n ignoreNextClick = false;\n return false;\n }\n }, true);\n}\n\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n if (dragEl) {\n evt = evt.touches ? evt.touches[0] : evt;\n\n var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n\n if (nearest) {\n // Create imitation event\n var event = {};\n\n for (var i in evt) {\n if (evt.hasOwnProperty(i)) {\n event[i] = evt[i];\n }\n }\n\n event.target = event.rootEl = nearest;\n event.preventDefault = void 0;\n event.stopPropagation = void 0;\n\n nearest[expando]._onDragOver(event);\n }\n }\n};\n\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n if (dragEl) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n }\n};\n/**\n * @class Sortable\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nfunction Sortable(el, options) {\n if (!(el && el.nodeType && el.nodeType === 1)) {\n throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n }\n\n this.el = el; // root element\n\n this.options = options = _extends({}, options); // Export instance\n\n el[expando] = this;\n var defaults = {\n group: null,\n sort: true,\n disabled: false,\n store: null,\n handle: null,\n draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n swapThreshold: 1,\n // percentage; 0 <= x <= 1\n invertSwap: false,\n // invert always\n invertedSwapThreshold: null,\n // will be set to same as swapThreshold if default\n removeCloneOnHide: true,\n direction: function direction() {\n return _detectDirection(el, this.options);\n },\n ghostClass: 'sortable-ghost',\n chosenClass: 'sortable-chosen',\n dragClass: 'sortable-drag',\n ignore: 'a, img',\n filter: null,\n preventOnFilter: true,\n animation: 0,\n easing: null,\n setData: function setData(dataTransfer, dragEl) {\n dataTransfer.setData('Text', dragEl.textContent);\n },\n dropBubble: false,\n dragoverBubble: false,\n dataIdAttr: 'data-id',\n delay: 0,\n delayOnTouchOnly: false,\n touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n forceFallback: false,\n fallbackClass: 'sortable-fallback',\n fallbackOnBody: false,\n fallbackTolerance: 0,\n fallbackOffset: {\n x: 0,\n y: 0\n },\n supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window,\n emptyInsertThreshold: 5\n };\n PluginManager.initializePlugins(this, el, defaults); // Set default options\n\n for (var name in defaults) {\n !(name in options) && (options[name] = defaults[name]);\n }\n\n _prepareGroup(options); // Bind all private methods\n\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n } // Setup drag mode\n\n\n this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n if (this.nativeDraggable) {\n // Touch start threshold cannot be greater than the native dragstart threshold\n this.options.touchStartThreshold = 1;\n } // Bind events\n\n\n if (options.supportPointer) {\n on(el, 'pointerdown', this._onTapStart);\n } else {\n on(el, 'mousedown', this._onTapStart);\n on(el, 'touchstart', this._onTapStart);\n }\n\n if (this.nativeDraggable) {\n on(el, 'dragover', this);\n on(el, 'dragenter', this);\n }\n\n sortables.push(this.el); // Restore sorting\n\n options.store && options.store.get && this.sort(options.store.get(this) || []); // Add animation state manager\n\n _extends(this, AnimationStateManager());\n}\n\nSortable.prototype =\n/** @lends Sortable.prototype */\n{\n constructor: Sortable,\n _isOutsideThisEl: function _isOutsideThisEl(target) {\n if (!this.el.contains(target) && target !== this.el) {\n lastTarget = null;\n }\n },\n _getDirection: function _getDirection(evt, target) {\n return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n },\n _onTapStart: function _onTapStart(\n /** Event|TouchEvent */\n evt) {\n if (!evt.cancelable) return;\n\n var _this = this,\n el = this.el,\n options = this.options,\n preventOnFilter = options.preventOnFilter,\n type = evt.type,\n touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n target = (touch || evt).target,\n originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n filter = options.filter;\n\n _saveInputCheckedState(el); // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\n\n if (dragEl) {\n return;\n }\n\n if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n return; // only left button and enabled\n } // cancel dnd if original target is content editable\n\n\n if (originalTarget.isContentEditable) {\n return;\n }\n\n target = closest(target, options.draggable, el, false);\n\n if (target && target.animated) {\n return;\n }\n\n if (lastDownEl === target) {\n // Ignoring duplicate `down`\n return;\n } // Get the index of the dragged element within its parent\n\n\n oldIndex = index(target);\n oldDraggableIndex = index(target, options.draggable); // Check filter\n\n if (typeof filter === 'function') {\n if (filter.call(this, evt, target, this)) {\n _dispatchEvent({\n sortable: _this,\n rootEl: originalTarget,\n name: 'filter',\n targetEl: target,\n toEl: el,\n fromEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n } else if (filter) {\n filter = filter.split(',').some(function (criteria) {\n criteria = closest(originalTarget, criteria.trim(), el, false);\n\n if (criteria) {\n _dispatchEvent({\n sortable: _this,\n rootEl: criteria,\n name: 'filter',\n targetEl: target,\n fromEl: el,\n toEl: el\n });\n\n pluginEvent('filter', _this, {\n evt: evt\n });\n return true;\n }\n });\n\n if (filter) {\n preventOnFilter && evt.cancelable && evt.preventDefault();\n return; // cancel dnd\n }\n }\n\n if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n return;\n } // Prepare `dragstart`\n\n\n this._prepareDragStart(evt, touch, target);\n },\n _prepareDragStart: function _prepareDragStart(\n /** Event */\n evt,\n /** Touch */\n touch,\n /** HTMLElement */\n target) {\n var _this = this,\n el = _this.el,\n options = _this.options,\n ownerDocument = el.ownerDocument,\n dragStartFn;\n\n if (target && !dragEl && target.parentNode === el) {\n var dragRect = getRect(target);\n rootEl = el;\n dragEl = target;\n parentEl = dragEl.parentNode;\n nextEl = dragEl.nextSibling;\n lastDownEl = target;\n activeGroup = options.group;\n Sortable.dragged = dragEl;\n tapEvt = {\n target: dragEl,\n clientX: (touch || evt).clientX,\n clientY: (touch || evt).clientY\n };\n tapDistanceLeft = tapEvt.clientX - dragRect.left;\n tapDistanceTop = tapEvt.clientY - dragRect.top;\n this._lastX = (touch || evt).clientX;\n this._lastY = (touch || evt).clientY;\n dragEl.style['will-change'] = 'all';\n\n dragStartFn = function dragStartFn() {\n pluginEvent('delayEnded', _this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n _this._onDrop();\n\n return;\n } // Delayed drag has been triggered\n // we can re-enable the events: touchmove/mousemove\n\n\n _this._disableDelayedDragEvents();\n\n if (!FireFox && _this.nativeDraggable) {\n dragEl.draggable = true;\n } // Bind the events: dragstart/dragend\n\n\n _this._triggerDragStart(evt, touch); // Drag start event\n\n\n _dispatchEvent({\n sortable: _this,\n name: 'choose',\n originalEvent: evt\n }); // Chosen item\n\n\n toggleClass(dragEl, options.chosenClass, true);\n }; // Disable \"draggable\"\n\n\n options.ignore.split(',').forEach(function (criteria) {\n find(dragEl, criteria.trim(), _disableDraggable);\n });\n on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n on(ownerDocument, 'mouseup', _this._onDrop);\n on(ownerDocument, 'touchend', _this._onDrop);\n on(ownerDocument, 'touchcancel', _this._onDrop); // Make dragEl draggable (must be before delay for FireFox)\n\n if (FireFox && this.nativeDraggable) {\n this.options.touchStartThreshold = 4;\n dragEl.draggable = true;\n }\n\n pluginEvent('delayStart', this, {\n evt: evt\n }); // Delay is impossible for native DnD in Edge or IE\n\n if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n } // If the user moves the pointer or let go the click or touch\n // before the delay has been reached:\n // disable the delayed drag\n\n\n on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n } else {\n dragStartFn();\n }\n }\n },\n _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler(\n /** TouchEvent|PointerEvent **/\n e) {\n var touch = e.touches ? e.touches[0] : e;\n\n if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n this._disableDelayedDrag();\n }\n },\n _disableDelayedDrag: function _disableDelayedDrag() {\n dragEl && _disableDraggable(dragEl);\n clearTimeout(this._dragStartTimer);\n\n this._disableDelayedDragEvents();\n },\n _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n off(ownerDocument, 'touchend', this._disableDelayedDrag);\n off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n },\n _triggerDragStart: function _triggerDragStart(\n /** Event */\n evt,\n /** Touch */\n touch) {\n touch = touch || evt.pointerType == 'touch' && evt;\n\n if (!this.nativeDraggable || touch) {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._onTouchMove);\n } else if (touch) {\n on(document, 'touchmove', this._onTouchMove);\n } else {\n on(document, 'mousemove', this._onTouchMove);\n }\n } else {\n on(dragEl, 'dragend', this);\n on(rootEl, 'dragstart', this._onDragStart);\n }\n\n try {\n if (document.selection) {\n // Timeout neccessary for IE9\n _nextTick(function () {\n document.selection.empty();\n });\n } else {\n window.getSelection().removeAllRanges();\n }\n } catch (err) {}\n },\n _dragStarted: function _dragStarted(fallback, evt) {\n\n awaitingDragStarted = false;\n\n if (rootEl && dragEl) {\n pluginEvent('dragStarted', this, {\n evt: evt\n });\n\n if (this.nativeDraggable) {\n on(document, 'dragover', _checkOutsideTargetEl);\n }\n\n var options = this.options; // Apply effect\n\n !fallback && toggleClass(dragEl, options.dragClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n Sortable.active = this;\n fallback && this._appendGhost(); // Drag start event\n\n _dispatchEvent({\n sortable: this,\n name: 'start',\n originalEvent: evt\n });\n } else {\n this._nulling();\n }\n },\n _emulateDragOver: function _emulateDragOver() {\n if (touchEvt) {\n this._lastX = touchEvt.clientX;\n this._lastY = touchEvt.clientY;\n\n _hideGhostForTarget();\n\n var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n var parent = target;\n\n while (target && target.shadowRoot) {\n target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n if (target === parent) break;\n parent = target;\n }\n\n dragEl.parentNode[expando]._isOutsideThisEl(target);\n\n if (parent) {\n do {\n if (parent[expando]) {\n var inserted = void 0;\n inserted = parent[expando]._onDragOver({\n clientX: touchEvt.clientX,\n clientY: touchEvt.clientY,\n target: target,\n rootEl: parent\n });\n\n if (inserted && !this.options.dragoverBubble) {\n break;\n }\n }\n\n target = parent; // store last element\n }\n /* jshint boss:true */\n while (parent = parent.parentNode);\n }\n\n _unhideGhostForTarget();\n }\n },\n _onTouchMove: function _onTouchMove(\n /**TouchEvent*/\n evt) {\n if (tapEvt) {\n var options = this.options,\n fallbackTolerance = options.fallbackTolerance,\n fallbackOffset = options.fallbackOffset,\n touch = evt.touches ? evt.touches[0] : evt,\n ghostMatrix = ghostEl && matrix(ghostEl, true),\n scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1); // only set the status to dragging, when we are actually dragging\n\n if (!Sortable.active && !awaitingDragStarted) {\n if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n return;\n }\n\n this._onDragStart(evt, true);\n }\n\n if (ghostEl) {\n if (ghostMatrix) {\n ghostMatrix.e += dx - (lastDx || 0);\n ghostMatrix.f += dy - (lastDy || 0);\n } else {\n ghostMatrix = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n e: dx,\n f: dy\n };\n }\n\n var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n css(ghostEl, 'webkitTransform', cssMatrix);\n css(ghostEl, 'mozTransform', cssMatrix);\n css(ghostEl, 'msTransform', cssMatrix);\n css(ghostEl, 'transform', cssMatrix);\n lastDx = dx;\n lastDy = dy;\n touchEvt = touch;\n }\n\n evt.cancelable && evt.preventDefault();\n }\n },\n _appendGhost: function _appendGhost() {\n // Bug if using scale(): https://stackoverflow.com/questions/2637058\n // Not being adjusted for\n if (!ghostEl) {\n var container = this.options.fallbackOnBody ? document.body : rootEl,\n rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n options = this.options; // Position absolutely\n\n if (PositionGhostAbsolutely) {\n // Get relatively positioned parent\n ghostRelativeParent = container;\n\n while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n ghostRelativeParent = ghostRelativeParent.parentNode;\n }\n\n if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n rect.top += ghostRelativeParent.scrollTop;\n rect.left += ghostRelativeParent.scrollLeft;\n } else {\n ghostRelativeParent = getWindowScrollingElement();\n }\n\n ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n }\n\n ghostEl = dragEl.cloneNode(true);\n toggleClass(ghostEl, options.ghostClass, false);\n toggleClass(ghostEl, options.fallbackClass, true);\n toggleClass(ghostEl, options.dragClass, true);\n css(ghostEl, 'transition', '');\n css(ghostEl, 'transform', '');\n css(ghostEl, 'box-sizing', 'border-box');\n css(ghostEl, 'margin', 0);\n css(ghostEl, 'top', rect.top);\n css(ghostEl, 'left', rect.left);\n css(ghostEl, 'width', rect.width);\n css(ghostEl, 'height', rect.height);\n css(ghostEl, 'opacity', '0.8');\n css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n css(ghostEl, 'zIndex', '100000');\n css(ghostEl, 'pointerEvents', 'none');\n Sortable.ghost = ghostEl;\n container.appendChild(ghostEl); // Set transform-origin\n\n css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n }\n },\n _onDragStart: function _onDragStart(\n /**Event*/\n evt,\n /**boolean*/\n fallback) {\n var _this = this;\n\n var dataTransfer = evt.dataTransfer;\n var options = _this.options;\n pluginEvent('dragStart', this, {\n evt: evt\n });\n\n if (Sortable.eventCanceled) {\n this._onDrop();\n\n return;\n }\n\n pluginEvent('setupClone', this);\n\n if (!Sortable.eventCanceled) {\n cloneEl = clone(dragEl);\n cloneEl.draggable = false;\n cloneEl.style['will-change'] = '';\n\n this._hideClone();\n\n toggleClass(cloneEl, this.options.chosenClass, false);\n Sortable.clone = cloneEl;\n } // #1143: IFrame support workaround\n\n\n _this.cloneId = _nextTick(function () {\n pluginEvent('clone', _this);\n if (Sortable.eventCanceled) return;\n\n if (!_this.options.removeCloneOnHide) {\n rootEl.insertBefore(cloneEl, dragEl);\n }\n\n _this._hideClone();\n\n _dispatchEvent({\n sortable: _this,\n name: 'clone'\n });\n });\n !fallback && toggleClass(dragEl, options.dragClass, true); // Set proper drop events\n\n if (fallback) {\n ignoreNextClick = true;\n _this._loopId = setInterval(_this._emulateDragOver, 50);\n } else {\n // Undo what was set in _prepareDragStart before drag started\n off(document, 'mouseup', _this._onDrop);\n off(document, 'touchend', _this._onDrop);\n off(document, 'touchcancel', _this._onDrop);\n\n if (dataTransfer) {\n dataTransfer.effectAllowed = 'move';\n options.setData && options.setData.call(_this, dataTransfer, dragEl);\n }\n\n on(document, 'drop', _this); // #1276 fix:\n\n css(dragEl, 'transform', 'translateZ(0)');\n }\n\n awaitingDragStarted = true;\n _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n on(document, 'selectstart', _this);\n moved = true;\n\n if (Safari) {\n css(document.body, 'user-select', 'none');\n }\n },\n // Returns true - if no further action is needed (either inserted or another condition)\n _onDragOver: function _onDragOver(\n /**Event*/\n evt) {\n var el = this.el,\n target = evt.target,\n dragRect,\n targetRect,\n revert,\n options = this.options,\n group = options.group,\n activeSortable = Sortable.active,\n isOwner = activeGroup === group,\n canSort = options.sort,\n fromSortable = putSortable || activeSortable,\n vertical,\n _this = this,\n completedFired = false;\n\n if (_silent) return;\n\n function dragOverEvent(name, extra) {\n pluginEvent(name, _this, _objectSpread({\n evt: evt,\n isOwner: isOwner,\n axis: vertical ? 'vertical' : 'horizontal',\n revert: revert,\n dragRect: dragRect,\n targetRect: targetRect,\n canSort: canSort,\n fromSortable: fromSortable,\n target: target,\n completed: completed,\n onMove: function onMove(target, after) {\n return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n },\n changed: changed\n }, extra));\n } // Capture animation state\n\n\n function capture() {\n dragOverEvent('dragOverAnimationCapture');\n\n _this.captureAnimationState();\n\n if (_this !== fromSortable) {\n fromSortable.captureAnimationState();\n }\n } // Return invocation when dragEl is inserted (or completed)\n\n\n function completed(insertion) {\n dragOverEvent('dragOverCompleted', {\n insertion: insertion\n });\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n } else {\n activeSortable._showClone(_this);\n }\n\n if (_this !== fromSortable) {\n // Set ghost class to new sortable's ghost class\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n toggleClass(dragEl, options.ghostClass, true);\n }\n\n if (putSortable !== _this && _this !== Sortable.active) {\n putSortable = _this;\n } else if (_this === Sortable.active && putSortable) {\n putSortable = null;\n } // Animation\n\n\n if (fromSortable === _this) {\n _this._ignoreWhileAnimating = target;\n }\n\n _this.animateAll(function () {\n dragOverEvent('dragOverAnimationComplete');\n _this._ignoreWhileAnimating = null;\n });\n\n if (_this !== fromSortable) {\n fromSortable.animateAll();\n fromSortable._ignoreWhileAnimating = null;\n }\n } // Null lastTarget if it is not inside a previously swapped element\n\n\n if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n lastTarget = null;\n } // no bubbling and not fallback\n\n\n if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n dragEl.parentNode[expando]._isOutsideThisEl(evt.target); // Do not detect for empty insert if already inserted\n\n\n !insertion && nearestEmptyInsertDetectEvent(evt);\n }\n\n !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n return completedFired = true;\n } // Call when dragEl has been inserted\n\n\n function changed() {\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n _dispatchEvent({\n sortable: _this,\n name: 'change',\n toEl: el,\n newIndex: newIndex,\n newDraggableIndex: newDraggableIndex,\n originalEvent: evt\n });\n }\n\n if (evt.preventDefault !== void 0) {\n evt.cancelable && evt.preventDefault();\n }\n\n target = closest(target, options.draggable, el, true);\n dragOverEvent('dragOver');\n if (Sortable.eventCanceled) return completedFired;\n\n if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n return completed(false);\n }\n\n ignoreNextClick = false;\n\n if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n vertical = this._getDirection(evt, target) === 'vertical';\n dragRect = getRect(dragEl);\n dragOverEvent('dragOverValid');\n if (Sortable.eventCanceled) return completedFired;\n\n if (revert) {\n parentEl = rootEl; // actualization\n\n capture();\n\n this._hideClone();\n\n dragOverEvent('revert');\n\n if (!Sortable.eventCanceled) {\n if (nextEl) {\n rootEl.insertBefore(dragEl, nextEl);\n } else {\n rootEl.appendChild(dragEl);\n }\n }\n\n return completed(true);\n }\n\n var elLastChild = lastChild(el, options.draggable);\n\n if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n // If already at end of list: Do not insert\n if (elLastChild === dragEl) {\n return completed(false);\n } // assign target only if condition is true\n\n\n if (elLastChild && el === evt.target) {\n target = elLastChild;\n }\n\n if (target) {\n targetRect = getRect(target);\n }\n\n if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n capture();\n el.appendChild(dragEl);\n parentEl = el; // actualization\n\n changed();\n return completed(true);\n }\n } else if (target.parentNode === el) {\n targetRect = getRect(target);\n var direction = 0,\n targetBeforeFirstSwap,\n differentLevel = dragEl.parentNode !== el,\n differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n side1 = vertical ? 'top' : 'left',\n scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n\n if (lastTarget !== target) {\n targetBeforeFirstSwap = targetRect[side1];\n pastFirstInvertThresh = false;\n isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n }\n\n direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n var sibling;\n\n if (direction !== 0) {\n // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n var dragIndex = index(dragEl);\n\n do {\n dragIndex -= direction;\n sibling = parentEl.children[dragIndex];\n } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n } // If dragEl is already beside target: Do not insert\n\n\n if (direction === 0 || sibling === target) {\n return completed(false);\n }\n\n lastTarget = target;\n lastDirection = direction;\n var nextSibling = target.nextElementSibling,\n after = false;\n after = direction === 1;\n\n var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n if (moveVector !== false) {\n if (moveVector === 1 || moveVector === -1) {\n after = moveVector === 1;\n }\n\n _silent = true;\n setTimeout(_unsilent, 30);\n capture();\n\n if (after && !nextSibling) {\n el.appendChild(dragEl);\n } else {\n target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n } // Undo chrome's scroll adjustment (has no effect on other browsers)\n\n\n if (scrolledPastTop) {\n scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n }\n\n parentEl = dragEl.parentNode; // actualization\n // must be done before animation\n\n if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n }\n\n changed();\n return completed(true);\n }\n }\n\n if (el.contains(dragEl)) {\n return completed(false);\n }\n }\n\n return false;\n },\n _ignoreWhileAnimating: null,\n _offMoveEvents: function _offMoveEvents() {\n off(document, 'mousemove', this._onTouchMove);\n off(document, 'touchmove', this._onTouchMove);\n off(document, 'pointermove', this._onTouchMove);\n off(document, 'dragover', nearestEmptyInsertDetectEvent);\n off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n },\n _offUpEvents: function _offUpEvents() {\n var ownerDocument = this.el.ownerDocument;\n off(ownerDocument, 'mouseup', this._onDrop);\n off(ownerDocument, 'touchend', this._onDrop);\n off(ownerDocument, 'pointerup', this._onDrop);\n off(ownerDocument, 'touchcancel', this._onDrop);\n off(document, 'selectstart', this);\n },\n _onDrop: function _onDrop(\n /**Event*/\n evt) {\n var el = this.el,\n options = this.options; // Get the index of the dragged element within its parent\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n pluginEvent('drop', this, {\n evt: evt\n });\n parentEl = dragEl && dragEl.parentNode; // Get again after plugin event\n\n newIndex = index(dragEl);\n newDraggableIndex = index(dragEl, options.draggable);\n\n if (Sortable.eventCanceled) {\n this._nulling();\n\n return;\n }\n\n awaitingDragStarted = false;\n isCircumstantialInvert = false;\n pastFirstInvertThresh = false;\n clearInterval(this._loopId);\n clearTimeout(this._dragStartTimer);\n\n _cancelNextTick(this.cloneId);\n\n _cancelNextTick(this._dragStartId); // Unbind events\n\n\n if (this.nativeDraggable) {\n off(document, 'drop', this);\n off(el, 'dragstart', this._onDragStart);\n }\n\n this._offMoveEvents();\n\n this._offUpEvents();\n\n if (Safari) {\n css(document.body, 'user-select', '');\n }\n\n css(dragEl, 'transform', '');\n\n if (evt) {\n if (moved) {\n evt.cancelable && evt.preventDefault();\n !options.dropBubble && evt.stopPropagation();\n }\n\n ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n // Remove clone(s)\n cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n }\n\n if (dragEl) {\n if (this.nativeDraggable) {\n off(dragEl, 'dragend', this);\n }\n\n _disableDraggable(dragEl);\n\n dragEl.style['will-change'] = ''; // Remove classes\n // ghostClass is added in dragStarted\n\n if (moved && !awaitingDragStarted) {\n toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n }\n\n toggleClass(dragEl, this.options.chosenClass, false); // Drag stop event\n\n _dispatchEvent({\n sortable: this,\n name: 'unchoose',\n toEl: parentEl,\n newIndex: null,\n newDraggableIndex: null,\n originalEvent: evt\n });\n\n if (rootEl !== parentEl) {\n if (newIndex >= 0) {\n // Add event\n _dispatchEvent({\n rootEl: parentEl,\n name: 'add',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n }); // Remove event\n\n\n _dispatchEvent({\n sortable: this,\n name: 'remove',\n toEl: parentEl,\n originalEvent: evt\n }); // drag from one list and drop into another\n\n\n _dispatchEvent({\n rootEl: parentEl,\n name: 'sort',\n toEl: parentEl,\n fromEl: rootEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n\n putSortable && putSortable.save();\n } else {\n if (newIndex !== oldIndex) {\n if (newIndex >= 0) {\n // drag & drop within the same list\n _dispatchEvent({\n sortable: this,\n name: 'update',\n toEl: parentEl,\n originalEvent: evt\n });\n\n _dispatchEvent({\n sortable: this,\n name: 'sort',\n toEl: parentEl,\n originalEvent: evt\n });\n }\n }\n }\n\n if (Sortable.active) {\n /* jshint eqnull:true */\n if (newIndex == null || newIndex === -1) {\n newIndex = oldIndex;\n newDraggableIndex = oldDraggableIndex;\n }\n\n _dispatchEvent({\n sortable: this,\n name: 'end',\n toEl: parentEl,\n originalEvent: evt\n }); // Save sorting\n\n\n this.save();\n }\n }\n }\n\n this._nulling();\n },\n _nulling: function _nulling() {\n pluginEvent('nulling', this);\n rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n savedInputChecked.forEach(function (el) {\n el.checked = true;\n });\n savedInputChecked.length = lastDx = lastDy = 0;\n },\n handleEvent: function handleEvent(\n /**Event*/\n evt) {\n switch (evt.type) {\n case 'drop':\n case 'dragend':\n this._onDrop(evt);\n\n break;\n\n case 'dragenter':\n case 'dragover':\n if (dragEl) {\n this._onDragOver(evt);\n\n _globalDragOver(evt);\n }\n\n break;\n\n case 'selectstart':\n evt.preventDefault();\n break;\n }\n },\n\n /**\n * Serializes the item into an array of string.\n * @returns {String[]}\n */\n toArray: function toArray() {\n var order = [],\n el,\n children = this.el.children,\n i = 0,\n n = children.length,\n options = this.options;\n\n for (; i < n; i++) {\n el = children[i];\n\n if (closest(el, options.draggable, this.el, false)) {\n order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n }\n }\n\n return order;\n },\n\n /**\n * Sorts the elements according to the array.\n * @param {String[]} order order of the items\n */\n sort: function sort(order) {\n var items = {},\n rootEl = this.el;\n this.toArray().forEach(function (id, i) {\n var el = rootEl.children[i];\n\n if (closest(el, this.options.draggable, rootEl, false)) {\n items[id] = el;\n }\n }, this);\n order.forEach(function (id) {\n if (items[id]) {\n rootEl.removeChild(items[id]);\n rootEl.appendChild(items[id]);\n }\n });\n },\n\n /**\n * Save the current sorting\n */\n save: function save() {\n var store = this.options.store;\n store && store.set && store.set(this);\n },\n\n /**\n * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n * @param {HTMLElement} el\n * @param {String} [selector] default: `options.draggable`\n * @returns {HTMLElement|null}\n */\n closest: function closest$1(el, selector) {\n return closest(el, selector || this.options.draggable, this.el, false);\n },\n\n /**\n * Set/get option\n * @param {string} name\n * @param {*} [value]\n * @returns {*}\n */\n option: function option(name, value) {\n var options = this.options;\n\n if (value === void 0) {\n return options[name];\n } else {\n var modifiedValue = PluginManager.modifyOption(this, name, value);\n\n if (typeof modifiedValue !== 'undefined') {\n options[name] = modifiedValue;\n } else {\n options[name] = value;\n }\n\n if (name === 'group') {\n _prepareGroup(options);\n }\n }\n },\n\n /**\n * Destroy\n */\n destroy: function destroy() {\n pluginEvent('destroy', this);\n var el = this.el;\n el[expando] = null;\n off(el, 'mousedown', this._onTapStart);\n off(el, 'touchstart', this._onTapStart);\n off(el, 'pointerdown', this._onTapStart);\n\n if (this.nativeDraggable) {\n off(el, 'dragover', this);\n off(el, 'dragenter', this);\n } // Remove draggable attributes\n\n\n Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n el.removeAttribute('draggable');\n });\n\n this._onDrop();\n\n this._disableDelayedDragEvents();\n\n sortables.splice(sortables.indexOf(this.el), 1);\n this.el = el = null;\n },\n _hideClone: function _hideClone() {\n if (!cloneHidden) {\n pluginEvent('hideClone', this);\n if (Sortable.eventCanceled) return;\n css(cloneEl, 'display', 'none');\n\n if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n cloneEl.parentNode.removeChild(cloneEl);\n }\n\n cloneHidden = true;\n }\n },\n _showClone: function _showClone(putSortable) {\n if (putSortable.lastPutMode !== 'clone') {\n this._hideClone();\n\n return;\n }\n\n if (cloneHidden) {\n pluginEvent('showClone', this);\n if (Sortable.eventCanceled) return; // show clone at dragEl or original position\n\n if (rootEl.contains(dragEl) && !this.options.group.revertClone) {\n rootEl.insertBefore(cloneEl, dragEl);\n } else if (nextEl) {\n rootEl.insertBefore(cloneEl, nextEl);\n } else {\n rootEl.appendChild(cloneEl);\n }\n\n if (this.options.group.revertClone) {\n this.animate(dragEl, cloneEl);\n }\n\n css(cloneEl, 'display', '');\n cloneHidden = false;\n }\n }\n};\n\nfunction _globalDragOver(\n/**Event*/\nevt) {\n if (evt.dataTransfer) {\n evt.dataTransfer.dropEffect = 'move';\n }\n\n evt.cancelable && evt.preventDefault();\n}\n\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n var evt,\n sortable = fromEl[expando],\n onMoveFn = sortable.options.onMove,\n retVal; // Support for new CustomEvent feature\n\n if (window.CustomEvent && !IE11OrLess && !Edge) {\n evt = new CustomEvent('move', {\n bubbles: true,\n cancelable: true\n });\n } else {\n evt = document.createEvent('Event');\n evt.initEvent('move', true, true);\n }\n\n evt.to = toEl;\n evt.from = fromEl;\n evt.dragged = dragEl;\n evt.draggedRect = dragRect;\n evt.related = targetEl || toEl;\n evt.relatedRect = targetRect || getRect(toEl);\n evt.willInsertAfter = willInsertAfter;\n evt.originalEvent = originalEvent;\n fromEl.dispatchEvent(evt);\n\n if (onMoveFn) {\n retVal = onMoveFn.call(sortable, evt, originalEvent);\n }\n\n return retVal;\n}\n\nfunction _disableDraggable(el) {\n el.draggable = false;\n}\n\nfunction _unsilent() {\n _silent = false;\n}\n\nfunction _ghostIsLast(evt, vertical, sortable) {\n var rect = getRect(lastChild(sortable.el, sortable.options.draggable));\n var spacer = 10;\n return vertical ? evt.clientX > rect.right + spacer || evt.clientX <= rect.right && evt.clientY > rect.bottom && evt.clientX >= rect.left : evt.clientX > rect.right && evt.clientY > rect.top || evt.clientX <= rect.right && evt.clientY > rect.bottom + spacer;\n}\n\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n targetLength = vertical ? targetRect.height : targetRect.width,\n targetS1 = vertical ? targetRect.top : targetRect.left,\n targetS2 = vertical ? targetRect.bottom : targetRect.right,\n invert = false;\n\n if (!invertSwap) {\n // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n // check if past first invert threshold on side opposite of lastDirection\n if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n pastFirstInvertThresh = true;\n }\n\n if (!pastFirstInvertThresh) {\n // dragEl shadow (target move distance shadow)\n if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n : mouseOnAxis > targetS2 - targetMoveDistance) {\n return -lastDirection;\n }\n } else {\n invert = true;\n }\n } else {\n // Regular\n if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n return _getInsertDirection(target);\n }\n }\n }\n\n invert = invert || invertSwap;\n\n if (invert) {\n // Invert of regular\n if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n }\n }\n\n return 0;\n}\n/**\n * Gets the direction dragEl must be swapped relative to target in order to make it\n * seem that dragEl has been \"inserted\" into that element's position\n * @param {HTMLElement} target The target whose position dragEl is being inserted at\n * @return {Number} Direction dragEl must be swapped\n */\n\n\nfunction _getInsertDirection(target) {\n if (index(dragEl) < index(target)) {\n return 1;\n } else {\n return -1;\n }\n}\n/**\n * Generate id\n * @param {HTMLElement} el\n * @returns {String}\n * @private\n */\n\n\nfunction _generateId(el) {\n var str = el.tagName + el.className + el.src + el.href + el.textContent,\n i = str.length,\n sum = 0;\n\n while (i--) {\n sum += str.charCodeAt(i);\n }\n\n return sum.toString(36);\n}\n\nfunction _saveInputCheckedState(root) {\n savedInputChecked.length = 0;\n var inputs = root.getElementsByTagName('input');\n var idx = inputs.length;\n\n while (idx--) {\n var el = inputs[idx];\n el.checked && savedInputChecked.push(el);\n }\n}\n\nfunction _nextTick(fn) {\n return setTimeout(fn, 0);\n}\n\nfunction _cancelNextTick(id) {\n return clearTimeout(id);\n} // Fixed #973:\n\n\nif (documentExists) {\n on(document, 'touchmove', function (evt) {\n if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n evt.preventDefault();\n }\n });\n} // Export utils\n\n\nSortable.utils = {\n on: on,\n off: off,\n css: css,\n find: find,\n is: function is(el, selector) {\n return !!closest(el, selector, el, false);\n },\n extend: extend,\n throttle: throttle,\n closest: closest,\n toggleClass: toggleClass,\n clone: clone,\n index: index,\n nextTick: _nextTick,\n cancelNextTick: _cancelNextTick,\n detectDirection: _detectDirection,\n getChild: getChild\n};\n/**\n * Get the Sortable instance of an element\n * @param {HTMLElement} element The element\n * @return {Sortable|undefined} The instance of Sortable\n */\n\nSortable.get = function (element) {\n return element[expando];\n};\n/**\n * Mount a plugin to Sortable\n * @param {...SortablePlugin|SortablePlugin[]} plugins Plugins being mounted\n */\n\n\nSortable.mount = function () {\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n if (plugins[0].constructor === Array) plugins = plugins[0];\n plugins.forEach(function (plugin) {\n if (!plugin.prototype || !plugin.prototype.constructor) {\n throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n }\n\n if (plugin.utils) Sortable.utils = _objectSpread({}, Sortable.utils, plugin.utils);\n PluginManager.mount(plugin);\n });\n};\n/**\n * Create sortable instance\n * @param {HTMLElement} el\n * @param {Object} [options]\n */\n\n\nSortable.create = function (el, options) {\n return new Sortable(el, options);\n}; // Export\n\n\nSortable.version = version;\n\nvar autoScrolls = [],\n scrollEl,\n scrollRootEl,\n scrolling = false,\n lastAutoScrollX,\n lastAutoScrollY,\n touchEvt$1,\n pointerElemChangedInterval;\n\nfunction AutoScrollPlugin() {\n function AutoScroll() {\n this.defaults = {\n scroll: true,\n scrollSensitivity: 30,\n scrollSpeed: 10,\n bubbleScroll: true\n }; // Bind all private methods\n\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n }\n\n AutoScroll.prototype = {\n dragStarted: function dragStarted(_ref) {\n var originalEvent = _ref.originalEvent;\n\n if (this.sortable.nativeDraggable) {\n on(document, 'dragover', this._handleAutoScroll);\n } else {\n if (this.options.supportPointer) {\n on(document, 'pointermove', this._handleFallbackAutoScroll);\n } else if (originalEvent.touches) {\n on(document, 'touchmove', this._handleFallbackAutoScroll);\n } else {\n on(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref2) {\n var originalEvent = _ref2.originalEvent;\n\n // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n this._handleAutoScroll(originalEvent);\n }\n },\n drop: function drop() {\n if (this.sortable.nativeDraggable) {\n off(document, 'dragover', this._handleAutoScroll);\n } else {\n off(document, 'pointermove', this._handleFallbackAutoScroll);\n off(document, 'touchmove', this._handleFallbackAutoScroll);\n off(document, 'mousemove', this._handleFallbackAutoScroll);\n }\n\n clearPointerElemChangedInterval();\n clearAutoScrolls();\n cancelThrottle();\n },\n nulling: function nulling() {\n touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n autoScrolls.length = 0;\n },\n _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n this._handleAutoScroll(evt, true);\n },\n _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n var _this = this;\n\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n elem = document.elementFromPoint(x, y);\n touchEvt$1 = evt; // IE does not seem to have native autoscroll,\n // Edge's autoscroll seems too conditional,\n // MACOS Safari does not have autoscroll,\n // Firefox and Chrome are good\n\n if (fallback || Edge || IE11OrLess || Safari) {\n autoScroll(evt, this.options, elem, fallback); // Listener for pointer element change\n\n var ogElemScroller = getParentAutoScrollElement(elem, true);\n\n if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n pointerElemChangedInterval && clearPointerElemChangedInterval(); // Detect for pointer elem change, emulating native DnD behaviour\n\n pointerElemChangedInterval = setInterval(function () {\n var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n\n if (newElem !== ogElemScroller) {\n ogElemScroller = newElem;\n clearAutoScrolls();\n }\n\n autoScroll(evt, _this.options, newElem, fallback);\n }, 10);\n lastAutoScrollX = x;\n lastAutoScrollY = y;\n }\n } else {\n // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n clearAutoScrolls();\n return;\n }\n\n autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n }\n }\n };\n return _extends(AutoScroll, {\n pluginName: 'scroll',\n initializeByDefault: true\n });\n}\n\nfunction clearAutoScrolls() {\n autoScrolls.forEach(function (autoScroll) {\n clearInterval(autoScroll.pid);\n });\n autoScrolls = [];\n}\n\nfunction clearPointerElemChangedInterval() {\n clearInterval(pointerElemChangedInterval);\n}\n\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n if (!options.scroll) return;\n var x = (evt.touches ? evt.touches[0] : evt).clientX,\n y = (evt.touches ? evt.touches[0] : evt).clientY,\n sens = options.scrollSensitivity,\n speed = options.scrollSpeed,\n winScroller = getWindowScrollingElement();\n var scrollThisInstance = false,\n scrollCustomFn; // New scroll root, set scrollEl\n\n if (scrollRootEl !== rootEl) {\n scrollRootEl = rootEl;\n clearAutoScrolls();\n scrollEl = options.scroll;\n scrollCustomFn = options.scrollFn;\n\n if (scrollEl === true) {\n scrollEl = getParentAutoScrollElement(rootEl, true);\n }\n }\n\n var layersOut = 0;\n var currentParent = scrollEl;\n\n do {\n var el = currentParent,\n rect = getRect(el),\n top = rect.top,\n bottom = rect.bottom,\n left = rect.left,\n right = rect.right,\n width = rect.width,\n height = rect.height,\n canScrollX = void 0,\n canScrollY = void 0,\n scrollWidth = el.scrollWidth,\n scrollHeight = el.scrollHeight,\n elCSS = css(el),\n scrollPosX = el.scrollLeft,\n scrollPosY = el.scrollTop;\n\n if (el === winScroller) {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n } else {\n canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n }\n\n var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n\n if (!autoScrolls[layersOut]) {\n for (var i = 0; i <= layersOut; i++) {\n if (!autoScrolls[i]) {\n autoScrolls[i] = {};\n }\n }\n }\n\n if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n autoScrolls[layersOut].el = el;\n autoScrolls[layersOut].vx = vx;\n autoScrolls[layersOut].vy = vy;\n clearInterval(autoScrolls[layersOut].pid);\n\n if (vx != 0 || vy != 0) {\n scrollThisInstance = true;\n /* jshint loopfunc:true */\n\n autoScrolls[layersOut].pid = setInterval(function () {\n // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n if (isFallback && this.layer === 0) {\n Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n\n }\n\n var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n\n if (typeof scrollCustomFn === 'function') {\n if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n return;\n }\n }\n\n scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n }.bind({\n layer: layersOut\n }), 24);\n }\n }\n\n layersOut++;\n } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n\n scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n var originalEvent = _ref.originalEvent,\n putSortable = _ref.putSortable,\n dragEl = _ref.dragEl,\n activeSortable = _ref.activeSortable,\n dispatchSortableEvent = _ref.dispatchSortableEvent,\n hideGhostForTarget = _ref.hideGhostForTarget,\n unhideGhostForTarget = _ref.unhideGhostForTarget;\n if (!originalEvent) return;\n var toSortable = putSortable || activeSortable;\n hideGhostForTarget();\n var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n var target = document.elementFromPoint(touch.clientX, touch.clientY);\n unhideGhostForTarget();\n\n if (toSortable && !toSortable.el.contains(target)) {\n dispatchSortableEvent('spill');\n this.onSpill({\n dragEl: dragEl,\n putSortable: putSortable\n });\n }\n};\n\nfunction Revert() {}\n\nRevert.prototype = {\n startIndex: null,\n dragStart: function dragStart(_ref2) {\n var oldDraggableIndex = _ref2.oldDraggableIndex;\n this.startIndex = oldDraggableIndex;\n },\n onSpill: function onSpill(_ref3) {\n var dragEl = _ref3.dragEl,\n putSortable = _ref3.putSortable;\n this.sortable.captureAnimationState();\n\n if (putSortable) {\n putSortable.captureAnimationState();\n }\n\n var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n\n if (nextSibling) {\n this.sortable.el.insertBefore(dragEl, nextSibling);\n } else {\n this.sortable.el.appendChild(dragEl);\n }\n\n this.sortable.animateAll();\n\n if (putSortable) {\n putSortable.animateAll();\n }\n },\n drop: drop\n};\n\n_extends(Revert, {\n pluginName: 'revertOnSpill'\n});\n\nfunction Remove() {}\n\nRemove.prototype = {\n onSpill: function onSpill(_ref4) {\n var dragEl = _ref4.dragEl,\n putSortable = _ref4.putSortable;\n var parentSortable = putSortable || this.sortable;\n parentSortable.captureAnimationState();\n dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n parentSortable.animateAll();\n },\n drop: drop\n};\n\n_extends(Remove, {\n pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\n\nfunction SwapPlugin() {\n function Swap() {\n this.defaults = {\n swapClass: 'sortable-swap-highlight'\n };\n }\n\n Swap.prototype = {\n dragStart: function dragStart(_ref) {\n var dragEl = _ref.dragEl;\n lastSwapEl = dragEl;\n },\n dragOverValid: function dragOverValid(_ref2) {\n var completed = _ref2.completed,\n target = _ref2.target,\n onMove = _ref2.onMove,\n activeSortable = _ref2.activeSortable,\n changed = _ref2.changed,\n cancel = _ref2.cancel;\n if (!activeSortable.options.swap) return;\n var el = this.sortable.el,\n options = this.options;\n\n if (target && target !== el) {\n var prevSwapEl = lastSwapEl;\n\n if (onMove(target) !== false) {\n toggleClass(target, options.swapClass, true);\n lastSwapEl = target;\n } else {\n lastSwapEl = null;\n }\n\n if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n toggleClass(prevSwapEl, options.swapClass, false);\n }\n }\n\n changed();\n completed(true);\n cancel();\n },\n drop: function drop(_ref3) {\n var activeSortable = _ref3.activeSortable,\n putSortable = _ref3.putSortable,\n dragEl = _ref3.dragEl;\n var toSortable = putSortable || this.sortable;\n var options = this.options;\n lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n\n if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n if (dragEl !== lastSwapEl) {\n toSortable.captureAnimationState();\n if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n swapNodes(dragEl, lastSwapEl);\n toSortable.animateAll();\n if (toSortable !== activeSortable) activeSortable.animateAll();\n }\n }\n },\n nulling: function nulling() {\n lastSwapEl = null;\n }\n };\n return _extends(Swap, {\n pluginName: 'swap',\n eventProperties: function eventProperties() {\n return {\n swapItem: lastSwapEl\n };\n }\n });\n}\n\nfunction swapNodes(n1, n2) {\n var p1 = n1.parentNode,\n p2 = n2.parentNode,\n i1,\n i2;\n if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n i1 = index(n1);\n i2 = index(n2);\n\n if (p1.isEqualNode(p2) && i1 < i2) {\n i2++;\n }\n\n p1.insertBefore(n2, p1.children[i1]);\n p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n multiDragClones = [],\n lastMultiDragSelect,\n // for selection with modifier key down (SHIFT)\nmultiDragSortable,\n initialFolding = false,\n // Initial multi-drag fold when drag started\nfolding = false,\n // Folding any other time\ndragStarted = false,\n dragEl$1,\n clonesFromRect,\n clonesHidden;\n\nfunction MultiDragPlugin() {\n function MultiDrag(sortable) {\n // Bind all private methods\n for (var fn in this) {\n if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n this[fn] = this[fn].bind(this);\n }\n }\n\n if (sortable.options.supportPointer) {\n on(document, 'pointerup', this._deselectMultiDrag);\n } else {\n on(document, 'mouseup', this._deselectMultiDrag);\n on(document, 'touchend', this._deselectMultiDrag);\n }\n\n on(document, 'keydown', this._checkKeyDown);\n on(document, 'keyup', this._checkKeyUp);\n this.defaults = {\n selectedClass: 'sortable-selected',\n multiDragKey: null,\n setData: function setData(dataTransfer, dragEl) {\n var data = '';\n\n if (multiDragElements.length && multiDragSortable === sortable) {\n multiDragElements.forEach(function (multiDragElement, i) {\n data += (!i ? '' : ', ') + multiDragElement.textContent;\n });\n } else {\n data = dragEl.textContent;\n }\n\n dataTransfer.setData('Text', data);\n }\n };\n }\n\n MultiDrag.prototype = {\n multiDragKeyDown: false,\n isMultiDrag: false,\n delayStartGlobal: function delayStartGlobal(_ref) {\n var dragged = _ref.dragEl;\n dragEl$1 = dragged;\n },\n delayEnded: function delayEnded() {\n this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n },\n setupClone: function setupClone(_ref2) {\n var sortable = _ref2.sortable,\n cancel = _ref2.cancel;\n if (!this.isMultiDrag) return;\n\n for (var i = 0; i < multiDragElements.length; i++) {\n multiDragClones.push(clone(multiDragElements[i]));\n multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n multiDragClones[i].draggable = false;\n multiDragClones[i].style['will-change'] = '';\n toggleClass(multiDragClones[i], this.options.selectedClass, false);\n multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n }\n\n sortable._hideClone();\n\n cancel();\n },\n clone: function clone(_ref3) {\n var sortable = _ref3.sortable,\n rootEl = _ref3.rootEl,\n dispatchSortableEvent = _ref3.dispatchSortableEvent,\n cancel = _ref3.cancel;\n if (!this.isMultiDrag) return;\n\n if (!this.options.removeCloneOnHide) {\n if (multiDragElements.length && multiDragSortable === sortable) {\n insertMultiDragClones(true, rootEl);\n dispatchSortableEvent('clone');\n cancel();\n }\n }\n },\n showClone: function showClone(_ref4) {\n var cloneNowShown = _ref4.cloneNowShown,\n rootEl = _ref4.rootEl,\n cancel = _ref4.cancel;\n if (!this.isMultiDrag) return;\n insertMultiDragClones(false, rootEl);\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', '');\n });\n cloneNowShown();\n clonesHidden = false;\n cancel();\n },\n hideClone: function hideClone(_ref5) {\n var _this = this;\n\n var sortable = _ref5.sortable,\n cloneNowHidden = _ref5.cloneNowHidden,\n cancel = _ref5.cancel;\n if (!this.isMultiDrag) return;\n multiDragClones.forEach(function (clone) {\n css(clone, 'display', 'none');\n\n if (_this.options.removeCloneOnHide && clone.parentNode) {\n clone.parentNode.removeChild(clone);\n }\n });\n cloneNowHidden();\n clonesHidden = true;\n cancel();\n },\n dragStartGlobal: function dragStartGlobal(_ref6) {\n var sortable = _ref6.sortable;\n\n if (!this.isMultiDrag && multiDragSortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n }\n\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.sortableIndex = index(multiDragElement);\n }); // Sort multi-drag elements\n\n multiDragElements = multiDragElements.sort(function (a, b) {\n return a.sortableIndex - b.sortableIndex;\n });\n dragStarted = true;\n },\n dragStarted: function dragStarted(_ref7) {\n var _this2 = this;\n\n var sortable = _ref7.sortable;\n if (!this.isMultiDrag) return;\n\n if (this.options.sort) {\n // Capture rects,\n // hide multi drag elements (by positioning them absolute),\n // set multi drag elements rects to dragRect,\n // show multi drag elements,\n // animate to rects,\n // unset rects & remove from DOM\n sortable.captureAnimationState();\n\n if (this.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n css(multiDragElement, 'position', 'absolute');\n });\n var dragRect = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRect);\n });\n folding = true;\n initialFolding = true;\n }\n }\n\n sortable.animateAll(function () {\n folding = false;\n initialFolding = false;\n\n if (_this2.options.animation) {\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n } // Remove all auxiliary multidrag items from el, if sorting enabled\n\n\n if (_this2.options.sort) {\n removeMultiDragElements();\n }\n });\n },\n dragOver: function dragOver(_ref8) {\n var target = _ref8.target,\n completed = _ref8.completed,\n cancel = _ref8.cancel;\n\n if (folding && ~multiDragElements.indexOf(target)) {\n completed(false);\n cancel();\n }\n },\n revert: function revert(_ref9) {\n var fromSortable = _ref9.fromSortable,\n rootEl = _ref9.rootEl,\n sortable = _ref9.sortable,\n dragRect = _ref9.dragRect;\n\n if (multiDragElements.length > 1) {\n // Setup unfold animation\n multiDragElements.forEach(function (multiDragElement) {\n sortable.addAnimationState({\n target: multiDragElement,\n rect: folding ? getRect(multiDragElement) : dragRect\n });\n unsetRect(multiDragElement);\n multiDragElement.fromRect = dragRect;\n fromSortable.removeAnimationState(multiDragElement);\n });\n folding = false;\n insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n }\n },\n dragOverCompleted: function dragOverCompleted(_ref10) {\n var sortable = _ref10.sortable,\n isOwner = _ref10.isOwner,\n insertion = _ref10.insertion,\n activeSortable = _ref10.activeSortable,\n parentEl = _ref10.parentEl,\n putSortable = _ref10.putSortable;\n var options = this.options;\n\n if (insertion) {\n // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n if (isOwner) {\n activeSortable._hideClone();\n }\n\n initialFolding = false; // If leaving sort:false root, or already folding - Fold to new location\n\n if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n setRect(multiDragElement, dragRectAbsolute); // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n\n parentEl.appendChild(multiDragElement);\n });\n folding = true;\n } // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n\n\n if (!isOwner) {\n // Only remove if not folding (folding will remove them anyways)\n if (!folding) {\n removeMultiDragElements();\n }\n\n if (multiDragElements.length > 1) {\n var clonesHiddenBefore = clonesHidden;\n\n activeSortable._showClone(sortable); // Unfold animation for clones if showing from hidden\n\n\n if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n multiDragClones.forEach(function (clone) {\n activeSortable.addAnimationState({\n target: clone,\n rect: clonesFromRect\n });\n clone.fromRect = clonesFromRect;\n clone.thisAnimationDuration = null;\n });\n }\n } else {\n activeSortable._showClone(sortable);\n }\n }\n }\n },\n dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n var dragRect = _ref11.dragRect,\n isOwner = _ref11.isOwner,\n activeSortable = _ref11.activeSortable;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n });\n\n if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n clonesFromRect = _extends({}, dragRect);\n var dragMatrix = matrix(dragEl$1, true);\n clonesFromRect.top -= dragMatrix.f;\n clonesFromRect.left -= dragMatrix.e;\n }\n },\n dragOverAnimationComplete: function dragOverAnimationComplete() {\n if (folding) {\n folding = false;\n removeMultiDragElements();\n }\n },\n drop: function drop(_ref12) {\n var evt = _ref12.originalEvent,\n rootEl = _ref12.rootEl,\n parentEl = _ref12.parentEl,\n sortable = _ref12.sortable,\n dispatchSortableEvent = _ref12.dispatchSortableEvent,\n oldIndex = _ref12.oldIndex,\n putSortable = _ref12.putSortable;\n var toSortable = putSortable || this.sortable;\n if (!evt) return;\n var options = this.options,\n children = parentEl.children; // Multi-drag selection\n\n if (!dragStarted) {\n if (options.multiDragKey && !this.multiDragKeyDown) {\n this._deselectMultiDrag();\n }\n\n toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n\n if (!~multiDragElements.indexOf(dragEl$1)) {\n multiDragElements.push(dragEl$1);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: dragEl$1,\n originalEvt: evt\n }); // Modifier activated, select from last to dragEl\n\n if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n var lastIndex = index(lastMultiDragSelect),\n currentIndex = index(dragEl$1);\n\n if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n // (but previous selection existed)\n var n, i;\n\n if (currentIndex > lastIndex) {\n i = lastIndex;\n n = currentIndex;\n } else {\n i = currentIndex;\n n = lastIndex + 1;\n }\n\n for (; i < n; i++) {\n if (~multiDragElements.indexOf(children[i])) continue;\n toggleClass(children[i], options.selectedClass, true);\n multiDragElements.push(children[i]);\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'select',\n targetEl: children[i],\n originalEvt: evt\n });\n }\n }\n } else {\n lastMultiDragSelect = dragEl$1;\n }\n\n multiDragSortable = toSortable;\n } else {\n multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n lastMultiDragSelect = null;\n dispatchEvent({\n sortable: sortable,\n rootEl: rootEl,\n name: 'deselect',\n targetEl: dragEl$1,\n originalEvt: evt\n });\n }\n } // Multi-drag drop\n\n\n if (dragStarted && this.isMultiDrag) {\n // Do not \"unfold\" after around dragEl if reverted\n if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n var dragRect = getRect(dragEl$1),\n multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n toSortable.captureAnimationState();\n\n if (!initialFolding) {\n if (options.animation) {\n dragEl$1.fromRect = dragRect;\n multiDragElements.forEach(function (multiDragElement) {\n multiDragElement.thisAnimationDuration = null;\n\n if (multiDragElement !== dragEl$1) {\n var rect = folding ? getRect(multiDragElement) : dragRect;\n multiDragElement.fromRect = rect; // Prepare unfold animation\n\n toSortable.addAnimationState({\n target: multiDragElement,\n rect: rect\n });\n }\n });\n } // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n // properly they must all be removed\n\n\n removeMultiDragElements();\n multiDragElements.forEach(function (multiDragElement) {\n if (children[multiDragIndex]) {\n parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n } else {\n parentEl.appendChild(multiDragElement);\n }\n\n multiDragIndex++;\n }); // If initial folding is done, the elements may have changed position because they are now\n // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n // must be fired here as Sortable will not.\n\n if (oldIndex === index(dragEl$1)) {\n var update = false;\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n update = true;\n return;\n }\n });\n\n if (update) {\n dispatchSortableEvent('update');\n }\n }\n } // Must be done after capturing individual rects (scroll bar)\n\n\n multiDragElements.forEach(function (multiDragElement) {\n unsetRect(multiDragElement);\n });\n toSortable.animateAll();\n }\n\n multiDragSortable = toSortable;\n } // Remove clones if necessary\n\n\n if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n multiDragClones.forEach(function (clone) {\n clone.parentNode && clone.parentNode.removeChild(clone);\n });\n }\n },\n nullingGlobal: function nullingGlobal() {\n this.isMultiDrag = dragStarted = false;\n multiDragClones.length = 0;\n },\n destroyGlobal: function destroyGlobal() {\n this._deselectMultiDrag();\n\n off(document, 'pointerup', this._deselectMultiDrag);\n off(document, 'mouseup', this._deselectMultiDrag);\n off(document, 'touchend', this._deselectMultiDrag);\n off(document, 'keydown', this._checkKeyDown);\n off(document, 'keyup', this._checkKeyUp);\n },\n _deselectMultiDrag: function _deselectMultiDrag(evt) {\n if (typeof dragStarted !== \"undefined\" && dragStarted) return; // Only deselect if selection is in this sortable\n\n if (multiDragSortable !== this.sortable) return; // Only deselect if target is not item in this sortable\n\n if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return; // Only deselect if left click\n\n if (evt && evt.button !== 0) return;\n\n while (multiDragElements.length) {\n var el = multiDragElements[0];\n toggleClass(el, this.options.selectedClass, false);\n multiDragElements.shift();\n dispatchEvent({\n sortable: this.sortable,\n rootEl: this.sortable.el,\n name: 'deselect',\n targetEl: el,\n originalEvt: evt\n });\n }\n },\n _checkKeyDown: function _checkKeyDown(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = true;\n }\n },\n _checkKeyUp: function _checkKeyUp(evt) {\n if (evt.key === this.options.multiDragKey) {\n this.multiDragKeyDown = false;\n }\n }\n };\n return _extends(MultiDrag, {\n // Static methods & properties\n pluginName: 'multiDrag',\n utils: {\n /**\r\n * Selects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be selected\r\n */\n select: function select(el) {\n var sortable = el.parentNode[expando];\n if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n\n if (multiDragSortable && multiDragSortable !== sortable) {\n multiDragSortable.multiDrag._deselectMultiDrag();\n\n multiDragSortable = sortable;\n }\n\n toggleClass(el, sortable.options.selectedClass, true);\n multiDragElements.push(el);\n },\n\n /**\r\n * Deselects the provided multi-drag item\r\n * @param {HTMLElement} el The element to be deselected\r\n */\n deselect: function deselect(el) {\n var sortable = el.parentNode[expando],\n index = multiDragElements.indexOf(el);\n if (!sortable || !sortable.options.multiDrag || !~index) return;\n toggleClass(el, sortable.options.selectedClass, false);\n multiDragElements.splice(index, 1);\n }\n },\n eventProperties: function eventProperties() {\n var _this3 = this;\n\n var oldIndicies = [],\n newIndicies = [];\n multiDragElements.forEach(function (multiDragElement) {\n oldIndicies.push({\n multiDragElement: multiDragElement,\n index: multiDragElement.sortableIndex\n }); // multiDragElements will already be sorted if folding\n\n var newIndex;\n\n if (folding && multiDragElement !== dragEl$1) {\n newIndex = -1;\n } else if (folding) {\n newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n } else {\n newIndex = index(multiDragElement);\n }\n\n newIndicies.push({\n multiDragElement: multiDragElement,\n index: newIndex\n });\n });\n return {\n items: _toConsumableArray(multiDragElements),\n clones: [].concat(multiDragClones),\n oldIndicies: oldIndicies,\n newIndicies: newIndicies\n };\n },\n optionListeners: {\n multiDragKey: function multiDragKey(key) {\n key = key.toLowerCase();\n\n if (key === 'ctrl') {\n key = 'Control';\n } else if (key.length > 1) {\n key = key.charAt(0).toUpperCase() + key.substr(1);\n }\n\n return key;\n }\n }\n });\n}\n\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n multiDragElements.forEach(function (multiDragElement, i) {\n var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(multiDragElement, target);\n } else {\n rootEl.appendChild(multiDragElement);\n }\n });\n}\n/**\r\n * Insert multi-drag clones\r\n * @param {[Boolean]} elementsInserted Whether the multi-drag elements are inserted\r\n * @param {HTMLElement} rootEl\r\n */\n\n\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n multiDragClones.forEach(function (clone, i) {\n var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n\n if (target) {\n rootEl.insertBefore(clone, target);\n } else {\n rootEl.appendChild(clone);\n }\n });\n}\n\nfunction removeMultiDragElements() {\n multiDragElements.forEach(function (multiDragElement) {\n if (multiDragElement === dragEl$1) return;\n multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"VueShortkey\",[],t):\"object\"==typeof exports?exports.VueShortkey=t():e.VueShortkey=t()}(\"undefined\"!=typeof self?self:this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,\"a\",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p=\"../dist/\",t(t.s=0)}([function(e,t,n){\"use strict\";(function(r){function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}var c;n(2),n(3);var u={},i={},a=[],l=[],s=!1,f=function(e){return e=\"string\"==typeof e?JSON.parse(e.replace(/\\'/gi,'\"')):e,e instanceof Array?{\"\":e}:e},p=function(e,t,n,r){var o=!0===n.modifiers.push,c=!0===n.modifiers.avoid,u=!0==!n.modifiers.focus,i=!0===n.modifiers.once;c?(a=a.filter(function(e){return!e===t}),a.push(t)):v({b:e,push:o,once:i,focus:u,el:r.elm})},y=function(e,t){for(var n in e){var r=u.encodeKey(e[n]),o=i[r].el.indexOf(t);i[r].el.length>1&&o>-1?i[r].el.splice(o,1):delete i[r]}};u.install=function(e,t){l=[].concat(o(t&&t.prevent?t.prevent:[])),e.directive(\"shortkey\",{bind:function(e,t,n){var r=f(t.value);p(r,e,t,n)},update:function(e,t,n){var r=f(t.oldValue);y(r,e);var o=f(t.value);p(o,e,t,n)},unbind:function(e,t){var n=f(t.value);y(n,e)}})},u.decodeKey=function(e){return d(e)},u.encodeKey=function(e){var t={};t.shiftKey=e.includes(\"shift\"),t.ctrlKey=e.includes(\"ctrl\"),t.metaKey=e.includes(\"meta\"),t.altKey=e.includes(\"alt\");var n=d(t);return n+=e.filter(function(e){return![\"shift\",\"ctrl\",\"meta\",\"alt\"].includes(e)}).join(\"\")};var d=function(e){var t=\"\";return(\"Shift\"===e.key||e.shiftKey)&&(t+=\"shift\"),(\"Control\"===e.key||e.ctrlKey)&&(t+=\"ctrl\"),(\"Meta\"===e.key||e.metaKey)&&(t+=\"meta\"),(\"Alt\"===e.key||e.altKey)&&(t+=\"alt\"),\"ArrowUp\"===e.key&&(t+=\"arrowup\"),\"ArrowLeft\"===e.key&&(t+=\"arrowleft\"),\"ArrowRight\"===e.key&&(t+=\"arrowright\"),\"ArrowDown\"===e.key&&(t+=\"arrowdown\"),\"AltGraph\"===e.key&&(t+=\"altgraph\"),\"Escape\"===e.key&&(t+=\"esc\"),\"Enter\"===e.key&&(t+=\"enter\"),\"Tab\"===e.key&&(t+=\"tab\"),\" \"===e.key&&(t+=\"space\"),\"PageUp\"===e.key&&(t+=\"pageup\"),\"PageDown\"===e.key&&(t+=\"pagedown\"),\"Home\"===e.key&&(t+=\"home\"),\"End\"===e.key&&(t+=\"end\"),\"Delete\"===e.key&&(t+=\"del\"),\"Backspace\"===e.key&&(t+=\"backspace\"),\"Insert\"===e.key&&(t+=\"insert\"),\"NumLock\"===e.key&&(t+=\"numlock\"),\"CapsLock\"===e.key&&(t+=\"capslock\"),\"Pause\"===e.key&&(t+=\"pause\"),\"ContextMenu\"===e.key&&(t+=\"contextmenu\"),\"ScrollLock\"===e.key&&(t+=\"scrolllock\"),\"BrowserHome\"===e.key&&(t+=\"browserhome\"),\"MediaSelect\"===e.key&&(t+=\"mediaselect\"),(e.key&&\" \"!==e.key&&1===e.key.length||/F\\d{1,2}|\\//g.test(e.key))&&(t+=e.key.toLowerCase()),t},h=function(e){var t=new CustomEvent(\"shortkey\",{bubbles:!1});i[e].key&&(t.srcKey=i[e].key);var n=i[e].el;n[n.length-1].dispatchEvent(t)};u.keyDown=function(e){(!i[e].once&&!i[e].push||i[e].push&&!s)&&h(e)},r&&Object({NODE_ENV:\"production\"})&&function(){document.addEventListener(\"keydown\",function(e){var t=u.decodeKey(e);if(m(t))if(e.preventDefault(),e.stopPropagation(),i[t].focus)u.keyDown(t),s=!0;else if(!s){var n=i[t].el;n[n.length-1].focus(),s=!0}},!0),document.addEventListener(\"keyup\",function(e){var t=u.decodeKey(e);m(t)&&(e.preventDefault(),e.stopPropagation(),(i[t].once||i[t].push)&&h(t)),s=!1},!0)}();var v=function(e){var t=e.b,n=e.push,r=e.once,o=e.focus,c=e.el;for(var a in t){var l=u.encodeKey(t[a]),s=i[l]&&i[l].el?i[l].el:[];s.push(c),i[l]={push:n,once:r,focus:o,key:a,el:s}}},m=function(e){var t=!!a.find(function(e){return e===document.activeElement}),n=!!l.find(function(e){return document.activeElement&&document.activeElement.matches(e)});return!!i[e]&&!(t||n)};void 0!==e&&e.exports?e.exports=u:void 0!==(c=function(){return u}.call(t,n,t,e))&&(e.exports=c)}).call(t,n(1))},function(e,t){function n(){throw new Error(\"setTimeout has not been defined\")}function r(){throw new Error(\"clearTimeout has not been defined\")}function o(e){if(s===setTimeout)return setTimeout(e,0);if((s===n||!s)&&setTimeout)return s=setTimeout,setTimeout(e,0);try{return s(e,0)}catch(t){try{return s.call(null,e,0)}catch(t){return s.call(this,e,0)}}}function c(e){if(f===clearTimeout)return clearTimeout(e);if((f===r||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function u(){h&&y&&(h=!1,y.length?d=y.concat(d):v=-1,d.length&&i())}function i(){if(!h){var e=o(u);h=!0;for(var t=d.length;t;){for(y=d,d=[];++v<t;)y&&y[v].run();v=-1,t=d.length}y=null,h=!1,c(e)}}function a(e,t){this.fun=e,this.array=t}function l(){}var s,f,p=e.exports={};!function(){try{s=\"function\"==typeof setTimeout?setTimeout:n}catch(e){s=n}try{f=\"function\"==typeof clearTimeout?clearTimeout:r}catch(e){f=r}}();var y,d=[],h=!1,v=-1;p.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];d.push(new a(e,t)),1!==d.length||h||o(i)},a.prototype.run=function(){this.fun.apply(null,this.array)},p.title=\"browser\",p.browser=!0,p.env={},p.argv=[],p.version=\"\",p.versions={},p.on=l,p.addListener=l,p.once=l,p.off=l,p.removeListener=l,p.removeAllListeners=l,p.emit=l,p.prependListener=l,p.prependOnceListener=l,p.listeners=function(e){return[]},p.binding=function(e){throw new Error(\"process.binding is not supported\")},p.cwd=function(){return\"/\"},p.chdir=function(e){throw new Error(\"process.chdir is not supported\")},p.umask=function(){return 0}},function(e,t){Element.prototype.matches||(Element.prototype.matches=Element.prototype.matchesSelector||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector)},function(e,t){!function(){if(\"undefined\"!=typeof window)try{var e=new window.CustomEvent(\"test\",{cancelable:!0});if(e.preventDefault(),!0!==e.defaultPrevented)throw new Error(\"Could not prevent default\")}catch(e){var t=function(e,t){var n,r;return t=t||{},t.bubbles=!!t.bubbles,t.cancelable=!!t.cancelable,n=document.createEvent(\"CustomEvent\"),n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r=n.preventDefault,n.preventDefault=function(){r.call(this);try{Object.defineProperty(this,\"defaultPrevented\",{get:function(){return!0}})}catch(e){this.defaultPrevented=!0}},n};t.prototype=window.Event.prototype,window.CustomEvent=t}}()}])});\n//# sourceMappingURL=index.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"sortablejs\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"sortablejs\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"vuedraggable\"] = factory(require(\"sortablejs\"));\n\telse\n\t\troot[\"vuedraggable\"] = factory(root[\"Sortable\"]);\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE_a352__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = \"fb15\");\n/******/ })\n/************************************************************************/\n/******/ ({\n\n/***/ \"01f9\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar LIBRARY = __webpack_require__(\"2d00\");\nvar $export = __webpack_require__(\"5ca1\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar $iterCreate = __webpack_require__(\"41a0\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar getPrototypeOf = __webpack_require__(\"38fd\");\nvar ITERATOR = __webpack_require__(\"2b4c\")('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n/***/ }),\n\n/***/ \"02f4\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar defined = __webpack_require__(\"be13\");\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n/***/ }),\n\n/***/ \"0390\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar at = __webpack_require__(\"02f4\")(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n\n\n/***/ }),\n\n/***/ \"0bfb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = __webpack_require__(\"cb7c\");\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"0d58\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = __webpack_require__(\"ce10\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n/***/ }),\n\n/***/ \"1495\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar anObject = __webpack_require__(\"cb7c\");\nvar getKeys = __webpack_require__(\"0d58\");\n\nmodule.exports = __webpack_require__(\"9e1e\") ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"214f\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n__webpack_require__(\"b0c5\");\nvar redefine = __webpack_require__(\"2aba\");\nvar hide = __webpack_require__(\"32e9\");\nvar fails = __webpack_require__(\"79e5\");\nvar defined = __webpack_require__(\"be13\");\nvar wks = __webpack_require__(\"2b4c\");\nvar regexpExec = __webpack_require__(\"520a\");\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\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\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n\n\n/***/ }),\n\n/***/ \"230e\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nvar document = __webpack_require__(\"7726\").document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n\n/***/ \"23c6\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = __webpack_require__(\"2d95\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n/***/ }),\n\n/***/ \"2621\":\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n\n/***/ \"2aba\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar has = __webpack_require__(\"69a8\");\nvar SRC = __webpack_require__(\"ca5a\")('src');\nvar $toString = __webpack_require__(\"fa5b\");\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\n__webpack_require__(\"8378\").inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n\n\n/***/ }),\n\n/***/ \"2aeb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = __webpack_require__(\"cb7c\");\nvar dPs = __webpack_require__(\"1495\");\nvar enumBugKeys = __webpack_require__(\"e11e\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = __webpack_require__(\"230e\")('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __webpack_require__(\"fab2\").appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n/***/ }),\n\n/***/ \"2b4c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(\"5537\")('wks');\nvar uid = __webpack_require__(\"ca5a\");\nvar Symbol = __webpack_require__(\"7726\").Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n/***/ }),\n\n/***/ \"2d00\":\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n\n/***/ \"2d95\":\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n\n/***/ \"2fdb\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n\nvar $export = __webpack_require__(\"5ca1\");\nvar context = __webpack_require__(\"d2c8\");\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n\n/***/ }),\n\n/***/ \"32e9\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar dP = __webpack_require__(\"86cc\");\nvar createDesc = __webpack_require__(\"4630\");\nmodule.exports = __webpack_require__(\"9e1e\") ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n\n/***/ \"38fd\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = __webpack_require__(\"69a8\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n/***/ }),\n\n/***/ \"41a0\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar create = __webpack_require__(\"2aeb\");\nvar descriptor = __webpack_require__(\"4630\");\nvar setToStringTag = __webpack_require__(\"7f20\");\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n__webpack_require__(\"32e9\")(IteratorPrototype, __webpack_require__(\"2b4c\")('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n/***/ }),\n\n/***/ \"456d\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.2.14 Object.keys(O)\nvar toObject = __webpack_require__(\"4bf8\");\nvar $keys = __webpack_require__(\"0d58\");\n\n__webpack_require__(\"5eda\")('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n/***/ }),\n\n/***/ \"4588\":\n/***/ (function(module, exports) {\n\n// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n/***/ }),\n\n/***/ \"4630\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n\n/***/ \"4bf8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.13 ToObject(argument)\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"5147\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n\n\n/***/ }),\n\n/***/ \"520a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar regexpFlags = __webpack_require__(\"0bfb\");\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n\n\n/***/ }),\n\n/***/ \"52a7\":\n/***/ (function(module, exports) {\n\nexports.f = {}.propertyIsEnumerable;\n\n\n/***/ }),\n\n/***/ \"5537\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar core = __webpack_require__(\"8378\");\nvar global = __webpack_require__(\"7726\");\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: __webpack_require__(\"2d00\") ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n\n/***/ \"5ca1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(\"7726\");\nvar core = __webpack_require__(\"8378\");\nvar hide = __webpack_require__(\"32e9\");\nvar redefine = __webpack_require__(\"2aba\");\nvar ctx = __webpack_require__(\"9b43\");\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n/***/ }),\n\n/***/ \"5eda\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// most Object methods by ES6 should accept primitives\nvar $export = __webpack_require__(\"5ca1\");\nvar core = __webpack_require__(\"8378\");\nvar fails = __webpack_require__(\"79e5\");\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n/***/ }),\n\n/***/ \"5f1b\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar classof = __webpack_require__(\"23c6\");\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n\n\n/***/ }),\n\n/***/ \"613b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(\"5537\")('keys');\nvar uid = __webpack_require__(\"ca5a\");\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n/***/ }),\n\n/***/ \"626a\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = __webpack_require__(\"2d95\");\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n/***/ }),\n\n/***/ \"6762\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// https://github.com/tc39/Array.prototype.includes\nvar $export = __webpack_require__(\"5ca1\");\nvar $includes = __webpack_require__(\"c366\")(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n__webpack_require__(\"9c6c\")('includes');\n\n\n/***/ }),\n\n/***/ \"6821\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = __webpack_require__(\"626a\");\nvar defined = __webpack_require__(\"be13\");\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n/***/ }),\n\n/***/ \"69a8\":\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n\n/***/ \"6a99\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = __webpack_require__(\"d3f4\");\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n\n/***/ \"7333\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = __webpack_require__(\"0d58\");\nvar gOPS = __webpack_require__(\"2621\");\nvar pIE = __webpack_require__(\"52a7\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar IObject = __webpack_require__(\"626a\");\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || __webpack_require__(\"79e5\")(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n\n\n/***/ }),\n\n/***/ \"7726\":\n/***/ (function(module, exports) {\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"77f1\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(\"4588\");\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n/***/ }),\n\n/***/ \"79e5\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n/***/ }),\n\n/***/ \"7f20\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar def = __webpack_require__(\"86cc\").f;\nvar has = __webpack_require__(\"69a8\");\nvar TAG = __webpack_require__(\"2b4c\")('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n\n\n/***/ }),\n\n/***/ \"8378\":\n/***/ (function(module, exports) {\n\nvar core = module.exports = { version: '2.6.5' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n/***/ }),\n\n/***/ \"84f2\":\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n\n/***/ \"86cc\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar IE8_DOM_DEFINE = __webpack_require__(\"c69a\");\nvar toPrimitive = __webpack_require__(\"6a99\");\nvar dP = Object.defineProperty;\n\nexports.f = __webpack_require__(\"9e1e\") ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n\n/***/ \"9b43\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// optional / simple context binding\nvar aFunction = __webpack_require__(\"d8e8\");\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n\n/***/ \"9c6c\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = __webpack_require__(\"2b4c\")('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__(\"32e9\")(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n\n/***/ \"9def\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.1.15 ToLength\nvar toInteger = __webpack_require__(\"4588\");\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n/***/ }),\n\n/***/ \"9e1e\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"a352\":\n/***/ (function(module, exports) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_a352__;\n\n/***/ }),\n\n/***/ \"a481\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nvar anObject = __webpack_require__(\"cb7c\");\nvar toObject = __webpack_require__(\"4bf8\");\nvar toLength = __webpack_require__(\"9def\");\nvar toInteger = __webpack_require__(\"4588\");\nvar advanceStringIndex = __webpack_require__(\"0390\");\nvar regExpExec = __webpack_require__(\"5f1b\");\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\n__webpack_require__(\"214f\")('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n\n\n/***/ }),\n\n/***/ \"aae3\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 7.2.8 IsRegExp(argument)\nvar isObject = __webpack_require__(\"d3f4\");\nvar cof = __webpack_require__(\"2d95\");\nvar MATCH = __webpack_require__(\"2b4c\")('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n\n/***/ }),\n\n/***/ \"ac6a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar $iterators = __webpack_require__(\"cadf\");\nvar getKeys = __webpack_require__(\"0d58\");\nvar redefine = __webpack_require__(\"2aba\");\nvar global = __webpack_require__(\"7726\");\nvar hide = __webpack_require__(\"32e9\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar wks = __webpack_require__(\"2b4c\");\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n\n\n/***/ }),\n\n/***/ \"b0c5\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar regexpExec = __webpack_require__(\"520a\");\n__webpack_require__(\"5ca1\")({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n\n\n/***/ }),\n\n/***/ \"be13\":\n/***/ (function(module, exports) {\n\n// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"c366\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = __webpack_require__(\"6821\");\nvar toLength = __webpack_require__(\"9def\");\nvar toAbsoluteIndex = __webpack_require__(\"77f1\");\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n/***/ }),\n\n/***/ \"c649\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n/* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"c\", function() { return insertNodeAt; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"a\", function() { return camelize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"b\", function() { return console; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"d\", function() { return removeNode; });\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(\"a481\");\n/* harmony import */ var core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_regexp_replace__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction getConsole() {\n if (typeof window !== \"undefined\") {\n return window.console;\n }\n\n return global.console;\n}\n\nvar console = getConsole();\n\nfunction cached(fn) {\n var cache = Object.create(null);\n return function cachedFn(str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\n\nvar regex = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(regex, function (_, c) {\n return c ? c.toUpperCase() : \"\";\n });\n});\n\nfunction removeNode(node) {\n if (node.parentElement !== null) {\n node.parentElement.removeChild(node);\n }\n}\n\nfunction insertNodeAt(fatherNode, node, position) {\n var refNode = position === 0 ? fatherNode.children[0] : fatherNode.children[position - 1].nextSibling;\n fatherNode.insertBefore(node, refNode);\n}\n\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(\"c8ba\")))\n\n/***/ }),\n\n/***/ \"c69a\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = !__webpack_require__(\"9e1e\") && !__webpack_require__(\"79e5\")(function () {\n return Object.defineProperty(__webpack_require__(\"230e\")('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n/***/ }),\n\n/***/ \"c8ba\":\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n\n/***/ \"ca5a\":\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n/***/ }),\n\n/***/ \"cadf\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar addToUnscopables = __webpack_require__(\"9c6c\");\nvar step = __webpack_require__(\"d53b\");\nvar Iterators = __webpack_require__(\"84f2\");\nvar toIObject = __webpack_require__(\"6821\");\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = __webpack_require__(\"01f9\")(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n\n/***/ \"cb7c\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(\"d3f4\");\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"ce10\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(\"69a8\");\nvar toIObject = __webpack_require__(\"6821\");\nvar arrayIndexOf = __webpack_require__(\"c366\")(false);\nvar IE_PROTO = __webpack_require__(\"613b\")('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n\n/***/ \"d2c8\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = __webpack_require__(\"aae3\");\nvar defined = __webpack_require__(\"be13\");\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n\n\n/***/ }),\n\n/***/ \"d3f4\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n\n/***/ \"d53b\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n\n\n/***/ }),\n\n/***/ \"d8e8\":\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n/***/ }),\n\n/***/ \"e11e\":\n/***/ (function(module, exports) {\n\n// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n/***/ }),\n\n/***/ \"f559\":\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n\nvar $export = __webpack_require__(\"5ca1\");\nvar toLength = __webpack_require__(\"9def\");\nvar context = __webpack_require__(\"d2c8\");\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * __webpack_require__(\"5147\")(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n\n\n/***/ }),\n\n/***/ \"f6fd\":\n/***/ (function(module, exports) {\n\n// document.currentScript polyfill by Adam Miller\n\n// MIT license\n\n(function(document){\n var currentScript = \"currentScript\",\n scripts = document.getElementsByTagName('script'); // Live NodeList collection\n\n // If browser needs currentScript polyfill, add get currentScript() to the document object\n if (!(currentScript in document)) {\n Object.defineProperty(document, currentScript, {\n get: function(){\n\n // IE 6-10 supports script readyState\n // IE 10+ support stack trace\n try { throw new Error(); }\n catch (err) {\n\n // Find the second match for the \"at\" string to get file src url from stack.\n // Specifically works with the format of stack traces in IE.\n var i, res = ((/.*at [^\\(]*\\((.*):.+:.+\\)$/ig).exec(err.stack) || [false])[1];\n\n // For all scripts on the page, if src matches or if ready state is interactive, return the script tag\n for(i in scripts){\n if(scripts[i].src == res || scripts[i].readyState == \"interactive\"){\n return scripts[i];\n }\n }\n\n // If no match, return null\n return null;\n }\n }\n });\n }\n})(document);\n\n\n/***/ }),\n\n/***/ \"f751\":\n/***/ (function(module, exports, __webpack_require__) {\n\n// 19.1.3.1 Object.assign(target, source)\nvar $export = __webpack_require__(\"5ca1\");\n\n$export($export.S + $export.F, 'Object', { assign: __webpack_require__(\"7333\") });\n\n\n/***/ }),\n\n/***/ \"fa5b\":\n/***/ (function(module, exports, __webpack_require__) {\n\nmodule.exports = __webpack_require__(\"5537\")('native-function-to-string', Function.toString);\n\n\n/***/ }),\n\n/***/ \"fab2\":\n/***/ (function(module, exports, __webpack_require__) {\n\nvar document = __webpack_require__(\"7726\").document;\nmodule.exports = document && document.documentElement;\n\n\n/***/ }),\n\n/***/ \"fb15\":\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n if (true) {\n __webpack_require__(\"f6fd\")\n }\n\n var setPublicPath_i\n if ((setPublicPath_i = window.document.currentScript) && (setPublicPath_i = setPublicPath_i.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/))) {\n __webpack_require__.p = setPublicPath_i[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\n/* harmony default export */ var setPublicPath = (null);\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js\nvar es6_object_assign = __webpack_require__(\"f751\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.starts-with.js\nvar es6_string_starts_with = __webpack_require__(\"f559\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js\nvar web_dom_iterable = __webpack_require__(\"ac6a\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js\nvar es6_array_iterator = __webpack_require__(\"cadf\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js\nvar es6_object_keys = __webpack_require__(\"456d\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\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// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/slicedToArray.js\n\n\n\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es7.array.includes.js\nvar es7_array_includes = __webpack_require__(\"6762\");\n\n// EXTERNAL MODULE: ./node_modules/core-js/modules/es6.string.includes.js\nvar es6_string_includes = __webpack_require__(\"2fdb\");\n\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/iterableToArray.js\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\n\n\n\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n// EXTERNAL MODULE: external {\"commonjs\":\"sortablejs\",\"commonjs2\":\"sortablejs\",\"amd\":\"sortablejs\",\"root\":\"Sortable\"}\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_ = __webpack_require__(\"a352\");\nvar external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_);\n\n// EXTERNAL MODULE: ./src/util/helper.js\nvar helper = __webpack_require__(\"c649\");\n\n// CONCATENATED MODULE: ./src/vuedraggable.js\n\n\n\n\n\n\n\n\n\n\n\n\nfunction buildAttribute(object, propName, value) {\n if (value === undefined) {\n return object;\n }\n\n object = object || {};\n object[propName] = value;\n return object;\n}\n\nfunction computeVmIndex(vnodes, element) {\n return vnodes.map(function (elt) {\n return elt.elm;\n }).indexOf(element);\n}\n\nfunction _computeIndexes(slots, children, isTransition, footerOffset) {\n if (!slots) {\n return [];\n }\n\n var elmFromNodes = slots.map(function (elt) {\n return elt.elm;\n });\n var footerIndex = children.length - footerOffset;\n\n var rawIndexes = _toConsumableArray(children).map(function (elt, idx) {\n return idx >= footerIndex ? elmFromNodes.length : elmFromNodes.indexOf(elt);\n });\n\n return isTransition ? rawIndexes.filter(function (ind) {\n return ind !== -1;\n }) : rawIndexes;\n}\n\nfunction emit(evtName, evtData) {\n var _this = this;\n\n this.$nextTick(function () {\n return _this.$emit(evtName.toLowerCase(), evtData);\n });\n}\n\nfunction delegateAndEmit(evtName) {\n var _this2 = this;\n\n return function (evtData) {\n if (_this2.realList !== null) {\n _this2[\"onDrag\" + evtName](evtData);\n }\n\n emit.call(_this2, evtName, evtData);\n };\n}\n\nfunction isTransitionName(name) {\n return [\"transition-group\", \"TransitionGroup\"].includes(name);\n}\n\nfunction vuedraggable_isTransition(slots) {\n if (!slots || slots.length !== 1) {\n return false;\n }\n\n var _slots = _slicedToArray(slots, 1),\n componentOptions = _slots[0].componentOptions;\n\n if (!componentOptions) {\n return false;\n }\n\n return isTransitionName(componentOptions.tag);\n}\n\nfunction getSlot(slot, scopedSlot, key) {\n return slot[key] || (scopedSlot[key] ? scopedSlot[key]() : undefined);\n}\n\nfunction computeChildrenAndOffsets(children, slot, scopedSlot) {\n var headerOffset = 0;\n var footerOffset = 0;\n var header = getSlot(slot, scopedSlot, \"header\");\n\n if (header) {\n headerOffset = header.length;\n children = children ? [].concat(_toConsumableArray(header), _toConsumableArray(children)) : _toConsumableArray(header);\n }\n\n var footer = getSlot(slot, scopedSlot, \"footer\");\n\n if (footer) {\n footerOffset = footer.length;\n children = children ? [].concat(_toConsumableArray(children), _toConsumableArray(footer)) : _toConsumableArray(footer);\n }\n\n return {\n children: children,\n headerOffset: headerOffset,\n footerOffset: footerOffset\n };\n}\n\nfunction getComponentAttributes($attrs, componentData) {\n var attributes = null;\n\n var update = function update(name, value) {\n attributes = buildAttribute(attributes, name, value);\n };\n\n var attrs = Object.keys($attrs).filter(function (key) {\n return key === \"id\" || key.startsWith(\"data-\");\n }).reduce(function (res, key) {\n res[key] = $attrs[key];\n return res;\n }, {});\n update(\"attrs\", attrs);\n\n if (!componentData) {\n return attributes;\n }\n\n var on = componentData.on,\n props = componentData.props,\n componentDataAttrs = componentData.attrs;\n update(\"on\", on);\n update(\"props\", props);\n Object.assign(attributes.attrs, componentDataAttrs);\n return attributes;\n}\n\nvar eventsListened = [\"Start\", \"Add\", \"Remove\", \"Update\", \"End\"];\nvar eventsToEmit = [\"Choose\", \"Unchoose\", \"Sort\", \"Filter\", \"Clone\"];\nvar readonlyProperties = [\"Move\"].concat(eventsListened, eventsToEmit).map(function (evt) {\n return \"on\" + evt;\n});\nvar draggingElement = null;\nvar props = {\n options: Object,\n list: {\n type: Array,\n required: false,\n default: null\n },\n value: {\n type: Array,\n required: false,\n default: null\n },\n noTransitionOnDrag: {\n type: Boolean,\n default: false\n },\n clone: {\n type: Function,\n default: function _default(original) {\n return original;\n }\n },\n element: {\n type: String,\n default: \"div\"\n },\n tag: {\n type: String,\n default: null\n },\n move: {\n type: Function,\n default: null\n },\n componentData: {\n type: Object,\n required: false,\n default: null\n }\n};\nvar draggableComponent = {\n name: \"draggable\",\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n transitionMode: false,\n noneFunctionalComponentMode: false\n };\n },\n render: function render(h) {\n var slots = this.$slots.default;\n this.transitionMode = vuedraggable_isTransition(slots);\n\n var _computeChildrenAndOf = computeChildrenAndOffsets(slots, this.$slots, this.$scopedSlots),\n children = _computeChildrenAndOf.children,\n headerOffset = _computeChildrenAndOf.headerOffset,\n footerOffset = _computeChildrenAndOf.footerOffset;\n\n this.headerOffset = headerOffset;\n this.footerOffset = footerOffset;\n var attributes = getComponentAttributes(this.$attrs, this.componentData);\n return h(this.getTag(), attributes, children);\n },\n created: function created() {\n if (this.list !== null && this.value !== null) {\n helper[\"b\" /* console */].error(\"Value and list props are mutually exclusive! Please set one or another.\");\n }\n\n if (this.element !== \"div\") {\n helper[\"b\" /* console */].warn(\"Element props is deprecated please use tag props instead. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#element-props\");\n }\n\n if (this.options !== undefined) {\n helper[\"b\" /* console */].warn(\"Options props is deprecated, add sortable options directly as vue.draggable item, or use v-bind. See https://github.com/SortableJS/Vue.Draggable/blob/master/documentation/migrate.md#options-props\");\n }\n },\n mounted: function mounted() {\n var _this3 = this;\n\n this.noneFunctionalComponentMode = this.getTag().toLowerCase() !== this.$el.nodeName.toLowerCase() && !this.getIsFunctional();\n\n if (this.noneFunctionalComponentMode && this.transitionMode) {\n throw new Error(\"Transition-group inside component is not supported. Please alter tag value or remove transition-group. Current tag value: \".concat(this.getTag()));\n }\n\n var optionsAdded = {};\n eventsListened.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = delegateAndEmit.call(_this3, elt);\n });\n eventsToEmit.forEach(function (elt) {\n optionsAdded[\"on\" + elt] = emit.bind(_this3, elt);\n });\n var attributes = Object.keys(this.$attrs).reduce(function (res, key) {\n res[Object(helper[\"a\" /* camelize */])(key)] = _this3.$attrs[key];\n return res;\n }, {});\n var options = Object.assign({}, this.options, attributes, optionsAdded, {\n onMove: function onMove(evt, originalEvent) {\n return _this3.onDragMove(evt, originalEvent);\n }\n });\n !(\"draggable\" in options) && (options.draggable = \">*\");\n this._sortable = new external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default.a(this.rootContainer, options);\n this.computeIndexes();\n },\n beforeDestroy: function beforeDestroy() {\n if (this._sortable !== undefined) this._sortable.destroy();\n },\n computed: {\n rootContainer: function rootContainer() {\n return this.transitionMode ? this.$el.children[0] : this.$el;\n },\n realList: function realList() {\n return this.list ? this.list : this.value;\n }\n },\n watch: {\n options: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n $attrs: {\n handler: function handler(newOptionValue) {\n this.updateOptions(newOptionValue);\n },\n deep: true\n },\n realList: function realList() {\n this.computeIndexes();\n }\n },\n methods: {\n getIsFunctional: function getIsFunctional() {\n var fnOptions = this._vnode.fnOptions;\n return fnOptions && fnOptions.functional;\n },\n getTag: function getTag() {\n return this.tag || this.element;\n },\n updateOptions: function updateOptions(newOptionValue) {\n for (var property in newOptionValue) {\n var value = Object(helper[\"a\" /* camelize */])(property);\n\n if (readonlyProperties.indexOf(value) === -1) {\n this._sortable.option(value, newOptionValue[property]);\n }\n }\n },\n getChildrenNodes: function getChildrenNodes() {\n if (this.noneFunctionalComponentMode) {\n return this.$children[0].$slots.default;\n }\n\n var rawNodes = this.$slots.default;\n return this.transitionMode ? rawNodes[0].child.$slots.default : rawNodes;\n },\n computeIndexes: function computeIndexes() {\n var _this4 = this;\n\n this.$nextTick(function () {\n _this4.visibleIndexes = _computeIndexes(_this4.getChildrenNodes(), _this4.rootContainer.children, _this4.transitionMode, _this4.footerOffset);\n });\n },\n getUnderlyingVm: function getUnderlyingVm(htmlElt) {\n var index = computeVmIndex(this.getChildrenNodes() || [], htmlElt);\n\n if (index === -1) {\n //Edge case during move callback: related element might be\n //an element different from collection\n return null;\n }\n\n var element = this.realList[index];\n return {\n index: index,\n element: element\n };\n },\n getUnderlyingPotencialDraggableComponent: function getUnderlyingPotencialDraggableComponent(_ref) {\n var vue = _ref.__vue__;\n\n if (!vue || !vue.$options || !isTransitionName(vue.$options._componentTag)) {\n if (!(\"realList\" in vue) && vue.$children.length === 1 && \"realList\" in vue.$children[0]) return vue.$children[0];\n return vue;\n }\n\n return vue.$parent;\n },\n emitChanges: function emitChanges(evt) {\n var _this5 = this;\n\n this.$nextTick(function () {\n _this5.$emit(\"change\", evt);\n });\n },\n alterList: function alterList(onList) {\n if (this.list) {\n onList(this.list);\n return;\n }\n\n var newList = _toConsumableArray(this.value);\n\n onList(newList);\n this.$emit(\"input\", newList);\n },\n spliceList: function spliceList() {\n var _arguments = arguments;\n\n var spliceList = function spliceList(list) {\n return list.splice.apply(list, _toConsumableArray(_arguments));\n };\n\n this.alterList(spliceList);\n },\n updatePosition: function updatePosition(oldIndex, newIndex) {\n var updatePosition = function updatePosition(list) {\n return list.splice(newIndex, 0, list.splice(oldIndex, 1)[0]);\n };\n\n this.alterList(updatePosition);\n },\n getRelatedContextFromMoveEvent: function getRelatedContextFromMoveEvent(_ref2) {\n var to = _ref2.to,\n related = _ref2.related;\n var component = this.getUnderlyingPotencialDraggableComponent(to);\n\n if (!component) {\n return {\n component: component\n };\n }\n\n var list = component.realList;\n var context = {\n list: list,\n component: component\n };\n\n if (to !== related && list && component.getUnderlyingVm) {\n var destination = component.getUnderlyingVm(related);\n\n if (destination) {\n return Object.assign(destination, context);\n }\n }\n\n return context;\n },\n getVmIndex: function getVmIndex(domIndex) {\n var indexes = this.visibleIndexes;\n var numberIndexes = indexes.length;\n return domIndex > numberIndexes - 1 ? numberIndexes : indexes[domIndex];\n },\n getComponent: function getComponent() {\n return this.$slots.default[0].componentInstance;\n },\n resetTransitionData: function resetTransitionData(index) {\n if (!this.noTransitionOnDrag || !this.transitionMode) {\n return;\n }\n\n var nodes = this.getChildrenNodes();\n nodes[index].data = null;\n var transitionContainer = this.getComponent();\n transitionContainer.children = [];\n transitionContainer.kept = undefined;\n },\n onDragStart: function onDragStart(evt) {\n this.context = this.getUnderlyingVm(evt.item);\n evt.item._underlying_vm_ = this.clone(this.context.element);\n draggingElement = evt.item;\n },\n onDragAdd: function onDragAdd(evt) {\n var element = evt.item._underlying_vm_;\n\n if (element === undefined) {\n return;\n }\n\n Object(helper[\"d\" /* removeNode */])(evt.item);\n var newIndex = this.getVmIndex(evt.newIndex);\n this.spliceList(newIndex, 0, element);\n this.computeIndexes();\n var added = {\n element: element,\n newIndex: newIndex\n };\n this.emitChanges({\n added: added\n });\n },\n onDragRemove: function onDragRemove(evt) {\n Object(helper[\"c\" /* insertNodeAt */])(this.rootContainer, evt.item, evt.oldIndex);\n\n if (evt.pullMode === \"clone\") {\n Object(helper[\"d\" /* removeNode */])(evt.clone);\n return;\n }\n\n var oldIndex = this.context.index;\n this.spliceList(oldIndex, 1);\n var removed = {\n element: this.context.element,\n oldIndex: oldIndex\n };\n this.resetTransitionData(oldIndex);\n this.emitChanges({\n removed: removed\n });\n },\n onDragUpdate: function onDragUpdate(evt) {\n Object(helper[\"d\" /* removeNode */])(evt.item);\n Object(helper[\"c\" /* insertNodeAt */])(evt.from, evt.item, evt.oldIndex);\n var oldIndex = this.context.index;\n var newIndex = this.getVmIndex(evt.newIndex);\n this.updatePosition(oldIndex, newIndex);\n var moved = {\n element: this.context.element,\n oldIndex: oldIndex,\n newIndex: newIndex\n };\n this.emitChanges({\n moved: moved\n });\n },\n updateProperty: function updateProperty(evt, propertyName) {\n evt.hasOwnProperty(propertyName) && (evt[propertyName] += this.headerOffset);\n },\n computeFutureIndex: function computeFutureIndex(relatedContext, evt) {\n if (!relatedContext.element) {\n return 0;\n }\n\n var domChildren = _toConsumableArray(evt.to.children).filter(function (el) {\n return el.style[\"display\"] !== \"none\";\n });\n\n var currentDOMIndex = domChildren.indexOf(evt.related);\n var currentIndex = relatedContext.component.getVmIndex(currentDOMIndex);\n var draggedInList = domChildren.indexOf(draggingElement) !== -1;\n return draggedInList || !evt.willInsertAfter ? currentIndex : currentIndex + 1;\n },\n onDragMove: function onDragMove(evt, originalEvent) {\n var onMove = this.move;\n\n if (!onMove || !this.realList) {\n return true;\n }\n\n var relatedContext = this.getRelatedContextFromMoveEvent(evt);\n var draggedContext = this.context;\n var futureIndex = this.computeFutureIndex(relatedContext, evt);\n Object.assign(draggedContext, {\n futureIndex: futureIndex\n });\n var sendEvt = Object.assign({}, evt, {\n relatedContext: relatedContext,\n draggedContext: draggedContext\n });\n return onMove(sendEvt, originalEvent);\n },\n onDragEnd: function onDragEnd() {\n this.computeIndexes();\n draggingElement = null;\n }\n }\n};\n\nif (typeof window !== \"undefined\" && \"Vue\" in window) {\n window.Vue.component(\"draggable\", draggableComponent);\n}\n\n/* harmony default export */ var vuedraggable = (draggableComponent);\n// CONCATENATED MODULE: ./node_modules/@vue/cli-service/lib/commands/build/entry-lib.js\n\n\n/* harmony default export */ var entry_lib = __webpack_exports__[\"default\"] = (vuedraggable);\n\n\n\n/***/ })\n\n/******/ })[\"default\"];\n});\n//# sourceMappingURL=vuedraggable.umd.js.map","module.exports = VueGPFUP;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript)\n\t\tscriptUrl = document.currentScript.src\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) scriptUrl = scripts[scripts.length - 1].src\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t398: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkgp_file_upload_pro\"] = self[\"webpackChunkgp_file_upload_pro\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import t from\"vue\";function e(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function i(t){for(var i=1;i<arguments.length;i++){var s=null!=arguments[i]?arguments[i]:{};i%2?e(Object(s),!0).forEach((function(e){n(t,e,s[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(s)):e(Object(s)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(s,e))}))}return t}function n(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}function s(t,e){if(null==t)return{};var i,n,s=function(t,e){if(null==t)return{};var i,n,s={},o=Object.keys(t);for(n=0;n<o.length;n++)i=o[n],e.indexOf(i)>=0||(s[i]=t[i]);return s}(t,e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);for(n=0;n<o.length;n++)i=o[n],e.indexOf(i)>=0||Object.prototype.propertyIsEnumerable.call(t,i)&&(s[i]=t[i])}return s}function o(t){return function(t){if(Array.isArray(t))return r(t)}(t)||function(t){if(\"undefined\"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t[\"@@iterator\"])return Array.from(t)}(t)||function(t,e){if(!t)return;if(\"string\"==typeof t)return r(t,e);var i=Object.prototype.toString.call(t).slice(8,-1);\"Object\"===i&&t.constructor&&(i=t.constructor.name);if(\"Map\"===i||\"Set\"===i)return Array.from(t);if(\"Arguments\"===i||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i))return r(t,e)}(t)||function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function r(t,e){(null==e||e>t.length)&&(e=t.length);for(var i=0,n=new Array(e);i<e;i++)n[i]=t[i];return n}var a,h,c,l=(a=function(t){\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n!function(){var e={}.hasOwnProperty;function i(){for(var t=[],n=0;n<arguments.length;n++){var s=arguments[n];if(s){var o=typeof s;if(\"string\"===o||\"number\"===o)t.push(s);else if(Array.isArray(s)){if(s.length){var r=i.apply(null,s);r&&t.push(r)}}else if(\"object\"===o)if(s.toString===Object.prototype.toString)for(var a in s)e.call(s,a)&&s[a]&&t.push(a);else t.push(s.toString())}}return t.join(\" \")}t.exports?(i.default=i,t.exports=i):window.classNames=i}()},a(c={path:h,exports:{},require:function(t,e){return function(){throw new Error(\"Dynamic requires are not currently supported by @rollup/plugin-commonjs\")}(null==e&&c.path)}},c.exports),c.exports),d=function(t){return function(e,i){if(!e)return t;var n;\"string\"==typeof e?n=e:i=e;var s=t;return n&&(s+=\"__\"+n),s+(i?Object.keys(i).reduce((function(t,e){var n=i[e];return n&&(t+=\" \"+(\"boolean\"==typeof n?s+\"--\"+e:s+\"--\"+e+\"_\"+n)),t}),\"\"):\"\")}};function u(t,e,i){var n,s,o,r,a;function h(){var c=Date.now()-r;c<e&&c>=0?n=setTimeout(h,e-c):(n=null,i||(a=t.apply(o,s),o=s=null))}null==e&&(e=100);var c=function(){o=this,s=arguments,r=Date.now();var c=i&&!n;return n||(n=setTimeout(h,e)),c&&(a=t.apply(o,s),o=s=null),a};return c.clear=function(){n&&(clearTimeout(n),n=null)},c.flush=function(){n&&(a=t.apply(o,s),o=s=null,clearTimeout(n),n=null)},c}u.debounce=u;var m=u,f=function(){return f=Object.assign||function(t){for(var e,i=1,n=arguments.length;i<n;i++)for(var s in e=arguments[i])Object.prototype.hasOwnProperty.call(e,s)&&(t[s]=e[s]);return t},f.apply(this,arguments)};\n/*! *****************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */function p(t,e){var i,n;return t&&e?(i=\"\"+t+e[0].toUpperCase()+e.slice(1),n=t+\"-\"+e):(i=t||e,n=t||e),{name:i,classname:n}}function g(t){return/^blob:/.test(t)}function v(t){return g(t)||function(t){return/^data:/.test(t)}(t)}function b(t){return!!(t&&t.constructor&&t.call&&t.apply)}function w(t){return void 0===t}function y(t){return\"object\"==typeof t&&null!==t}function z(t,e,i){var n={};return y(t)?(Object.keys(e).forEach((function(s){w(t[s])?n[s]=e[s]:y(e[s])?y(t[s])?n[s]=z(t[s],e[s],i[s]):n[s]=t[s]?e[s]:i[s]:!0===e[s]||!1===e[s]?n[s]=Boolean(t[s]):n[s]=t[s]})),n):t?e:i}function R(t){var e=Number(t);return Number.isNaN(e)?t:e}function A(t){return typeof(\"number\"==t||function(t){return\"object\"==typeof t&&null!==t}(t)&&\"[object Number]\"==toString.call(t))&&!S(t)}function S(t){return t!=t}function x(t,e){return Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2))}var M=function(t,e){void 0===t&&(t={}),void 0===e&&(e={}),this.type=\"manipulateImage\",this.move=t,this.scale=e},C=function(t,e){void 0===e&&(e={}),this.type=\"resize\",this.directions=t,this.params=e},E=function(t){this.type=\"move\",this.directions=t},W=function(){function t(t,e,i,n,s){this.type=\"drag\",this.nativeEvent=t,this.position=i,this.previousPosition=n,this.element=e,this.anchor=s}return t.prototype.shift=function(){var t=this,e=t.element,i=t.anchor,n=t.position,s=e.getBoundingClientRect(),o=s.left,r=s.top;return{left:n.left-o-i.left,top:n.top-r-i.top}},t}();function T(t,e,i,n,s,o,r,a,h,c){\"boolean\"!=typeof r&&(h=a,a=r,r=!1);const l=\"function\"==typeof i?i.options:i;let d;if(t&&t.render&&(l.render=t.render,l.staticRenderFns=t.staticRenderFns,l._compiled=!0,s&&(l.functional=!0)),n&&(l._scopeId=n),o?(d=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),e&&e.call(this,h(t)),t&&t._registeredComponents&&t._registeredComponents.add(o)},l._ssrRegister=d):e&&(d=r?function(t){e.call(this,c(t,this.$root.$options.shadowRoot))}:function(t){e.call(this,a(t))}),d)if(l.functional){const t=l.render;l.render=function(e,i){return d.call(i),t(e,i)}}else{const t=l.beforeCreate;l.beforeCreate=t?[].concat(t,d):[d]}return i}var O=T({render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{ref:\"draggable\",class:t.classname,on:{touchstart:t.onTouchStart,mousedown:t.onMouseDown,mouseover:t.onMouseOver,mouseleave:t.onMouseLeave}},[t._t(\"default\")],2)},staticRenderFns:[]},undefined,{name:\"DraggableElement\",mixins:[{beforeMount:function(){window.addEventListener(\"mouseup\",this.onMouseUp,{passive:!1}),window.addEventListener(\"mousemove\",this.onMouseMove,{passive:!1}),window.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),window.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1})},beforeDestroy:function(){window.removeEventListener(\"mouseup\",this.onMouseUp),window.removeEventListener(\"mousemove\",this.onMouseMove),window.removeEventListener(\"touchmove\",this.onTouchMove),window.removeEventListener(\"touchend\",this.onTouchEnd)},mounted:function(){if(!this.$refs.draggable)throw new Error('You should add ref \"draggable\" to your root element to use draggable mixin');this.touches=[],this.hovered=!1},methods:{onMouseOver:function(){this.hovered||(this.hovered=!0,this.$emit(\"enter\"))},onMouseLeave:function(){this.hovered&&!this.touches.length&&(this.hovered=!1,this.$emit(\"leave\"))},onTouchStart:function(t){t.cancelable&&!this.disabled&&1===t.touches.length&&(this.touches=o(t.touches),this.hovered||(this.$emit(\"enter\"),this.hovered=!0),t.touches.length&&this.initAnchor(this.touches.reduce((function(e,i){return{clientX:e.clientX+i.clientX/t.touches.length,clientY:e.clientY+i.clientY/t.touches.length}}),{clientX:0,clientY:0})),t.preventDefault&&t.preventDefault(),t.stopPropagation())},onTouchEnd:function(){this.processEnd()},onTouchMove:function(t){this.touches.length&&(this.processMove(t,t.touches),t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation())},onMouseDown:function(t){if(!this.disabled&&0===t.button){var e={fake:!0,clientX:t.clientX,clientY:t.clientY};this.touches=[e],this.initAnchor(e),t.stopPropagation()}},onMouseMove:function(t){this.touches.length&&(this.processMove(t,[{fake:!0,clientX:t.clientX,clientY:t.clientY}]),t.preventDefault&&t.preventDefault())},onMouseUp:function(){this.processEnd()},initAnchor:function(t){var e=this.$refs.draggable.getBoundingClientRect(),i=e.left,n=e.right,s=e.bottom,o=e.top;this.anchor={left:t.clientX-i,top:t.clientY-o,bottom:s-t.clientY,right:n-t.clientX}},processMove:function(t,e){var i=o(e);if(this.touches.length){if(1===this.touches.length&&1===i.length){var n=this.$refs.draggable;this.$emit(\"drag\",new W(t,n,{left:i[0].clientX,top:i[0].clientY},{left:this.touches[0].clientX,top:this.touches[0].clientY},this.anchor))}this.touches=i}},processEnd:function(){this.touches.length&&this.$emit(\"drag-end\"),this.hovered&&(this.$emit(\"leave\"),this.hovered=!1),this.touches=[]}}}],props:{classname:{type:String}}},undefined,false,undefined,!1,void 0,void 0,void 0),$=d(\"vue-handler-wrapper\"),H=T({render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{class:t.classes.root},[i(\"DraggableElement\",{class:t.classes.draggable,on:{drag:function(e){return t.$emit(\"drag\",e)},\"drag-end\":function(e){return t.$emit(\"drag-end\")},leave:function(e){return t.$emit(\"leave\")},enter:function(e){return t.$emit(\"enter\")}}},[t._t(\"default\")],2)],1)},staticRenderFns:[]},undefined,{name:\"HandlerWrapper\",components:{DraggableElement:O},props:{horizontalPosition:{type:String},verticalPosition:{type:String},disabled:{type:Boolean,default:!1}},computed:{classes:function(){var t;if(this.horizontalPosition||this.verticalPosition){var e,i=p(this.horizontalPosition,this.verticalPosition);t=$((n(e={},i.classname,!0),n(e,\"disabled\",this.disabled),e))}else t=$({disabled:this.disabled});return{root:t,draggable:$(\"draggable\")}}}},undefined,false,undefined,!1,void 0,void 0,void 0),j=d(\"vue-line-wrapper\"),P=T({render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"DraggableElement\",{class:t.classname,on:{drag:function(e){return t.$emit(\"drag\",e)},\"drag-end\":function(e){return t.$emit(\"drag-end\")},leave:function(e){return t.$emit(\"leave\")},enter:function(e){return t.$emit(\"enter\")}}},[t._t(\"default\")],2)},staticRenderFns:[]},undefined,{name:\"LineWrapper\",components:{DraggableElement:O},props:{position:{type:String,required:!0},disabled:{type:Boolean,default:!1}},computed:{classname:function(){var t;return j((n(t={},this.position,!0),n(t,\"disabled\",this.disabled),t))}}},undefined,false,undefined,!1,void 0,void 0,void 0),D=[\"left\",\"right\",\"top\",\"bottom\"],L=[\"left\",\"right\"],I=[\"top\",\"bottom\"],B=[\"left\",\"top\"],_=[\"fill-area\",\"fit-area\",\"stencil\",\"none\"],F={left:0,top:0,width:0,height:0};function X(t,e,i){return!(i=i||[\"width\",\"height\",\"left\",\"top\"]).some((function(i){return t[i]!==e[i]}))}function Y(t){return{left:t.left,top:t.top,right:t.left+t.width,bottom:t.top+t.height}}function k(t,e){return{left:t.left-e.left,top:t.top-e.top}}function U(t){return{left:t.left+t.width/2,top:t.top+t.height/2}}function N(t,e){var i={left:0,top:0,right:0,bottom:0};return D.forEach((function(n){var s=e[n],o=Y(t)[n];i[n]=void 0!==s&&void 0!==o?\"left\"===n||\"top\"===n?Math.max(0,s-o):Math.max(0,o-s):0})),i}function V(t,e){return{left:t.left-e.left,top:t.top-e.top,width:t.width+e.left+e.right,height:t.height+e.top+e.bottom}}function Z(t){return{left:-t.left,top:-t.top}}function q(t,e){return f(f({},t),{left:t.left+e.left,top:t.top+e.top})}function G(t,e,i,n){if(1!==e){if(i){var s=U(t);return{width:t.width*e,height:t.height*e,left:t.left+t.width*(1-e)/2+(i.left-s.left)*(n||1-e),top:t.top+t.height*(1-e)/2+(i.top-s.top)*(n||1-e)}}return{width:t.width*e,height:t.height*e,left:t.left+t.width*(1-e)/2,top:t.top+t.height*(1-e)/2}}return t}function Q(t){return t.width/t.height}function K(t,e){return Math.min(void 0!==e.right&&void 0!==e.left?(e.right-e.left)/t.width:1/0,void 0!==e.bottom&&void 0!==e.top?(e.bottom-e.top)/t.height:1/0)}function J(t,e){var i={left:0,top:0},n=N(t,e);return n.left&&n.left>0?i.left=n.left:n.right&&n.right>0&&(i.left=-n.right),n.top&&n.top>0?i.top=n.top:n.bottom&&n.bottom>0&&(i.top=-n.bottom),i}function tt(t,e){var i;return e.minimum&&t<e.minimum?i=e.minimum:e.maximum&&t>e.maximum&&(i=e.maximum),i}function et(t,e){var i=Q(t),n=Q(e);return e.width<1/0&&e.height<1/0?i>n?{width:e.width,height:e.width/i}:{width:e.height*i,height:e.height}:e.width<1/0?{width:e.width,height:e.width/i}:e.height<1/0?{width:e.height*i,height:e.height}:t}function it(t,e){var i=e*Math.PI/180;return{width:Math.abs(t.width*Math.cos(i))+Math.abs(t.height*Math.sin(i)),height:Math.abs(t.width*Math.sin(i))+Math.abs(t.height*Math.cos(i))}}function nt(t,e){var i=e*Math.PI/180;return{left:t.left*Math.cos(i)-t.top*Math.sin(i),top:t.left*Math.sin(i)+t.top*Math.cos(i)}}function st(t,e){var i=N(ot(t,e),e);return i.left+i.right+i.top+i.bottom?i.left+i.right>i.top+i.bottom?Math.min((t.width+i.left+i.right)/t.width,K(t,e)):Math.min((t.height+i.top+i.bottom)/t.height,K(t,e)):1}function ot(t,e,i){void 0===i&&(i=!1);var n=J(t,e);return q(t,i?Z(n):n)}function rt(t){return{width:void 0!==t.right&&void 0!==t.left?t.right-t.left:1/0,height:void 0!==t.bottom&&void 0!==t.top?t.bottom-t.top:1/0}}function at(t,e){return f(f({},t),{minWidth:Math.min(e.width,t.minWidth),minHeight:Math.min(e.height,t.minHeight),maxWidth:Math.min(e.width,t.maxWidth),maxHeight:Math.min(e.height,t.maxHeight)})}function ht(t,e,i){void 0===i&&(i=!0);var n={};return D.forEach((function(s){var o=t[s],r=e[s];void 0!==o&&void 0!==r?n[s]=\"left\"===s||\"top\"===s?i?Math.max(o,r):Math.min(o,r):i?Math.min(o,r):Math.max(o,r):void 0!==r?n[s]=r:void 0!==o&&(n[s]=o)})),n}function ct(t,e){return ht(t,e,!0)}function lt(t){var e=t.size,i=t.aspectRatio,n=t.ignoreMinimum,s=t.sizeRestrictions;return Boolean((e.correctRatio||Q(e)>=i.minimum&&Q(e)<=i.maximum)&&e.height<=s.maxHeight&&e.width<=s.maxWidth&&e.width&&e.height&&(n||e.height>=s.minHeight&&e.width>=s.minWidth))}function dt(t,e){return Math.pow(t.width-e.width,2)+Math.pow(t.height-e.height,2)}function ut(t){var e=t.width,i=t.height,n=t.sizeRestrictions,s={minimum:t.aspectRatio&&t.aspectRatio.minimum||0,maximum:t.aspectRatio&&t.aspectRatio.maximum||1/0},o={width:Math.max(n.minWidth,Math.min(n.maxWidth,e)),height:Math.max(n.minHeight,Math.min(n.maxHeight,i))};function r(t,o){return void 0===o&&(o=!1),t.reduce((function(t,r){return lt({size:r,aspectRatio:s,sizeRestrictions:n,ignoreMinimum:o})&&(!t||dt(r,{width:e,height:i})<dt(t,{width:e,height:i}))?r:t}),null)}var a=[];s&&[s.minimum,s.maximum].forEach((function(t){t&&a.push({width:o.width,height:o.width/t,correctRatio:!0},{width:o.height*t,height:o.height,correctRatio:!0})})),lt({size:o,aspectRatio:s,sizeRestrictions:n})&&a.push(o);var h=r(a)||r(a,!0);return h&&{width:h.width,height:h.height}}function mt(t){var e=t.event,i=t.coordinates,n=t.positionRestrictions,s=void 0===n?{}:n,o=q(i,e.directions);return q(o,J(o,s))}function ft(t){var e=t.coordinates,i=t.transform,n=t.imageSize,s=t.sizeRestrictions,o=t.positionRestrictions,r=t.aspectRatio,a=t.visibleArea,h=function(t,e){return mt({coordinates:t,positionRestrictions:o,event:new E({left:e.left-t.left,top:e.top-t.top})})},c=f({},e);return(Array.isArray(i)?i:[i]).forEach((function(t){var e={};w((e=\"function\"==typeof t?t({coordinates:c,imageSize:n,visibleArea:a}):t).width)&&w(e.height)||(c=function(t,e){var i=f(f(f({},t),ut({width:e.width,height:e.height,sizeRestrictions:s,aspectRatio:r})),{left:0,top:0});return h(i,{left:t.left,top:t.top})}(c,f(f({},c),e))),w(e.left)&&w(e.top)||(c=h(c,f(f({},c),e)))})),c}function pt(t){t.event;var e=t.getAreaRestrictions,i=t.boundaries,n=t.coordinates,s=t.visibleArea;t.aspectRatio;var o=t.stencilSize,r=t.sizeRestrictions,a=t.positionRestrictions;t.stencilReference;var h,c,l,d=f({},n),u=f({},s),m=f({},o);h=Q(m),c=Q(d),void 0===l&&(l=.001),(0===h||0===c?Math.abs(c-h)<l:Math.abs(c/h)<1+l&&Math.abs(c/h)>1-l)||(d=f(f({},d),ut({sizeRestrictions:r,width:d.width,height:d.height,aspectRatio:{minimum:Q(m),maximum:Q(m)}})));var p=st(u=G(u,d.width*i.width/(u.width*m.width)),e({visibleArea:u,type:\"resize\"}));return 1!==p&&(u=G(u,p),d=G(d,p)),u=ot(u=q(u,k(U(d),U(u))),e({visibleArea:u,type:\"move\"})),{coordinates:d=ot(d,ct(Y(u),a)),visibleArea:u}}function gt(t){var e=t.event,i=t.getAreaRestrictions,n=t.boundaries,s=t.coordinates,o=t.visibleArea;t.aspectRatio,t.stencilSize,t.sizeRestrictions;var r=t.positionRestrictions;t.stencilReference;var a=f({},s),h=f({},o);if(s&&o&&\"manipulateImage\"!==e.type){var c={width:0,height:0};h.width,n.width,Q(n)>Q(a)?(c.height=.8*n.height,c.width=c.height*Q(a)):(c.width=.8*n.width,c.height=c.width*Q(a));var l=st(h=G(h,a.width*n.width/(h.width*c.width)),i({visibleArea:h,type:\"resize\"}));h=G(h,l),1!==l&&(c.height/=l,c.width/=l),h=ot(h=q(h,k(U(a),U(h))),i({visibleArea:h,type:\"move\"})),a=ot(a,ct(Y(h),r))}return{coordinates:a,visibleArea:h}}function vt(t){var e=t.event,i=t.coordinates,n=t.visibleArea,s=t.getAreaRestrictions,o=f({},n),r=f({},i);if(\"setCoordinates\"===e.type){var a=Math.max(0,r.width-o.width),h=Math.max(0,r.height-o.height);a>h?o=G(o,Math.min(r.width/o.width,K(o,s({visibleArea:o,type:\"resize\"})))):h>a&&(o=G(o,Math.min(r.height/o.height,K(o,s({visibleArea:o,type:\"resize\"}))))),o=ot(o=q(o,Z(J(r,Y(o)))),s({visibleArea:o,type:\"move\"}))}return{visibleArea:o,coordinates:r}}function bt(t){var e=t.imageSize,i=t.visibleArea,n=t.aspectRatio,s=t.sizeRestrictions,o=i||e,r=Math.min(n.maximum||1/0,Math.max(n.minimum||0,Q(o))),a=o.width<o.height?{width:.8*o.width,height:.8*o.width/r}:{height:.8*o.height,width:.8*o.height*r};return ut(f(f({},a),{aspectRatio:n,sizeRestrictions:s}))}function wt(t){var e,i,n=t.imageSize,s=t.visibleArea,o=t.boundaries,r=t.aspectRatio,a=t.sizeRestrictions,h=t.stencilSize,c=s||n;return Q(c)>Q(o)?i=(e=h.height*c.height/o.height)*Q(h):e=(i=h.width*c.width/o.width)/Q(h),ut({width:i,height:e,aspectRatio:r,sizeRestrictions:a})}function yt(t,e){return ht(t,Y(e))}function zt(t){var e=t.event,i=t.coordinates,n=t.visibleArea,s=t.sizeRestrictions,o=t.getAreaRestrictions,r=t.positionRestrictions,a=t.adjustStencil,h=e.scale,c=e.move,l=f({},n),d=f({},i),u=1,m=1,p=h.factor&&Math.abs(h.factor-1)>.001;l=q(l,{left:c.left||0,top:c.top||0});var g={stencil:{minimum:Math.max(s.minWidth?s.minWidth/d.width:0,s.minHeight?s.minHeight/d.height:0),maximum:Math.min(s.maxWidth?s.maxWidth/d.width:1/0,s.maxHeight?s.maxHeight/d.height:1/0,K(d,r))},area:{maximum:K(l,o({visibleArea:l,type:\"resize\"}))}};h.factor&&p&&(h.factor<1?(m=Math.max(h.factor,g.stencil.minimum))>1&&(m=1):h.factor>1&&(m=Math.min(h.factor,Math.min(g.area.maximum,g.stencil.maximum)))<1&&(m=1)),m&&(l=G(l,m,h.center));var v=i.left-n.left,b=n.width+n.left-(i.width+i.left),w=i.top-n.top,y=n.height+n.top-(i.height+i.top);return l=ot(l=q(l,J(l,{left:void 0!==r.left?r.left-v*m:void 0,top:void 0!==r.top?r.top-w*m:void 0,bottom:void 0!==r.bottom?r.bottom+y*m:void 0,right:void 0!==r.right?r.right+b*m:void 0})),o({visibleArea:l,type:\"move\"})),d.width=d.width*m,d.height=d.height*m,d.left=l.left+v*m,d.top=l.top+w*m,d=ot(d,ct(Y(l),r)),h.factor&&p&&a&&(h.factor>1?u=Math.min(g.area.maximum,h.factor)/m:h.factor<1&&(u=Math.max(d.height/l.height,d.width/l.width,h.factor/m)),1!==u&&(l=q(l=ot(l=G(l,u,h.factor>1?h.center:U(d)),o({visibleArea:l,type:\"move\"})),Z(J(d,Y(l)))))),{coordinates:d,visibleArea:l}}function Rt(t){var e=t.aspectRatio,i=t.getAreaRestrictions,n=t.coordinates,s=t.visibleArea,o=t.sizeRestrictions,r=t.positionRestrictions,a=t.imageSize,h=t.previousImageSize,c=t.angle,l=f({},n),d=f({},s),u=nt(U(f({left:0,top:0},h)),c);return(l=f(f({},ut({sizeRestrictions:o,aspectRatio:e,width:l.width,height:l.height})),nt(U(l),c))).left-=u.left-a.width/2+l.width/2,l.top-=u.top-a.height/2+l.height/2,d=G(d,st(d,i({visibleArea:d,type:\"resize\"}))),{coordinates:l=ot(l,r),visibleArea:d=ot(d=q(d,k(U(l),U(n))),i({visibleArea:d,type:\"move\"}))}}function At(t){var e=t.flip,i=t.previousFlip,n=t.rotate;t.aspectRatio;var s=t.getAreaRestrictions,o=t.coordinates,r=t.visibleArea,a=t.imageSize,h=f({},o),c=f({},r),l=i.horizontal!==e.horizontal,d=i.vertical!==e.vertical;if(l||d){var u=nt({left:a.width/2,top:a.height/2},-n),m=nt(U(h),-n),p=nt({left:l?u.left-(m.left-u.left):m.left,top:d?u.top-(m.top-u.top):m.top},n);h=q(h,k(p,U(h))),m=nt(U(c),-n),c=ot(c=q(c,k(p=nt({left:l?u.left-(m.left-u.left):m.left,top:d?u.top-(m.top-u.top):m.top},n),U(c))),s({visibleArea:c,type:\"move\"}))}return{coordinates:h,visibleArea:c}}function St(t){var e=t.directions,i=t.coordinates,n=t.positionRestrictions,s=void 0===n?{}:n,o=t.sizeRestrictions,r=t.preserveRatio,a=t.compensate,h=f({},e),c=V(i,h).width,l=V(i,h).height;c<0&&(h.left<0&&h.right<0?(h.left=-(i.width-o.minWidth)/(h.left/h.right),h.right=-(i.width-o.minWidth)/(h.right/h.left)):h.left<0?h.left=-(i.width-o.minWidth):h.right<0&&(h.right=-(i.width-o.minWidth))),l<0&&(h.top<0&&h.bottom<0?(h.top=-(i.height-o.minHeight)/(h.top/h.bottom),h.bottom=-(i.height-o.minHeight)/(h.bottom/h.top)):h.top<0?h.top=-(i.height-o.minHeight):h.bottom<0&&(h.bottom=-(i.height-o.minHeight)));var d=N(V(i,h),s);a&&(d.left&&d.left>0&&0===d.right?(h.right+=d.left,h.left-=d.left):d.right&&d.right>0&&0===d.left&&(h.left+=d.right,h.right-=d.right),d.top&&d.top>0&&0===d.bottom?(h.bottom+=d.top,h.top-=d.top):d.bottom&&d.bottom>0&&0===d.top&&(h.top+=d.bottom,h.bottom-=d.bottom),d=N(V(i,h),s));var u={width:1/0,height:1/0,left:1/0,right:1/0,top:1/0,bottom:1/0};if(D.forEach((function(t){var e=d[t];e&&h[t]&&(u[t]=Math.max(0,1-e/h[t]))})),r){var m=Math.min.apply(null,D.map((function(t){return u[t]})));m!==1/0&&D.forEach((function(t){h[t]*=m}))}else D.forEach((function(t){u[t]!==1/0&&(h[t]*=u[t])}));if(c=V(i,h).width,l=V(i,h).height,h.right+h.left&&(c>o.maxWidth?u.width=(o.maxWidth-i.width)/(h.right+h.left):c<o.minWidth&&(u.width=(o.minWidth-i.width)/(h.right+h.left))),h.bottom+h.top&&(l>o.maxHeight?u.height=(o.maxHeight-i.height)/(h.bottom+h.top):l<o.minHeight&&(u.height=(o.minHeight-i.height)/(h.bottom+h.top))),r){var p=Math.min(u.width,u.height);p!==1/0&&D.forEach((function(t){h[t]*=p}))}else u.width!==1/0&&L.forEach((function(t){h[t]*=u.width})),u.height!==1/0&&I.forEach((function(t){h[t]*=u.height}));return h}function xt(t,e,i){return 0==e&&0==i?t/2:0==e?0:0==i?t:t*Math.abs(e/(e+i))}var Mt=d(\"vue-simple-handler\"),Ct=d(\"vue-simple-handler-wrapper\"),Et=T({render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"HandlerWrapper\",{class:t.classes.wrapper,attrs:{\"vertical-position\":t.verticalPosition,\"horizontal-position\":t.horizontalPosition,disabled:t.disabled},on:{drag:t.onDrag,\"drag-end\":t.onDragEnd,enter:t.onEnter,leave:t.onLeave}},[i(\"div\",{class:t.classes.default})])},staticRenderFns:[]},undefined,{name:\"SimpleHandler\",components:{HandlerWrapper:H},props:{defaultClass:{type:String},hoverClass:{type:String},wrapperClass:{type:String},horizontalPosition:{type:String},verticalPosition:{type:String},disabled:{type:Boolean,default:!1}},data:function(){return{hover:!1}},computed:{classes:function(){var t,e=(n(t={},this.horizontalPosition,Boolean(this.horizontalPosition)),n(t,this.verticalPosition,Boolean(this.verticalPosition)),n(t,\"\".concat(this.horizontalPosition,\"-\").concat(this.verticalPosition),Boolean(this.verticalPosition&&this.horizontalPosition)),n(t,\"hover\",this.hover),t);return{default:l(Mt(e),this.defaultClass,this.hover&&this.hoverClass),wrapper:l(Ct(e),this.wrapperClass)}}},methods:{onDrag:function(t){this.$emit(\"drag\",t)},onEnter:function(){this.hover=!0},onLeave:function(){this.hover=!1},onDragEnd:function(){this.$emit(\"drag-end\")}}},undefined,false,undefined,!1,void 0,void 0,void 0),Wt=d(\"vue-simple-line\"),Tt=d(\"vue-simple-line-wrapper\"),Ot=T({render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"LineWrapper\",{class:t.classes.wrapper,attrs:{position:t.position,disabled:t.disabled},on:{drag:t.onDrag,\"drag-end\":t.onDragEnd,enter:t.onEnter,leave:t.onLeave}},[i(\"div\",{class:t.classes.root})])},staticRenderFns:[]},undefined,{name:\"SimpleLine\",components:{LineWrapper:P},props:{defaultClass:{type:String},hoverClass:{type:String},wrapperClass:{type:String},position:{type:String},disabled:{type:Boolean,default:!1}},data:function(){return{hover:!1}},computed:{classes:function(){return{root:l(Wt(n({},this.position,!0)),this.defaultClass,this.hover&&this.hoverClass),wrapper:l(Tt(n({},this.position,!0)),this.wrapperClass)}}},methods:{onDrag:function(t){this.$emit(\"drag\",t)},onEnter:function(){this.hover=!0},onLeave:function(){this.hover=!1},onDragEnd:function(){this.$emit(\"drag-end\")}}},undefined,false,undefined,!1,void 0,void 0,void 0),$t=d(\"vue-bounding-box\"),Ht=[\"east\",\"west\",null],jt=[\"south\",\"north\",null],Pt=T({render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{ref:\"box\",class:t.classes.root,style:t.style},[t._t(\"default\"),t._v(\" \"),i(\"div\",t._l(t.lineNodes,(function(e){return i(e.component,{key:e.name,tag:\"component\",attrs:{\"default-class\":e.class,\"hover-class\":e.hoverClass,\"wrapper-class\":e.wrapperClass,position:e.name,disabled:e.disabled},on:{drag:function(i){return t.onHandlerDrag(i,e.horizontalDirection,e.verticalDirection)},\"drag-end\":function(e){return t.onEnd()}}})})),1),t._v(\" \"),t._l(t.handlerNodes,(function(e){return i(\"div\",{key:e.name,class:e.wrapperClass,style:e.wrapperStyle},[i(e.component,{tag:\"component\",attrs:{\"default-class\":e.class,\"hover-class\":e.hoverClass,\"wrapper-class\":e.wrapperClass,\"horizontal-position\":e.horizontalDirection,\"vertical-position\":e.verticalDirection,disabled:e.disabled},on:{drag:function(i){return t.onHandlerDrag(i,e.horizontalDirection,e.verticalDirection)},\"drag-end\":function(e){return t.onEnd()}}})],1)}))],2)},staticRenderFns:[]},undefined,{name:\"BoundingBox\",props:{width:{type:Number},height:{type:Number},transitions:{type:Object},handlers:{type:Object,default:function(){return{eastNorth:!0,north:!0,westNorth:!0,west:!0,westSouth:!0,south:!0,eastSouth:!0,east:!0}}},handlersComponent:{type:[Object,String],default:function(){return Et}},handlersClasses:{type:Object,default:function(){return{}}},handlersWrappersClasses:{type:Object,default:function(){return{}}},lines:{type:Object,default:function(){return{west:!0,north:!0,east:!0,south:!0}}},linesComponent:{type:[Object,String],default:function(){return Ot}},linesClasses:{type:Object,default:function(){return{}}},linesWrappersClasses:{type:Object,default:function(){return{}}},resizable:{type:Boolean,default:!0}},data:function(){var t=[];return Ht.forEach((function(e){jt.forEach((function(i){if(e!==i){var n=p(e,i),s=n.name,o=n.classname;t.push({name:s,classname:o,verticalDirection:i,horizontalDirection:e})}}))})),{points:t}},computed:{style:function(){var t={};return this.width&&this.height&&(t.width=\"\".concat(this.width,\"px\"),t.height=\"\".concat(this.height,\"px\"),this.transitions&&this.transitions.enabled&&(t.transition=\"\".concat(this.transitions.time,\"ms \").concat(this.transitions.timingFunction))),t},classes:function(){var t=this.handlersClasses,e=this.handlersWrappersClasses,i=this.linesClasses,n=this.linesWrappersClasses;return{root:$t(),handlers:t,handlersWrappers:e,lines:i,linesWrappers:n}},lineNodes:function(){var t=this,e=[];return this.points.forEach((function(i){i.horizontalDirection&&i.verticalDirection||!t.lines[i.name]||e.push({name:i.name,component:t.linesComponent,class:l(t.classes.lines.default,t.classes.lines[i.name],!t.resizable&&t.classes.lines.disabled),wrapperClass:l(t.classes.linesWrappers.default,t.classes.linesWrappers[i.name],!t.resizable&&t.classes.linesWrappers.disabled),hoverClass:t.classes.lines.hover,verticalDirection:i.verticalDirection,horizontalDirection:i.horizontalDirection,disabled:!t.resizable})})),e},handlerNodes:function(){var t=this,e=[],i=this.width,s=this.height;return this.points.forEach((function(o){if(t.handlers[o.name]){var r={name:o.name,component:t.handlersComponent,class:l(t.classes.handlers.default,t.classes.handlers[o.name]),wrapperClass:l(t.classes.handlersWrappers.default,t.classes.handlersWrappers[o.name]),hoverClass:t.classes.handlers.hover,verticalDirection:o.verticalDirection,horizontalDirection:o.horizontalDirection,disabled:!t.resizable};if(i&&s){var a=o.horizontalDirection,h=o.verticalDirection,c=\"east\"===a?i:\"west\"===a?0:i/2,d=\"south\"===h?s:\"north\"===h?0:s/2;r.wrapperClass=$t(\"handler\"),r.wrapperStyle={transform:\"translate(\".concat(c,\"px, \").concat(d,\"px)\")},t.transitions&&t.transitions.enabled&&(r.wrapperStyle.transition=\"\".concat(t.transitions.time,\"ms \").concat(t.transitions.timingFunction))}else r.wrapperClass=$t(\"handler\",n({},o.classname,!0));e.push(r)}})),e}},beforeMount:function(){window.addEventListener(\"mouseup\",this.onMouseUp,{passive:!1}),window.addEventListener(\"mousemove\",this.onMouseMove,{passive:!1}),window.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),window.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1})},beforeDestroy:function(){window.removeEventListener(\"mouseup\",this.onMouseUp),window.removeEventListener(\"mousemove\",this.onMouseMove),window.removeEventListener(\"touchmove\",this.onTouchMove),window.removeEventListener(\"touchend\",this.onTouchEnd)},mounted:function(){this.touches=[]},methods:{onEnd:function(){this.$emit(\"resize-end\")},onHandlerDrag:function(t,e,i){var n,s=t.shift(),o=s.left,r=s.top,a={left:0,right:0,top:0,bottom:0};\"west\"===e?a.left-=o:\"east\"===e&&(a.right+=o),\"north\"===i?a.top-=r:\"south\"===i&&(a.bottom+=r),!i&&e?n=\"width\":i&&!e&&(n=\"height\"),this.resizable&&this.$emit(\"resize\",new C(a,{allowedDirections:{left:\"west\"===e||!e,right:\"east\"===e||!e,bottom:\"south\"===i||!i,top:\"north\"===i||!i},preserveAspectRatio:t.nativeEvent&&t.nativeEvent.shiftKey,respectDirection:n}))}}},undefined,false,undefined,!1,void 0,void 0,void 0),Dt=d(\"vue-draggable-area\"),Lt=T({render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{ref:\"container\",on:{touchstart:t.onTouchStart,mousedown:t.onMouseDown}},[t._t(\"default\")],2)},staticRenderFns:[]},undefined,{name:\"DraggableArea\",props:{movable:{type:Boolean,default:!0},activationDistance:{type:Number,default:20}},computed:{classnames:function(){return{default:Dt()}}},beforeMount:function(){window.addEventListener(\"mouseup\",this.onMouseUp,{passive:!1}),window.addEventListener(\"mousemove\",this.onMouseMove,{passive:!1}),window.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),window.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1})},beforeDestroy:function(){window.removeEventListener(\"mouseup\",this.onMouseUp),window.removeEventListener(\"mousemove\",this.onMouseMove),window.removeEventListener(\"touchmove\",this.onTouchMove),window.removeEventListener(\"touchend\",this.onTouchEnd)},mounted:function(){this.touches=[],this.touchStarted=!1},methods:{onTouchStart:function(t){if(t.cancelable){var e=this.movable&&1===t.touches.length;e&&(this.touches=o(t.touches)),(this.touchStarted||e)&&(t.preventDefault(),t.stopPropagation())}},onTouchEnd:function(){this.touchStarted=!1,this.processEnd()},onTouchMove:function(t){this.touches.length>=1&&(this.touchStarted?(this.processMove(t,t.touches),t.preventDefault(),t.stopPropagation()):x({x:this.touches[0].clientX,y:this.touches[0].clientY},{x:t.touches[0].clientX,y:t.touches[0].clientY})>this.activationDistance&&(this.initAnchor({clientX:t.touches[0].clientX,clientY:t.touches[0].clientY}),this.touchStarted=!0))},onMouseDown:function(t){if(this.movable&&0===t.button){var e={fake:!0,clientX:t.clientX,clientY:t.clientY};this.touches=[e],this.initAnchor(e),t.stopPropagation()}},onMouseMove:function(t){this.touches.length&&(this.processMove(t,[{fake:!0,clientX:t.clientX,clientY:t.clientY}]),t.preventDefault&&t.cancelable&&t.preventDefault(),t.stopPropagation())},onMouseUp:function(){this.processEnd()},initAnchor:function(t){var e=this.$refs.container.getBoundingClientRect(),i=e.left,n=e.top;this.anchor={x:t.clientX-i,y:t.clientY-n}},processMove:function(t,e){var i=o(e);if(this.touches.length){var n=this.$refs.container.getBoundingClientRect(),s=n.left,r=n.top;1===this.touches.length&&1===i.length&&this.$emit(\"move\",new E({left:i[0].clientX-(s+this.anchor.x),top:i[0].clientY-(r+this.anchor.y)}))}},processEnd:function(){this.touches.length&&this.$emit(\"move-end\"),this.touches=[]}}},undefined,false,undefined,!1,void 0,void 0,void 0);function It(t){var e,i;return{rotate:t.rotate||0,flip:{horizontal:(null===(e=null==t?void 0:t.flip)||void 0===e?void 0:e.horizontal)||!1,vertical:(null===(i=null==t?void 0:t.flip)||void 0===i?void 0:i.vertical)||!1}}}function Bt(t){return new Promise((function(e,i){try{if(t)if(/^data:/i.test(t))e(function(t){t=t.replace(/^data:([^;]+);base64,/gim,\"\");for(var e=atob(t),i=e.length,n=new ArrayBuffer(i),s=new Uint8Array(n),o=0;o<i;o++)s[o]=e.charCodeAt(o);return n}(t));else if(/^blob:/i.test(t)){var n=new FileReader;n.onload=function(t){e(t.target.result)},o=t,r=function(t){n.readAsArrayBuffer(t)},(a=new XMLHttpRequest).open(\"GET\",o,!0),a.responseType=\"blob\",a.onload=function(){200!=this.status&&0!==this.status||r(this.response)},a.send()}else{var s=new XMLHttpRequest;s.onreadystatechange=function(){4===s.readyState&&(200===s.status||0===s.status?e(s.response):i(\"Warning: could not load an image to parse its orientation\"),s=null)},s.onprogress=function(){\"image/jpeg\"!==s.getResponseHeader(\"content-type\")&&s.abort()},s.withCredentials=!1,s.open(\"GET\",t,!0),s.responseType=\"arraybuffer\",s.send(null)}else i(\"Error: the image is empty\")}catch(t){i(t)}var o,r,a}))}function _t(t){var e=t.rotate,i=t.flip,n=t.scaleX,s=t.scaleY,o=\"\";return o+=\" rotate(\"+e+\"deg) \",o+=\" scaleX(\"+n*(i.horizontal?-1:1)+\") \",o+=\" scaleY(\"+s*(i.vertical?-1:1)+\") \"}function Ft(t){try{var e,i=new DataView(t),n=void 0,s=void 0,o=void 0,r=void 0;if(255===i.getUint8(0)&&216===i.getUint8(1))for(var a=i.byteLength,h=2;h+1<a;){if(255===i.getUint8(h)&&225===i.getUint8(h+1)){o=h;break}h++}if(o&&(n=o+10,\"Exif\"===function(t,e,i){var n,s=\"\";for(n=e,i+=e;n<i;n++)s+=String.fromCharCode(t.getUint8(n));return s}(i,o+4,4))){var c=i.getUint16(n);if(((s=18761===c)||19789===c)&&42===i.getUint16(n+2,s)){var l=i.getUint32(n+4,s);l>=8&&(r=n+l)}}if(r)for(var d=i.getUint16(r,s),u=0;u<d;u++){h=r+12*u+2;if(274===i.getUint16(h,s)){h+=8,e=i.getUint16(h,s),i.setUint16(h,1,s);break}}return e}catch(t){return null}}var Xt=d(\"vue-preview-result\"),Yt=T({render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{class:t.classes.root},[i(\"div\",{ref:\"wrapper\",class:t.classes.wrapper,style:t.wrapperStyle},[i(\"img\",{ref:\"image\",class:t.classes.image,style:t.imageStyle,attrs:{src:t.image.src}})])])},staticRenderFns:[]},undefined,{name:\"PreviewResult\",props:{image:{type:Object},transitions:{type:Object},stencilCoordinates:{type:Object,default:function(){return{width:0,height:0,left:0,top:0}}},imageClass:{type:String}},computed:{classes:function(){return{root:Xt(),wrapper:Xt(\"wrapper\"),imageWrapper:Xt(\"image-wrapper\"),image:l(Xt(\"image\"),this.imageClass)}},wrapperStyle:function(){var t={width:\"\".concat(this.stencilCoordinates.width,\"px\"),height:\"\".concat(this.stencilCoordinates.height,\"px\"),left:\"calc(50% - \".concat(this.stencilCoordinates.width/2,\"px)\"),top:\"calc(50% - \".concat(this.stencilCoordinates.height/2,\"px)\")};return this.transitions&&this.transitions.enabled&&(t.transition=\"\".concat(this.transitions.time,\"ms \").concat(this.transitions.timingFunction)),t},imageStyle:function(){var t=this.image.transforms,e=it({width:this.image.width,height:this.image.height},t.rotate),i={width:\"\".concat(this.image.width,\"px\"),height:\"\".concat(this.image.height,\"px\"),left:\"0px\",top:\"0px\"},n={left:(this.image.width-e.width)*t.scaleX/2,top:(this.image.height-e.height)*t.scaleY/2},s={left:(1-t.scaleX)*this.image.width/2,top:(1-t.scaleY)*this.image.height/2};return i.transform=\"translate(\\n\\t\\t\\t\\t\".concat(-this.stencilCoordinates.left-t.translateX-n.left-s.left,\"px,\").concat(-this.stencilCoordinates.top-t.translateY-n.top-s.top,\"px) \")+_t(t),this.transitions&&this.transitions.enabled&&(i.transition=\"\".concat(this.transitions.time,\"ms \").concat(this.transitions.timingFunction)),i}}},undefined,false,undefined,!1,void 0,void 0,void 0);function kt(t,e){var i=e.getBoundingClientRect(),n=i.left,s=i.top,o={left:0,top:0},r=0;return t.forEach((function(e){o.left+=(e.clientX-n)/t.length,o.top+=(e.clientY-s)/t.length})),t.forEach((function(t){r+=x({x:o.left,y:o.top},{x:t.clientX-n,y:t.clientY-s})})),{centerMass:o,spread:r,count:t.length}}var Ut=T({render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"div\",{ref:\"container\",on:{touchstart:t.onTouchStart,mousedown:t.onMouseDown,wheel:t.onWheel}},[t._t(\"default\")],2)},staticRenderFns:[]},undefined,{props:{touchMove:{type:Boolean,required:!0},mouseMove:{type:Boolean,required:!0},touchResize:{type:Boolean,required:!0},wheelResize:{type:[Boolean,Object],required:!0},eventsFilter:{type:Function,required:!1}},beforeMount:function(){window.addEventListener(\"mouseup\",this.onMouseUp,{passive:!1}),window.addEventListener(\"mousemove\",this.onMouseMove,{passive:!1}),window.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),window.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1})},beforeDestroy:function(){window.removeEventListener(\"mouseup\",this.onMouseUp),window.removeEventListener(\"mousemove\",this.onMouseMove),window.removeEventListener(\"touchmove\",this.onTouchMove),window.removeEventListener(\"touchend\",this.onTouchEnd)},created:function(){this.transforming=!1,this.debouncedProcessEnd=m(this.processEnd),this.touches=[]},methods:{processMove:function(t,e){if(this.touches.length){if(1===this.touches.length&&1===e.length)this.$emit(\"move\",new M({left:this.touches[0].clientX-e[0].clientX,top:this.touches[0].clientY-e[0].clientY}));else if(this.touches.length>1&&this.touchResize){var i=kt(e,this.$refs.container),n=this.oldGeometricProperties;n.count===i.count&&n.count>1&&this.$emit(\"resize\",new M({left:n.centerMass.left-i.centerMass.left,top:n.centerMass.top-i.centerMass.top},{factor:n.spread/i.spread,center:i.centerMass})),this.oldGeometricProperties=i}this.touches=e}},processEnd:function(){this.transforming&&(this.transforming=!1,this.$emit(\"transform-end\"))},processStart:function(){this.transforming=!0,this.debouncedProcessEnd.clear()},processEvent:function(t){return this.eventsFilter?!1!==this.eventsFilter(t,this.transforming):(t.preventDefault(),t.stopPropagation(),!0)},onTouchStart:function(t){if(t.cancelable&&(this.touchMove||this.touchResize&&t.touches.length>1)&&this.processEvent(t)){var e=this.$refs.container,i=e.getBoundingClientRect(),n=i.left,s=i.top,r=i.bottom,a=i.right;this.touches=o(t.touches).filter((function(t){return t.clientX>n&&t.clientX<a&&t.clientY>s&&t.clientY<r})),this.oldGeometricProperties=kt(this.touches,e)}},onTouchEnd:function(t){0===t.touches.length&&(this.touches=[],this.processEnd())},onTouchMove:function(t){var e=this;if(this.touches.length){var i=o(t.touches).filter((function(t){return!t.identifier||e.touches.find((function(e){return e.identifier===t.identifier}))}));this.processEvent(t)&&(this.processMove(t,i),this.processStart())}},onMouseDown:function(t){if(this.mouseMove&&\"buttons\"in t&&1===t.buttons&&this.processEvent(t)){var e={fake:!0,clientX:t.clientX,clientY:t.clientY};this.touches=[e],this.processStart()}},onMouseMove:function(t){this.touches.length&&this.processEvent(t)&&this.processMove(t,[{clientX:t.clientX,clientY:t.clientY}])},onMouseUp:function(){this.touches=[],this.processEnd()},onWheel:function(t){if(this.wheelResize&&this.processEvent(t)){var e=this.$refs.container.getBoundingClientRect(),i=e.left,n=e.top,s=1+this.wheelResize.ratio*(r=t.deltaY||t.detail||t.wheelDelta,0===(a=+r)||S(a)?a:a>0?1:-1),o={left:t.clientX-i,top:t.clientY-n};this.$emit(\"resize\",new M({},{factor:s,center:o})),this.touches.length||this.debouncedProcessEnd()}var r,a}}},undefined,false,undefined,!1,void 0,void 0,void 0),Nt=T({render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"transformable-image\",{attrs:{\"touch-move\":t.touchMove,\"touch-resize\":t.touchResize,\"mouse-move\":t.mouseMove,\"wheel-resize\":t.wheelResize},on:{move:function(e){return t.$emit(\"move\",e)},resize:function(e){return t.$emit(\"resize\",e)}}},[t._t(\"default\")],2)},staticRenderFns:[]},undefined,{components:{TransformableImage:Ut},props:{touchMove:{type:Boolean,required:!0},mouseMove:{type:Boolean,required:!0},touchResize:{type:Boolean,required:!0},wheelResize:{type:[Boolean,Object],required:!0}}},undefined,false,undefined,!1,void 0,void 0,void 0),Vt=d(\"vue-preview\"),Zt=T({render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{ref:\"root\",class:t.classes.root,style:t.style},[i(\"div\",{ref:\"wrapper\",class:t.classes.wrapper,style:t.wrapperStyle},[i(\"img\",{directives:[{name:\"show\",rawName:\"v-show\",value:t.image&&t.image.src,expression:\"image && image.src\"}],ref:\"image\",class:t.classes.image,style:t.imageStyle,attrs:{src:t.image&&t.image.src}})])])},staticRenderFns:[]},undefined,{props:{coordinates:{type:Object},transitions:{type:Object},image:{type:Object,default:function(){return{}}},imageClass:{type:String},width:{type:Number},height:{type:Number},fill:{type:Boolean}},data:function(){return{calculatedImageSize:{width:0,height:0},calculatedSize:{width:0,height:0}}},computed:{classes:function(){return{root:Vt({fill:this.fill}),wrapper:Vt(\"wrapper\"),imageWrapper:Vt(\"image-wrapper\"),image:l(Vt(\"image\"),this.imageClass)}},style:function(){if(this.fill)return{};var t={};return this.width&&(t.width=\"\".concat(this.size.width,\"px\")),this.height&&(t.height=\"\".concat(this.size.height,\"px\")),this.transitions&&this.transitions.enabled&&(t.transition=\"\".concat(this.transitions.time,\"ms \").concat(this.transitions.timingFunction)),t},wrapperStyle:function(){var t={width:\"\".concat(this.size.width,\"px\"),height:\"\".concat(this.size.height,\"px\"),left:\"calc(50% - \".concat(this.size.width/2,\"px)\"),top:\"calc(50% - \".concat(this.size.height/2,\"px)\")};return this.transitions&&this.transitions.enabled&&(t.transition=\"\".concat(this.transitions.time,\"ms \").concat(this.transitions.timingFunction)),t},imageStyle:function(){if(this.coordinates&&this.image){var t=this.coordinates.width/this.size.width,e=i(i({rotate:0,flip:{horizontal:!1,vertical:!1}},this.image.transforms),{},{scaleX:1/t,scaleY:1/t}),n=this.imageSize.width,s=this.imageSize.height,o=it({width:n,height:s},e.rotate),r={width:\"\".concat(n,\"px\"),height:\"\".concat(s,\"px\"),left:\"0px\",top:\"0px\"},a={rotate:{left:(n-o.width)*e.scaleX/2,top:(s-o.height)*e.scaleY/2},scale:{left:(1-e.scaleX)*n/2,top:(1-e.scaleY)*s/2}};return r.transform=\"translate(\\n\\t\\t\\t\\t\".concat(-this.coordinates.left/t-a.rotate.left-a.scale.left,\"px,\").concat(-this.coordinates.top/t-a.rotate.top-a.scale.top,\"px) \")+_t(e),this.transitions&&this.transitions.enabled&&(r.transition=\"\".concat(this.transitions.time,\"ms \").concat(this.transitions.timingFunction)),r}return{}},size:function(){return{width:this.width||this.calculatedSize.width,height:this.height||this.calculatedSize.height}},imageSize:function(){return{width:this.image.width||this.calculatedImageSize.width,height:this.image.height||this.calculatedImageSize.height}}},watch:{image:function(t){(t.width||t.height)&&this.onChangeImage()}},mounted:function(){var t=this;this.onChangeImage(),this.$refs.image.addEventListener(\"load\",(function(){t.refreshImage()})),window.addEventListener(\"resize\",this.refresh),window.addEventListener(\"orientationchange\",this.refresh)},destroyed:function(){window.removeEventListener(\"resize\",this.refresh),window.removeEventListener(\"orientationchange\",this.refresh)},methods:{refreshImage:function(){var t=this.$refs.image;this.calculatedImageSize.height=t.naturalHeight,this.calculatedImageSize.width=t.naturalWidth},refresh:function(){var t=this.$refs.root;this.width||(this.calculatedSize.width=t.clientWidth),this.height||(this.calculatedSize.height=t.clientHeight)},onChangeImage:function(){var t=this.$refs.image;t&&t.complete&&this.refreshImage(),this.refresh()}}},undefined,false,undefined,!1,void 0,void 0,void 0),qt=T({render:function(){var t=this,e=t.$createElement;return(t._self._c||e)(\"preview\",t._b({attrs:{fill:!0}},\"preview\",t.$attrs,!1))},staticRenderFns:[]},undefined,{components:{Preview:Zt},inheritAttrs:!1},undefined,false,undefined,!1,void 0,void 0,void 0),Gt=d(\"vue-rectangle-stencil\"),Qt=T({render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{class:t.classes.stencil,style:t.style},[i(\"bounding-box\",{class:t.classes.boundingBox,attrs:{width:t.stencilCoordinates.width,height:t.stencilCoordinates.height,transitions:t.transitions,handlers:t.handlers,\"handlers-component\":t.handlersComponent,\"handlers-classes\":t.handlersClasses,\"handlers-wrappers-classes\":t.handlersWrappersClasses,lines:t.lines,\"lines-component\":t.linesComponent,\"lines-classes\":t.linesClasses,\"lines-wrappers-classes\":t.linesWrappersClasses,resizable:t.resizable},on:{resize:t.onResize,\"resize-end\":t.onResizeEnd}},[i(\"draggable-area\",{attrs:{movable:t.movable},on:{move:t.onMove,\"move-end\":t.onMoveEnd}},[i(\"stencil-preview\",{class:t.classes.preview,attrs:{image:t.image,coordinates:t.coordinates,width:t.stencilCoordinates.width,height:t.stencilCoordinates.height,transitions:t.transitions}})],1)],1)],1)},staticRenderFns:[]},undefined,{name:\"RectangleStencil\",components:{StencilPreview:qt,BoundingBox:Pt,DraggableArea:Lt},props:{image:{type:Object},coordinates:{type:Object},stencilCoordinates:{type:Object},handlers:{type:Object},handlersComponent:{type:[Object,String],default:function(){return Et}},lines:{type:Object},linesComponent:{type:[Object,String],default:function(){return Ot}},aspectRatio:{type:[Number,String]},minAspectRatio:{type:[Number,String]},maxAspectRatio:{type:[Number,String]},movable:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},transitions:{type:Object},movingClass:{type:String},resizingClass:{type:String},previewClass:{type:String},boundingBoxClass:{type:String},linesClasses:{type:Object,default:function(){return{}}},linesWrappersClasses:{type:Object,default:function(){return{}}},handlersClasses:{type:Object,default:function(){return{}}},handlersWrappersClasses:{type:Object,default:function(){return{}}}},data:function(){return{moving:!1,resizing:!1}},computed:{classes:function(){return{stencil:l(Gt({movable:this.movable,moving:this.moving,resizing:this.resizing}),this.moving&&this.movingClass,this.resizing&&this.resizingClass),preview:l(Gt(\"preview\"),this.previewClass),boundingBox:l(Gt(\"bounding-box\"),this.boundingBoxClass)}},style:function(){var t=this.stencilCoordinates,e=t.height,i=t.width,n=t.left,s=t.top,o={width:\"\".concat(i,\"px\"),height:\"\".concat(e,\"px\"),transform:\"translate(\".concat(n,\"px, \").concat(s,\"px)\")};return this.transitions&&this.transitions.enabled&&(o.transition=\"\".concat(this.transitions.time,\"ms \").concat(this.transitions.timingFunction)),o}},methods:{onMove:function(t){this.$emit(\"move\",t),this.moving=!0},onMoveEnd:function(){this.$emit(\"move-end\"),this.moving=!1},onResize:function(t){this.$emit(\"resize\",t),this.resizing=!0},onResizeEnd:function(){this.$emit(\"resize-end\"),this.resizing=!1},aspectRatios:function(){return{minimum:this.aspectRatio||this.minAspectRatio,maximum:this.aspectRatio||this.maxAspectRatio}}}},undefined,false,undefined,!1,void 0,void 0,void 0),Kt=d(\"vue-circle-stencil\"),Jt=T({render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{class:t.classes.stencil,style:t.style},[i(\"bounding-box\",{class:t.classes.boundingBox,attrs:{width:t.stencilCoordinates.width,height:t.stencilCoordinates.height,transitions:t.transitions,handlers:t.handlers,\"handlers-component\":t.handlersComponent,\"handlers-classes\":t.handlersClasses,\"handlers-wrappers-classes\":t.handlersWrappersClasses,lines:t.lines,\"lines-component\":t.linesComponent,\"lines-classes\":t.linesClasses,\"lines-wrappers-classes\":t.linesWrappersClasses,resizable:t.resizable},on:{resize:t.onResize,\"resize-end\":t.onResizeEnd}},[i(\"draggable-area\",{attrs:{movable:t.movable},on:{move:t.onMove,\"move-end\":t.onMoveEnd}},[i(\"stencil-preview\",{class:t.classes.preview,attrs:{image:t.image,coordinates:t.coordinates,width:t.stencilCoordinates.width,height:t.stencilCoordinates.height,transitions:t.transitions}})],1)],1)],1)},staticRenderFns:[]},undefined,{components:{StencilPreview:qt,BoundingBox:Pt,DraggableArea:Lt},props:{image:{type:Object},coordinates:{type:Object},stencilCoordinates:{type:Object},handlers:{type:Object,default:function(){return{eastNorth:!0,westNorth:!0,westSouth:!0,eastSouth:!0}}},handlersComponent:{type:[Object,String],default:function(){return Et}},handlersClasses:{type:Object,default:function(){return{}}},handlersWrappersClasses:{type:Object,default:function(){return{}}},lines:{type:Object},linesComponent:{type:[Object,String],default:function(){return Ot}},linesClasses:{type:Object,default:function(){return{}}},linesWrappersClasses:{type:Object,default:function(){return{}}},movable:{type:Boolean,default:!0},resizable:{type:Boolean,default:!0},transitions:{type:Object},movingClass:{type:String},resizingClass:{type:String},previewClass:{type:String},boundingBoxClass:{type:String}},data:function(){return{moving:!1,resizing:!1}},computed:{classes:function(){return{stencil:l(Kt({movable:this.movable,moving:this.moving,resizing:this.resizing}),this.moving&&this.movingClass,this.resizing&&this.resizingClass),preview:l(Kt(\"preview\"),this.previewClass),boundingBox:l(Kt(\"bounding-box\"),this.boundingBoxClass)}},style:function(){var t=this.stencilCoordinates,e=t.height,i=t.width,n=t.left,s=t.top,o={width:\"\".concat(i,\"px\"),height:\"\".concat(e,\"px\"),transform:\"translate(\".concat(n,\"px, \").concat(s,\"px)\")};return this.transitions&&this.transitions.enabled&&(o.transition=\"\".concat(this.transitions.time,\"ms \").concat(this.transitions.timingFunction)),o}},methods:{onMove:function(t){this.$emit(\"move\",t),this.moving=!0},onMoveEnd:function(){this.$emit(\"move-end\"),this.moving=!1},onResize:function(t){this.$emit(\"resize\",t),this.resizing=!0},onResizeEnd:function(){this.$emit(\"resize-end\"),this.resizing=!1},aspectRatios:function(){return{minimum:1,maximum:1}}}},undefined,false,undefined,!1,void 0,void 0,void 0);var te=[\"transitions\"],ee=d(\"vue-advanced-cropper\"),ie={name:\"Cropper\",components:{BackgroundWrapper:Nt},props:{src:{type:String,default:null},stencilComponent:{type:[Object,String],default:function(){return Qt}},backgroundWrapperComponent:{type:[Object,String],default:function(){return Nt}},stencilProps:{type:Object,default:function(){return{}}},autoZoom:{type:Boolean,default:!1},imageClass:{type:String},boundariesClass:{type:String},backgroundClass:{type:String},foregroundClass:{type:String},minWidth:{type:[Number,String]},minHeight:{type:[Number,String]},maxWidth:{type:[Number,String]},maxHeight:{type:[Number,String]},debounce:{type:[Boolean,Number],default:500},transitions:{type:Boolean,default:!0},checkOrientation:{type:Boolean,default:!0},canvas:{type:[Object,Boolean],default:!0},crossOrigin:{type:[Boolean,String],default:void 0},transitionTime:{type:Number,default:300},imageRestriction:{type:String,default:\"fit-area\",validator:function(t){return-1!==_.indexOf(t)}},roundResult:{type:Boolean,default:!0},defaultSize:{type:[Function,Object]},defaultPosition:{type:[Function,Object],default:function(t){var e=t.imageSize,i=t.visibleArea,n=t.coordinates,s=i||e;return{left:(i?i.left:0)+s.width/2-n.width/2,top:(i?i.top:0)+s.height/2-n.height/2}}},defaultVisibleArea:{type:[Function,Object],default:function(t){var e=t.getAreaRestrictions,i=t.coordinates,n=t.imageSize,s=Q(t.boundaries);if(i){var o={height:Math.max(i.height,n.height),width:Math.max(i.width,n.width)},r=et({width:Q(o)>s?o.width:o.height*s,height:Q(o)>s?o.width/s:o.height},rt(e())),a={left:i.left+i.width/2-r.width/2,top:i.top+i.height/2-r.height/2,width:r.width,height:r.height},h=N(i,Y(f({left:0,top:0},n))),c={};return!h.left&&!h.right&&a.width<=n.width&&(c.left=0,c.right=n.width),!h.top&&!h.bottom&&a.height<=n.height&&(c.top=0,c.bottom=n.height),ot(a,c)}var l=Q(n);return r={height:l>s?n.height:n.width/s,width:l>s?n.height*s:n.width},{left:n.width/2-r.width/2,top:n.height/2-r.height/2,width:r.width,height:r.height}}},defaultTransforms:{type:[Function,Object]},defaultBoundaries:{type:[Function,String],validator:function(t){return!(\"string\"==typeof t&&\"fill\"!==t&&\"fit\"!==t)}},priority:{type:String,default:\"coordinates\"},stencilSize:{type:[Object,Function]},resizeImage:{type:[Boolean,Object],default:!0},moveImage:{type:[Boolean,Object],default:!0},autoZoomAlgorithm:{type:Function},resizeAlgorithm:{type:Function,default:function(t){var e=t.event,i=t.coordinates,n=t.aspectRatio,s=t.positionRestrictions,o=t.sizeRestrictions,r=f(f({},i),{right:i.left+i.width,bottom:i.top+i.height}),a=e.params||{},h=f({},e.directions),c=a.allowedDirections||{left:!0,right:!0,bottom:!0,top:!0};o.widthFrozen&&(h.left=0,h.right=0),o.heightFrozen&&(h.top=0,h.bottom=0),D.forEach((function(t){c[t]||(h[t]=0)}));var l=V(r,h=St({coordinates:r,directions:h,sizeRestrictions:o,positionRestrictions:s})).width,d=V(r,h).height,u=a.preserveRatio?Q(r):tt(l/d,n);if(u){var m=a.respectDirection;if(m||(m=r.width>=r.height||1===u?\"width\":\"height\"),\"width\"===m){var p=l/u-r.height;if(c.top&&c.bottom){var g=h.top,v=h.bottom;h.bottom=xt(p,v,g),h.top=xt(p,g,v)}else c.bottom?h.bottom=p:c.top?h.top=p:c.right?h.right=0:c.left&&(h.left=0)}else if(\"height\"===m){var b=r.width-d*u;if(c.left&&c.right){var w=h.left,y=h.right;h.left=-xt(b,w,y),h.right=-xt(b,y,w)}else c.left?h.left=-b:c.right?h.right=-b:c.top?h.top=0:c.bottom&&(h.bottom=0)}h=St({directions:h,coordinates:r,sizeRestrictions:o,positionRestrictions:s,preserveRatio:!0,compensate:a.compensate})}return l=V(r,h).width,d=V(r,h).height,(u=a.preserveRatio?Q(r):tt(l/d,n))&&Math.abs(u-l/d)>.001&&D.forEach((function(t){c[t]||(h[t]=0)})),mt({event:new E({left:-h.left,top:-h.top}),coordinates:{width:i.width+h.right+h.left,height:i.height+h.top+h.bottom,left:i.left,top:i.top},positionRestrictions:s})}},moveAlgorithm:{type:Function,default:mt},initStretcher:{type:Function,default:function(t){var e=t.stretcher,i=t.imageSize,n=Q(i);e.style.width=i.width+\"px\",e.style.height=e.clientWidth/n+\"px\",e.style.width=e.clientWidth+\"px\"}},fitCoordinates:{type:Function,default:function(t){var e=t.visibleArea,i=t.coordinates,n=t.aspectRatio,s=t.sizeRestrictions,o=t.positionRestrictions,r=f(f({},i),ut({width:i.width,height:i.height,aspectRatio:n,sizeRestrictions:{maxWidth:e.width,maxHeight:e.height,minHeight:Math.min(e.height,s.minHeight),minWidth:Math.min(e.width,s.minWidth)}}));return r=ot(r=q(r,k(U(i),U(r))),ct(Y(e),o))}},fitVisibleArea:{type:Function,default:function(t){var e=t.visibleArea,i=t.boundaries,n=t.getAreaRestrictions,s=t.coordinates,o=f({},e);o.height=o.width/Q(i),o.top+=(e.height-o.height)/2,(s.height-o.height>0||s.width-o.width>0)&&(o=G(o,Math.max(s.height/o.height,s.width/o.width)));var r=Z(J(s,Y(o=G(o,st(o,n({visibleArea:o,type:\"resize\"}))))));return o.width<s.width&&(r.left=0),o.height<s.height&&(r.top=0),o=ot(o=q(o,r),n({visibleArea:o,type:\"move\"}))}},areaRestrictionsAlgorithm:{type:Function,default:function(t){var e=t.visibleArea,i=t.boundaries,n=t.imageSize,s=t.imageRestriction,o=t.type,r={};return\"fill-area\"===s?r={left:0,top:0,right:n.width,bottom:n.height}:\"fit-area\"===s&&(Q(i)>Q(n)?(r={top:0,bottom:n.height},e&&\"move\"===o&&(e.width>n.width?(r.left=-(e.width-n.width)/2,r.right=n.width-r.left):(r.left=0,r.right=n.width))):(r={left:0,right:n.width},e&&\"move\"===o&&(e.height>n.height?(r.top=-(e.height-n.height)/2,r.bottom=n.height-r.top):(r.top=0,r.bottom=n.height)))),r}},sizeRestrictionsAlgorithm:{type:Function,default:function(t){return{minWidth:t.minWidth,minHeight:t.minHeight,maxWidth:t.maxWidth,maxHeight:t.maxHeight}}},positionRestrictionsAlgorithm:{type:Function,default:function(t){var e=t.imageSize,i={};return\"none\"!==t.imageRestriction&&(i={left:0,top:0,right:e.width,bottom:e.height}),i}}},data:function(){return{transitionsActive:!1,imageLoaded:!1,imageAttributes:{width:null,height:null,crossOrigin:!1,src:null},defaultImageTransforms:{rotate:0,flip:{horizontal:!1,vertical:!1}},appliedImageTransforms:{rotate:0,flip:{horizontal:!1,vertical:!1}},boundaries:{width:0,height:0},visibleArea:null,coordinates:i({},F)}},computed:{image:function(){return{src:this.imageAttributes.src,width:this.imageAttributes.width,height:this.imageAttributes.height,transforms:this.imageTransforms}},imageTransforms:function(){return{rotate:this.appliedImageTransforms.rotate,flip:{horizontal:this.appliedImageTransforms.flip.horizontal,vertical:this.appliedImageTransforms.flip.vertical},translateX:this.visibleArea?this.visibleArea.left/this.coefficient:0,translateY:this.visibleArea?this.visibleArea.top/this.coefficient:0,scaleX:1/this.coefficient,scaleY:1/this.coefficient}},imageSize:function(){var t=function(t){return t*Math.PI/180}(this.imageTransforms.rotate);return{width:Math.abs(this.imageAttributes.width*Math.cos(t))+Math.abs(this.imageAttributes.height*Math.sin(t)),height:Math.abs(this.imageAttributes.width*Math.sin(t))+Math.abs(this.imageAttributes.height*Math.cos(t))}},initialized:function(){return Boolean(this.visibleArea&&this.imageLoaded)},settings:function(){var t=z(this.resizeImage,{touch:!0,wheel:{ratio:.1},adjustStencil:!0},{touch:!1,wheel:!1,adjustStencil:!1});return{moveImage:z(this.moveImage,{touch:!0,mouse:!0},{touch:!1,mouse:!1}),resizeImage:t}},coefficient:function(){return this.visibleArea?this.visibleArea.width/this.boundaries.width:0},areaRestrictions:function(){return this.imageLoaded?this.areaRestrictionsAlgorithm({imageSize:this.imageSize,imageRestriction:this.imageRestriction,boundaries:this.boundaries}):{}},transitionsOptions:function(){return{enabled:this.transitionsActive,timingFunction:\"ease-in-out\",time:350}},sizeRestrictions:function(){if(this.boundaries.width&&this.boundaries.height&&this.imageSize.width&&this.imageSize.height){var t=this.sizeRestrictionsAlgorithm({imageSize:this.imageSize,minWidth:w(this.minWidth)?0:R(this.minWidth),minHeight:w(this.minHeight)?0:R(this.minHeight),maxWidth:w(this.maxWidth)?1/0:R(this.maxWidth),maxHeight:w(this.maxHeight)?1/0:R(this.maxHeight)});if(t=function(t){var e=t.areaRestrictions,i=t.sizeRestrictions;t.imageSize;var n=t.boundaries,s=t.positionRestrictions;t.imageRestriction;var o=f(f({},i),{minWidth:void 0!==i.minWidth?i.minWidth:0,minHeight:void 0!==i.minHeight?i.minHeight:0,maxWidth:void 0!==i.maxWidth?i.maxWidth:1/0,maxHeight:void 0!==i.maxHeight?i.maxHeight:1/0});void 0!==s.left&&void 0!==s.right&&(o.maxWidth=Math.min(o.maxWidth,s.right-s.left)),void 0!==s.bottom&&void 0!==s.top&&(o.maxHeight=Math.min(o.maxHeight,s.bottom-s.top));var r=rt(e),a=et(n,r);return r.width<1/0&&(!o.maxWidth||o.maxWidth>a.width)&&(o.maxWidth=Math.min(o.maxWidth,a.width)),r.height<1/0&&(!o.maxHeight||o.maxHeight>a.height)&&(o.maxHeight=Math.min(o.maxHeight,a.height)),o.minWidth>o.maxWidth&&(o.minWidth=o.maxWidth,o.widthFrozen=!0),o.minHeight>o.maxHeight&&(o.minHeight=o.maxHeight,o.heightFrozen=!0),o}({sizeRestrictions:t,areaRestrictions:this.getAreaRestrictions({visibleArea:this.visibleArea,type:\"resize\"}),imageSize:this.imageSize,boundaries:this.boundaries,positionRestrictions:this.positionRestrictions,imageRestriction:this.imageRestriction,visibleArea:this.visibleArea,stencilSize:this.getStencilSize()}),this.visibleArea&&this.stencilSize){var e=this.getStencilSize(),i=rt(this.getAreaRestrictions({visibleArea:this.visibleArea,type:\"resize\"}));t.maxWidth=Math.min(t.maxWidth,i.width*e.width/this.boundaries.width),t.maxHeight=Math.min(t.maxHeight,i.height*e.height/this.boundaries.height),t.maxWidth<t.minWidth&&(t.minWidth=t.maxWidth),t.maxHeight<t.minHeight&&(t.minHeight=t.maxHeight)}return t}return{minWidth:0,minHeight:0,maxWidth:0,maxHeight:0}},positionRestrictions:function(){return this.positionRestrictionsAlgorithm({imageSize:this.imageSize,imageRestriction:this.imageRestriction})},classes:function(){return{cropper:ee(),image:l(ee(\"image\"),this.imageClass),stencil:ee(\"stencil\"),boundaries:l(ee(\"boundaries\"),this.boundariesClass),stretcher:l(ee(\"stretcher\")),background:l(ee(\"background\"),this.backgroundClass),foreground:l(ee(\"foreground\"),this.foregroundClass),imageWrapper:l(ee(\"image-wrapper\")),cropperWrapper:l(ee(\"cropper-wrapper\"))}},stencilCoordinates:function(){if(this.initialized){var t=this.coordinates,e=t.width,i=t.height,n=t.left,s=t.top;return{width:e/this.coefficient,height:i/this.coefficient,left:(n-this.visibleArea.left)/this.coefficient,top:(s-this.visibleArea.top)/this.coefficient}}return this.defaultCoordinates()},boundariesStyle:function(){var t={width:this.boundaries.width?\"\".concat(Math.round(this.boundaries.width),\"px\"):\"auto\",height:this.boundaries.height?\"\".concat(Math.round(this.boundaries.height),\"px\"):\"auto\",transition:\"opacity \".concat(this.transitionTime,\"ms\"),pointerEvents:this.imageLoaded?\"all\":\"none\"};return this.imageLoaded||(t.opacity=\"0\"),t},imageStyle:function(){var t=this.imageAttributes.width>this.imageAttributes.height?{width:Math.min(1024,this.imageAttributes.width),height:Math.min(1024,this.imageAttributes.width)/(this.imageAttributes.width/this.imageAttributes.height)}:{height:Math.min(1024,this.imageAttributes.height),width:Math.min(1024,this.imageAttributes.height)*(this.imageAttributes.width/this.imageAttributes.height)},e={left:(t.width-this.imageSize.width)/(2*this.coefficient),top:(t.height-this.imageSize.height)/(2*this.coefficient)},n={left:(1-1/this.coefficient)*t.width/2,top:(1-1/this.coefficient)*t.height/2},s=i(i({},this.imageTransforms),{},{scaleX:this.imageTransforms.scaleX*(this.imageAttributes.width/t.width),scaleY:this.imageTransforms.scaleY*(this.imageAttributes.height/t.height)}),o={width:\"\".concat(t.width,\"px\"),height:\"\".concat(t.height,\"px\"),left:\"0px\",top:\"0px\",transform:\"translate(\".concat(-e.left-n.left-this.imageTransforms.translateX,\"px, \").concat(-e.top-n.top-this.imageTransforms.translateY,\"px)\")+_t(s)};return this.transitionsOptions.enabled&&(o.transition=\"\".concat(this.transitionsOptions.time,\"ms \").concat(this.transitionsOptions.timingFunction)),o}},watch:{src:function(){this.onChangeImage()},stencilComponent:function(){var t=this;this.$nextTick((function(){t.resetCoordinates(),t.runAutoZoom(\"setCoordinates\"),t.onChange()}))},minWidth:function(){this.onPropsChange()},maxWidth:function(){this.onPropsChange()},minHeight:function(){this.onPropsChange()},maxHeight:function(){this.onPropsChange()},imageRestriction:function(){this.reset()},stencilProps:function(t,e){[\"aspectRatio\",\"minAspectRatio\",\"maxAspectRatio\"].find((function(i){return t[i]!==e[i]}))&&this.$nextTick(this.onPropsChange)}},created:function(){this.debouncedUpdate=m(this.update,this.debounce),this.debouncedDisableTransitions=m(this.disableTransitions,this.transitionsOptions.time),this.awaiting=!1},mounted:function(){this.$refs.image.addEventListener(\"load\",this.onSuccessLoadImage),this.$refs.image.addEventListener(\"error\",this.onFailLoadImage),this.onChangeImage(),window.addEventListener(\"resize\",this.refresh),window.addEventListener(\"orientationchange\",this.refresh)},destroyed:function(){window.removeEventListener(\"resize\",this.refresh),window.removeEventListener(\"orientationchange\",this.refresh),this.imageAttributes.revoke&&this.imageAttributes.src&&URL.revokeObjectURL(this.imageAttributes.src),this.debouncedUpdate.clear(),this.debouncedDisableTransitions.clear()},methods:{getResult:function(){var t=this.initialized?this.prepareResult(i({},this.coordinates)):this.defaultCoordinates(),e={rotate:this.imageTransforms.rotate%360,flip:i({},this.imageTransforms.flip)};if(this.src&&this.imageLoaded){var n=this;return{image:this.image,coordinates:t,visibleArea:this.visibleArea?i({},this.visibleArea):null,imageTransforms:e,get canvas(){return n.canvas?n.getCanvas():void 0}}}return{image:this.image,coordinates:t,visibleArea:this.visibleArea?i({},this.visibleArea):null,canvas:void 0,imageTransforms:e}},zoom:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=i.transitions,s=void 0===n||n;this.onManipulateImage(new M({},{factor:1/t,center:e}),{normalize:!1,transitions:s})},move:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=i.transitions,s=void 0===n||n;this.onManipulateImage(new M({left:t||0,top:e||0}),{normalize:!1,transitions:s})},setCoordinates:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=i.autoZoom,s=void 0===n||n,o=i.transitions,r=void 0===o||o;this.$nextTick((function(){e.imageLoaded?(e.transitionsActive||(r&&e.enableTransitions(),e.coordinates=e.applyTransform(t),s&&e.runAutoZoom(\"setCoordinates\"),r&&e.debouncedDisableTransitions()),e.onChange()):e.delayedTransforms=t}))},refresh:function(){var t=this,e=this.$refs.image;if(this.src&&e)return this.initialized?this.updateVisibleArea().then((function(){t.onChange()})):this.resetVisibleArea().then((function(){t.onChange()}))},reset:function(){var t=this;return this.resetVisibleArea().then((function(){t.onChange(!1)}))},awaitRender:function(t){var e=this;this.awaiting||(this.awaiting=!0,this.$nextTick((function(){t(),e.awaiting=!1})))},prepareResult:function(t){return this.roundResult?function(t){var e=t.coordinates,i=t.sizeRestrictions,n=t.positionRestrictions,s={width:Math.round(e.width),height:Math.round(e.height),left:Math.round(e.left),top:Math.round(e.top)};return s.width>i.maxWidth?s.width=Math.floor(e.width):s.width<i.minWidth&&(s.width=Math.ceil(e.width)),s.height>i.maxHeight?s.height=Math.floor(e.height):s.height<i.minHeight&&(s.height=Math.ceil(e.height)),ot(s,n)}(i(i({},this.getPublicProperties()),{},{positionRestrictions:yt(this.positionRestrictions,this.visibleArea),coordinates:t})):t},processAutoZoom:function(t,e,n,s){var o=this.autoZoomAlgorithm;o||(o=this.stencilSize?pt:this.autoZoom?gt:vt);var r=o({event:{type:t,params:s},visibleArea:e,coordinates:n,boundaries:this.boundaries,aspectRatio:this.getAspectRatio(),positionRestrictions:this.positionRestrictions,getAreaRestrictions:this.getAreaRestrictions,sizeRestrictions:this.sizeRestrictions,stencilSize:this.getStencilSize()});return i(i({},r),{},{changed:!X(r.visibleArea,e)||!X(r.coordinates,n)})},runAutoZoom:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=e.transitions,n=void 0!==i&&i,o=s(e,te),r=this.processAutoZoom(t,this.visibleArea,this.coordinates,o),a=r.visibleArea,h=r.coordinates,c=r.changed;n&&c&&this.enableTransitions(),this.visibleArea=a,this.coordinates=h,n&&c&&this.debouncedDisableTransitions()},normalizeEvent:function(t){return function(t){var e=t.event,i=t.visibleArea,n=t.coefficient;if(\"manipulateImage\"===e.type)return f(f({},e),{move:{left:e.move&&e.move.left?n*e.move.left:0,top:e.move&&e.move.top?n*e.move.top:0},scale:{factor:e.scale&&e.scale.factor?e.scale.factor:1,center:e.scale&&e.scale.center?{left:e.scale.center.left*n+i.left,top:e.scale.center.top*n+i.top}:null}});if(\"resize\"===e.type){var s=f(f({},e),{directions:f({},e.directions)});return D.forEach((function(t){s.directions[t]*=n})),s}if(\"move\"===e.type){var o=f(f({},e),{directions:f({},e.directions)});return B.forEach((function(t){o.directions[t]*=n})),o}return e}(i(i({},this.getPublicProperties()),{},{event:t}))},getCanvas:function(){if(this.$refs.canvas){var t=this.$refs.canvas,e=this.$refs.image,n=0!==this.imageTransforms.rotate||this.imageTransforms.flip.horizontal||this.imageTransforms.flip.vertical?function(t,e,i){var n=i.rotate,s=i.flip,o={width:e.naturalWidth,height:e.naturalHeight},r=it(o,n),a=t.getContext(\"2d\");t.height=r.height,t.width=r.width,a.save();var h=nt(U(f({left:0,top:0},o)),n);return a.translate(-(h.left-r.width/2),-(h.top-r.height/2)),a.rotate(n*Math.PI/180),a.translate(s.horizontal?o.width:0,s.vertical?o.height:0),a.scale(s.horizontal?-1:1,s.vertical?-1:1),a.drawImage(e,0,0,o.width,o.height),a.restore(),t}(this.$refs.sourceCanvas,e,this.imageTransforms):e,s=i({minWidth:0,minHeight:0,maxWidth:1/0,maxHeight:1/0,maxArea:this.maxCanvasSize,imageSmoothingEnabled:!0,imageSmoothingQuality:\"high\",fillColor:\"transparent\"},this.canvas),o=function(t){return t.find((function(t){return e=t,!Number.isNaN(parseFloat(e))&&isFinite(e);var e}))},r=ut({sizeRestrictions:{minWidth:o([s.width,s.minWidth])||0,minHeight:o([s.height,s.minHeight])||0,maxWidth:o([s.width,s.maxWidth])||1/0,maxHeight:o([s.height,s.maxHeight])||1/0},width:this.coordinates.width,height:this.coordinates.height,aspectRatio:{minimum:this.coordinates.width/this.coordinates.height,maximum:this.coordinates.width/this.coordinates.height}});if(s.maxArea&&r.width*r.height>s.maxArea){var a=Math.sqrt(s.maxArea/(r.width*r.height));r={width:Math.round(a*r.width),height:Math.round(a*r.height)}}return function(t,e,i,n,s){t.width=n?n.width:i.width,t.height=n?n.height:i.height;var o=t.getContext(\"2d\");o.clearRect(0,0,t.width,t.height),s&&(s.imageSmoothingEnabled&&(o.imageSmoothingEnabled=s.imageSmoothingEnabled),s.imageSmoothingQuality&&(o.imageSmoothingQuality=s.imageSmoothingQuality),s.fillColor&&(o.fillStyle=s.fillColor,o.fillRect(0,0,t.width,t.height),o.save()));var r=i.left<0?-i.left:0,a=i.top<0?-i.top:0;o.drawImage(e,i.left+r,i.top+a,i.width,i.height,r,a,t.width,t.height)}(t,n,this.coordinates,r,s),t}},update:function(){this.$emit(\"change\",this.getResult())},applyTransform:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],i=this.visibleArea&&e?at(this.sizeRestrictions,this.visibleArea):this.sizeRestrictions,n=this.visibleArea&&e?yt(this.positionRestrictions,this.visibleArea):this.positionRestrictions;return ft({transform:t,coordinates:this.coordinates,imageSize:this.imageSize,sizeRestrictions:i,positionRestrictions:n,aspectRatio:this.getAspectRatio(),visibleArea:this.visibleArea})},resetCoordinates:function(){var t=this;if(this.$refs.image){this.$refs.cropper,this.$refs.image;var e=this.defaultSize;e||(e=this.stencilSize?wt:bt);var n=this.sizeRestrictions;n.minWidth,n.minHeight,n.maxWidth,n.maxHeight;var s=[b(e)?e({boundaries:this.boundaries,imageSize:this.imageSize,aspectRatio:this.getAspectRatio(),sizeRestrictions:this.sizeRestrictions,stencilSize:this.getStencilSize(),visibleArea:this.visibleArea}):e,function(e){var n=e.coordinates;return i({},b(t.defaultPosition)?t.defaultPosition({coordinates:n,imageSize:t.imageSize,visibleArea:t.visibleArea}):t.defaultPosition)}];this.delayedTransforms&&s.push.apply(s,o(Array.isArray(this.delayedTransforms)?this.delayedTransforms:[this.delayedTransforms])),this.coordinates=this.applyTransform(s,!0),this.delayedTransforms=null}},clearImage:function(){var t=this;this.imageLoaded=!1,setTimeout((function(){var e=t.$refs.stretcher;e&&(e.style.height=\"auto\",e.style.width=\"auto\"),t.coordinates=t.defaultCoordinates(),t.boundaries={width:0,height:0}}),this.transitionTime)},enableTransitions:function(){this.transitions&&(this.transitionsActive=!0)},disableTransitions:function(){this.transitionsActive=!1},updateBoundaries:function(){var t=this,e=this.$refs.stretcher,i=this.$refs.cropper;return this.initStretcher({cropper:i,stretcher:e,imageSize:this.imageSize}),this.$nextTick().then((function(){var e={cropper:i,imageSize:t.imageSize};if(b(t.defaultBoundaries)?t.boundaries=t.defaultBoundaries(e):\"fit\"===t.defaultBoundaries?t.boundaries=function(t){var e=t.cropper,i=t.imageSize,n=e.clientHeight,s=e.clientWidth,o=n,r=i.width*n/i.height;return r>s&&(r=s,o=i.height*s/i.width),{width:r,height:o}}(e):t.boundaries=function(t){var e=t.cropper;return{width:e.clientWidth,height:e.clientHeight}}(e),!t.boundaries.width||!t.boundaries.height)throw new Error(\"It's impossible to fit the cropper in the current container\")}))},resetVisibleArea:function(){var t=this;return this.appliedImageTransforms=i(i({},this.defaultImageTransforms),{},{flip:i({},this.defaultImageTransforms.flip)}),this.updateBoundaries().then((function(){var e,i,n,s,o,r;\"visible-area\"!==t.priority&&(t.visibleArea=null,t.resetCoordinates()),t.visibleArea=b(t.defaultVisibleArea)?t.defaultVisibleArea({imageSize:t.imageSize,boundaries:t.boundaries,coordinates:\"visible-area\"!==t.priority?t.coordinates:null,getAreaRestrictions:t.getAreaRestrictions,stencilSize:t.getStencilSize()}):t.defaultVisibleArea,t.visibleArea=(e={visibleArea:t.visibleArea,boundaries:t.boundaries,getAreaRestrictions:t.getAreaRestrictions},i=e.visibleArea,n=e.boundaries,s=e.getAreaRestrictions,o=f({},i),r=Q(n),o.width/o.height!==r&&(o.height=o.width/r),ot(o,s({visibleArea:o,type:\"move\"}))),\"visible-area\"===t.priority?t.resetCoordinates():t.coordinates=t.fitCoordinates({visibleArea:t.visibleArea,coordinates:t.coordinates,aspectRatio:t.getAspectRatio(),positionRestrictions:t.positionRestrictions,sizeRestrictions:t.sizeRestrictions}),t.runAutoZoom(\"resetVisibleArea\")})).catch((function(){t.visibleArea=null}))},updateVisibleArea:function(){var t=this;return this.updateBoundaries().then((function(){t.visibleArea=t.fitVisibleArea({imageSize:t.imageSize,boundaries:t.boundaries,visibleArea:t.visibleArea,coordinates:t.coordinates,getAreaRestrictions:t.getAreaRestrictions}),t.coordinates=t.fitCoordinates({visibleArea:t.visibleArea,coordinates:t.coordinates,aspectRatio:t.getAspectRatio(),positionRestrictions:t.positionRestrictions,sizeRestrictions:t.sizeRestrictions}),t.runAutoZoom(\"updateVisibleArea\")})).catch((function(){t.visibleArea=null}))},onChange:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.$listeners&&this.$listeners.change&&(t&&this.debounce?this.debouncedUpdate():this.update())},onChangeImage:function(){var t,e=this;if(this.imageLoaded=!1,this.delayedTransforms=null,this.src){if(function(t){if(v(t))return!1;var e=window.location,i=/(\\w+:)?(?:\\/\\/)([\\w.-]+)?(?::(\\d+))?\\/?/.exec(t)||[],n={protocol:i[1]||\"\",host:i[2]||\"\",port:i[3]||\"\"},s=function(t){return t.port||(\"http\"===(t.protocol||e.protocol)?80:433)};return!(!n.protocol&&!n.host&&!n.port||Boolean(n.protocol&&n.protocol==e.protocol&&n.host&&n.host==e.host&&n.host&&s(n)==s(e)))}(this.src)){var i=w(this.crossOrigin)?this.canvas:this.crossOrigin;!0===i&&(i=\"anonymous\"),this.imageAttributes.crossOrigin=i}if(this.checkOrientation){var n=(t=this.src,new Promise((function(e){Bt(t).then((function(i){var n=Ft(i);e(i?{source:t,arrayBuffer:i,orientation:n}:{source:t,arrayBuffer:null,orientation:null})})).catch((function(i){console.warn(i),e({source:t,arrayBuffer:null,orientation:null})}))})));setTimeout((function(){n.then(e.onParseImage)}),this.transitionTime)}else setTimeout((function(){e.onParseImage({source:e.src})}),this.transitionTime)}else this.clearImage()},onFailLoadImage:function(){this.imageAttributes.src&&(this.clearImage(),this.$emit(\"error\"))},onSuccessLoadImage:function(){var t=this,e=this.$refs.image;e&&!this.imageLoaded&&(this.imageAttributes.height=e.naturalHeight,this.imageAttributes.width=e.naturalWidth,this.imageLoaded=!0,this.resetVisibleArea().then((function(){t.$emit(\"ready\"),t.onChange(!1)})))},onParseImage:function(t){var e=this,n=t.source,s=t.arrayBuffer,o=t.orientation;this.imageAttributes.revoke&&this.imageAttributes.src&&URL.revokeObjectURL(this.imageAttributes.src),this.imageAttributes.revoke=!1,s&&o&&o>1?g(n)||!v(n)?(this.imageAttributes.src=URL.createObjectURL(new Blob([s])),this.imageAttributes.revoke=!0):this.imageAttributes.src=function(t){for(var e=[],i=new Uint8Array(t);i.length>0;){var n=i.subarray(0,8192);e.push(String.fromCharCode.apply(null,Array.from?Array.from(n):n.slice())),i=i.subarray(8192)}return\"data:image/jpeg;base64,\"+btoa(e.join(\"\"))}(s):this.imageAttributes.src=n,b(this.defaultTransforms)?this.appliedImageTransforms=It(this.defaultTransforms()):y(this.defaultTransforms)?this.appliedImageTransforms=It(this.defaultTransforms):this.appliedImageTransforms=function(t){var e=It({});if(t)switch(t){case 2:e.flip.horizontal=!0;break;case 3:e.rotate=-180;break;case 4:e.flip.vertical=!0;break;case 5:e.rotate=90,e.flip.vertical=!0;break;case 6:e.rotate=90;break;case 7:e.rotate=90,e.flip.horizontal=!0;break;case 8:e.rotate=-90}return e}(o),this.defaultImageTransforms=i(i({},this.appliedImageTransforms),{},{flip:i({},this.appliedImageTransforms.flip)}),this.$nextTick((function(){var t=e.$refs.image;t&&t.complete&&(!function(t){return Boolean(t.naturalWidth)}(t)?e.onFailLoadImage():e.onSuccessLoadImage())}))},onResizeEnd:function(){this.runAutoZoom(\"resize\",{transitions:!0})},onMoveEnd:function(){this.runAutoZoom(\"move\",{transitions:!0})},onMove:function(t){var e=this;this.transitionsOptions.enabled||this.awaitRender((function(){e.coordinates=e.moveAlgorithm(i(i({},e.getPublicProperties()),{},{positionRestrictions:yt(e.positionRestrictions,e.visibleArea),coordinates:e.coordinates,event:e.normalizeEvent(t)})),e.onChange()}))},onResize:function(t){var e=this;this.transitionsOptions.enabled||this.stencilSize&&!this.autoZoom||this.awaitRender((function(){var n=e.sizeRestrictions,s=Math.min(e.coordinates.width,e.coordinates.height,20*e.coefficient);e.coordinates=e.resizeAlgorithm(i(i({},e.getPublicProperties()),{},{positionRestrictions:yt(e.positionRestrictions,e.visibleArea),sizeRestrictions:{maxWidth:Math.min(n.maxWidth,e.visibleArea.width),maxHeight:Math.min(n.maxHeight,e.visibleArea.height),minWidth:Math.max(n.minWidth,s),minHeight:Math.max(n.minHeight,s)},event:e.normalizeEvent(t)})),e.onChange(),e.ticking=!1}))},onManipulateImage:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!this.transitionsOptions.enabled){var n=e.transitions,s=void 0!==n&&n,o=e.normalize,r=void 0===o||o;s&&this.enableTransitions();var a=zt(i(i({},this.getPublicProperties()),{},{event:r?this.normalizeEvent(t):t,getAreaRestrictions:this.getAreaRestrictions,imageRestriction:this.imageRestriction,adjustStencil:!this.stencilSize&&this.settings.resizeImage.adjustStencil})),h=a.visibleArea,c=a.coordinates;this.visibleArea=h,this.coordinates=c,this.runAutoZoom(\"manipulateImage\"),this.onChange(),s&&this.debouncedDisableTransitions()}},onPropsChange:function(){this.coordinates=this.applyTransform(this.coordinates,!0),this.onChange(!1)},getAreaRestrictions:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},e=t.visibleArea,i=t.type,n=void 0===i?\"move\":i;return this.areaRestrictionsAlgorithm({boundaries:this.boundaries,imageSize:this.imageSize,imageRestriction:this.imageRestriction,visibleArea:e,type:n})},getAspectRatio:function(t){var e,i,n=this.stencilProps,s=n.aspectRatio,o=n.minAspectRatio,r=n.maxAspectRatio;if(this.$refs.stencil&&this.$refs.stencil.aspectRatios){var a=this.$refs.stencil.aspectRatios();e=a.minimum,i=a.maximum}if(w(e)&&(e=w(s)?o:s),w(i)&&(i=w(s)?r:s),!t&&(w(e)||w(i))){var h=this.getStencilSize(),c=h?Q(h):null;w(e)&&(e=A(c)?c:void 0),w(i)&&(i=A(c)?c:void 0)}return{minimum:e,maximum:i}},getStencilSize:function(){if(this.stencilSize)return t={currentStencilSize:{width:this.stencilCoordinates.width,height:this.stencilCoordinates.height},stencilSize:this.stencilSize,boundaries:this.boundaries,coefficient:this.coefficient,coordinates:this.coordinates,aspectRatio:this.getAspectRatio(!0)},e=t.boundaries,i=t.stencilSize,n=t.aspectRatio,tt(Q(s=b(i)?i({boundaries:e,aspectRatio:n}):i),n)&&(s=ut({sizeRestrictions:{maxWidth:e.width,maxHeight:e.height,minWidth:0,minHeight:0},width:s.width,height:s.height,aspectRatio:{minimum:n.minimum,maximum:n.maximum}})),(s.width>e.width||s.height>e.height)&&(s=ut({sizeRestrictions:{maxWidth:e.width,maxHeight:e.height,minWidth:0,minHeight:0},width:s.width,height:s.height,aspectRatio:{minimum:Q(s),maximum:Q(s)}})),s;var t,e,i,n,s},getPublicProperties:function(){return{coefficient:this.coefficient,visibleArea:this.visibleArea,coordinates:this.coordinates,boundaries:this.boundaries,sizeRestrictions:this.sizeRestrictions,positionRestrictions:this.positionRestrictions,aspectRatio:this.getAspectRatio(),imageRestriction:this.imageRestriction}},defaultCoordinates:function(){return i({},F)},flip:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=n.transitions,o=void 0===s||s;if(!this.transitionsActive){o&&this.enableTransitions();var r=i({},this.imageTransforms.flip),a=At({flip:{horizontal:t?!r.horizontal:r.horizontal,vertical:e?!r.vertical:r.vertical},previousFlip:r,rotate:this.imageTransforms.rotate,visibleArea:this.visibleArea,coordinates:this.coordinates,imageSize:this.imageSize,positionRestrictions:this.positionRestrictions,sizeRestrictions:this.sizeRestrictions,getAreaRestrictions:this.getAreaRestrictions,aspectRatio:this.getAspectRatio()}),h=a.visibleArea,c=a.coordinates;t&&(this.appliedImageTransforms.flip.horizontal=!this.appliedImageTransforms.flip.horizontal),e&&(this.appliedImageTransforms.flip.vertical=!this.appliedImageTransforms.flip.vertical),this.visibleArea=h,this.coordinates=c,this.onChange(),o&&this.debouncedDisableTransitions()}},rotate:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.transitions,s=void 0===n||n;if(!this.transitionsActive){s&&this.enableTransitions();var o=i({},this.imageSize);this.appliedImageTransforms.rotate+=t;var r=Rt({visibleArea:this.visibleArea,coordinates:this.coordinates,previousImageSize:o,imageSize:this.imageSize,angle:t,positionRestrictions:this.positionRestrictions,sizeRestrictions:this.sizeRestrictions,getAreaRestrictions:this.getAreaRestrictions,aspectRatio:this.getAspectRatio()}),a=r.visibleArea,h=r.coordinates,c=this.processAutoZoom(\"rotateImage\",a,h);a=c.visibleArea,h=c.coordinates,this.visibleArea=a,this.coordinates=h,this.onChange(),s&&this.debouncedDisableTransitions()}}}},ne=T({render:function(){var t=this,e=t.$createElement,i=t._self._c||e;return i(\"div\",{ref:\"cropper\",class:t.classes.cropper},[i(\"div\",{ref:\"stretcher\",class:t.classes.stretcher}),t._v(\" \"),i(\"div\",{class:t.classes.boundaries,style:t.boundariesStyle},[i(t.backgroundWrapperComponent,{tag:\"component\",class:t.classes.cropperWrapper,attrs:{\"wheel-resize\":t.settings.resizeImage.wheel,\"touch-resize\":t.settings.resizeImage.touch,\"touch-move\":t.settings.moveImage.touch,\"mouse-move\":t.settings.moveImage.mouse},on:{move:t.onManipulateImage,resize:t.onManipulateImage}},[i(\"div\",{class:t.classes.background,style:t.boundariesStyle}),t._v(\" \"),i(\"div\",{class:t.classes.imageWrapper},[i(\"img\",{ref:\"image\",class:t.classes.image,style:t.imageStyle,attrs:{crossorigin:t.imageAttributes.crossOrigin,src:t.imageAttributes.src},on:{mousedown:function(t){t.preventDefault()}}})]),t._v(\" \"),i(\"div\",{class:t.classes.foreground,style:t.boundariesStyle}),t._v(\" \"),i(t.stencilComponent,t._b({directives:[{name:\"show\",rawName:\"v-show\",value:t.imageLoaded,expression:\"imageLoaded\"}],ref:\"stencil\",tag:\"component\",attrs:{image:t.image,coordinates:t.coordinates,\"stencil-coordinates\":t.stencilCoordinates,transitions:t.transitionsOptions},on:{resize:t.onResize,\"resize-end\":t.onResizeEnd,move:t.onMove,\"move-end\":t.onMoveEnd}},\"component\",t.stencilProps,!1)),t._v(\" \"),t.canvas?i(\"canvas\",{ref:\"canvas\",style:{display:\"none\"}}):t._e(),t._v(\" \"),t.canvas?i(\"canvas\",{ref:\"sourceCanvas\",style:{display:\"none\"}}):t._e()],1)],1)])},staticRenderFns:[]},undefined,ie,undefined,false,undefined,!1,void 0,void 0,void 0);t.component(\"cropper\",ne),t.component(\"rectangle-stencil\",Qt),t.component(\"circle-stencil\",Jt),t.component(\"simple-handler\",Et),t.component(\"simple-line\",Ot);export{Nt as BackgroundWrapper,Pt as BoundingBox,Jt as CircleStencil,ne as Cropper,W as DragEvent,Lt as DraggableArea,O as DraggableElement,H as HandlerWrapper,P as LineWrapper,E as MoveEvent,Zt as Preview,Yt as PreviewResult,Qt as RectangleStencil,C as ResizeEvent,Et as SimpleHandler,Ot as SimpleLine,qt as StencilPreview,Ut as TransformableImage};\n","// TODO: including these in blob-util.ts causes typedoc to generate docs for them,\n// even with --excludePrivate ¯\\_(ツ)_/¯\n/** @private */\nfunction loadImage(src, crossOrigin) {\n return new Promise(function (resolve, reject) {\n var img = new Image();\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n img.onload = function () {\n resolve(img);\n };\n img.onerror = reject;\n img.src = src;\n });\n}\n/** @private */\nfunction imgToCanvas(img) {\n var canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n // copy the image contents to the canvas\n var context = canvas.getContext('2d');\n context.drawImage(img, 0, 0, img.width, img.height, 0, 0, img.width, img.height);\n return canvas;\n}\n\n/* global Promise, Image, Blob, FileReader, atob, btoa,\n BlobBuilder, MSBlobBuilder, MozBlobBuilder, WebKitBlobBuilder, webkitURL */\n/**\n * Shim for\n * [`new Blob()`](https://developer.mozilla.org/en-US/docs/Web/API/Blob.Blob)\n * to support\n * [older browsers that use the deprecated `BlobBuilder` API](http://caniuse.com/blob).\n *\n * Example:\n *\n * ```js\n * var myBlob = blobUtil.createBlob(['hello world'], {type: 'text/plain'});\n * ```\n *\n * @param parts - content of the Blob\n * @param properties - usually `{type: myContentType}`,\n * you can also pass a string for the content type\n * @returns Blob\n */\nfunction createBlob(parts, properties) {\n parts = parts || [];\n properties = properties || {};\n if (typeof properties === 'string') {\n properties = { type: properties }; // infer content type\n }\n try {\n return new Blob(parts, properties);\n }\n catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined'\n ? BlobBuilder : typeof MSBlobBuilder !== 'undefined'\n ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined'\n ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n/**\n * Shim for\n * [`URL.createObjectURL()`](https://developer.mozilla.org/en-US/docs/Web/API/URL.createObjectURL)\n * to support browsers that only have the prefixed\n * `webkitURL` (e.g. Android <4.4).\n *\n * Example:\n *\n * ```js\n * var myUrl = blobUtil.createObjectURL(blob);\n * ```\n *\n * @param blob\n * @returns url\n */\nfunction createObjectURL(blob) {\n return (typeof URL !== 'undefined' ? URL : webkitURL).createObjectURL(blob);\n}\n/**\n * Shim for\n * [`URL.revokeObjectURL()`](https://developer.mozilla.org/en-US/docs/Web/API/URL.revokeObjectURL)\n * to support browsers that only have the prefixed\n * `webkitURL` (e.g. Android <4.4).\n *\n * Example:\n *\n * ```js\n * blobUtil.revokeObjectURL(myUrl);\n * ```\n *\n * @param url\n */\nfunction revokeObjectURL(url) {\n return (typeof URL !== 'undefined' ? URL : webkitURL).revokeObjectURL(url);\n}\n/**\n * Convert a `Blob` to a binary string.\n *\n * Example:\n *\n * ```js\n * blobUtil.blobToBinaryString(blob).then(function (binaryString) {\n * // success\n * }).catch(function (err) {\n * // error\n * });\n * ```\n *\n * @param blob\n * @returns Promise that resolves with the binary string\n */\nfunction blobToBinaryString(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n var hasBinaryString = typeof reader.readAsBinaryString === 'function';\n reader.onloadend = function () {\n var result = reader.result || '';\n if (hasBinaryString) {\n return resolve(result);\n }\n resolve(arrayBufferToBinaryString(result));\n };\n reader.onerror = reject;\n if (hasBinaryString) {\n reader.readAsBinaryString(blob);\n }\n else {\n reader.readAsArrayBuffer(blob);\n }\n });\n}\n/**\n * Convert a base64-encoded string to a `Blob`.\n *\n * Example:\n *\n * ```js\n * var blob = blobUtil.base64StringToBlob(base64String);\n * ```\n * @param base64 - base64-encoded string\n * @param type - the content type (optional)\n * @returns Blob\n */\nfunction base64StringToBlob(base64, type) {\n var parts = [binaryStringToArrayBuffer(atob(base64))];\n return type ? createBlob(parts, { type: type }) : createBlob(parts);\n}\n/**\n * Convert a binary string to a `Blob`.\n *\n * Example:\n *\n * ```js\n * var blob = blobUtil.binaryStringToBlob(binaryString);\n * ```\n *\n * @param binary - binary string\n * @param type - the content type (optional)\n * @returns Blob\n */\nfunction binaryStringToBlob(binary, type) {\n return base64StringToBlob(btoa(binary), type);\n}\n/**\n * Convert a `Blob` to a binary string.\n *\n * Example:\n *\n * ```js\n * blobUtil.blobToBase64String(blob).then(function (base64String) {\n * // success\n * }).catch(function (err) {\n * // error\n * });\n * ```\n *\n * @param blob\n * @returns Promise that resolves with the binary string\n */\nfunction blobToBase64String(blob) {\n return blobToBinaryString(blob).then(btoa);\n}\n/**\n * Convert a data URL string\n * (e.g. `'data:image/png;base64,iVBORw0KG...'`)\n * to a `Blob`.\n *\n * Example:\n *\n * ```js\n * var blob = blobUtil.dataURLToBlob(dataURL);\n * ```\n *\n * @param dataURL - dataURL-encoded string\n * @returns Blob\n */\nfunction dataURLToBlob(dataURL) {\n var type = dataURL.match(/data:([^;]+)/)[1];\n var base64 = dataURL.replace(/^[^,]+,/, '');\n var buff = binaryStringToArrayBuffer(atob(base64));\n return createBlob([buff], { type: type });\n}\n/**\n * Convert a `Blob` to a data URL string\n * (e.g. `'data:image/png;base64,iVBORw0KG...'`).\n *\n * Example:\n *\n * ```js\n * var dataURL = blobUtil.blobToDataURL(blob);\n * ```\n *\n * @param blob\n * @returns Promise that resolves with the data URL string\n */\nfunction blobToDataURL(blob) {\n return blobToBase64String(blob).then(function (base64String) {\n return 'data:' + blob.type + ';base64,' + base64String;\n });\n}\n/**\n * Convert an image's `src` URL to a data URL by loading the image and painting\n * it to a `canvas`.\n *\n * Note: this will coerce the image to the desired content type, and it\n * will only paint the first frame of an animated GIF.\n *\n * Examples:\n *\n * ```js\n * blobUtil.imgSrcToDataURL('http://mysite.com/img.png').then(function (dataURL) {\n * // success\n * }).catch(function (err) {\n * // error\n * });\n * ```\n *\n * ```js\n * blobUtil.imgSrcToDataURL('http://some-other-site.com/img.jpg', 'image/jpeg',\n * 'Anonymous', 1.0).then(function (dataURL) {\n * // success\n * }).catch(function (err) {\n * // error\n * });\n * ```\n *\n * @param src - image src\n * @param type - the content type (optional, defaults to 'image/png')\n * @param crossOrigin - for CORS-enabled images, set this to\n * 'Anonymous' to avoid \"tainted canvas\" errors\n * @param quality - a number between 0 and 1 indicating image quality\n * if the requested type is 'image/jpeg' or 'image/webp'\n * @returns Promise that resolves with the data URL string\n */\nfunction imgSrcToDataURL(src, type, crossOrigin, quality) {\n type = type || 'image/png';\n return loadImage(src, crossOrigin).then(imgToCanvas).then(function (canvas) {\n return canvas.toDataURL(type, quality);\n });\n}\n/**\n * Convert a `canvas` to a `Blob`.\n *\n * Examples:\n *\n * ```js\n * blobUtil.canvasToBlob(canvas).then(function (blob) {\n * // success\n * }).catch(function (err) {\n * // error\n * });\n * ```\n *\n * Most browsers support converting a canvas to both `'image/png'` and `'image/jpeg'`. You may\n * also want to try `'image/webp'`, which will work in some browsers like Chrome (and in other browsers, will just fall back to `'image/png'`):\n *\n * ```js\n * blobUtil.canvasToBlob(canvas, 'image/webp').then(function (blob) {\n * // success\n * }).catch(function (err) {\n * // error\n * });\n * ```\n *\n * @param canvas - HTMLCanvasElement\n * @param type - the content type (optional, defaults to 'image/png')\n * @param quality - a number between 0 and 1 indicating image quality\n * if the requested type is 'image/jpeg' or 'image/webp'\n * @returns Promise that resolves with the `Blob`\n */\nfunction canvasToBlob(canvas, type, quality) {\n if (typeof canvas.toBlob === 'function') {\n return new Promise(function (resolve) {\n canvas.toBlob(resolve, type, quality);\n });\n }\n return Promise.resolve(dataURLToBlob(canvas.toDataURL(type, quality)));\n}\n/**\n * Convert an image's `src` URL to a `Blob` by loading the image and painting\n * it to a `canvas`.\n *\n * Note: this will coerce the image to the desired content type, and it\n * will only paint the first frame of an animated GIF.\n *\n * Examples:\n *\n * ```js\n * blobUtil.imgSrcToBlob('http://mysite.com/img.png').then(function (blob) {\n * // success\n * }).catch(function (err) {\n * // error\n * });\n * ```\n *\n * ```js\n * blobUtil.imgSrcToBlob('http://some-other-site.com/img.jpg', 'image/jpeg',\n * 'Anonymous', 1.0).then(function (blob) {\n * // success\n * }).catch(function (err) {\n * // error\n * });\n * ```\n *\n * @param src - image src\n * @param type - the content type (optional, defaults to 'image/png')\n * @param crossOrigin - for CORS-enabled images, set this to\n * 'Anonymous' to avoid \"tainted canvas\" errors\n * @param quality - a number between 0 and 1 indicating image quality\n * if the requested type is 'image/jpeg' or 'image/webp'\n * @returns Promise that resolves with the `Blob`\n */\nfunction imgSrcToBlob(src, type, crossOrigin, quality) {\n type = type || 'image/png';\n return loadImage(src, crossOrigin).then(imgToCanvas).then(function (canvas) {\n return canvasToBlob(canvas, type, quality);\n });\n}\n/**\n * Convert an `ArrayBuffer` to a `Blob`.\n *\n * Example:\n *\n * ```js\n * var blob = blobUtil.arrayBufferToBlob(arrayBuff, 'audio/mpeg');\n * ```\n *\n * @param buffer\n * @param type - the content type (optional)\n * @returns Blob\n */\nfunction arrayBufferToBlob(buffer, type) {\n return createBlob([buffer], type);\n}\n/**\n * Convert a `Blob` to an `ArrayBuffer`.\n *\n * Example:\n *\n * ```js\n * blobUtil.blobToArrayBuffer(blob).then(function (arrayBuff) {\n * // success\n * }).catch(function (err) {\n * // error\n * });\n * ```\n *\n * @param blob\n * @returns Promise that resolves with the `ArrayBuffer`\n */\nfunction blobToArrayBuffer(blob) {\n return new Promise(function (resolve, reject) {\n var reader = new FileReader();\n reader.onloadend = function () {\n var result = reader.result || new ArrayBuffer(0);\n resolve(result);\n };\n reader.onerror = reject;\n reader.readAsArrayBuffer(blob);\n });\n}\n/**\n * Convert an `ArrayBuffer` to a binary string.\n *\n * Example:\n *\n * ```js\n * var myString = blobUtil.arrayBufferToBinaryString(arrayBuff)\n * ```\n *\n * @param buffer - array buffer\n * @returns binary string\n */\nfunction arrayBufferToBinaryString(buffer) {\n var binary = '';\n var bytes = new Uint8Array(buffer);\n var length = bytes.byteLength;\n var i = -1;\n while (++i < length) {\n binary += String.fromCharCode(bytes[i]);\n }\n return binary;\n}\n/**\n * Convert a binary string to an `ArrayBuffer`.\n *\n * ```js\n * var myBuffer = blobUtil.binaryStringToArrayBuffer(binaryString)\n * ```\n *\n * @param binary - binary string\n * @returns array buffer\n */\nfunction binaryStringToArrayBuffer(binary) {\n var length = binary.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n var i = -1;\n while (++i < length) {\n arr[i] = binary.charCodeAt(i);\n }\n return buf;\n}\n\nexport { createBlob, createObjectURL, revokeObjectURL, blobToBinaryString, base64StringToBlob, binaryStringToBlob, blobToBase64String, dataURLToBlob, blobToDataURL, imgSrcToDataURL, canvasToBlob, imgSrcToBlob, arrayBufferToBlob, blobToArrayBuffer, arrayBufferToBinaryString, binaryStringToArrayBuffer };\n","/*!\n * vuex v3.6.2\n * (c) 2021 Evan You\n * @license MIT\n */\nfunction applyMixin (Vue) {\n var version = Number(Vue.version.split('.')[0]);\n\n if (version >= 2) {\n Vue.mixin({ beforeCreate: vuexInit });\n } else {\n // override init and inject vuex init procedure\n // for 1.x backwards compatibility.\n var _init = Vue.prototype._init;\n Vue.prototype._init = function (options) {\n if ( options === void 0 ) options = {};\n\n options.init = options.init\n ? [vuexInit].concat(options.init)\n : vuexInit;\n _init.call(this, options);\n };\n }\n\n /**\n * Vuex init hook, injected into each instances init hooks list.\n */\n\n function vuexInit () {\n var options = this.$options;\n // store injection\n if (options.store) {\n this.$store = typeof options.store === 'function'\n ? options.store()\n : options.store;\n } else if (options.parent && options.parent.$store) {\n this.$store = options.parent.$store;\n }\n }\n}\n\nvar target = typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined'\n ? global\n : {};\nvar devtoolHook = target.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\nfunction devtoolPlugin (store) {\n if (!devtoolHook) { return }\n\n store._devtoolHook = devtoolHook;\n\n devtoolHook.emit('vuex:init', store);\n\n devtoolHook.on('vuex:travel-to-state', function (targetState) {\n store.replaceState(targetState);\n });\n\n store.subscribe(function (mutation, state) {\n devtoolHook.emit('vuex:mutation', mutation, state);\n }, { prepend: true });\n\n store.subscribeAction(function (action, state) {\n devtoolHook.emit('vuex:action', action, state);\n }, { prepend: true });\n}\n\n/**\n * Get the first item that pass the test\n * by second argument function\n *\n * @param {Array} list\n * @param {Function} f\n * @return {*}\n */\nfunction find (list, f) {\n return list.filter(f)[0]\n}\n\n/**\n * Deep copy the given object considering circular structure.\n * This function caches all nested objects and its copies.\n * If it detects circular structure, use cached copy to avoid infinite loop.\n *\n * @param {*} obj\n * @param {Array<Object>} cache\n * @return {*}\n */\nfunction deepCopy (obj, cache) {\n if ( cache === void 0 ) cache = [];\n\n // just return if obj is immutable value\n if (obj === null || typeof obj !== 'object') {\n return obj\n }\n\n // if obj is hit, it is in circular structure\n var hit = find(cache, function (c) { return c.original === obj; });\n if (hit) {\n return hit.copy\n }\n\n var copy = Array.isArray(obj) ? [] : {};\n // put the copy into cache at first\n // because we want to refer it in recursive deepCopy\n cache.push({\n original: obj,\n copy: copy\n });\n\n Object.keys(obj).forEach(function (key) {\n copy[key] = deepCopy(obj[key], cache);\n });\n\n return copy\n}\n\n/**\n * forEach for object\n */\nfunction forEachValue (obj, fn) {\n Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });\n}\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isPromise (val) {\n return val && typeof val.then === 'function'\n}\n\nfunction assert (condition, msg) {\n if (!condition) { throw new Error((\"[vuex] \" + msg)) }\n}\n\nfunction partial (fn, arg) {\n return function () {\n return fn(arg)\n }\n}\n\n// Base data struct for store's module, package with some attribute and method\nvar Module = function Module (rawModule, runtime) {\n this.runtime = runtime;\n // Store some children item\n this._children = Object.create(null);\n // Store the origin module object which passed by programmer\n this._rawModule = rawModule;\n var rawState = rawModule.state;\n\n // Store the origin module's state\n this.state = (typeof rawState === 'function' ? rawState() : rawState) || {};\n};\n\nvar prototypeAccessors = { namespaced: { configurable: true } };\n\nprototypeAccessors.namespaced.get = function () {\n return !!this._rawModule.namespaced\n};\n\nModule.prototype.addChild = function addChild (key, module) {\n this._children[key] = module;\n};\n\nModule.prototype.removeChild = function removeChild (key) {\n delete this._children[key];\n};\n\nModule.prototype.getChild = function getChild (key) {\n return this._children[key]\n};\n\nModule.prototype.hasChild = function hasChild (key) {\n return key in this._children\n};\n\nModule.prototype.update = function update (rawModule) {\n this._rawModule.namespaced = rawModule.namespaced;\n if (rawModule.actions) {\n this._rawModule.actions = rawModule.actions;\n }\n if (rawModule.mutations) {\n this._rawModule.mutations = rawModule.mutations;\n }\n if (rawModule.getters) {\n this._rawModule.getters = rawModule.getters;\n }\n};\n\nModule.prototype.forEachChild = function forEachChild (fn) {\n forEachValue(this._children, fn);\n};\n\nModule.prototype.forEachGetter = function forEachGetter (fn) {\n if (this._rawModule.getters) {\n forEachValue(this._rawModule.getters, fn);\n }\n};\n\nModule.prototype.forEachAction = function forEachAction (fn) {\n if (this._rawModule.actions) {\n forEachValue(this._rawModule.actions, fn);\n }\n};\n\nModule.prototype.forEachMutation = function forEachMutation (fn) {\n if (this._rawModule.mutations) {\n forEachValue(this._rawModule.mutations, fn);\n }\n};\n\nObject.defineProperties( Module.prototype, prototypeAccessors );\n\nvar ModuleCollection = function ModuleCollection (rawRootModule) {\n // register root module (Vuex.Store options)\n this.register([], rawRootModule, false);\n};\n\nModuleCollection.prototype.get = function get (path) {\n return path.reduce(function (module, key) {\n return module.getChild(key)\n }, this.root)\n};\n\nModuleCollection.prototype.getNamespace = function getNamespace (path) {\n var module = this.root;\n return path.reduce(function (namespace, key) {\n module = module.getChild(key);\n return namespace + (module.namespaced ? key + '/' : '')\n }, '')\n};\n\nModuleCollection.prototype.update = function update$1 (rawRootModule) {\n update([], this.root, rawRootModule);\n};\n\nModuleCollection.prototype.register = function register (path, rawModule, runtime) {\n var this$1 = this;\n if ( runtime === void 0 ) runtime = true;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, rawModule);\n }\n\n var newModule = new Module(rawModule, runtime);\n if (path.length === 0) {\n this.root = newModule;\n } else {\n var parent = this.get(path.slice(0, -1));\n parent.addChild(path[path.length - 1], newModule);\n }\n\n // register nested modules\n if (rawModule.modules) {\n forEachValue(rawModule.modules, function (rawChildModule, key) {\n this$1.register(path.concat(key), rawChildModule, runtime);\n });\n }\n};\n\nModuleCollection.prototype.unregister = function unregister (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n var child = parent.getChild(key);\n\n if (!child) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to unregister module '\" + key + \"', which is \" +\n \"not registered\"\n );\n }\n return\n }\n\n if (!child.runtime) {\n return\n }\n\n parent.removeChild(key);\n};\n\nModuleCollection.prototype.isRegistered = function isRegistered (path) {\n var parent = this.get(path.slice(0, -1));\n var key = path[path.length - 1];\n\n if (parent) {\n return parent.hasChild(key)\n }\n\n return false\n};\n\nfunction update (path, targetModule, newModule) {\n if ((process.env.NODE_ENV !== 'production')) {\n assertRawModule(path, newModule);\n }\n\n // update target module\n targetModule.update(newModule);\n\n // update nested modules\n if (newModule.modules) {\n for (var key in newModule.modules) {\n if (!targetModule.getChild(key)) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\n \"[vuex] trying to add a new module '\" + key + \"' on hot reloading, \" +\n 'manual reload is needed'\n );\n }\n return\n }\n update(\n path.concat(key),\n targetModule.getChild(key),\n newModule.modules[key]\n );\n }\n }\n}\n\nvar functionAssert = {\n assert: function (value) { return typeof value === 'function'; },\n expected: 'function'\n};\n\nvar objectAssert = {\n assert: function (value) { return typeof value === 'function' ||\n (typeof value === 'object' && typeof value.handler === 'function'); },\n expected: 'function or object with \"handler\" function'\n};\n\nvar assertTypes = {\n getters: functionAssert,\n mutations: functionAssert,\n actions: objectAssert\n};\n\nfunction assertRawModule (path, rawModule) {\n Object.keys(assertTypes).forEach(function (key) {\n if (!rawModule[key]) { return }\n\n var assertOptions = assertTypes[key];\n\n forEachValue(rawModule[key], function (value, type) {\n assert(\n assertOptions.assert(value),\n makeAssertionMessage(path, key, type, value, assertOptions.expected)\n );\n });\n });\n}\n\nfunction makeAssertionMessage (path, key, type, value, expected) {\n var buf = key + \" should be \" + expected + \" but \\\"\" + key + \".\" + type + \"\\\"\";\n if (path.length > 0) {\n buf += \" in module \\\"\" + (path.join('.')) + \"\\\"\";\n }\n buf += \" is \" + (JSON.stringify(value)) + \".\";\n return buf\n}\n\nvar Vue; // bind on install\n\nvar Store = function Store (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #731\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Vue, \"must call Vue.use(Vuex) before creating a store instance.\");\n assert(typeof Promise !== 'undefined', \"vuex requires a Promise polyfill in this browser.\");\n assert(this instanceof Store, \"store must be called with the new operator.\");\n }\n\n var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];\n var strict = options.strict; if ( strict === void 0 ) strict = false;\n\n // store internal state\n this._committing = false;\n this._actions = Object.create(null);\n this._actionSubscribers = [];\n this._mutations = Object.create(null);\n this._wrappedGetters = Object.create(null);\n this._modules = new ModuleCollection(options);\n this._modulesNamespaceMap = Object.create(null);\n this._subscribers = [];\n this._watcherVM = new Vue();\n this._makeLocalGettersCache = Object.create(null);\n\n // bind commit and dispatch to self\n var store = this;\n var ref = this;\n var dispatch = ref.dispatch;\n var commit = ref.commit;\n this.dispatch = function boundDispatch (type, payload) {\n return dispatch.call(store, type, payload)\n };\n this.commit = function boundCommit (type, payload, options) {\n return commit.call(store, type, payload, options)\n };\n\n // strict mode\n this.strict = strict;\n\n var state = this._modules.root.state;\n\n // init root module.\n // this also recursively registers all sub-modules\n // and collects all module getters inside this._wrappedGetters\n installModule(this, state, [], this._modules.root);\n\n // initialize the store vm, which is responsible for the reactivity\n // (also registers _wrappedGetters as computed properties)\n resetStoreVM(this, state);\n\n // apply plugins\n plugins.forEach(function (plugin) { return plugin(this$1); });\n\n var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;\n if (useDevtools) {\n devtoolPlugin(this);\n }\n};\n\nvar prototypeAccessors$1 = { state: { configurable: true } };\n\nprototypeAccessors$1.state.get = function () {\n return this._vm._data.$$state\n};\n\nprototypeAccessors$1.state.set = function (v) {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(false, \"use store.replaceState() to explicit replace store state.\");\n }\n};\n\nStore.prototype.commit = function commit (_type, _payload, _options) {\n var this$1 = this;\n\n // check object-style commit\n var ref = unifyObjectStyle(_type, _payload, _options);\n var type = ref.type;\n var payload = ref.payload;\n var options = ref.options;\n\n var mutation = { type: type, payload: payload };\n var entry = this._mutations[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown mutation type: \" + type));\n }\n return\n }\n this._withCommit(function () {\n entry.forEach(function commitIterator (handler) {\n handler(payload);\n });\n });\n\n this._subscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .forEach(function (sub) { return sub(mutation, this$1.state); });\n\n if (\n (process.env.NODE_ENV !== 'production') &&\n options && options.silent\n ) {\n console.warn(\n \"[vuex] mutation type: \" + type + \". Silent option has been removed. \" +\n 'Use the filter functionality in the vue-devtools'\n );\n }\n};\n\nStore.prototype.dispatch = function dispatch (_type, _payload) {\n var this$1 = this;\n\n // check object-style dispatch\n var ref = unifyObjectStyle(_type, _payload);\n var type = ref.type;\n var payload = ref.payload;\n\n var action = { type: type, payload: payload };\n var entry = this._actions[type];\n if (!entry) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] unknown action type: \" + type));\n }\n return\n }\n\n try {\n this._actionSubscribers\n .slice() // shallow copy to prevent iterator invalidation if subscriber synchronously calls unsubscribe\n .filter(function (sub) { return sub.before; })\n .forEach(function (sub) { return sub.before(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in before action subscribers: \");\n console.error(e);\n }\n }\n\n var result = entry.length > 1\n ? Promise.all(entry.map(function (handler) { return handler(payload); }))\n : entry[0](payload);\n\n return new Promise(function (resolve, reject) {\n result.then(function (res) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.after; })\n .forEach(function (sub) { return sub.after(action, this$1.state); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in after action subscribers: \");\n console.error(e);\n }\n }\n resolve(res);\n }, function (error) {\n try {\n this$1._actionSubscribers\n .filter(function (sub) { return sub.error; })\n .forEach(function (sub) { return sub.error(action, this$1.state, error); });\n } catch (e) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.warn(\"[vuex] error in error action subscribers: \");\n console.error(e);\n }\n }\n reject(error);\n });\n })\n};\n\nStore.prototype.subscribe = function subscribe (fn, options) {\n return genericSubscribe(fn, this._subscribers, options)\n};\n\nStore.prototype.subscribeAction = function subscribeAction (fn, options) {\n var subs = typeof fn === 'function' ? { before: fn } : fn;\n return genericSubscribe(subs, this._actionSubscribers, options)\n};\n\nStore.prototype.watch = function watch (getter, cb, options) {\n var this$1 = this;\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof getter === 'function', \"store.watch only accepts a function.\");\n }\n return this._watcherVM.$watch(function () { return getter(this$1.state, this$1.getters); }, cb, options)\n};\n\nStore.prototype.replaceState = function replaceState (state) {\n var this$1 = this;\n\n this._withCommit(function () {\n this$1._vm._data.$$state = state;\n });\n};\n\nStore.prototype.registerModule = function registerModule (path, rawModule, options) {\n if ( options === void 0 ) options = {};\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n assert(path.length > 0, 'cannot register the root module by using registerModule.');\n }\n\n this._modules.register(path, rawModule);\n installModule(this, this.state, path, this._modules.get(path), options.preserveState);\n // reset store to update getters...\n resetStoreVM(this, this.state);\n};\n\nStore.prototype.unregisterModule = function unregisterModule (path) {\n var this$1 = this;\n\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n this._modules.unregister(path);\n this._withCommit(function () {\n var parentState = getNestedState(this$1.state, path.slice(0, -1));\n Vue.delete(parentState, path[path.length - 1]);\n });\n resetStore(this);\n};\n\nStore.prototype.hasModule = function hasModule (path) {\n if (typeof path === 'string') { path = [path]; }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(Array.isArray(path), \"module path must be a string or an Array.\");\n }\n\n return this._modules.isRegistered(path)\n};\n\nStore.prototype.hotUpdate = function hotUpdate (newOptions) {\n this._modules.update(newOptions);\n resetStore(this, true);\n};\n\nStore.prototype._withCommit = function _withCommit (fn) {\n var committing = this._committing;\n this._committing = true;\n fn();\n this._committing = committing;\n};\n\nObject.defineProperties( Store.prototype, prototypeAccessors$1 );\n\nfunction genericSubscribe (fn, subs, options) {\n if (subs.indexOf(fn) < 0) {\n options && options.prepend\n ? subs.unshift(fn)\n : subs.push(fn);\n }\n return function () {\n var i = subs.indexOf(fn);\n if (i > -1) {\n subs.splice(i, 1);\n }\n }\n}\n\nfunction resetStore (store, hot) {\n store._actions = Object.create(null);\n store._mutations = Object.create(null);\n store._wrappedGetters = Object.create(null);\n store._modulesNamespaceMap = Object.create(null);\n var state = store.state;\n // init all modules\n installModule(store, state, [], store._modules.root, true);\n // reset vm\n resetStoreVM(store, state, hot);\n}\n\nfunction resetStoreVM (store, state, hot) {\n var oldVm = store._vm;\n\n // bind store public getters\n store.getters = {};\n // reset local getters cache\n store._makeLocalGettersCache = Object.create(null);\n var wrappedGetters = store._wrappedGetters;\n var computed = {};\n forEachValue(wrappedGetters, function (fn, key) {\n // use computed to leverage its lazy-caching mechanism\n // direct inline function use will lead to closure preserving oldVm.\n // using partial to return function with only arguments preserved in closure environment.\n computed[key] = partial(fn, store);\n Object.defineProperty(store.getters, key, {\n get: function () { return store._vm[key]; },\n enumerable: true // for local getters\n });\n });\n\n // use a Vue instance to store the state tree\n // suppress warnings just in case the user has added\n // some funky global mixins\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n store._vm = new Vue({\n data: {\n $$state: state\n },\n computed: computed\n });\n Vue.config.silent = silent;\n\n // enable strict mode for new vm\n if (store.strict) {\n enableStrictMode(store);\n }\n\n if (oldVm) {\n if (hot) {\n // dispatch changes in all subscribed watchers\n // to force getter re-evaluation for hot reloading.\n store._withCommit(function () {\n oldVm._data.$$state = null;\n });\n }\n Vue.nextTick(function () { return oldVm.$destroy(); });\n }\n}\n\nfunction installModule (store, rootState, path, module, hot) {\n var isRoot = !path.length;\n var namespace = store._modules.getNamespace(path);\n\n // register in namespace map\n if (module.namespaced) {\n if (store._modulesNamespaceMap[namespace] && (process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate namespace \" + namespace + \" for the namespaced module \" + (path.join('/'))));\n }\n store._modulesNamespaceMap[namespace] = module;\n }\n\n // set state\n if (!isRoot && !hot) {\n var parentState = getNestedState(rootState, path.slice(0, -1));\n var moduleName = path[path.length - 1];\n store._withCommit(function () {\n if ((process.env.NODE_ENV !== 'production')) {\n if (moduleName in parentState) {\n console.warn(\n (\"[vuex] state field \\\"\" + moduleName + \"\\\" was overridden by a module with the same name at \\\"\" + (path.join('.')) + \"\\\"\")\n );\n }\n }\n Vue.set(parentState, moduleName, module.state);\n });\n }\n\n var local = module.context = makeLocalContext(store, namespace, path);\n\n module.forEachMutation(function (mutation, key) {\n var namespacedType = namespace + key;\n registerMutation(store, namespacedType, mutation, local);\n });\n\n module.forEachAction(function (action, key) {\n var type = action.root ? key : namespace + key;\n var handler = action.handler || action;\n registerAction(store, type, handler, local);\n });\n\n module.forEachGetter(function (getter, key) {\n var namespacedType = namespace + key;\n registerGetter(store, namespacedType, getter, local);\n });\n\n module.forEachChild(function (child, key) {\n installModule(store, rootState, path.concat(key), child, hot);\n });\n}\n\n/**\n * make localized dispatch, commit, getters and state\n * if there is no namespace, just use root ones\n */\nfunction makeLocalContext (store, namespace, path) {\n var noNamespace = namespace === '';\n\n var local = {\n dispatch: noNamespace ? store.dispatch : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._actions[type]) {\n console.error((\"[vuex] unknown local action type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n return store.dispatch(type, payload)\n },\n\n commit: noNamespace ? store.commit : function (_type, _payload, _options) {\n var args = unifyObjectStyle(_type, _payload, _options);\n var payload = args.payload;\n var options = args.options;\n var type = args.type;\n\n if (!options || !options.root) {\n type = namespace + type;\n if ((process.env.NODE_ENV !== 'production') && !store._mutations[type]) {\n console.error((\"[vuex] unknown local mutation type: \" + (args.type) + \", global type: \" + type));\n return\n }\n }\n\n store.commit(type, payload, options);\n }\n };\n\n // getters and state object must be gotten lazily\n // because they will be changed by vm update\n Object.defineProperties(local, {\n getters: {\n get: noNamespace\n ? function () { return store.getters; }\n : function () { return makeLocalGetters(store, namespace); }\n },\n state: {\n get: function () { return getNestedState(store.state, path); }\n }\n });\n\n return local\n}\n\nfunction makeLocalGetters (store, namespace) {\n if (!store._makeLocalGettersCache[namespace]) {\n var gettersProxy = {};\n var splitPos = namespace.length;\n Object.keys(store.getters).forEach(function (type) {\n // skip if the target getter is not match this namespace\n if (type.slice(0, splitPos) !== namespace) { return }\n\n // extract local getter type\n var localType = type.slice(splitPos);\n\n // Add a port to the getters proxy.\n // Define as getter property because\n // we do not want to evaluate the getters in this time.\n Object.defineProperty(gettersProxy, localType, {\n get: function () { return store.getters[type]; },\n enumerable: true\n });\n });\n store._makeLocalGettersCache[namespace] = gettersProxy;\n }\n\n return store._makeLocalGettersCache[namespace]\n}\n\nfunction registerMutation (store, type, handler, local) {\n var entry = store._mutations[type] || (store._mutations[type] = []);\n entry.push(function wrappedMutationHandler (payload) {\n handler.call(store, local.state, payload);\n });\n}\n\nfunction registerAction (store, type, handler, local) {\n var entry = store._actions[type] || (store._actions[type] = []);\n entry.push(function wrappedActionHandler (payload) {\n var res = handler.call(store, {\n dispatch: local.dispatch,\n commit: local.commit,\n getters: local.getters,\n state: local.state,\n rootGetters: store.getters,\n rootState: store.state\n }, payload);\n if (!isPromise(res)) {\n res = Promise.resolve(res);\n }\n if (store._devtoolHook) {\n return res.catch(function (err) {\n store._devtoolHook.emit('vuex:error', err);\n throw err\n })\n } else {\n return res\n }\n });\n}\n\nfunction registerGetter (store, type, rawGetter, local) {\n if (store._wrappedGetters[type]) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error((\"[vuex] duplicate getter key: \" + type));\n }\n return\n }\n store._wrappedGetters[type] = function wrappedGetter (store) {\n return rawGetter(\n local.state, // local state\n local.getters, // local getters\n store.state, // root state\n store.getters // root getters\n )\n };\n}\n\nfunction enableStrictMode (store) {\n store._vm.$watch(function () { return this._data.$$state }, function () {\n if ((process.env.NODE_ENV !== 'production')) {\n assert(store._committing, \"do not mutate vuex store state outside mutation handlers.\");\n }\n }, { deep: true, sync: true });\n}\n\nfunction getNestedState (state, path) {\n return path.reduce(function (state, key) { return state[key]; }, state)\n}\n\nfunction unifyObjectStyle (type, payload, options) {\n if (isObject(type) && type.type) {\n options = payload;\n payload = type;\n type = type.type;\n }\n\n if ((process.env.NODE_ENV !== 'production')) {\n assert(typeof type === 'string', (\"expects string as the type, but found \" + (typeof type) + \".\"));\n }\n\n return { type: type, payload: payload, options: options }\n}\n\nfunction install (_Vue) {\n if (Vue && _Vue === Vue) {\n if ((process.env.NODE_ENV !== 'production')) {\n console.error(\n '[vuex] already installed. Vue.use(Vuex) should be called only once.'\n );\n }\n return\n }\n Vue = _Vue;\n applyMixin(Vue);\n}\n\n/**\n * Reduce the code which written in Vue.js for getting the state.\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} states # Object's item can be a function which accept state and getters for param, you can do something for state and getters in it.\n * @param {Object}\n */\nvar mapState = normalizeNamespace(function (namespace, states) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(states)) {\n console.error('[vuex] mapState: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(states).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedState () {\n var state = this.$store.state;\n var getters = this.$store.getters;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapState', namespace);\n if (!module) {\n return\n }\n state = module.context.state;\n getters = module.context.getters;\n }\n return typeof val === 'function'\n ? val.call(this, state, getters)\n : state[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for committing the mutation\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} mutations # Object's item can be a function which accept `commit` function as the first param, it can accept another params. You can commit mutation and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapMutations = normalizeNamespace(function (namespace, mutations) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(mutations)) {\n console.error('[vuex] mapMutations: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(mutations).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedMutation () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // Get the commit method from store\n var commit = this.$store.commit;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapMutations', namespace);\n if (!module) {\n return\n }\n commit = module.context.commit;\n }\n return typeof val === 'function'\n ? val.apply(this, [commit].concat(args))\n : commit.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for getting the getters\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} getters\n * @return {Object}\n */\nvar mapGetters = normalizeNamespace(function (namespace, getters) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(getters)) {\n console.error('[vuex] mapGetters: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(getters).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n // The namespace has been mutated by normalizeNamespace\n val = namespace + val;\n res[key] = function mappedGetter () {\n if (namespace && !getModuleByNamespace(this.$store, 'mapGetters', namespace)) {\n return\n }\n if ((process.env.NODE_ENV !== 'production') && !(val in this.$store.getters)) {\n console.error((\"[vuex] unknown getter: \" + val));\n return\n }\n return this.$store.getters[val]\n };\n // mark vuex getter for devtools\n res[key].vuex = true;\n });\n return res\n});\n\n/**\n * Reduce the code which written in Vue.js for dispatch the action\n * @param {String} [namespace] - Module's namespace\n * @param {Object|Array} actions # Object's item can be a function which accept `dispatch` function as the first param, it can accept anthor params. You can dispatch action and do any other things in this function. specially, You need to pass anthor params from the mapped function.\n * @return {Object}\n */\nvar mapActions = normalizeNamespace(function (namespace, actions) {\n var res = {};\n if ((process.env.NODE_ENV !== 'production') && !isValidMap(actions)) {\n console.error('[vuex] mapActions: mapper parameter must be either an Array or an Object');\n }\n normalizeMap(actions).forEach(function (ref) {\n var key = ref.key;\n var val = ref.val;\n\n res[key] = function mappedAction () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n // get dispatch function from store\n var dispatch = this.$store.dispatch;\n if (namespace) {\n var module = getModuleByNamespace(this.$store, 'mapActions', namespace);\n if (!module) {\n return\n }\n dispatch = module.context.dispatch;\n }\n return typeof val === 'function'\n ? val.apply(this, [dispatch].concat(args))\n : dispatch.apply(this.$store, [val].concat(args))\n };\n });\n return res\n});\n\n/**\n * Rebinding namespace param for mapXXX function in special scoped, and return them by simple object\n * @param {String} namespace\n * @return {Object}\n */\nvar createNamespacedHelpers = function (namespace) { return ({\n mapState: mapState.bind(null, namespace),\n mapGetters: mapGetters.bind(null, namespace),\n mapMutations: mapMutations.bind(null, namespace),\n mapActions: mapActions.bind(null, namespace)\n}); };\n\n/**\n * Normalize the map\n * normalizeMap([1, 2, 3]) => [ { key: 1, val: 1 }, { key: 2, val: 2 }, { key: 3, val: 3 } ]\n * normalizeMap({a: 1, b: 2, c: 3}) => [ { key: 'a', val: 1 }, { key: 'b', val: 2 }, { key: 'c', val: 3 } ]\n * @param {Array|Object} map\n * @return {Object}\n */\nfunction normalizeMap (map) {\n if (!isValidMap(map)) {\n return []\n }\n return Array.isArray(map)\n ? map.map(function (key) { return ({ key: key, val: key }); })\n : Object.keys(map).map(function (key) { return ({ key: key, val: map[key] }); })\n}\n\n/**\n * Validate whether given map is valid or not\n * @param {*} map\n * @return {Boolean}\n */\nfunction isValidMap (map) {\n return Array.isArray(map) || isObject(map)\n}\n\n/**\n * Return a function expect two param contains namespace and map. it will normalize the namespace and then the param's function will handle the new namespace and the map.\n * @param {Function} fn\n * @return {Function}\n */\nfunction normalizeNamespace (fn) {\n return function (namespace, map) {\n if (typeof namespace !== 'string') {\n map = namespace;\n namespace = '';\n } else if (namespace.charAt(namespace.length - 1) !== '/') {\n namespace += '/';\n }\n return fn(namespace, map)\n }\n}\n\n/**\n * Search a special module from store by namespace. if module not exist, print error message.\n * @param {Object} store\n * @param {String} helper\n * @param {String} namespace\n * @return {Object}\n */\nfunction getModuleByNamespace (store, helper, namespace) {\n var module = store._modulesNamespaceMap[namespace];\n if ((process.env.NODE_ENV !== 'production') && !module) {\n console.error((\"[vuex] module namespace not found in \" + helper + \"(): \" + namespace));\n }\n return module\n}\n\n// Credits: borrowed code from fcomb/redux-logger\n\nfunction createLogger (ref) {\n if ( ref === void 0 ) ref = {};\n var collapsed = ref.collapsed; if ( collapsed === void 0 ) collapsed = true;\n var filter = ref.filter; if ( filter === void 0 ) filter = function (mutation, stateBefore, stateAfter) { return true; };\n var transformer = ref.transformer; if ( transformer === void 0 ) transformer = function (state) { return state; };\n var mutationTransformer = ref.mutationTransformer; if ( mutationTransformer === void 0 ) mutationTransformer = function (mut) { return mut; };\n var actionFilter = ref.actionFilter; if ( actionFilter === void 0 ) actionFilter = function (action, state) { return true; };\n var actionTransformer = ref.actionTransformer; if ( actionTransformer === void 0 ) actionTransformer = function (act) { return act; };\n var logMutations = ref.logMutations; if ( logMutations === void 0 ) logMutations = true;\n var logActions = ref.logActions; if ( logActions === void 0 ) logActions = true;\n var logger = ref.logger; if ( logger === void 0 ) logger = console;\n\n return function (store) {\n var prevState = deepCopy(store.state);\n\n if (typeof logger === 'undefined') {\n return\n }\n\n if (logMutations) {\n store.subscribe(function (mutation, state) {\n var nextState = deepCopy(state);\n\n if (filter(mutation, prevState, nextState)) {\n var formattedTime = getFormattedTime();\n var formattedMutation = mutationTransformer(mutation);\n var message = \"mutation \" + (mutation.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c prev state', 'color: #9E9E9E; font-weight: bold', transformer(prevState));\n logger.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation);\n logger.log('%c next state', 'color: #4CAF50; font-weight: bold', transformer(nextState));\n endMessage(logger);\n }\n\n prevState = nextState;\n });\n }\n\n if (logActions) {\n store.subscribeAction(function (action, state) {\n if (actionFilter(action, state)) {\n var formattedTime = getFormattedTime();\n var formattedAction = actionTransformer(action);\n var message = \"action \" + (action.type) + formattedTime;\n\n startMessage(logger, message, collapsed);\n logger.log('%c action', 'color: #03A9F4; font-weight: bold', formattedAction);\n endMessage(logger);\n }\n });\n }\n }\n}\n\nfunction startMessage (logger, message, collapsed) {\n var startMessage = collapsed\n ? logger.groupCollapsed\n : logger.group;\n\n // render\n try {\n startMessage.call(logger, message);\n } catch (e) {\n logger.log(message);\n }\n}\n\nfunction endMessage (logger) {\n try {\n logger.groupEnd();\n } catch (e) {\n logger.log('—— log end ——');\n }\n}\n\nfunction getFormattedTime () {\n var time = new Date();\n return (\" @ \" + (pad(time.getHours(), 2)) + \":\" + (pad(time.getMinutes(), 2)) + \":\" + (pad(time.getSeconds(), 2)) + \".\" + (pad(time.getMilliseconds(), 3)))\n}\n\nfunction repeat (str, times) {\n return (new Array(times + 1)).join(str)\n}\n\nfunction pad (num, maxLength) {\n return repeat('0', maxLength - num.toString().length) + num\n}\n\nvar index = {\n Store: Store,\n install: install,\n version: '3.6.2',\n mapState: mapState,\n mapMutations: mapMutations,\n mapGetters: mapGetters,\n mapActions: mapActions,\n createNamespacedHelpers: createNamespacedHelpers,\n createLogger: createLogger\n};\n\nexport default index;\nexport { Store, createLogger, createNamespacedHelpers, install, mapActions, mapGetters, mapMutations, mapState };\n","/**\n * This is a fork of Gravity Form's gformDeleteUploadedFile to enable us to pass the file directly and not worry about\n * indexes.\n */\nexport default function removeFileFromGFUploadedMeta(formId: string, fieldId: string, file: MOxieFile) {\n\tconst $ = window.jQuery;\n\n\tvar filesJson = $('#gform_uploaded_files_' + formId).val();\n\n\tif(filesJson){\n\t\t// @ts-ignore\n\t\tvar files = $.secureEvalJSON(filesJson);\n\t\tif(files) {\n\t\t\tvar inputName = \"input_\" + fieldId;\n\t\t\tvar $multfile = $(\"#gform_multifile_upload_\" + formId + \"_\" + fieldId );\n\n\t\t\tif( $multfile.length > 0 && files?.[inputName] ) {\n\t\t\t\tfor ( const [index, hiddenFileMeta] of Object.entries(files[inputName]) ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\thiddenFileMeta?.temp_filename?.indexOf(file.id) > 0\n\t\t\t\t\t\t|| hiddenFileMeta?.uploaded_filename === file.id\n\t\t\t\t\t) {\n\t\t\t\t\t\tdelete files[inputName][index];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfiles[inputName] = files[inputName].filter(Boolean);\n\n\t\t\t\tvar settings = $multfile.data('settings');\n\t\t\t\tvar max = settings.gf_vars.max_files;\n\t\t\t\t$(\"#\" + settings.gf_vars.message_id).html('');\n\t\t\t\tif(files[inputName].length < max)\n\t\t\t\t\twindow.gfMultiFileUploader.toggleDisabled(settings, false);\n\n\t\t\t} else {\n\t\t\t\tfiles[inputName] = [];\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\t$('#gform_uploaded_files_' + formId).val($.toJSON(files));\n\t\t}\n\t}\n}\n","import deleteFileFromHiddenGFInput from \"./deleteFileFromHiddenGFInput\";\nimport type {Store} from \"vuex\";\n\nconst $ = window.jQuery;\n\n// @ts-ignore\nexport default function replaceFile({ up, $store, formId, fieldId, existingFile, newFile } : { up: any, $store: Store<any>, formId: string, fieldId: string, existingFile: MOxieFile, newFile: MOxieFile }) : MOxieFile {\n\tup.replacingFile = true; // Set flag to prevent certain portions of FilesAdded from firing,\n\t\t\t\t\t\t\t// this flag is removed in the callback of FilesAdded as addFile is async.\n\n\tup.addFile(newFile);\n\n\t/* Remove original file from GF */\n\tconst currentFileEl = $(`[data-file-id=\"${existingFile?.id}\"]`);\n\n\tif (currentFileEl.length) {\n\t\tdeleteFileFromHiddenGFInput(formId, fieldId, existingFile);\n\t}\n\n\tnewFile = up.files[up.files.length - 1];\n\tnewFile.cropped = existingFile?.cropped;\n\tnewFile.addedDate = new Date(existingFile?.addedDate?.getTime() ?? Date.now());\n\n\t$store.commit('REPLACE_FILE', {\n\t\treplacedFile: existingFile,\n\t\tnewFile,\n\t});\n\n\t/* Remove original file. Ordering is important here as we need to do it after REPLACE_FILE */\n\tup.removeFile(existingFile?.id);\n\n\t/* Transfer original image and coords */\n\t$store.dispatch('transferResults', {\n\t\tcurrentFileId: existingFile?.id,\n\t\tnewFileId: newFile.id,\n\t})\n\n\t$store.dispatch('transferOriginal', {\n\t\tcurrentFileId: existingFile?.id,\n\t\tnewFileId: newFile.id,\n\t})\n\n\t/* Remove original file from Gravity Forms UI */\n\tconst fileIndexUI = $(`#${existingFile?.id}`).index();\n\tconst $field = $(\"#field_\" + formId + \"_\" + fieldId);\n\n\t$field.find(\".ginput_preview\").eq(fileIndexUI).remove();\n\n\treturn newFile;\n}\n","import type Plupload from \"plupload\";\n\nexport default function triggerUpload(up: Plupload.Uploader, file: MOxieFile) : void {\n\tfile.status = plupload.UPLOADING;\n\tup.trigger('UploadFile', file);\n\n\t/*\n\t * Help Plupload not get stuck in a funky state. Without this, crops after the first will\n\t * not upload\n\t */\n\tup.stop();\n\tup.start();\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// @ts-ignore\nimport {Cropper} from 'vue-advanced-cropper';\nimport Vue from 'vue';\nimport {canvasToBlob} from \"blob-util\";\nimport loadImage from 'blueimp-load-image';\nimport {mapState, mapGetters} from \"vuex\";\nimport deleteFileFromHiddenGFInput from \"./helpers/deleteFileFromHiddenGFInput\";\nimport replaceFile from \"./helpers/replaceFile\";\nimport triggerUpload from \"./helpers/triggerUpload\";\n\nconst $ = window.jQuery;\n\nVue.use(require('vue-shortkey'));\n\nexport default Vue.extend({\n\tname: \"GPFUPCropper\",\n\tprops: [\n\t\t'open',\n\t\t'file',\n\t\t'strings',\n\t\t'up',\n\t\t'formId',\n\t\t'fieldId',\n\t\t'cropRequired',\n\t\t'aspectRatio',\n\t\t'minWidth',\n\t\t'minHeight',\n\t],\n\tcomponents: {\n\t\tCropper\n\t},\n\tcomputed: {\n\t\tcropperOptions: function (): { [key: string]: any } {\n\t\t\t/**\n\t\t\t * Filter the options/properties that are sent to\n\t\t\t * [vue-advanced-cropper](https://www.npmjs.com/package/vue-advanced-cropper).\n\t\t\t *\n\t\t\t * @since 1.0-beta-2.0\n\t\t\t *\n\t\t\t * @param object \t\t\toptions Options to send to vue-advanced-cropper\n\t\t\t * @param int \tformId \t\tThe current form ID\n\t\t\t * @param int \tfieldId \tThe uploader field ID\n\t\t\t */\n\t\t\treturn window.gform.applyFilters('gpfup_cropper_options', {\n\t\t\t\tsrc: this.imgSrc,\n\t\t\t\tdefaultBoundaries: 'fit',\n\t\t\t\tminWidth: this.minWidth,\n\t\t\t\tminHeight: this.minHeight,\n\t\t\t\tdefaultSize: this.defaultSize(),\n\t\t\t\tdefaultPosition: this.defaultPosition(),\n\t\t\t\tdefaultTransforms: this.defaultTransforms(),\n\t\t\t\tstencilProps: this.stencilProps,\n\t\t\t\tenableRotate: true,\n\t\t\t}, this.formId, this.fieldId);\n\t\t},\n\t\tstripMetadata: function (): boolean {\n\t\t\t/**\n\t\t\t * Filter whether or not image metadata (EXIF) should be stripped from the image when uploaded.\n\t\t\t *\n\t\t\t * Disabling metadata is useful if you need to maintain original metadata such as DPI, camera\n\t\t\t * settings, etc.\n\t\t\t *\n\t\t\t * @since 1.0.4\n\t\t\t *\n\t\t\t * @param boolean \t\t\tstripMetadata Whether or not to strip metadata/EXIF of the image. Defaults to true.\n\t\t\t * @param int \tformId \t\t\tThe current form ID\n\t\t\t * @param int \tfieldId \t\tThe current uploader field ID\n\t\t\t */\n\t\t\treturn window.gform.applyFilters('gpfup_strip_image_metadata', true, this.formId, this.fieldId);\n\t\t},\n\t\timgSrc: function (): string {\n\t\t\treturn this.$store.getters.imgSrc;\n\t\t},\n\t\t...mapState({\n\t\t\tcurrentFile: state => state.editor.currentFile,\n\t\t}),\n\t\t...mapGetters([\n\t\t\t'currentImageIndex',\n\t\t]),\n\t\ttotalNumberOfFiles: function (): number {\n\t\t\treturn this.$store.getters.currentAddedFiles.length;\n\t\t},\n\t\tstencilProps: function (): { [prop: string]: any } {\n\t\t\tconst props = {};\n\n\t\t\tif (this.aspectRatio) {\n\t\t\t\tprops.aspectRatio = this.aspectRatio;\n\t\t\t}\n\n\t\t\treturn props;\n\t\t}\n\t},\n\tmethods: {\n\t\tdefaultSize: function (): { width: number, height: number } {\n\t\t\treturn this.$store.getters.imgSize;\n\t\t},\n\t\toriginalSize: function (): { width: number, height: number } {\n\t\t\treturn this.$store.getters.imgOriginalSize;\n\t\t},\n\t\tdefaultPosition: function (): { top: number, left: number } {\n\t\t\treturn this.$store.getters.imgPos;\n\t\t},\n\t\tdefaultTransforms: function (): ImageTransforms {\n\t\t\treturn this.$store.getters.imgTransforms;\n\t\t},\n\t\trotate(angle: number) {\n\t\t\tif (!this.cropperOptions.enableRotate) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst cropper = this.$refs.cropper as any;\n\n\t\t\tcropper.rotate(angle, {\n\t\t\t\ttransitions: false\n\t\t\t});\n\n\t\t\tcropper.setCoordinates({\n\t\t\t\tleft: 0,\n\t\t\t\ttop: 0,\n\t\t\t\twidth: angle % 180 === 0 ? this.originalSize().width : this.originalSize().height,\n\t\t\t\theight: angle % 180 === 0 ? this.originalSize().height : this.originalSize().width,\n\t\t\t}, {\n\t\t\t\ttransitions: false\n\t\t\t});\n\n\t\t\tcropper.refresh();\n\t\t},\n\t\tsave: function (): void {\n\t\t\tconst {coordinates, canvas, imageTransforms}: { coordinates: Coords, canvas: HTMLCanvasElement, imageTransforms: ImageTransforms } =\n\t\t\t\t(this.$refs.cropper as any).getResult();\n\n\t\t\tif (!canvas) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet blobImageType = 'image/png';\n\n\t\t\tif (['image/jpg', 'image/jpeg'].includes(this.currentFile?.type)) {\n\t\t\t\tblobImageType = 'image/jpeg';\n\t\t\t}\n\n\t\t\tif (['image/webp'].includes(this.currentFile?.type)) {\n\t\t\t\tblobImageType = 'image/webp';\n\t\t\t}\n\n\t\t\tconst jpegQuality = window.gform.applyFilters('gpfup_jpeg_quality', 0.92, this.formId, this.fieldId, (window as any)[`GPFUP_${this.formId}_${this.fieldId}`]);\n\n\t\t\tcanvasToBlob(canvas, blobImageType, jpegQuality).then((blob) => {\n\t\t\t\t/* Create new file object for Plupload using blob and update file name */\n\t\t\t\tlet file = new window.mOxie.File(null, blob);\n\t\t\t\tfile.name = this.currentFile?.name;\n\n\t\t\t\tloadImage.parseMetaData(\n\t\t\t\t\tblob,\n\t\t\t\t\tasync (data) => {\n\t\t\t\t\t\tif (data.imageHead && !this.stripMetadata) {\n\t\t\t\t\t\t\tfile = await loadImage.replaceHead(blob, data.imageHead);\n\t\t\t\t\t\t\tfile.name = this.currentFile?.name;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst newFile = replaceFile({\n\t\t\t\t\t\t\tup: this.up,\n\t\t\t\t\t\t\t$store: this.$store,\n\t\t\t\t\t\t\tformId: this.formId,\n\t\t\t\t\t\t\tfieldId: this.fieldId,\n\t\t\t\t\t\t\texistingFile: this.currentFile,\n\t\t\t\t\t\t\tnewFile: file,\n\t\t\t\t\t\t})\n\n\t\t\t\t\t\t/* Set cropped flag to prevent infinite loop */\n\t\t\t\t\t\tnewFile.cropped = true;\n\n\t\t\t\t\t\t/*\n\t\t\t\t\t\t * Trigger upload if cropping required. If cropping not automatically required this trigger\n\t\t\t\t\t\t * will actually cause conflicts with the status.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif (this.cropRequired) {\n\t\t\t\t\t\t\ttriggerUpload(this.up, newFile);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.$store.dispatch('storeCroppedResults', {\n\t\t\t\t\t\t\tfileId: newFile.id,\n\t\t\t\t\t\t\tcoords: coordinates,\n\t\t\t\t\t\t\timageTransforms,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.$store.dispatch('storeImagePreview', {\n\t\t\t\t\t\t\tfileId: newFile.id,\n\t\t\t\t\t\t\tblob\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t});\n\n\t\t\tif (\n\t\t\t\t!this.totalNumberOfFiles // not in forced cropping flow\n\t\t\t\t|| (this.currentImageIndex && this.currentImageIndex >= this.totalNumberOfFiles) // cropped all files\n\t\t\t) {\n\t\t\t\tthis.$store.dispatch('closeEditor');\n\t\t\t}\n\t\t},\n\t\tcancel: function () {\n\t\t\tif (!this.currentFile.cropped && this.cropRequired) {\n\t\t\t\tfor (const addedFile of this.$store.getters.currentAddedFiles) {\n\t\t\t\t\tthis.up.removeFile(addedFile);\n\t\t\t\t\tconst fileEl = $(`[data-file-id=\"${addedFile?.id}\"]`);\n\n\t\t\t\t\tif (fileEl.length) {\n\t\t\t\t\t\tdeleteFileFromHiddenGFInput(this.formId, this.fieldId, addedFile);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const erredFile of this.$store.getters.currentAddedErredFiles) {\n\t\t\t\t\tthis.$store.commit('REMOVE_ERRED_FILE', erredFile);\n\t\t\t\t}\n\n\t\t\t\t/**\n\t\t\t\t * Needed so the queue doesn't get in a weird state and stop accepting new files.\n\t\t\t\t */\n\t\t\t\tthis.up.stop();\n\t\t\t\tthis.up.start();\n\t\t\t}\n\n\t\t\tthis.$store.dispatch('closeEditor');\n\t\t},\n\t}\n});\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./GPFUPCropper.vue?vue&type=template&id=1954d03e&\"\nimport script from \"./GPFUPCropper.vue?vue&type=script&lang=ts&\"\nexport * from \"./GPFUPCropper.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GPFUPCropper.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GPFUPCropper.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GPFUPCropper.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"gpfup__cropper--transition\"}},[(_vm.open)?_c('div',{staticClass:\"cropper__lightbox\",staticStyle:{\"z-index\":\"99999999\"}},[(_vm.imgSrc)?_c('cropper',_vm._b({ref:\"cropper\",staticClass:\"cropper\"},'cropper',_vm.cropperOptions,false)):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gpfup__cropper__topbar\"},[_c('button',{directives:[{name:\"shortkey\",rawName:\"v-shortkey\",value:(['esc']),expression:\"['esc']\"}],staticClass:\"gpfup__cancel\",on:{\"click\":function($event){$event.preventDefault();return _vm.cancel.apply(null, arguments)},\"shortkey\":function($event){$event.preventDefault();return _vm.cancel()}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.strings.cancel)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),(_vm.cropperOptions.enableRotate)?_c('button',{staticClass:\"gpfup__rotate_left\",attrs:{\"title\":_vm.strings.rotateLeft},on:{\"click\":function($event){$event.preventDefault();return _vm.rotate(-90)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.strings.rotateLeft)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.cropperOptions.enableRotate)?_c('button',{staticClass:\"gpfup__rotate_right\",attrs:{\"title\":_vm.strings.rotateRight},on:{\"click\":function($event){$event.preventDefault();return _vm.rotate(90)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.strings.rotateRight)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.currentImageIndex && _vm.totalNumberOfFiles && _vm.totalNumberOfFiles > 1)?_c('span',{staticClass:\"gpfup__cropper_count\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.cropperOptions.enableRotate ? _vm.strings.editing : _vm.strings.cropping)+\" \"+_vm._s(_vm.currentImageIndex)+\" \"+_vm._s(_vm.cropperOptions.enableRotate ? _vm.strings.editingOf : _vm.strings.croppedOf)+\" \"+_vm._s(_vm.totalNumberOfFiles)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"gpfup__crop\",attrs:{\"disabled\":!_vm.imgSrc},on:{\"click\":function($event){$event.preventDefault();return _vm.save.apply(null, arguments)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.cropperOptions.enableRotate ? _vm.strings.save : _vm.strings.crop)+\"\\n\\t\\t\\t\")])])],1):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function isImage(file: File) : boolean {\n\tconst supportedImageTypes = [\n\t\t'image/gif',\n\t\t'image/png',\n\t\t'image/jpeg',\n\t\t'image/bmp',\n\t\t'image/webp',\n\t\t'image/svg+xml',\n\t\t'image/heic',\n\t];\n\n\t// Check if the browser supports WebP before treating it as an image.\n\tconst supports = checkBrowserSupport();\n\n\tif (!supports.canvas) {\n\t\treturn false;\n\t}\n\n\tif (file.type === 'image/webp' && !supports.webp) {\n\t\treturn false;\n\t}\n\n\treturn file.type.indexOf('image/') === 0 && supportedImageTypes.includes(file.type);\n}\n\n/**\n * Check if the browser supports Canvas and WebP.\n */\nexport function checkBrowserSupport() : { canvas: boolean, webp: boolean } {\n\tconst canvas = document.createElement('canvas');\n\n\tif (!!(canvas.getContext && canvas.getContext('2d'))) {\n\t\treturn {\n\t\t\tcanvas: true,\n\t\t\twebp: canvas.toDataURL('image/webp').indexOf('data:image/webp') == 0,\n\t\t};\n\t} else {\n\t\treturn {\n\t\t\tcanvas: false,\n\t\t\twebp: false,\n\t\t}\n\t}\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport isImage from './helpers/isImage';\nimport Vue from 'vue';\n\nexport default Vue.extend({\n\tname: \"ImagePreview\",\n\tprops: ['file', 'error', 'enableCrop', 'onlyImagesAllowed', 'cropRequired'],\n\tcomputed: {\n\t\timgSrc: function() : string {\n\t\t\treturn this.$store.state.imgPreviews[this.file.id];\n\t\t},\n\t\tcroppingAvailable: function() : boolean {\n\t\t\tif (!this.enableCrop) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t* Disable for Internet Explorer due to vue-advanced-cropper not supporting IE.\n\t\t\t*/\n\t\t\treturn !/MSIE|Trident/.test(window.navigator.userAgent);\n\t\t},\n\t\tpreviewSize: function (): { width: string, height: string } | undefined {\n\t\t\tif (!this.onlyImagesAllowed) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\twidth: this.file?.previewWidth + 'px',\n\t\t\t\theight: this.file?.previewHeight + 'px',\n\t\t\t};\n\t\t},\n\t\tshowPreview: function() : boolean {\n\t\t\tif (!this.imgSrc) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.file.rehydrated) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (this.cropRequired && !this.file.cropped) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.file.processed;\n\t\t}\n\t},\n\tmethods: {\n\t\tisImage: function() : boolean {\n\t\t\treturn isImage(this.file);\n\t\t},\n\t\teditFile: function (file: MOxieFile) : void {\n\t\t\tthis.$store.dispatch('setCurrentFile', { file });\n\t\t\tthis.$store.commit('OPEN_EDITOR');\n\t\t},\n\t\tstorePreviewDimensions: function(file: MOxieFile) : void {\n\t\t\tconst { clientWidth, clientHeight } = this.$refs.image as Element;\n\n\t\t\t// Skip saving dimensions if either is 0.\n\t\t\t// This prevents issue where multi-page forms change the dimensions to 0.\n\t\t\tif (!clientWidth || !clientHeight) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.$store.state.storage.storePreviewDimensions(file.id, {\n\t\t\t\twidth: clientWidth,\n\t\t\t\theight: clientHeight,\n\t\t\t});\n\t\t}\n\t}\n});\n","import { render, staticRenderFns } from \"./ImagePreview.vue?vue&type=template&id=0e7cc889&\"\nimport script from \"./ImagePreview.vue?vue&type=script&lang=ts&\"\nexport * from \"./ImagePreview.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ImagePreview.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImagePreview.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ImagePreview.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{ 'gpfup__preview': true, 'gpfup__preview--crop': _vm.croppingAvailable }},[(_vm.error)?_c('div',{staticClass:\"gpfup__upload-error-icon\"},[_c('svg',{staticStyle:{\"enable-background\":\"new 0 0 100 100\"},attrs:{\"width\":\"48\",\"height\":\"48\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 100 100\"}},[_c('path',{attrs:{\"d\":\"M82.4,25.6l-20-20C62,5.2,61.5,5,61,5H23c-3.3,0-6,2.7-6,6v78c0,3.3,2.7,6,6,6h54c3.3,0,6-2.7,6-6V27,C83,26.5,82.8,26,82.4,25.6z M63,11.8L76.2,25H65c-1.1,0-2-0.9-2-2V11.8z M77,91H23c-1.1,0-2-0.9-2-2V11c0-1.1,0.9-2,2-2h36v14,c0,3.3,2.7,6,6,6h14v60C79,90.1,78.1,91,77,91z\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M62.3,49.6l-7.1,7.1l7.1,7.1c1.6,1.6,1.6,4,0,5.6c-0.8,0.8-1.8,1.2-2.8,1.2s-2-0.4-2.8-1.2l-7.1-7.1l-7.1,7.1,c-0.8,0.8-1.8,1.2-2.8,1.2s-2-0.4-2.8-1.2c-1.6-1.6-1.6-4,0-5.6l7.1-7.1l-7.1-7.1c-1.6-1.6-1.6-4,0-5.6c1.6-1.6,4-1.6,5.6,0l7.1,7.1,l7.1-7.1c1.6-1.6,4-1.6,5.6,0C63.9,45.6,63.9,48,62.3,49.6z\"}})])]):(_vm.showPreview && !_vm.file.loading)?_c('img',{ref:\"image\",style:(_vm.previewSize),attrs:{\"src\":_vm.imgSrc},on:{\"load\":function($event){return _vm.storePreviewDimensions(_vm.file)}}}):(!_vm.isImage() && !_vm.file.loading)?_c('div',{staticClass:\"gpfup__file-icon\"},[_c('svg',{staticStyle:{\"enable-background\":\"new 0 0 100 100\"},attrs:{\"width\":\"48\",\"height\":\"48\",\"version\":\"1.1\",\"viewBox\":\"0 0 100 100\",\"xml:space\":\"preserve\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('path',{attrs:{\"d\":\"M82.4,25.6l-20-20C62,5.2,61.5,5,61,5H23c-3.3,0-6,2.7-6,6v78c0,3.3,2.7,6,6,6h54c3.3,0,6-2.7,6-6V27 C83,26.5,82.8,26,82.4,25.6z M63,11.8L76.2,25H65c-1.1,0-2-0.9-2-2V11.8z M77,91H23c-1.1,0-2-0.9-2-2V11c0-1.1,0.9-2,2-2h36v14 c0,3.3,2.7,6,6,6h14v60C79,90.1,78.1,91,77,91z\"}})])]):_c('div',{staticClass:\"gpfup__preview-pending\",style:(_vm.previewSize)},[_c('svg',{attrs:{\"width\":\"50%\",\"height\":\"50%\",\"viewBox\":\"0 0 38 38\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('defs',[_c('linearGradient',{attrs:{\"x1\":\"8.042%\",\"y1\":\"0%\",\"x2\":\"65.682%\",\"y2\":\"23.865%\",\"id\":\"a\"}},[_c('stop',{attrs:{\"stop-color\":\"#000\",\"stop-opacity\":\"0\",\"offset\":\"0%\"}}),_vm._v(\" \"),_c('stop',{attrs:{\"stop-color\":\"#000\",\"stop-opacity\":\".631\",\"offset\":\"63.146%\"}}),_vm._v(\" \"),_c('stop',{attrs:{\"stop-color\":\"#000\",\"offset\":\"100%\"}})],1)],1),_vm._v(\" \"),_c('g',{attrs:{\"fill\":\"none\",\"fill-rule\":\"evenodd\"}},[_c('g',{attrs:{\"transform\":\"translate(1 1)\"}},[_c('path',{attrs:{\"d\":\"M36 18c0-9.94-8.06-18-18-18\",\"id\":\"Oval-2\",\"stroke\":\"url(#a)\",\"stroke-width\":\"2\"}},[_c('animateTransform',{attrs:{\"attributeName\":\"transform\",\"type\":\"rotate\",\"from\":\"0 18 18\",\"to\":\"360 18 18\",\"dur\":\"0.9s\",\"repeatCount\":\"indefinite\"}})],1),_vm._v(\" \"),_c('circle',{attrs:{\"fill\":\"#fff\",\"cx\":\"36\",\"cy\":\"18\",\"r\":\"1\"}},[_c('animateTransform',{attrs:{\"attributeName\":\"transform\",\"type\":\"rotate\",\"from\":\"0 18 18\",\"to\":\"360 18 18\",\"dur\":\"0.9s\",\"repeatCount\":\"indefinite\"}})],1)])])])]),_vm._v(\" \"),(_vm.croppingAvailable && _vm.isImage(_vm.file))?_c('button',{staticClass:\"gpfup__edit gform-theme-no-framework\",on:{\"click\":function($event){$event.preventDefault();return _vm.editFile(_vm.file)}}},[_c('svg',{attrs:{\"width\":\"60%\",\"height\":\"60%\",\"viewBox\":\"0 0 24 24\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"role\":\"img\",\"aria-hidden\":\"true\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z\"}})])]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./LoadingBar.vue?vue&type=template&id=1fa4c874&\"\nimport script from \"./LoadingBar.vue?vue&type=script&lang=ts&\"\nexport * from \"./LoadingBar.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./LoadingBar.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\nexport default {\n\tname: \"LoadingBar\",\n\tprops: ['file'],\n\tdata: function() {\n\t\treturn {\n\t\t\t/**\n\t\t\t* metMinimumDisplayTime is used for showing the progress bar for a minimum amount of time. This provides\n\t\t\t* a more consistent experience between files and helps the visitor know that the file was uploaded\n\t\t\t* successfully.\n\t\t\t*/\n\t\t\tmetMinimumDisplayTime: false,\n\t\t\tmetMinimumDisplayTimeTimeout: undefined,\n\t\t}\n\t},\n\twatch: {\n\t\tpercentage: function (newPercent, oldPercent) {\n\t\t\tif (newPercent === 100) {\n\t\t\t\tthis.metMinimumDisplayTimeTimeout = setTimeout(() => {\n\t\t\t\t\tthis.metMinimumDisplayTime = true;\n\t\t\t\t}, 750);\n\t\t\t}\n\t\t}\n\t},\n\tbeforeDestroy() {\n\t\tif (this.metMinimumDisplayTimeTimeout) {\n\t\t\tclearTimeout(this.metMinimumDisplayTimeTimeout)\n\t\t}\n\t},\n\tcomputed: {\n\t\tpercentage: function() {\n\t\t\t// Stay at 99% if the percentage is 100 and the status is NOT 5 (DONE)\n\t\t\tif (this.file.percent === 100 && this.file.status !== 5) {\n\t\t\t\treturn 99;\n\t\t\t}\n\n\t\t\treturn this.file.percent;\n\t\t}\n\t}\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"gpfup__progress-container--fade\"}},[(_vm.percentage !== 100 || !_vm.metMinimumDisplayTime)?_c('div',{staticClass:\"gpfup__progress-container\"},[_c('div',{staticClass:\"gpfup_progress\",style:({ width: (_vm.percentage + \"%\") })})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./DragHandle.vue?vue&type=template&id=6f0f6b76&\"\nimport script from \"./DragHandle.vue?vue&type=script&lang=ts&\"\nexport * from \"./DragHandle.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DragHandle.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\nimport Vue from \"vue\";\n\nexport default Vue.extend({\n\tname: \"DragHandle\",\n\tprops: [\n\t\t'disabled',\n\t],\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gpfup__drag-handle\",class:{ 'gpfup__drag-handle--disabled': _vm.disabled }})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport ImagePreview from \"./ImagePreview.vue\";\nimport bytes from \"bytes\";\nimport isImage from \"./helpers/isImage\";\nimport LoadingBar from \"./LoadingBar.vue\";\nimport removeFileFromGFUploadedMeta from \"./helpers/deleteFileFromHiddenGFInput\";\nimport DragHandle from \"./DragHandle.vue\";\n\nexport default Vue.extend({\n\tname: \"File\",\n\tprops: [\n\t\t'file',\n\t\t'formId',\n\t\t'fieldId',\n\t\t'up',\n\t\t'enableCrop',\n\t\t'enableSorting',\n\t\t'cropRequired',\n\t\t'onlyImagesAllowed',\n\t],\n\tdata: function () {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Flag for whether or not a file has already been uploaded and this is a subsequent visit/reload.\n\t\t\t *\n\t\t\t * This is required so we can bypass the CSS animation.\n\t\t\t */\n\t\t\texistingFile: false,\n\t\t}\n\t},\n\tbeforeMount() {\n\t\t/**\n\t\t * If this component is mounted and the file percent is immediately 100%, we know that it's an existing file.\n\t\t */\n\t\tif (this.file.percent === 100) {\n\t\t\tthis.existingFile = true;\n\t\t}\n\t},\n\tcomponents: {\n\t\tLoadingBar,\n\t\tImagePreview,\n\t\tDragHandle,\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * Allow sorting immediately if the file is not an image or if the image has been processed or rehydrated.\n\t\t *\n\t\t * Sorting is not allowed while the image is uploading or hasn't been processed as there are a lot of moving\n\t\t * parts during processing such as replacing files which is asking for trouble if sorting is thrown into the mix.\n\t\t */\n\t\tallowSorting: function () {\n\t\t\treturn !isImage(this.file) ||\n\t\t\t\t(\n\t\t\t\t\tthis.$store.state.imgPreviews[this.file.id] &&\n\t\t\t\t\t(\n\t\t\t\t\t\t!(this.cropRequired && !this.file.cropped) && this.file.processed\n\t\t\t\t\t\t|| this.file.rehydrated\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t},\n\t\tfileExtension: function() {\n\t\t\treturn this.file.name?.match(/(.*?)\\.([a-zA-Z0-9]+)$/)?.[2];\n\t\t}\n\t},\n\tmethods: {\n\t\tgetSize: function (file: MOxieFile): string {\n\t\t\treturn bytes(file.size);\n\t\t},\n\t\tisImage: function (file: MOxieFile): boolean {\n\t\t\treturn isImage(file);\n\t\t},\n\t\tgetFileName: function (file: MOxieFile): string {\n\t\t\t/**\n\t\t\t * This filter allows to modify the file name markup.\n\t\t\t *\n\t\t\t * @param {string} fileName The file name.\n\t\t\t * @param {number} formId The form ID.\n\t\t\t * @param {number} fieldId The field ID.\n\t\t\t * @param {MOxieFile} file The file object.\n\t\t\t *\n\t\t\t * @since 1.5.5\n\t\t\t */\n\t\t\tlet fileName = window.gform.applyFilters('gpfup_filename_markup', file.name, this.formId, this.fieldId, file);\n\n\t\t\treturn fileName;\n\t\t},\n\t\tdeleteFile: function (file: MOxieFile, event: Event): void {\n\t\t\ttry {\n\t\t\t\tremoveFileFromGFUploadedMeta(this.formId, this.fieldId, file);\n\t\t\t\tthis.up.removeFile(file.id);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Error deleting file.', e);\n\t\t\t}\n\t\t},\n\t}\n});\n","import { render, staticRenderFns } from \"./File.vue?vue&type=template&id=31d1248c&\"\nimport script from \"./File.vue?vue&type=script&lang=ts&\"\nexport * from \"./File.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./File.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./File.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"gpfup__file\",attrs:{\"data-file-id\":_vm.file.id,\"data-file-type\":_vm.file.type,\"data-file-ext\":_vm.fileExtension}},[(_vm.enableSorting)?_c('DragHandle',{attrs:{\"disabled\":!_vm.allowSorting}}):_vm._e(),_vm._v(\" \"),_c('ImagePreview',{attrs:{\"file\":_vm.file,\"enable-crop\":_vm.enableCrop,\"crop-required\":_vm.cropRequired,\"only-images-allowed\":_vm.onlyImagesAllowed}}),_vm._v(\" \"),_c('div',{staticClass:\"gpfup__file-info\"},[_c('div',{staticClass:\"gpfup__filename\",domProps:{\"innerHTML\":_vm._s(_vm.getFileName(_vm.file))}}),_vm._v(\" \"),_c('div',{staticClass:\"gpfup__filesize\"},[_vm._v(_vm._s(_vm.getSize(_vm.file)))]),_vm._v(\" \"),(!_vm.existingFile)?[_c('LoadingBar',{attrs:{\"file\":_vm.file}})]:_vm._e()],2),_vm._v(\" \"),_c('div',{staticClass:\"gpfup__file-actions\"},[_c('button',{staticClass:\"gpfup__delete gform-theme-no-framework\",attrs:{\"data-gpfup-filename\":_vm.file.name},on:{\"click\":function($event){$event.preventDefault();return _vm.deleteFile(_vm.file, $event)}}},[_c('svg',{attrs:{\"width\":\"100%\",\"height\":\"100%\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"-2 -2 16 16\",\"role\":\"img\",\"aria-hidden\":\"true\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M11.55,1.65,7.42,5.78,11.55,9.9,9.9,11.55,5.77,7.43,1.66,11.55,0,9.89,4.12,5.78,0,1.66,1.66,0,5.77,4.12,9.9,0Z\"}})])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ErredFile.vue?vue&type=template&id=4d96eeb1&\"\nimport script from \"./ErredFile.vue?vue&type=script&lang=ts&\"\nexport * from \"./ErredFile.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ErredFile.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport ImagePreview from \"./ImagePreview.vue\";\nimport bytes from \"bytes\";\n\nexport default Vue.extend({\n\tname: \"ErredFile\",\n\tprops: [\n\t\t'file',\n\t\t'fileIndex',\n\t\t'errorMessage',\n\t],\n\tcomponents: {\n\t\tImagePreview,\n\t},\n\tmethods: {\n\t\tgetSize: function (file: MOxieFile) : string {\n\t\t\treturn bytes(file.size);\n\t\t},\n\t\tdeleteFile: function () : void {\n\t\t\tthis.$store.commit('REMOVE_ERRED_FILE', this.file);\n\t\t},\n\t}\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"gpfup__file gpfup__file--has-error\",attrs:{\"data-file-id\":_vm.file.id}},[_c('ImagePreview',{attrs:{\"file\":_vm.file,\"error\":true}}),_vm._v(\" \"),_c('div',{staticClass:\"gpfup__file-info\"},[_c('div',{staticClass:\"gpfup__filename\"},[_vm._v(_vm._s(_vm.file.name))]),_vm._v(\" \"),_c('div',{staticClass:\"gpfup__filesize\"},[_vm._v(_vm._s(_vm.getSize(_vm.file)))]),_vm._v(\" \"),_c('div',{staticClass:\"gpfup__file-error\"},[_vm._v(_vm._s(_vm.errorMessage))])]),_vm._v(\" \"),_c('div',{staticClass:\"gpfup__file-actions\"},[_c('button',{staticClass:\"gpfup__delete gform-theme-no-framework\",on:{\"click\":function($event){$event.preventDefault();return _vm.deleteFile(_vm.file, $event)}}},[_c('svg',{attrs:{\"width\":\"100%\",\"height\":\"100%\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"-2 -2 16 16\",\"role\":\"img\",\"aria-hidden\":\"true\",\"focusable\":\"false\"}},[_c('path',{attrs:{\"d\":\"M11.55,1.65,7.42,5.78,11.55,9.9,9.9,11.55,5.77,7.43,1.66,11.55,0,9.89,4.12,5.78,0,1.66,1.66,0,5.77,4.12,9.9,0Z\"}})])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\n\nexport default Vue.extend({\n\tname: \"Droparea\",\n\tdata: function() {\n\t\treturn {\n\t\t\t/**\n\t\t\t* dragenter will fire every time a child element is entered as will dragleave.\n\t\t\t* This means we need to use a counter to count how many levels deep dragenter has\n\t\t\t* fired to prevent flickering.\n\t\t\t*\n\t\t\t* see: https://stackoverflow.com/a/10906204\n\t\t\t*/\n\t\t\tdropareaCounter: 0,\n\t\t}\n\t},\n\t/**\n\t* Prevent dropping outside of GPFUP dropareas and other explicit dropareas from navigating to the dropped\n\t* file.\n\t*/\n\tmounted() {\n\t\t/**\n\t\t * Filter whether or not drop events should be blocked outside of the File Upload Pro drop area.\n\t\t *\n\t\t * @since 1.0-alpha-3.0\n\t\t *\n\t\t * @param prevent_drop_outside \tboolean Whether or not to block outside drop events.\n\t\t */\n\t\tif (window.gform.applyFilters( 'gpfup_prevent_drop_outside', true)) {\n\t\t\twindow.addEventListener('dragover', this.preventDragAndDrop);\n\t\t\twindow.addEventListener('drop', this.preventDragAndDrop);\n\t\t}\n\t},\n\tdestroyed() {\n\t\tif (window.gform.applyFilters( 'gpfup_prevent_drop_outside', true)) {\n\t\t\twindow.removeEventListener('dragover', this.preventDragAndDrop);\n\t\t\twindow.removeEventListener('drop', this.preventDragAndDrop);\n\t\t}\n\t},\n\tprops: [\n\t\t'reachedMaxFiles',\n\t\t'files',\n\t\t'strings',\n\t\t'onDrop',\n\t\t'onBrowse',\n\t],\n\tmethods: {\n\t\t/**\n\t\t* Helper method for preventing default on window dragover/drop\n\t\t*\n\t\t* @todo During testing, I found that e.dataTransfer.dropEffect would get rid of the drop/add cursor,\n\t\t* however, it broke other dropareas.\n\t\t*/\n\t\tpreventDragAndDrop: function(e: DragEvent) {\n\t\t\te.preventDefault();\n\n\t\t\treturn false;\n\t\t},\n\t\tallowDrop: function(e: DragEvent) {\n\t\t\tif (this.reachedMaxFiles) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.dropareaCounter++;\n\t\t},\n\t\tdrop: function(event: DragEvent) {\n\t\t\tif (this.reachedMaxFiles) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.dropareaCounter = 0;\n\t\t\tthis.onDrop(event);\n\t\t},\n\t\tdragleave: function() {\n\t\t\tthis.dropareaCounter--;\n\t\t}\n\t},\n});\n","import { render, staticRenderFns } from \"./Droparea.vue?vue&type=template&id=2b0c0dce&\"\nimport script from \"./Droparea.vue?vue&type=script&lang=ts&\"\nexport * from \"./Droparea.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Droparea.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Droparea.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Droparea.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"droparea\",class:{ 'gpfup__droparea': true, 'gpfup__droparea--over': _vm.dropareaCounter, 'gpfup__droprea--maxed': _vm.reachedMaxFiles },on:{\"drop\":function($event){$event.preventDefault();return _vm.drop.apply(null, arguments)},\"dragenter\":function($event){$event.preventDefault();return _vm.allowDrop.apply(null, arguments)},\"dragleave\":function($event){$event.preventDefault();return _vm.dragleave.apply(null, arguments)}}},[(!_vm.reachedMaxFiles)?_c('div',[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.strings.drop_files_here)+\" \"+_vm._s(_vm.strings.or)+\"  \\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"gpfup__select-files-container\"},[_c('button',{staticClass:\"gpfup__select-files gform_button_select_files\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onBrowse.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.strings.select_files))])])]):_c('div',[_c('span',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.strings.max_reached)+\"\\n\\t\\t\")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport GPFUPCropper from './GPFUPCropper.vue';\nimport File from \"./File.vue\";\nimport ErredFile from \"./ErredFile.vue\";\nimport Droparea from \"./Droparea.vue\";\nimport {mapState} from 'vuex';\nimport Vue from \"vue\";\nimport draggable from 'vuedraggable';\nimport PortalVue from \"portal-vue\";\n\nconst $ = window.jQuery;\n\nVue.use(PortalVue);\n\nconst setDragCursor = (value: boolean) => {\n\tconst html = document.getElementsByTagName('html').item(0);\n\thtml?.classList.toggle('gpfup--dragging', value)\n}\n\nexport default Vue.extend({\n\tname: \"GPFUP\",\n\tprops: [\n\t\t'enableCrop',\n\t\t'enableSorting',\n\t\t'formId',\n\t\t'fieldId',\n\t\t'up',\n\t\t'strings',\n\t\t'cropRequired',\n\t\t'aspectRatio',\n\t\t'maxWidth',\n\t\t'maxHeight',\n\t\t'minWidth',\n\t\t'minHeight',\n\t\t'exactWidth',\n\t\t'exactHeight',\n\t],\n\tdata: function() {\n\t\treturn {\n\t\t\tdrag: false,\n\t\t\tpreviewFilesCount: 0,\n\t\t\tpreviewObserver: null as MutationObserver | null,\n\t\t};\n\t},\n\tcomponents: {\n\t\tFile,\n\t\tErredFile,\n\t\tDroparea,\n\t\tGPFUPCropper,\n\t\tdraggable,\n\t},\n\tcomputed: {\n\t\tportalName: function() : string {\n\t\t\treturn `gpfup-cropper-${this.formId}-${this.fieldId}`;\n\t\t},\n\t\tportalMountTo: function() : string {\n\t\t\treturn `#gpfup-cropper-portal-${this.formId}-${this.fieldId}`;\n\t\t},\n\t\t...mapState({\n\t\t\tfiles: (state: any) => state.files,\n\t\t\terredFiles: (state: any) => state.erredFiles,\n\t\t\tcurrentFile: (state: any) => state.editor.currentFile,\n\t\t\teditorOpen: (state: any) => state.editor.open,\n\t\t}),\n\t\tallFiles: {\n\t\t\tget() {\n\t\t\t\treturn this.$store.getters.allFiles;\n\t\t\t},\n\t\t\tset(value: MOxieFile[]) {\n\t\t\t\tthis.$store.commit('SET_FILE_ORDER', value.map((file) => file.id));\n\t\t\t}\n\t\t},\n\t\tmaxFiles: function() {\n\t\t\tconst maxFiles = parseInt(this.up.settings.gf_vars.max_files, 10);\n\n\t\t\treturn maxFiles > 0 ? maxFiles : Infinity;\n\t\t},\n\t\treachedMaxFiles: function() {\n\t\t\t// @ts-ignore\n\t\t\treturn (this.files.length + this.previewFilesCount) >= this.maxFiles;\n\t\t},\n\t\tonlyImagesAllowed: function() {\n\t\t\tconst extensions = this.up?.settings?.filters?.mime_types[0]?.extensions.split(',');\n\n\t\t\t/**\n\t\t\t * Filter image extensions that will be used to determine if the uploader is only accepting images.\n\t\t\t *\n\t\t\t * @since 1.0-alpha-3.0\n\t\t\t *\n\t\t\t * @param string[] \textensions Allowed image extensions\n\t\t\t */\n\t\t\tconst imageExtensionWhitelist = window.gform.applyFilters(\n\t\t\t\t'gpfup_image_extension_whitelist',\n\t\t\t\t['jpg', 'jpeg', 'png', 'gif']\n\t\t\t);\n\n\t\t\tlet onlyImages = true;\n\n\t\t\tif (extensions && extensions.length) {\n\t\t\t\tfor ( let extension of extensions ) {\n\t\t\t\t\textension = extension.trim();\n\n\t\t\t\t\tif (extension && imageExtensionWhitelist.indexOf(extension) === -1) {\n\t\t\t\t\t\tonlyImages = false;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn onlyImages;\n\t\t},\n\t\tcontainerClasses: function() {\n\t\t\tconst classes: { [className: string]: unknown } = {\n\t\t\t\t'gpfup--images-only': this.onlyImagesAllowed,\n\t\t\t\t'gpfup--has-error': this.erredFiles.length,\n\t\t\t\t'gpfup--maxed': this.reachedMaxFiles,\n\t\t\t\t'gpfup--sortable': this.enableSorting,\n\t\t\t\t'gpfup--has-files': this.files.length\n\t\t\t};\n\n\t\t\t/* Stub in cropper options to extract stencilComponent if present */\n\t\t\tconst cropperOptions = window.gform.applyFilters('gpfup_cropper_options', {});\n\n\t\t\tif (cropperOptions?.stencilComponent) {\n\t\t\t\tclasses[`gpfup--${cropperOptions?.stencilComponent}`] = true;\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\t\tdragOptions() {\n\t\t\treturn {\n\t\t\t\tanimation: 200,\n\t\t\t\thandle: '.gpfup__drag-handle',\n\t\t\t\tgroup: `gpfup-files-${this.formId}-${this.fieldId}`,\n\t\t\t\tdisabled: false,\n\t\t\t\tghostClass: \"ghost\",\n\t\t\t};\n\t\t}\n\t},\n\tmounted() {\n\t\t// Set initial count and observe changes\n\t\tconst $previewDiv = $(`#preview_existing_files_${this.fieldId}`);\n\t\tif ($previewDiv.length) {\n\t\t\tconst previewElement = $previewDiv[0];\n\t\t\tthis.previewFilesCount = $previewDiv.children(\"div\").length;\n\n\t\t\tconst observer = new MutationObserver((mutations) => {\n\t\t\t\tfor (const mutation of mutations) {\n\t\t\t\t\tif (mutation.type === 'childList') {\n\t\t\t\t\t\tthis.previewFilesCount = $previewDiv.children(\"div\").length;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tobserver.observe(previewElement, {\n\t\t\t\tchildList: true,\n\t\t\t});\n\n\t\t\tthis.previewObserver = observer;\n\t\t}\n\t},\n\n\tbeforeDestroy() {\n\t\tif (this.previewObserver) {\n\t\t\tthis.previewObserver.disconnect();\n\t\t}\n\t},\n\n\tmethods: {\n\t\tbrowse: function () : void {\n\t\t\t$(`#field_${this.formId}_${this.fieldId} div.moxie-shim input[type=file]`).trigger('click');\n\t\t},\n\t\tdrop: function (event: DragEvent) : void {\n\t\t\tthis.up.addFile(Array.from(event.dataTransfer!.files));\n\t\t},\n\t\tonDragStart() {\n\t\t\tsetDragCursor(true);\n\t\t},\n\t\tonDragEnd() {\n\t\t\tsetDragCursor(false);\n\t\t},\n\t},\n});\n","import { render, staticRenderFns } from \"./GPFUP.vue?vue&type=template&id=47e72a08&\"\nimport script from \"./GPFUP.vue?vue&type=script&lang=ts&\"\nexport * from \"./GPFUP.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./GPFUP.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GPFUP.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??clonedRuleSet-1[0].rules[0]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./GPFUP.vue?vue&type=script&lang=ts&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"gpfup gpfup--strict gform-theme__no-reset--children\",class:_vm.containerClasses},[(_vm.enableCrop)?_c('MountingPortal',{attrs:{\"mountTo\":_vm.portalMountTo,\"name\":_vm.portalName,\"target-slim\":\"\"}},[(_vm.enableCrop)?_c('GPFUPCropper',{ref:\"app\",attrs:{\"strings\":_vm.strings,\"crop-required\":_vm.cropRequired,\"min-width\":_vm.minWidth || _vm.exactWidth,\"min-height\":_vm.minHeight || _vm.exactHeight,\"aspect-ratio\":_vm.aspectRatio,\"up\":_vm.up,\"open\":_vm.editorOpen,\"file\":_vm.currentFile,\"field-id\":_vm.fieldId,\"form-id\":_vm.formId}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.allFiles.length)?_c('ul',{staticClass:\"gpfup__files\"},[(_vm.enableSorting)?_c('draggable',_vm._b({attrs:{\"force-fallback\":true},on:{\"start\":_vm.onDragStart,\"end\":_vm.onDragEnd},model:{value:(_vm.allFiles),callback:function ($$v) {_vm.allFiles=$$v},expression:\"allFiles\"}},'draggable',_vm.dragOptions,false),[_vm._l((_vm.allFiles),function(file){return [(!file.error)?_c('File',{key:file.id,attrs:{\"file\":file,\"crop-required\":_vm.cropRequired,\"only-images-allowed\":_vm.onlyImagesAllowed,\"form-id\":_vm.formId,\"field-id\":_vm.fieldId,\"up\":_vm.up,\"enable-crop\":_vm.enableCrop,\"enable-sorting\":_vm.enableSorting}}):_c('ErredFile',{key:(\"error-\" + (file.id)),attrs:{\"file\":file,\"error-message\":file.error}})]})],2):_vm._l((_vm.allFiles),function(file){return [(!file.error)?_c('File',{key:file.id,attrs:{\"file\":file,\"crop-required\":_vm.cropRequired,\"only-images-allowed\":_vm.onlyImagesAllowed,\"form-id\":_vm.formId,\"field-id\":_vm.fieldId,\"up\":_vm.up,\"enable-crop\":_vm.enableCrop,\"enable-sorting\":_vm.enableSorting}}):_c('ErredFile',{key:(\"error-\" + (file.id)),attrs:{\"file\":file,\"error-message\":file.error}})]})],2):_vm._e(),_vm._v(\" \"),_c('Droparea',{attrs:{\"strings\":_vm.strings,\"on-drop\":_vm.drop,\"on-browse\":_vm.browse,\"files\":_vm.files,\"reached-max-files\":_vm.reachedMaxFiles}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default function getImageSize(source: string | Blob) : Promise<{ width: number, height: number }>{\n\tconst img = new Image;\n\n\treturn new Promise((resolve) => {\n\t\timg.onload = function() {\n\t\t\tresolve({\n\t\t\t\twidth: img.width,\n\t\t\t\theight: img.height,\n\t\t\t})\n\t\t};\n\n\t\tif (typeof source !== 'string') {\n\t\t\timg.src = URL.createObjectURL(source);\n\t\t} else {\n\t\t\timg.src = source;\n\t\t}\n\t});\n}\n","import Vue from 'vue';\nimport Vuex from 'vuex';\nimport editor from './modules/editor';\nimport { blobToDataURL } from 'blob-util';\nimport type Storage from '../classes/Storage';\nimport delay from 'delay';\n\nVue.use(Vuex);\n\nexport default function GPFUPStoreFactory({ storage } : { storage: Storage }) : any {\n\treturn new Vuex.Store({\n\t\tmodules: {\n\t\t\teditor: editor(),\n\t\t},\n\t\tstate: {\n\t\t\t/**\n\t\t\t* Instance of Storage to be accessible by modules\n\t\t\t*/\n\t\t\tstorage,\n\n\t\t\t/**\n\t\t\t* Files synced from Plupload\n\t\t\t*/\n\t\t\tfiles: [],\n\n\t\t\t/**\n\t\t\t * Keep track of removed files to filter them out of other arrays such as fileOrder, currentAddedFiles, etc.\n\t\t\t *\n\t\t\t * The primary reason why we need this is due to how Gravity Forms limits the number of files. It uses\n\t\t\t * Plupload's remove file method which fires before the FilesAdded event.\n\t\t\t */\n\t\t\tremovedFiles: [],\n\n\t\t\t/**\n\t\t\t* File order to handle re-ordering the Plupload files and Gravity Forms hidden input after cropping and\n\t\t\t* to prepare for sortables.\n\t\t\t*/\n\t\t\tfileOrder: [],\n\n\t\t\t/**\n\t\t\t* Files that are added in a batch. Needed to cancel the entire batch at once.\n\t\t\t*/\n\t\t\tcurrentAddedFiles: [],\n\n\t\t\t/**\n\t\t\t* Erred files not in Plupload to provide a way to show upload errors\n\t\t\t*/\n\t\t\terredFiles: [],\n\n\t\t\t/**\n\t\t\t* Image previews for file list\n\t\t\t*/\n\t\t\timgPreviews: {},\n\t\t} as {\n\t\t\tstorage: Storage,\n\t\t\tremovedFiles: MOxieFile['id'][],\n\t\t\tfiles: MOxieFile[],\n\t\t\tfileOrder: string[],\n\t\t\tcurrentAddedFiles: MOxieFile[],\n\t\t\terredFiles: MOxieFile[],\n\t\t\timgPreviews: { [key: string]: any },\n\t\t},\n\t\tactions: {\n\t\t\tasync storeImagePreview (context, { fileId, blob, dataUrl } : { fileId: string, blob?: Blob, dataUrl?: string }) {\n\t\t\t\tlet base64: string = dataUrl!;\n\n\t\t\t\tif (!dataUrl) {\n\t\t\t\t\tbase64 = await blobToDataURL(blob!);\n\t\t\t\t}\n\n\t\t\t\tif (!base64) {\n\t\t\t\t\tthrow new Error('Unable to save image preview.');\n\t\t\t\t}\n\n\t\t\t\tcontext.commit('ADD_IMAGE_PREVIEW', Object.freeze({\n\t\t\t\t\tfileId,\n\t\t\t\t\tbase64,\n\t\t\t\t}));\n\n\t\t\t\tstorage.storePreview(fileId, base64);\n\t\t\t},\n\t\t\tasync setFiles (context, files) {\n\t\t\t\tcontext.commit('SET_FILES', files);\n\n\t\t\t\tstorage.storeFileInfo(files);\n\t\t\t},\n\t\t\tasync setCurrentFileAndOpenEditor (\n\t\t\t\tcontext,\n\t\t\t\t{ file, clearPrevious = true, delayMs } : { file: MOxieFile, clearPrevious?: boolean, delayMs?: number },\n\t\t\t) {\n\t\t\t\tawait context.dispatch('setCurrentFile', { file, clearPrevious });\n\n\t\t\t\tif (delayMs) {\n\t\t\t\t\tawait delay(delayMs);\n\t\t\t\t}\n\n\t\t\t\tcontext.commit('OPEN_EDITOR');\n\t\t\t},\n\t\t\tcloseEditor (context) {\n\t\t\t\tcontext.commit('CLOSE_EDITOR');\n\t\t\t\tcontext.commit('CLEAR_CURRENT_ADDED_FILES');\n\t\t\t},\n\t\t},\n\t\tgetters: {\n\t\t\tcurrentAddedFiles: (state) => {\n\t\t\t\treturn state.currentAddedFiles.filter((file: MOxieFile) => {\n\t\t\t\t\treturn !state.removedFiles.includes(file.id)\n\t\t\t\t\t\t&& !state.erredFiles.find((erredFile) => file.id === erredFile.id)\n\t\t\t\t})\n\t\t\t},\n\t\t\tcurrentAddedErredFiles: (state) => {\n\t\t\t\treturn state.currentAddedFiles.filter((file: MOxieFile) => {\n\t\t\t\t\treturn state.erredFiles.find((erredFile) => file.id === erredFile.id)\n\t\t\t\t})\n\t\t\t},\n\t\t\tallFiles: (state) => {\n\t\t\t\treturn [\n\t\t\t\t\t...state.files,\n\t\t\t\t\t...state.erredFiles,\n\t\t\t\t].sort((a: any, b: any) => {\n\t\t\t\t\treturn state.fileOrder.indexOf(a.id) - state.fileOrder.indexOf(b.id);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmutations: {\n\t\t\tSET_FILES (state, files) {\n\t\t\t\tstate.files = files;\n\t\t\t},\n\t\t\tADD_FILE (state, file) {\n\t\t\t\tconst existingIndex = state.fileOrder.indexOf(file.id);\n\n\t\t\t\tif (existingIndex !== -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstate.fileOrder.push(file.id);\n\t\t\t},\n\t\t\tSET_CURRENT_ADDED_FILES (state, files) {\n\t\t\t\tstate.currentAddedFiles = files;\n\t\t\t},\n\t\t\tCLEAR_CURRENT_ADDED_FILES (state) {\n\t\t\t\tstate.currentAddedFiles = [];\n\t\t\t},\n\t\t\tREMOVE_FILE (state, file) {\n\t\t\t\tconst index = state.fileOrder.indexOf(file.id);\n\n\t\t\t\tstate.removedFiles.push(file.id);\n\n\t\t\t\tif (index === -1) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tstate.fileOrder.splice(index, 1);\n\t\t\t},\n\t\t\tREPLACE_FILE (state, { replacedFile, newFile }) {\n\t\t\t\tconst fileOrderIndex = state.fileOrder.indexOf(replacedFile.id);\n\n\t\t\t\tif (fileOrderIndex !== -1) {\n\t\t\t\t\tstate.fileOrder[fileOrderIndex] = newFile.id;\n\t\t\t\t}\n\n\t\t\t\tconst currentAddedFilesIndex = state.currentAddedFiles.findIndex((file) => {\n\t\t\t\t\treturn file.id === replacedFile.id;\n\t\t\t\t});\n\n\t\t\t\tif (currentAddedFilesIndex !== -1) {\n\t\t\t\t\tstate.currentAddedFiles[currentAddedFilesIndex] = newFile;\n\t\t\t\t}\n\t\t\t},\n\t\t\tPUSH_ERRED_FILE (state, { file, error }) {\n\t\t\t\tstate.erredFiles.push({\n\t\t\t\t\t...file,\n\t\t\t\t\terror,\n\t\t\t\t});\n\t\t\t},\n\t\t\tREMOVE_ERRED_FILE (state, file) {\n\t\t\t\tstate.erredFiles.splice(state.erredFiles.indexOf(file.id), 1);\n\t\t\t},\n\t\t\tADD_IMAGE_PREVIEW (state, { fileId, base64 } : { fileId: string, base64: string }) {\n\t\t\t\tVue.set(state.imgPreviews, fileId, base64);\n\t\t\t},\n\t\t\tSET_FILE_ORDER (state, order) {\n\t\t\t\tstate.fileOrder = order;\n\t\t\t},\n\t\t},\n\t});\n}\n","import localforage from 'localforage';\n\ninterface FileInfo {\n\tsize?: number\n\ttype?: string\n\taddedDate?: Date\n}\n\ninterface Dimensions {\n\twidth: number\n\theight: number\n}\n\nconst $ = window.jQuery;\n\n/**\n * @classdesc Stores various bits of data including image previews and originals to client-side storage (via localforage)\n * so the uploader can function on subsequent page loads such as failed validation.\n */\nexport default class Storage {\n\n\tconstructor(private formId: string, private fieldId: string) {};\n\n\tget prefix() : string {\n\t\tconst { formId, fieldId } = this;\n\n\t\treturn `gpfup-${formId}-${fieldId}`;\n\t}\n\n\tgetFileInfo(fileId: string) : Promise<FileInfo | null> {\n\t\treturn localforage.getItem(`${this.prefix}-${fileId}-info`);\n\t}\n\n\tgetPreview(fileId: string) : Promise<string | null> {\n\t\treturn localforage.getItem(`${this.prefix}-${fileId}-preview`);\n\t}\n\n\tgetPreviewDimensions(fileId: string) : Promise<Dimensions | null> {\n\t\treturn localforage.getItem(`${this.prefix}-${fileId}-preview-dimensions`);\n\t}\n\n\tgetOriginal(fileId: string) : Promise<{ src: File, size: Dimensions } | null> {\n\t\treturn localforage.getItem(`${this.prefix}-${fileId}-original`);\n\t}\n\n\tgetCroppedResults(fileId: string) : Promise<Coords | null> {\n\t\treturn localforage.getItem(`${this.prefix}-${fileId}-cropper-results`);\n\t}\n\n\tasync storeFileInfo(files: MOxieFile[]) : Promise<void> {\n\t\tfor (const file of files) {\n\t\t\tconst key = `${this.prefix}-${file.id}-info`;\n\t\t\tconst fileInfo: FileInfo = await localforage.getItem(key) ?? {};\n\n\t\t\tif (file.size) {\n\t\t\t\tfileInfo.size = file.size;\n\t\t\t}\n\n\t\t\tif (file.type) {\n\t\t\t\tfileInfo.type = file.type;\n\t\t\t}\n\n\t\t\tif (file.addedDate) {\n\t\t\t\tfileInfo.addedDate = file.addedDate;\n\t\t\t}\n\n\t\t\tlocalforage.setItem(key, fileInfo);\n\t\t}\n\t}\n\n\tstoreOriginal(fileId: string, file: File) : void {\n\t\tlocalforage.setItem(`${this.prefix}-${fileId}-original`, file);\n\t}\n\n\tasync transferOriginal(newFileId: string, currentFileId: string) : Promise<void> {\n\t\tconst existingKey = `${this.prefix}-${currentFileId}-original`;\n\t\tconst existingOriginal = await localforage.getItem(existingKey);\n\n\t\tawait localforage.setItem(`${this.prefix}-${newFileId}-original`, existingOriginal);\n\t\tawait localforage.removeItem(existingKey);\n\t}\n\n\tstorePreview(fileId: string, dataUrl: string) : void {\n\t\tlocalforage.setItem(`${this.prefix}-${fileId}-preview`, dataUrl);\n\t}\n\n\tstorePreviewDimensions(fileId: string, dimensions : Dimensions) : void {\n\t\tlocalforage.setItem(`${this.prefix}-${fileId}-preview-dimensions`, dimensions);\n\t}\n\n\tstoreCroppedResults(fileId: string, results: CropperResults) : void {\n\t\tlocalforage.setItem(`${this.prefix}-${fileId}-cropper-results`, results);\n\t}\n\n\tasync transferResults(newFileId: string, currentFileId: string) : Promise<void> {\n\t\tconst existingKey = `${this.prefix}-${currentFileId}-cropper-results`;\n\t\tconst existingResults = await localforage.getItem(existingKey);\n\n\t\tif (!existingResults) {\n\t\t\treturn;\n\t\t}\n\n\t\tawait localforage.setItem(`${this.prefix}-${newFileId}-cropper-results`, existingResults);\n\t\tawait localforage.removeItem(existingKey);\n\t}\n\n\tpurgeFile(file: MOxieFile) : Promise<void> {\n\t\treturn localforage.iterate((value, key) => {\n\t\t\tconst fileIdPrefix = `${this.prefix}-${file.id}-`;\n\t\t\tconst fileNamePrefix = `${this.prefix}-${file.name}-`;\n\n\t\t\tif (key.indexOf(fileIdPrefix) === 0 || key.indexOf(fileNamePrefix) === 0) {\n\t\t\t\tlocalforage.removeItem(key);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Purge localforage/IndexedDB for the current field\n\t */\n\tpurge() : Promise<void> {\n\t\treturn localforage.iterate((value, key) => {\n\t\t\tif (key.indexOf(`${this.prefix}-`) === 0) {\n\t\t\t\tlocalforage.removeItem(key);\n\t\t\t}\n\t\t});\n\t}\n}\n","/**\n * When files get added to Gravity Form's multi file hidden input, they are unshifted (added to the beginning) rather than\n * the end.\n *\n * This function syncs the Gravity Forms hidden input with the file order in the Vuex state to maintain consistent\n * ordering and put GPFUP in control of ordering. This will also enable sorting down the road.\n */\nexport default function(formId: string, fieldId: string, fileOrder: string[], orderChanged: boolean = false) {\n\tconst $ = window.jQuery;\n\tconst $uploadedFiles = $('#gform_uploaded_files_' + formId);\n\tconst filesJson = $uploadedFiles.val();\n\n\tif(filesJson){\n\t\t// @ts-ignore\n\t\tvar files = $.secureEvalJSON(filesJson);\n\n\t\tif(files) {\n\t\t\tvar inputName = 'input_' + fieldId;\n\n\t\t\tfiles[inputName] = files[inputName].sort((a: any, b: any) => {\n\t\t\t\t/*\n\t\t\t\t * The Gravity Forms multifile hidden input has a structure that looks something like the following:\n\t\t\t\t *\n\t\t\t\t * {\n\t\t\t\t * \t\"input_2\": [\n\t\t\t\t * \t\t{\"temp_filename\":\"6f1d253e_input_2_o_1eo03uu85o25pt71qke1osn1n63m.jpg\",\"uploaded_filename\":\"a.jpg\"},\n\t\t\t\t * \t\t{\"temp_filename\":\"6f1d253e_input_2_o_1eo03uu85o5u1d1n1cikj1dp56n.jpg\",\"uploaded_filename\":\"b.jpg\"},\n\t\t\t\t * ]\n\t\t\t\t * }\n\t\t\t\t *\n\t\t\t\t * The pattern below plucks the file ID out of temp_filename.\n\t\t\t\t */\n\t\t\t\tconst idPattern = /o_[a-z0-9]+(?=\\.)/;\n\t\t\t\tlet aId = a.temp_filename?.match(idPattern)?.[0];\n\t\t\t\tlet bId = b.temp_filename?.match(idPattern)?.[0];\n\n\t\t\t\t/***\n\t\t\t\t * In the context of editing entries or with rehydration from GFUR, we won't have the temp_filename.\n\t\t\t\t * However, in these cases we will typically have uploaded_filename which we can sort by.\n\t\t\t\t *\n\t\t\t\t * Another note: GF_User_Registration::is_new_file_upload requires that new files are prepended to the\n\t\t\t\t * files list instead of appended.\n\t\t\t\t */\n\t\t\t\tif (!a.temp_filename) {\n\t\t\t\t\taId = a.uploaded_filename;\n\t\t\t\t}\n\n\t\t\t\tif (!b.temp_filename) {\n\t\t\t\t\tbId = b.uploaded_filename;\n\t\t\t\t}\n\n\t\t\t\treturn fileOrder.indexOf(aId) - fileOrder.indexOf(bId);\n\t\t\t});\n\n\t\t\t/**\n\t\t\t * Set key on files if a sort happened. This helps signal to GFUR that the submitted value should be\n\t\t\t * used rather than the existing meta values.\n\t\t\t */\n\t\t\tif (orderChanged) {\n\t\t\t\tfiles[inputName] = files[inputName].map((file: { [key: string]: string | boolean }) => {\n\t\t\t\t\tfile.gpfup_order_changed = true;\n\t\t\t\t\treturn file;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// @ts-ignore\n\t\t\t$uploadedFiles.val($.toJSON(files));\n\t\t}\n\t}\n}\n","import loadImage from 'blueimp-load-image';\n\nexport default async function loadWithBlueimp({image, jpegQuality, loadImageOptions, stripMetadata}: {\n\timage: MOxieFile,\n\tloadImageOptions: loadImage.LoadImageOptions,\n\tjpegQuality: number,\n\tstripMetadata: boolean,\n}): Promise<MOxieFile> {\n\tconst img = await loadImage(image.getNative(), {\n\t\tcanvas: true,\n\t\torientation: true,\n\t\tmeta: true,\n\t\t...loadImageOptions,\n\t});\n\n\tlet blobImageType = image?.type;\n\n\tif (['image/jpg', 'image/jpeg'].includes(image?.type)) {\n\t\tblobImageType = 'image/jpeg';\n\t}\n\n\tlet processedBlob = await new Promise<Blob | null>((resolve) => {\n\t\t(img.image as unknown as HTMLCanvasElement).toBlob(function (blob) {\n\t\t\tresolve(blob);\n\t\t}, blobImageType, jpegQuality);\n\t});\n\n\tif (!stripMetadata) {\n\t\tprocessedBlob = await loadImage.replaceHead(processedBlob, img.imageHead);\n\t}\n\n\t/* Create new file object for Plupload using blob and update file name */\n\tconst newFile = new window.mOxie.File(null, processedBlob);\n\tnewFile.name = image.name;\n\n\treturn newFile;\n}\n","var e=\"undefined\"!=typeof self?self:global;const t=\"undefined\"!=typeof navigator,i=t&&\"undefined\"==typeof HTMLImageElement,n=!(\"undefined\"==typeof global||\"undefined\"==typeof process||!process.versions||!process.versions.node),s=e.Buffer,r=e.BigInt,a=!!s,o=e=>e;function l(e,t=o){if(n)try{return\"function\"==typeof require?Promise.resolve(t(require(e))):import(/* webpackIgnore: true */ e).then(t)}catch(t){console.warn(`Couldn't load ${e}`)}}let h=e.fetch;const u=e=>h=e;if(!e.fetch){const e=l(\"http\",(e=>e)),t=l(\"https\",(e=>e)),i=(n,{headers:s}={})=>new Promise((async(r,a)=>{let{port:o,hostname:l,pathname:h,protocol:u,search:c}=new URL(n);const f={method:\"GET\",hostname:l,path:encodeURI(h)+c,headers:s};\"\"!==o&&(f.port=Number(o));const d=(\"https:\"===u?await t:await e).request(f,(e=>{if(301===e.statusCode||302===e.statusCode){let t=new URL(e.headers.location,n).toString();return i(t,{headers:s}).then(r).catch(a)}r({status:e.statusCode,arrayBuffer:()=>new Promise((t=>{let i=[];e.on(\"data\",(e=>i.push(e))),e.on(\"end\",(()=>t(Buffer.concat(i))))}))})}));d.on(\"error\",a),d.end()}));u(i)}function c(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}const f=e=>p(e)?void 0:e,d=e=>void 0!==e;function p(e){return void 0===e||(e instanceof Map?0===e.size:0===Object.values(e).filter(d).length)}function g(e){let t=new Error(e);throw delete t.stack,t}function m(e){return\"\"===(e=function(e){for(;e.endsWith(\"\\0\");)e=e.slice(0,-1);return e}(e).trim())?void 0:e}function S(e){let t=function(e){let t=0;return e.ifd0.enabled&&(t+=1024),e.exif.enabled&&(t+=2048),e.makerNote&&(t+=2048),e.userComment&&(t+=1024),e.gps.enabled&&(t+=512),e.interop.enabled&&(t+=100),e.ifd1.enabled&&(t+=1024),t+2048}(e);return e.jfif.enabled&&(t+=50),e.xmp.enabled&&(t+=2e4),e.iptc.enabled&&(t+=14e3),e.icc.enabled&&(t+=6e3),t}const C=e=>String.fromCharCode.apply(null,e),y=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf-8\"):void 0;function b(e){return y?y.decode(e):a?Buffer.from(e).toString(\"utf8\"):decodeURIComponent(escape(C(e)))}class I{static from(e,t){return e instanceof this&&e.le===t?e:new I(e,void 0,void 0,t)}constructor(e,t=0,i,n){if(\"boolean\"==typeof n&&(this.le=n),Array.isArray(e)&&(e=new Uint8Array(e)),0===e)this.byteOffset=0,this.byteLength=0;else if(e instanceof ArrayBuffer){void 0===i&&(i=e.byteLength-t);let n=new DataView(e,t,i);this._swapDataView(n)}else if(e instanceof Uint8Array||e instanceof DataView||e instanceof I){void 0===i&&(i=e.byteLength-t),(t+=e.byteOffset)+i>e.byteOffset+e.byteLength&&g(\"Creating view outside of available memory in ArrayBuffer\");let n=new DataView(e.buffer,t,i);this._swapDataView(n)}else if(\"number\"==typeof e){let t=new DataView(new ArrayBuffer(e));this._swapDataView(t)}else g(\"Invalid input argument for BufferView: \"+e)}_swapArrayBuffer(e){this._swapDataView(new DataView(e))}_swapBuffer(e){this._swapDataView(new DataView(e.buffer,e.byteOffset,e.byteLength))}_swapDataView(e){this.dataView=e,this.buffer=e.buffer,this.byteOffset=e.byteOffset,this.byteLength=e.byteLength}_lengthToEnd(e){return this.byteLength-e}set(e,t,i=I){return e instanceof DataView||e instanceof I?e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array||g(\"BufferView.set(): Invalid data argument.\"),this.toUint8().set(e,t),new i(this,t,e.byteLength)}subarray(e,t){return t=t||this._lengthToEnd(e),new I(this,e,t)}toUint8(){return new Uint8Array(this.buffer,this.byteOffset,this.byteLength)}getUint8Array(e,t){return new Uint8Array(this.buffer,this.byteOffset+e,t)}getString(e=0,t=this.byteLength){return b(this.getUint8Array(e,t))}getLatin1String(e=0,t=this.byteLength){let i=this.getUint8Array(e,t);return C(i)}getUnicodeString(e=0,t=this.byteLength){const i=[];for(let n=0;n<t&&e+n<this.byteLength;n+=2)i.push(this.getUint16(e+n));return C(i)}getInt8(e){return this.dataView.getInt8(e)}getUint8(e){return this.dataView.getUint8(e)}getInt16(e,t=this.le){return this.dataView.getInt16(e,t)}getInt32(e,t=this.le){return this.dataView.getInt32(e,t)}getUint16(e,t=this.le){return this.dataView.getUint16(e,t)}getUint32(e,t=this.le){return this.dataView.getUint32(e,t)}getFloat32(e,t=this.le){return this.dataView.getFloat32(e,t)}getFloat64(e,t=this.le){return this.dataView.getFloat64(e,t)}getFloat(e,t=this.le){return this.dataView.getFloat32(e,t)}getDouble(e,t=this.le){return this.dataView.getFloat64(e,t)}getUintBytes(e,t,i){switch(t){case 1:return this.getUint8(e,i);case 2:return this.getUint16(e,i);case 4:return this.getUint32(e,i);case 8:return this.getUint64&&this.getUint64(e,i)}}getUint(e,t,i){switch(t){case 8:return this.getUint8(e,i);case 16:return this.getUint16(e,i);case 32:return this.getUint32(e,i);case 64:return this.getUint64&&this.getUint64(e,i)}}toString(e){return this.dataView.toString(e,this.constructor.name)}ensureChunk(){}}function P(e,t){g(`${e} '${t}' was not loaded, try using full build of exifr.`)}class k extends Map{constructor(e){super(),this.kind=e}get(e,t){return this.has(e)||P(this.kind,e),t&&(e in t||function(e,t){g(`Unknown ${e} '${t}'.`)}(this.kind,e),t[e].enabled||P(this.kind,e)),super.get(e)}keyList(){return Array.from(this.keys())}}var w=new k(\"file parser\"),T=new k(\"segment parser\"),A=new k(\"file reader\");function D(e,n){return\"string\"==typeof e?O(e,n):t&&!i&&e instanceof HTMLImageElement?O(e.src,n):e instanceof Uint8Array||e instanceof ArrayBuffer||e instanceof DataView?new I(e):t&&e instanceof Blob?x(e,n,\"blob\",R):void g(\"Invalid input argument\")}function O(e,i){return(s=e).startsWith(\"data:\")||s.length>1e4?v(e,i,\"base64\"):n&&e.includes(\"://\")?x(e,i,\"url\",M):n?v(e,i,\"fs\"):t?x(e,i,\"url\",M):void g(\"Invalid input argument\");var s}async function x(e,t,i,n){return A.has(i)?v(e,t,i):n?async function(e,t){let i=await t(e);return new I(i)}(e,n):void g(`Parser ${i} is not loaded`)}async function v(e,t,i){let n=new(A.get(i))(e,t);return await n.read(),n}const M=e=>h(e).then((e=>e.arrayBuffer())),R=e=>new Promise(((t,i)=>{let n=new FileReader;n.onloadend=()=>t(n.result||new ArrayBuffer),n.onerror=i,n.readAsArrayBuffer(e)}));class L extends Map{get tagKeys(){return this.allKeys||(this.allKeys=Array.from(this.keys())),this.allKeys}get tagValues(){return this.allValues||(this.allValues=Array.from(this.values())),this.allValues}}function U(e,t,i){let n=new L;for(let[e,t]of i)n.set(e,t);if(Array.isArray(t))for(let i of t)e.set(i,n);else e.set(t,n);return n}function F(e,t,i){let n,s=e.get(t);for(n of i)s.set(n[0],n[1])}const E=new Map,B=new Map,N=new Map,G=[\"chunked\",\"firstChunkSize\",\"firstChunkSizeNode\",\"firstChunkSizeBrowser\",\"chunkSize\",\"chunkLimit\"],V=[\"jfif\",\"xmp\",\"icc\",\"iptc\",\"ihdr\"],z=[\"tiff\",...V],H=[\"ifd0\",\"ifd1\",\"exif\",\"gps\",\"interop\"],j=[...z,...H],W=[\"makerNote\",\"userComment\"],K=[\"translateKeys\",\"translateValues\",\"reviveValues\",\"multiSegment\"],X=[...K,\"sanitize\",\"mergeOutput\",\"silentErrors\"];class _{get translate(){return this.translateKeys||this.translateValues||this.reviveValues}}class Y extends _{get needed(){return this.enabled||this.deps.size>0}constructor(e,t,i,n){if(super(),c(this,\"enabled\",!1),c(this,\"skip\",new Set),c(this,\"pick\",new Set),c(this,\"deps\",new Set),c(this,\"translateKeys\",!1),c(this,\"translateValues\",!1),c(this,\"reviveValues\",!1),this.key=e,this.enabled=t,this.parse=this.enabled,this.applyInheritables(n),this.canBeFiltered=H.includes(e),this.canBeFiltered&&(this.dict=E.get(e)),void 0!==i)if(Array.isArray(i))this.parse=this.enabled=!0,this.canBeFiltered&&i.length>0&&this.translateTagSet(i,this.pick);else if(\"object\"==typeof i){if(this.enabled=!0,this.parse=!1!==i.parse,this.canBeFiltered){let{pick:e,skip:t}=i;e&&e.length>0&&this.translateTagSet(e,this.pick),t&&t.length>0&&this.translateTagSet(t,this.skip)}this.applyInheritables(i)}else!0===i||!1===i?this.parse=this.enabled=i:g(`Invalid options argument: ${i}`)}applyInheritables(e){let t,i;for(t of K)i=e[t],void 0!==i&&(this[t]=i)}translateTagSet(e,t){if(this.dict){let i,n,{tagKeys:s,tagValues:r}=this.dict;for(i of e)\"string\"==typeof i?(n=r.indexOf(i),-1===n&&(n=s.indexOf(Number(i))),-1!==n&&t.add(Number(s[n]))):t.add(i)}else for(let i of e)t.add(i)}finalizeFilters(){!this.enabled&&this.deps.size>0?(this.enabled=!0,ee(this.pick,this.deps)):this.enabled&&this.pick.size>0&&ee(this.pick,this.deps)}}var $={jfif:!1,tiff:!0,xmp:!1,icc:!1,iptc:!1,ifd0:!0,ifd1:!1,exif:!0,gps:!0,interop:!1,ihdr:void 0,makerNote:!1,userComment:!1,multiSegment:!1,skip:[],pick:[],translateKeys:!0,translateValues:!0,reviveValues:!0,sanitize:!0,mergeOutput:!0,silentErrors:!0,chunked:!0,firstChunkSize:void 0,firstChunkSizeNode:512,firstChunkSizeBrowser:65536,chunkSize:65536,chunkLimit:5},J=new Map;class q extends _{static useCached(e){let t=J.get(e);return void 0!==t||(t=new this(e),J.set(e,t)),t}constructor(e){super(),!0===e?this.setupFromTrue():void 0===e?this.setupFromUndefined():Array.isArray(e)?this.setupFromArray(e):\"object\"==typeof e?this.setupFromObject(e):g(`Invalid options argument ${e}`),void 0===this.firstChunkSize&&(this.firstChunkSize=t?this.firstChunkSizeBrowser:this.firstChunkSizeNode),this.mergeOutput&&(this.ifd1.enabled=!1),this.filterNestedSegmentTags(),this.traverseTiffDependencyTree(),this.checkLoadedPlugins()}setupFromUndefined(){let e;for(e of G)this[e]=$[e];for(e of X)this[e]=$[e];for(e of W)this[e]=$[e];for(e of j)this[e]=new Y(e,$[e],void 0,this)}setupFromTrue(){let e;for(e of G)this[e]=$[e];for(e of X)this[e]=$[e];for(e of W)this[e]=!0;for(e of j)this[e]=new Y(e,!0,void 0,this)}setupFromArray(e){let t;for(t of G)this[t]=$[t];for(t of X)this[t]=$[t];for(t of W)this[t]=$[t];for(t of j)this[t]=new Y(t,!1,void 0,this);this.setupGlobalFilters(e,void 0,H)}setupFromObject(e){let t;for(t of(H.ifd0=H.ifd0||H.image,H.ifd1=H.ifd1||H.thumbnail,Object.assign(this,e),G))this[t]=Z(e[t],$[t]);for(t of X)this[t]=Z(e[t],$[t]);for(t of W)this[t]=Z(e[t],$[t]);for(t of z)this[t]=new Y(t,$[t],e[t],this);for(t of H)this[t]=new Y(t,$[t],e[t],this.tiff);this.setupGlobalFilters(e.pick,e.skip,H,j),!0===e.tiff?this.batchEnableWithBool(H,!0):!1===e.tiff?this.batchEnableWithUserValue(H,e):Array.isArray(e.tiff)?this.setupGlobalFilters(e.tiff,void 0,H):\"object\"==typeof e.tiff&&this.setupGlobalFilters(e.tiff.pick,e.tiff.skip,H)}batchEnableWithBool(e,t){for(let i of e)this[i].enabled=t}batchEnableWithUserValue(e,t){for(let i of e){let e=t[i];this[i].enabled=!1!==e&&void 0!==e}}setupGlobalFilters(e,t,i,n=i){if(e&&e.length){for(let e of n)this[e].enabled=!1;let t=Q(e,i);for(let[e,i]of t)ee(this[e].pick,i),this[e].enabled=!0}else if(t&&t.length){let e=Q(t,i);for(let[t,i]of e)ee(this[t].skip,i)}}filterNestedSegmentTags(){let{ifd0:e,exif:t,xmp:i,iptc:n,icc:s}=this;this.makerNote?t.deps.add(37500):t.skip.add(37500),this.userComment?t.deps.add(37510):t.skip.add(37510),i.enabled||e.skip.add(700),n.enabled||e.skip.add(33723),s.enabled||e.skip.add(34675)}traverseTiffDependencyTree(){let{ifd0:e,exif:t,gps:i,interop:n}=this;n.needed&&(t.deps.add(40965),e.deps.add(40965)),t.needed&&e.deps.add(34665),i.needed&&e.deps.add(34853),this.tiff.enabled=H.some((e=>!0===this[e].enabled))||this.makerNote||this.userComment;for(let e of H)this[e].finalizeFilters()}get onlyTiff(){return!V.map((e=>this[e].enabled)).some((e=>!0===e))&&this.tiff.enabled}checkLoadedPlugins(){for(let e of z)this[e].enabled&&!T.has(e)&&P(\"segment parser\",e)}}function Q(e,t){let i,n,s,r,a=[];for(s of t){for(r of(i=E.get(s),n=[],i))(e.includes(r[0])||e.includes(r[1]))&&n.push(r[0]);n.length&&a.push([s,n])}return a}function Z(e,t){return void 0!==e?e:void 0!==t?t:void 0}function ee(e,t){for(let i of t)e.add(i)}c(q,\"default\",$);class te{constructor(e){c(this,\"parsers\",{}),c(this,\"output\",{}),c(this,\"errors\",[]),c(this,\"pushToErrors\",(e=>this.errors.push(e))),this.options=q.useCached(e)}async read(e){this.file=await D(e,this.options)}setup(){if(this.fileParser)return;let{file:e}=this,t=e.getUint16(0);for(let[i,n]of w)if(n.canHandle(e,t))return this.fileParser=new n(this.options,this.file,this.parsers),e[i]=!0;this.file.close&&this.file.close(),g(\"Unknown file format\")}async parse(){let{output:e,errors:t}=this;return this.setup(),this.options.silentErrors?(await this.executeParsers().catch(this.pushToErrors),t.push(...this.fileParser.errors)):await this.executeParsers(),this.file.close&&this.file.close(),this.options.silentErrors&&t.length>0&&(e.errors=t),f(e)}async executeParsers(){let{output:e}=this;await this.fileParser.parse();let t=Object.values(this.parsers).map((async t=>{let i=await t.parse();t.assignToOutput(e,i)}));this.options.silentErrors&&(t=t.map((e=>e.catch(this.pushToErrors)))),await Promise.all(t)}async extractThumbnail(){this.setup();let{options:e,file:t}=this,i=T.get(\"tiff\",e);var n;if(t.tiff?n={start:0,type:\"tiff\"}:t.jpeg&&(n=await this.fileParser.getOrFindSegment(\"tiff\")),void 0===n)return;let s=await this.fileParser.ensureSegmentChunk(n),r=this.parsers.tiff=new i(s,e,t),a=await r.extractThumbnail();return t.close&&t.close(),a}}async function ie(e,t){let i=new te(t);return await i.read(e),i.parse()}var ne=Object.freeze({__proto__:null,parse:ie,Exifr:te,fileParsers:w,segmentParsers:T,fileReaders:A,tagKeys:E,tagValues:B,tagRevivers:N,createDictionary:U,extendDictionary:F,fetchUrlAsArrayBuffer:M,readBlobAsArrayBuffer:R,chunkedProps:G,otherSegments:V,segments:z,tiffBlocks:H,segmentsAndBlocks:j,tiffExtractables:W,inheritables:K,allFormatters:X,Options:q});class se{constructor(e,t,i){c(this,\"errors\",[]),c(this,\"ensureSegmentChunk\",(async e=>{let t=e.start,i=e.size||65536;if(this.file.chunked)if(this.file.available(t,i))e.chunk=this.file.subarray(t,i);else try{e.chunk=await this.file.readChunk(t,i)}catch(t){g(`Couldn't read segment: ${JSON.stringify(e)}. ${t.message}`)}else this.file.byteLength>t+i?e.chunk=this.file.subarray(t,i):void 0===e.size?e.chunk=this.file.subarray(t):g(\"Segment unreachable: \"+JSON.stringify(e));return e.chunk})),this.extendOptions&&this.extendOptions(e),this.options=e,this.file=t,this.parsers=i}injectSegment(e,t){this.options[e].enabled&&this.createParser(e,t)}createParser(e,t){let i=new(T.get(e))(t,this.options,this.file);return this.parsers[e]=i}createParsers(e){for(let t of e){let{type:e,chunk:i}=t,n=this.options[e];if(n&&n.enabled){let t=this.parsers[e];t&&t.append||t||this.createParser(e,i)}}}async readSegments(e){let t=e.map(this.ensureSegmentChunk);await Promise.all(t)}}class re{static findPosition(e,t){let i=e.getUint16(t+2)+2,n=\"function\"==typeof this.headerLength?this.headerLength(e,t,i):this.headerLength,s=t+n,r=i-n;return{offset:t,length:i,headerLength:n,start:s,size:r,end:s+r}}static parse(e,t={}){return new this(e,new q({[this.type]:t}),e).parse()}normalizeInput(e){return e instanceof I?e:new I(e)}constructor(e,t={},i){c(this,\"errors\",[]),c(this,\"raw\",new Map),c(this,\"handleError\",(e=>{if(!this.options.silentErrors)throw e;this.errors.push(e.message)})),this.chunk=this.normalizeInput(e),this.file=i,this.type=this.constructor.type,this.globalOptions=this.options=t,this.localOptions=t[this.type],this.canTranslate=this.localOptions&&this.localOptions.translate}translate(){this.canTranslate&&(this.translated=this.translateBlock(this.raw,this.type))}get output(){return this.translated?this.translated:this.raw?Object.fromEntries(this.raw):void 0}translateBlock(e,t){let i=N.get(t),n=B.get(t),s=E.get(t),r=this.options[t],a=r.reviveValues&&!!i,o=r.translateValues&&!!n,l=r.translateKeys&&!!s,h={};for(let[t,r]of e)a&&i.has(t)?r=i.get(t)(r):o&&n.has(t)&&(r=this.translateValue(r,n.get(t))),l&&s.has(t)&&(t=s.get(t)||t),h[t]=r;return h}translateValue(e,t){return t[e]||t.DEFAULT||e}assignToOutput(e,t){this.assignObjectToOutput(e,this.constructor.type,t)}assignObjectToOutput(e,t,i){if(this.globalOptions.mergeOutput)return Object.assign(e,i);e[t]?Object.assign(e[t],i):e[t]=i}}c(re,\"headerLength\",4),c(re,\"type\",void 0),c(re,\"multiSegment\",!1),c(re,\"canHandle\",(()=>!1));function ae(e){return 192===e||194===e||196===e||219===e||221===e||218===e||254===e}function oe(e){return e>=224&&e<=239}function le(e,t,i){for(let[n,s]of T)if(s.canHandle(e,t,i))return n}class he extends se{constructor(...e){super(...e),c(this,\"appSegments\",[]),c(this,\"jpegSegments\",[]),c(this,\"unknownSegments\",[])}static canHandle(e,t){return 65496===t}async parse(){await this.findAppSegments(),await this.readSegments(this.appSegments),this.mergeMultiSegments(),this.createParsers(this.mergedAppSegments||this.appSegments)}setupSegmentFinderArgs(e){!0===e?(this.findAll=!0,this.wanted=new Set(T.keyList())):(e=void 0===e?T.keyList().filter((e=>this.options[e].enabled)):e.filter((e=>this.options[e].enabled&&T.has(e))),this.findAll=!1,this.remaining=new Set(e),this.wanted=new Set(e)),this.unfinishedMultiSegment=!1}async findAppSegments(e=0,t){this.setupSegmentFinderArgs(t);let{file:i,findAll:n,wanted:s,remaining:r}=this;if(!n&&this.file.chunked&&(n=Array.from(s).some((e=>{let t=T.get(e),i=this.options[e];return t.multiSegment&&i.multiSegment})),n&&await this.file.readWhole()),e=this.findAppSegmentsInRange(e,i.byteLength),!this.options.onlyTiff&&i.chunked){let t=!1;for(;r.size>0&&!t&&(i.canReadNextChunk||this.unfinishedMultiSegment);){let{nextChunkOffset:n}=i,s=this.appSegments.some((e=>!this.file.available(e.offset||e.start,e.length||e.size)));if(t=e>n&&!s?!await i.readNextChunk(e):!await i.readNextChunk(n),void 0===(e=this.findAppSegmentsInRange(e,i.byteLength)))return}}}findAppSegmentsInRange(e,t){t-=2;let i,n,s,r,a,o,{file:l,findAll:h,wanted:u,remaining:c,options:f}=this;for(;e<t;e++)if(255===l.getUint8(e))if(i=l.getUint8(e+1),oe(i)){if(n=l.getUint16(e+2),s=le(l,e,n),s&&u.has(s)&&(r=T.get(s),a=r.findPosition(l,e),o=f[s],a.type=s,this.appSegments.push(a),!h&&(r.multiSegment&&o.multiSegment?(this.unfinishedMultiSegment=a.chunkNumber<a.chunkCount,this.unfinishedMultiSegment||c.delete(s)):c.delete(s),0===c.size)))break;f.recordUnknownSegments&&(a=re.findPosition(l,e),a.marker=i,this.unknownSegments.push(a)),e+=n+1}else if(ae(i)){if(n=l.getUint16(e+2),218===i&&!1!==f.stopAfterSos)return;f.recordJpegSegments&&this.jpegSegments.push({offset:e,length:n,marker:i}),e+=n+1}return e}mergeMultiSegments(){if(!this.appSegments.some((e=>e.multiSegment)))return;let e=function(e,t){let i,n,s,r=new Map;for(let a=0;a<e.length;a++)i=e[a],n=i[t],r.has(n)?s=r.get(n):r.set(n,s=[]),s.push(i);return Array.from(r)}(this.appSegments,\"type\");this.mergedAppSegments=e.map((([e,t])=>{let i=T.get(e,this.options);if(i.handleMultiSegments){return{type:e,chunk:i.handleMultiSegments(t)}}return t[0]}))}getSegment(e){return this.appSegments.find((t=>t.type===e))}async getOrFindSegment(e){let t=this.getSegment(e);return void 0===t&&(await this.findAppSegments(0,[e]),t=this.getSegment(e)),t}}c(he,\"type\",\"jpeg\"),w.set(\"jpeg\",he);const ue=[void 0,1,1,2,4,8,1,1,2,4,8,4,8,4];class ce extends re{parseHeader(){var e=this.chunk.getUint16();18761===e?this.le=!0:19789===e&&(this.le=!1),this.chunk.le=this.le,this.headerParsed=!0}parseTags(e,t,i=new Map){let{pick:n,skip:s}=this.options[t];n=new Set(n);let r=n.size>0,a=0===s.size,o=this.chunk.getUint16(e);e+=2;for(let l=0;l<o;l++){let o=this.chunk.getUint16(e);if(r){if(n.has(o)&&(i.set(o,this.parseTag(e,o,t)),n.delete(o),0===n.size))break}else!a&&s.has(o)||i.set(o,this.parseTag(e,o,t));e+=12}return i}parseTag(e,t,i){let{chunk:n}=this,s=n.getUint16(e+2),r=n.getUint32(e+4),a=ue[s];if(a*r<=4?e+=8:e=n.getUint32(e+8),(s<1||s>13)&&g(`Invalid TIFF value type. block: ${i.toUpperCase()}, tag: ${t.toString(16)}, type: ${s}, offset ${e}`),e>n.byteLength&&g(`Invalid TIFF value offset. block: ${i.toUpperCase()}, tag: ${t.toString(16)}, type: ${s}, offset ${e} is outside of chunk size ${n.byteLength}`),1===s)return n.getUint8Array(e,r);if(2===s)return m(n.getString(e,r));if(7===s)return n.getUint8Array(e,r);if(1===r)return this.parseTagValue(s,e);{let t=new(function(e){switch(e){case 1:return Uint8Array;case 3:return Uint16Array;case 4:return Uint32Array;case 5:return Array;case 6:return Int8Array;case 8:return Int16Array;case 9:return Int32Array;case 10:return Array;case 11:return Float32Array;case 12:return Float64Array;default:return Array}}(s))(r),i=a;for(let n=0;n<r;n++)t[n]=this.parseTagValue(s,e),e+=i;return t}}parseTagValue(e,t){let{chunk:i}=this;switch(e){case 1:return i.getUint8(t);case 3:return i.getUint16(t);case 4:return i.getUint32(t);case 5:return i.getUint32(t)/i.getUint32(t+4);case 6:return i.getInt8(t);case 8:return i.getInt16(t);case 9:return i.getInt32(t);case 10:return i.getInt32(t)/i.getInt32(t+4);case 11:return i.getFloat(t);case 12:return i.getDouble(t);case 13:return i.getUint32(t);default:g(`Invalid tiff type ${e}`)}}}class fe extends ce{static canHandle(e,t){return 225===e.getUint8(t+1)&&1165519206===e.getUint32(t+4)&&0===e.getUint16(t+8)}async parse(){this.parseHeader();let{options:e}=this;return e.ifd0.enabled&&await this.parseIfd0Block(),e.exif.enabled&&await this.safeParse(\"parseExifBlock\"),e.gps.enabled&&await this.safeParse(\"parseGpsBlock\"),e.interop.enabled&&await this.safeParse(\"parseInteropBlock\"),e.ifd1.enabled&&await this.safeParse(\"parseThumbnailBlock\"),this.createOutput()}safeParse(e){let t=this[e]();return void 0!==t.catch&&(t=t.catch(this.handleError)),t}findIfd0Offset(){void 0===this.ifd0Offset&&(this.ifd0Offset=this.chunk.getUint32(4))}findIfd1Offset(){if(void 0===this.ifd1Offset){this.findIfd0Offset();let e=this.chunk.getUint16(this.ifd0Offset),t=this.ifd0Offset+2+12*e;this.ifd1Offset=this.chunk.getUint32(t)}}parseBlock(e,t){let i=new Map;return this[t]=i,this.parseTags(e,t,i),i}async parseIfd0Block(){if(this.ifd0)return;let{file:e}=this;this.findIfd0Offset(),this.ifd0Offset<8&&g(\"Malformed EXIF data\"),!e.chunked&&this.ifd0Offset>e.byteLength&&g(`IFD0 offset points to outside of file.\\nthis.ifd0Offset: ${this.ifd0Offset}, file.byteLength: ${e.byteLength}`),e.tiff&&await e.ensureChunk(this.ifd0Offset,S(this.options));let t=this.parseBlock(this.ifd0Offset,\"ifd0\");return 0!==t.size?(this.exifOffset=t.get(34665),this.interopOffset=t.get(40965),this.gpsOffset=t.get(34853),this.xmp=t.get(700),this.iptc=t.get(33723),this.icc=t.get(34675),this.options.sanitize&&(t.delete(34665),t.delete(40965),t.delete(34853),t.delete(700),t.delete(33723),t.delete(34675)),t):void 0}async parseExifBlock(){if(this.exif)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.exifOffset)return;this.file.tiff&&await this.file.ensureChunk(this.exifOffset,S(this.options));let e=this.parseBlock(this.exifOffset,\"exif\");return this.interopOffset||(this.interopOffset=e.get(40965)),this.makerNote=e.get(37500),this.userComment=e.get(37510),this.options.sanitize&&(e.delete(40965),e.delete(37500),e.delete(37510)),this.unpack(e,41728),this.unpack(e,41729),e}unpack(e,t){let i=e.get(t);i&&1===i.length&&e.set(t,i[0])}async parseGpsBlock(){if(this.gps)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.gpsOffset)return;let e=this.parseBlock(this.gpsOffset,\"gps\");return e&&e.has(2)&&e.has(4)&&(e.set(\"latitude\",de(...e.get(2),e.get(1))),e.set(\"longitude\",de(...e.get(4),e.get(3)))),e}async parseInteropBlock(){if(!this.interop&&(this.ifd0||await this.parseIfd0Block(),void 0!==this.interopOffset||this.exif||await this.parseExifBlock(),void 0!==this.interopOffset))return this.parseBlock(this.interopOffset,\"interop\")}async parseThumbnailBlock(e=!1){if(!this.ifd1&&!this.ifd1Parsed&&(!this.options.mergeOutput||e))return this.findIfd1Offset(),this.ifd1Offset>0&&(this.parseBlock(this.ifd1Offset,\"ifd1\"),this.ifd1Parsed=!0),this.ifd1}async extractThumbnail(){if(this.headerParsed||this.parseHeader(),this.ifd1Parsed||await this.parseThumbnailBlock(!0),void 0===this.ifd1)return;let e=this.ifd1.get(513),t=this.ifd1.get(514);return this.chunk.getUint8Array(e,t)}get image(){return this.ifd0}get thumbnail(){return this.ifd1}createOutput(){let e,t,i,n={};for(t of H)if(e=this[t],!p(e))if(i=this.canTranslate?this.translateBlock(e,t):Object.fromEntries(e),this.options.mergeOutput){if(\"ifd1\"===t)continue;Object.assign(n,i)}else n[t]=i;return this.makerNote&&(n.makerNote=this.makerNote),this.userComment&&(n.userComment=this.userComment),n}assignToOutput(e,t){if(this.globalOptions.mergeOutput)Object.assign(e,t);else for(let[i,n]of Object.entries(t))this.assignObjectToOutput(e,i,n)}}function de(e,t,i,n){var s=e+t/60+i/3600;return\"S\"!==n&&\"W\"!==n||(s*=-1),s}c(fe,\"type\",\"tiff\"),c(fe,\"headerLength\",10),T.set(\"tiff\",fe);var pe=Object.freeze({__proto__:null,default:ne,Exifr:te,fileParsers:w,segmentParsers:T,fileReaders:A,tagKeys:E,tagValues:B,tagRevivers:N,createDictionary:U,extendDictionary:F,fetchUrlAsArrayBuffer:M,readBlobAsArrayBuffer:R,chunkedProps:G,otherSegments:V,segments:z,tiffBlocks:H,segmentsAndBlocks:j,tiffExtractables:W,inheritables:K,allFormatters:X,Options:q,parse:ie});const ge={ifd0:!1,ifd1:!1,exif:!1,gps:!1,interop:!1,sanitize:!1,reviveValues:!0,translateKeys:!1,translateValues:!1,mergeOutput:!1},me=Object.assign({},ge,{firstChunkSize:4e4,gps:[1,2,3,4]});async function Se(e){let t=new te(me);await t.read(e);let i=await t.parse();if(i&&i.gps){let{latitude:e,longitude:t}=i.gps;return{latitude:e,longitude:t}}}const Ce=Object.assign({},ge,{tiff:!1,ifd1:!0,mergeOutput:!1});async function ye(e){let t=new te(Ce);await t.read(e);let i=await t.extractThumbnail();return i&&a?s.from(i):i}async function be(e){let t=await this.thumbnail(e);if(void 0!==t){let e=new Blob([t]);return URL.createObjectURL(e)}}const Ie=Object.assign({},ge,{firstChunkSize:4e4,ifd0:[274]});async function Pe(e){let t=new te(Ie);await t.read(e);let i=await t.parse();if(i&&i.ifd0)return i.ifd0[274]}const ke=Object.freeze({1:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:0,rad:0},2:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:0,rad:0},3:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:180,rad:180*Math.PI/180},4:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:180,rad:180*Math.PI/180},5:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:90,rad:90*Math.PI/180},6:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:90,rad:90*Math.PI/180},7:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:270,rad:270*Math.PI/180},8:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:270,rad:270*Math.PI/180}});let we=!0,Te=!0;if(\"object\"==typeof navigator){let e=navigator.userAgent;if(e.includes(\"iPad\")||e.includes(\"iPhone\")){let t=e.match(/OS (\\d+)_(\\d+)/);if(t){let[,e,i]=t,n=Number(e)+.1*Number(i);we=n<13.4,Te=!1}}else if(e.includes(\"OS X 10\")){let[,t]=e.match(/OS X 10[_.](\\d+)/);we=Te=Number(t)<15}if(e.includes(\"Chrome/\")){let[,t]=e.match(/Chrome\\/(\\d+)/);we=Te=Number(t)<81}else if(e.includes(\"Firefox/\")){let[,t]=e.match(/Firefox\\/(\\d+)/);we=Te=Number(t)<77}}async function Ae(e){let t=await Pe(e);return Object.assign({canvas:we,css:Te},ke[t])}class De extends I{constructor(...e){super(...e),c(this,\"ranges\",new Oe),0!==this.byteLength&&this.ranges.add(0,this.byteLength)}_tryExtend(e,t,i){if(0===e&&0===this.byteLength&&i){let e=new DataView(i.buffer||i,i.byteOffset,i.byteLength);this._swapDataView(e)}else{let i=e+t;if(i>this.byteLength){let{dataView:e}=this._extend(i);this._swapDataView(e)}}}_extend(e){let t;t=a?s.allocUnsafe(e):new Uint8Array(e);let i=new DataView(t.buffer,t.byteOffset,t.byteLength);return t.set(new Uint8Array(this.buffer,this.byteOffset,this.byteLength),0),{uintView:t,dataView:i}}subarray(e,t,i=!1){return t=t||this._lengthToEnd(e),i&&this._tryExtend(e,t),this.ranges.add(e,t),super.subarray(e,t)}set(e,t,i=!1){i&&this._tryExtend(t,e.byteLength,e);let n=super.set(e,t);return this.ranges.add(t,n.byteLength),n}async ensureChunk(e,t){this.chunked&&(this.ranges.available(e,t)||await this.readChunk(e,t))}available(e,t){return this.ranges.available(e,t)}}class Oe{constructor(){c(this,\"list\",[])}get length(){return this.list.length}add(e,t,i=0){let n=e+t,s=this.list.filter((t=>xe(e,t.offset,n)||xe(e,t.end,n)));if(s.length>0){e=Math.min(e,...s.map((e=>e.offset))),n=Math.max(n,...s.map((e=>e.end))),t=n-e;let i=s.shift();i.offset=e,i.length=t,i.end=n,this.list=this.list.filter((e=>!s.includes(e)))}else this.list.push({offset:e,length:t,end:n})}available(e,t){let i=e+t;return this.list.some((t=>t.offset<=e&&i<=t.end))}}function xe(e,t,i){return e<=t&&t<=i}class ve extends De{constructor(e,t){super(0),c(this,\"chunksRead\",0),this.input=e,this.options=t}async readWhole(){this.chunked=!1,await this.readChunk(this.nextChunkOffset)}async readChunked(){this.chunked=!0,await this.readChunk(0,this.options.firstChunkSize)}async readNextChunk(e=this.nextChunkOffset){if(this.fullyRead)return this.chunksRead++,!1;let t=this.options.chunkSize,i=await this.readChunk(e,t);return!!i&&i.byteLength===t}async readChunk(e,t){if(this.chunksRead++,0!==(t=this.safeWrapAddress(e,t)))return this._readChunk(e,t)}safeWrapAddress(e,t){return void 0!==this.size&&e+t>this.size?Math.max(0,this.size-e):t}get nextChunkOffset(){if(0!==this.ranges.list.length)return this.ranges.list[0].length}get canReadNextChunk(){return this.chunksRead<this.options.chunkLimit}get fullyRead(){return void 0!==this.size&&this.nextChunkOffset===this.size}read(){return this.options.chunked?this.readChunked():this.readWhole()}close(){}}A.set(\"blob\",class extends ve{async readWhole(){this.chunked=!1;let e=await R(this.input);this._swapArrayBuffer(e)}readChunked(){return this.chunked=!0,this.size=this.input.size,super.readChunked()}async _readChunk(e,t){let i=t?e+t:void 0,n=this.input.slice(e,i),s=await R(n);return this.set(s,e,!0)}});var Me=Object.freeze({__proto__:null,default:pe,Exifr:te,fileParsers:w,segmentParsers:T,fileReaders:A,tagKeys:E,tagValues:B,tagRevivers:N,createDictionary:U,extendDictionary:F,fetchUrlAsArrayBuffer:M,readBlobAsArrayBuffer:R,chunkedProps:G,otherSegments:V,segments:z,tiffBlocks:H,segmentsAndBlocks:j,tiffExtractables:W,inheritables:K,allFormatters:X,Options:q,parse:ie,gpsOnlyOptions:me,gps:Se,thumbnailOnlyOptions:Ce,thumbnail:ye,thumbnailUrl:be,orientationOnlyOptions:Ie,orientation:Pe,rotations:ke,get rotateCanvas(){return we},get rotateCss(){return Te},rotation:Ae});A.set(\"url\",class extends ve{async readWhole(){this.chunked=!1;let e=await M(this.input);e instanceof ArrayBuffer?this._swapArrayBuffer(e):e instanceof Uint8Array&&this._swapBuffer(e)}async _readChunk(e,t){let i=t?e+t-1:void 0,n=this.options.httpHeaders||{};(e||i)&&(n.range=`bytes=${[e,i].join(\"-\")}`);let s=await h(this.input,{headers:n}),r=await s.arrayBuffer(),a=r.byteLength;if(416!==s.status)return a!==t&&(this.size=e+a),this.set(r,e,!0)}});I.prototype.getUint64=function(e){let t=this.getUint32(e),i=this.getUint32(e+4);return t<1048575?t<<32|i:void 0!==typeof r?(console.warn(\"Using BigInt because of type 64uint but JS can only handle 53b numbers.\"),r(t)<<r(32)|r(i)):void g(\"Trying to read 64b value but JS can only handle 53b numbers.\")};class Re extends se{parseBoxes(e=0){let t=[];for(;e<this.file.byteLength-4;){let i=this.parseBoxHead(e);if(t.push(i),0===i.length)break;e+=i.length}return t}parseSubBoxes(e){e.boxes=this.parseBoxes(e.start)}findBox(e,t){return void 0===e.boxes&&this.parseSubBoxes(e),e.boxes.find((e=>e.kind===t))}parseBoxHead(e){let t=this.file.getUint32(e),i=this.file.getString(e+4,4),n=e+8;return 1===t&&(t=this.file.getUint64(e+8),n+=8),{offset:e,length:t,kind:i,start:n}}parseBoxFullHead(e){if(void 0!==e.version)return;let t=this.file.getUint32(e.start);e.version=t>>24,e.start+=4}}class Le extends Re{static canHandle(e,t){if(0!==t)return!1;let i=e.getUint16(2);if(i>50)return!1;let n=16,s=[];for(;n<i;)s.push(e.getString(n,4)),n+=4;return s.includes(this.type)}async parse(){let e=this.file.getUint32(0),t=this.parseBoxHead(e);for(;\"meta\"!==t.kind;)e+=t.length,await this.file.ensureChunk(e,16),t=this.parseBoxHead(e);await this.file.ensureChunk(t.offset,t.length),this.parseBoxFullHead(t),this.parseSubBoxes(t),this.options.icc.enabled&&await this.findIcc(t),this.options.tiff.enabled&&await this.findExif(t)}async registerSegment(e,t,i){await this.file.ensureChunk(t,i);let n=this.file.subarray(t,i);this.createParser(e,n)}async findIcc(e){let t=this.findBox(e,\"iprp\");if(void 0===t)return;let i=this.findBox(t,\"ipco\");if(void 0===i)return;let n=this.findBox(i,\"colr\");void 0!==n&&await this.registerSegment(\"icc\",n.offset+12,n.length)}async findExif(e){let t=this.findBox(e,\"iinf\");if(void 0===t)return;let i=this.findBox(e,\"iloc\");if(void 0===i)return;let n=this.findExifLocIdInIinf(t),s=this.findExtentInIloc(i,n);if(void 0===s)return;let[r,a]=s;await this.file.ensureChunk(r,a);let o=4+this.file.getUint32(r);r+=o,a-=o,await this.registerSegment(\"tiff\",r,a)}findExifLocIdInIinf(e){this.parseBoxFullHead(e);let t,i,n,s,r=e.start,a=this.file.getUint16(r);for(r+=2;a--;){if(t=this.parseBoxHead(r),this.parseBoxFullHead(t),i=t.start,t.version>=2&&(n=3===t.version?4:2,s=this.file.getString(i+n+2,4),\"Exif\"===s))return this.file.getUintBytes(i,n);r+=t.length}}get8bits(e){let t=this.file.getUint8(e);return[t>>4,15&t]}findExtentInIloc(e,t){this.parseBoxFullHead(e);let i=e.start,[n,s]=this.get8bits(i++),[r,a]=this.get8bits(i++),o=2===e.version?4:2,l=1===e.version||2===e.version?2:0,h=a+n+s,u=2===e.version?4:2,c=this.file.getUintBytes(i,u);for(i+=u;c--;){let e=this.file.getUintBytes(i,o);i+=o+l+2+r;let u=this.file.getUint16(i);if(i+=2,e===t)return u>1&&console.warn(\"ILOC box has more than one extent but we're only processing one\\nPlease create an issue at https://github.com/MikeKovarik/exifr with this file\"),[this.file.getUintBytes(i+a,n),this.file.getUintBytes(i+a+n,s)];i+=u*h}}}class Ue extends Le{}c(Ue,\"type\",\"heic\");class Fe extends Le{}c(Fe,\"type\",\"avif\"),w.set(\"heic\",Ue),w.set(\"avif\",Fe),U(E,[\"ifd0\",\"ifd1\"],[[256,\"ImageWidth\"],[257,\"ImageHeight\"],[258,\"BitsPerSample\"],[259,\"Compression\"],[262,\"PhotometricInterpretation\"],[270,\"ImageDescription\"],[271,\"Make\"],[272,\"Model\"],[273,\"StripOffsets\"],[274,\"Orientation\"],[277,\"SamplesPerPixel\"],[278,\"RowsPerStrip\"],[279,\"StripByteCounts\"],[282,\"XResolution\"],[283,\"YResolution\"],[284,\"PlanarConfiguration\"],[296,\"ResolutionUnit\"],[301,\"TransferFunction\"],[305,\"Software\"],[306,\"ModifyDate\"],[315,\"Artist\"],[316,\"HostComputer\"],[317,\"Predictor\"],[318,\"WhitePoint\"],[319,\"PrimaryChromaticities\"],[513,\"ThumbnailOffset\"],[514,\"ThumbnailLength\"],[529,\"YCbCrCoefficients\"],[530,\"YCbCrSubSampling\"],[531,\"YCbCrPositioning\"],[532,\"ReferenceBlackWhite\"],[700,\"ApplicationNotes\"],[33432,\"Copyright\"],[33723,\"IPTC\"],[34665,\"ExifIFD\"],[34675,\"ICC\"],[34853,\"GpsIFD\"],[330,\"SubIFD\"],[40965,\"InteropIFD\"],[40091,\"XPTitle\"],[40092,\"XPComment\"],[40093,\"XPAuthor\"],[40094,\"XPKeywords\"],[40095,\"XPSubject\"]]),U(E,\"exif\",[[33434,\"ExposureTime\"],[33437,\"FNumber\"],[34850,\"ExposureProgram\"],[34852,\"SpectralSensitivity\"],[34855,\"ISO\"],[34858,\"TimeZoneOffset\"],[34859,\"SelfTimerMode\"],[34864,\"SensitivityType\"],[34865,\"StandardOutputSensitivity\"],[34866,\"RecommendedExposureIndex\"],[34867,\"ISOSpeed\"],[34868,\"ISOSpeedLatitudeyyy\"],[34869,\"ISOSpeedLatitudezzz\"],[36864,\"ExifVersion\"],[36867,\"DateTimeOriginal\"],[36868,\"CreateDate\"],[36873,\"GooglePlusUploadCode\"],[36880,\"OffsetTime\"],[36881,\"OffsetTimeOriginal\"],[36882,\"OffsetTimeDigitized\"],[37121,\"ComponentsConfiguration\"],[37122,\"CompressedBitsPerPixel\"],[37377,\"ShutterSpeedValue\"],[37378,\"ApertureValue\"],[37379,\"BrightnessValue\"],[37380,\"ExposureCompensation\"],[37381,\"MaxApertureValue\"],[37382,\"SubjectDistance\"],[37383,\"MeteringMode\"],[37384,\"LightSource\"],[37385,\"Flash\"],[37386,\"FocalLength\"],[37393,\"ImageNumber\"],[37394,\"SecurityClassification\"],[37395,\"ImageHistory\"],[37396,\"SubjectArea\"],[37500,\"MakerNote\"],[37510,\"UserComment\"],[37520,\"SubSecTime\"],[37521,\"SubSecTimeOriginal\"],[37522,\"SubSecTimeDigitized\"],[37888,\"AmbientTemperature\"],[37889,\"Humidity\"],[37890,\"Pressure\"],[37891,\"WaterDepth\"],[37892,\"Acceleration\"],[37893,\"CameraElevationAngle\"],[40960,\"FlashpixVersion\"],[40961,\"ColorSpace\"],[40962,\"ExifImageWidth\"],[40963,\"ExifImageHeight\"],[40964,\"RelatedSoundFile\"],[41483,\"FlashEnergy\"],[41486,\"FocalPlaneXResolution\"],[41487,\"FocalPlaneYResolution\"],[41488,\"FocalPlaneResolutionUnit\"],[41492,\"SubjectLocation\"],[41493,\"ExposureIndex\"],[41495,\"SensingMethod\"],[41728,\"FileSource\"],[41729,\"SceneType\"],[41730,\"CFAPattern\"],[41985,\"CustomRendered\"],[41986,\"ExposureMode\"],[41987,\"WhiteBalance\"],[41988,\"DigitalZoomRatio\"],[41989,\"FocalLengthIn35mmFormat\"],[41990,\"SceneCaptureType\"],[41991,\"GainControl\"],[41992,\"Contrast\"],[41993,\"Saturation\"],[41994,\"Sharpness\"],[41996,\"SubjectDistanceRange\"],[42016,\"ImageUniqueID\"],[42032,\"OwnerName\"],[42033,\"SerialNumber\"],[42034,\"LensInfo\"],[42035,\"LensMake\"],[42036,\"LensModel\"],[42037,\"LensSerialNumber\"],[42080,\"CompositeImage\"],[42081,\"CompositeImageCount\"],[42082,\"CompositeImageExposureTimes\"],[42240,\"Gamma\"],[59932,\"Padding\"],[59933,\"OffsetSchema\"],[65e3,\"OwnerName\"],[65001,\"SerialNumber\"],[65002,\"Lens\"],[65100,\"RawFile\"],[65101,\"Converter\"],[65102,\"WhiteBalance\"],[65105,\"Exposure\"],[65106,\"Shadows\"],[65107,\"Brightness\"],[65108,\"Contrast\"],[65109,\"Saturation\"],[65110,\"Sharpness\"],[65111,\"Smoothness\"],[65112,\"MoireFilter\"],[40965,\"InteropIFD\"]]),U(E,\"gps\",[[0,\"GPSVersionID\"],[1,\"GPSLatitudeRef\"],[2,\"GPSLatitude\"],[3,\"GPSLongitudeRef\"],[4,\"GPSLongitude\"],[5,\"GPSAltitudeRef\"],[6,\"GPSAltitude\"],[7,\"GPSTimeStamp\"],[8,\"GPSSatellites\"],[9,\"GPSStatus\"],[10,\"GPSMeasureMode\"],[11,\"GPSDOP\"],[12,\"GPSSpeedRef\"],[13,\"GPSSpeed\"],[14,\"GPSTrackRef\"],[15,\"GPSTrack\"],[16,\"GPSImgDirectionRef\"],[17,\"GPSImgDirection\"],[18,\"GPSMapDatum\"],[19,\"GPSDestLatitudeRef\"],[20,\"GPSDestLatitude\"],[21,\"GPSDestLongitudeRef\"],[22,\"GPSDestLongitude\"],[23,\"GPSDestBearingRef\"],[24,\"GPSDestBearing\"],[25,\"GPSDestDistanceRef\"],[26,\"GPSDestDistance\"],[27,\"GPSProcessingMethod\"],[28,\"GPSAreaInformation\"],[29,\"GPSDateStamp\"],[30,\"GPSDifferential\"],[31,\"GPSHPositioningError\"]]),U(B,[\"ifd0\",\"ifd1\"],[[274,{1:\"Horizontal (normal)\",2:\"Mirror horizontal\",3:\"Rotate 180\",4:\"Mirror vertical\",5:\"Mirror horizontal and rotate 270 CW\",6:\"Rotate 90 CW\",7:\"Mirror horizontal and rotate 90 CW\",8:\"Rotate 270 CW\"}],[296,{1:\"None\",2:\"inches\",3:\"cm\"}]]);let Ee=U(B,\"exif\",[[34850,{0:\"Not defined\",1:\"Manual\",2:\"Normal program\",3:\"Aperture priority\",4:\"Shutter priority\",5:\"Creative program\",6:\"Action program\",7:\"Portrait mode\",8:\"Landscape mode\"}],[37121,{0:\"-\",1:\"Y\",2:\"Cb\",3:\"Cr\",4:\"R\",5:\"G\",6:\"B\"}],[37383,{0:\"Unknown\",1:\"Average\",2:\"CenterWeightedAverage\",3:\"Spot\",4:\"MultiSpot\",5:\"Pattern\",6:\"Partial\",255:\"Other\"}],[37384,{0:\"Unknown\",1:\"Daylight\",2:\"Fluorescent\",3:\"Tungsten (incandescent light)\",4:\"Flash\",9:\"Fine weather\",10:\"Cloudy weather\",11:\"Shade\",12:\"Daylight fluorescent (D 5700 - 7100K)\",13:\"Day white fluorescent (N 4600 - 5400K)\",14:\"Cool white fluorescent (W 3900 - 4500K)\",15:\"White fluorescent (WW 3200 - 3700K)\",17:\"Standard light A\",18:\"Standard light B\",19:\"Standard light C\",20:\"D55\",21:\"D65\",22:\"D75\",23:\"D50\",24:\"ISO studio tungsten\",255:\"Other\"}],[37385,{0:\"Flash did not fire\",1:\"Flash fired\",5:\"Strobe return light not detected\",7:\"Strobe return light detected\",9:\"Flash fired, compulsory flash mode\",13:\"Flash fired, compulsory flash mode, return light not detected\",15:\"Flash fired, compulsory flash mode, return light detected\",16:\"Flash did not fire, compulsory flash mode\",24:\"Flash did not fire, auto mode\",25:\"Flash fired, auto mode\",29:\"Flash fired, auto mode, return light not detected\",31:\"Flash fired, auto mode, return light detected\",32:\"No flash function\",65:\"Flash fired, red-eye reduction mode\",69:\"Flash fired, red-eye reduction mode, return light not detected\",71:\"Flash fired, red-eye reduction mode, return light detected\",73:\"Flash fired, compulsory flash mode, red-eye reduction mode\",77:\"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected\",79:\"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected\",89:\"Flash fired, auto mode, red-eye reduction mode\",93:\"Flash fired, auto mode, return light not detected, red-eye reduction mode\",95:\"Flash fired, auto mode, return light detected, red-eye reduction mode\"}],[41495,{1:\"Not defined\",2:\"One-chip color area sensor\",3:\"Two-chip color area sensor\",4:\"Three-chip color area sensor\",5:\"Color sequential area sensor\",7:\"Trilinear sensor\",8:\"Color sequential linear sensor\"}],[41728,{1:\"Film Scanner\",2:\"Reflection Print Scanner\",3:\"Digital Camera\"}],[41729,{1:\"Directly photographed\"}],[41985,{0:\"Normal\",1:\"Custom\",2:\"HDR (no original saved)\",3:\"HDR (original saved)\",4:\"Original (for HDR)\",6:\"Panorama\",7:\"Portrait HDR\",8:\"Portrait\"}],[41986,{0:\"Auto\",1:\"Manual\",2:\"Auto bracket\"}],[41987,{0:\"Auto\",1:\"Manual\"}],[41990,{0:\"Standard\",1:\"Landscape\",2:\"Portrait\",3:\"Night\",4:\"Other\"}],[41991,{0:\"None\",1:\"Low gain up\",2:\"High gain up\",3:\"Low gain down\",4:\"High gain down\"}],[41996,{0:\"Unknown\",1:\"Macro\",2:\"Close\",3:\"Distant\"}],[42080,{0:\"Unknown\",1:\"Not a Composite Image\",2:\"General Composite Image\",3:\"Composite Image Captured While Shooting\"}]]);const Be={1:\"No absolute unit of measurement\",2:\"Inch\",3:\"Centimeter\"};Ee.set(37392,Be),Ee.set(41488,Be);const Ne={0:\"Normal\",1:\"Low\",2:\"High\"};function Ge(e){return\"object\"==typeof e&&void 0!==e.length?e[0]:e}function Ve(e){let t=Array.from(e).slice(1);return t[1]>15&&(t=t.map((e=>String.fromCharCode(e)))),\"0\"!==t[2]&&0!==t[2]||t.pop(),t.join(\".\")}function ze(e){if(\"string\"==typeof e){var[t,i,n,s,r,a]=e.trim().split(/[-: ]/g).map(Number),o=new Date(t,i-1,n);return Number.isNaN(s)||Number.isNaN(r)||Number.isNaN(a)||(o.setHours(s),o.setMinutes(r),o.setSeconds(a)),Number.isNaN(+o)?e:o}}function He(e){if(\"string\"==typeof e)return e;let t=[];if(0===e[1]&&0===e[e.length-1])for(let i=0;i<e.length;i+=2)t.push(je(e[i+1],e[i]));else for(let i=0;i<e.length;i+=2)t.push(je(e[i],e[i+1]));return m(String.fromCodePoint(...t))}function je(e,t){return e<<8|t}Ee.set(41992,Ne),Ee.set(41993,Ne),Ee.set(41994,Ne),U(N,[\"ifd0\",\"ifd1\"],[[50827,function(e){return\"string\"!=typeof e?b(e):e}],[306,ze],[40091,He],[40092,He],[40093,He],[40094,He],[40095,He]]),U(N,\"exif\",[[40960,Ve],[36864,Ve],[36867,ze],[36868,ze],[40962,Ge],[40963,Ge]]),U(N,\"gps\",[[0,e=>Array.from(e).join(\".\")],[7,e=>Array.from(e).join(\":\")]]);class We extends re{static canHandle(e,t){return 225===e.getUint8(t+1)&&1752462448===e.getUint32(t+4)&&\"http://ns.adobe.com/\"===e.getString(t+4,\"http://ns.adobe.com/\".length)}static headerLength(e,t){return\"http://ns.adobe.com/xmp/extension/\"===e.getString(t+4,\"http://ns.adobe.com/xmp/extension/\".length)?79:4+\"http://ns.adobe.com/xap/1.0/\".length+1}static findPosition(e,t){let i=super.findPosition(e,t);return i.multiSegment=i.extended=79===i.headerLength,i.multiSegment?(i.chunkCount=e.getUint8(t+72),i.chunkNumber=e.getUint8(t+76),0!==e.getUint8(t+77)&&i.chunkNumber++):(i.chunkCount=1/0,i.chunkNumber=-1),i}static handleMultiSegments(e){return e.map((e=>e.chunk.getString())).join(\"\")}normalizeInput(e){return\"string\"==typeof e?e:I.from(e).getString()}parse(e=this.chunk){if(!this.localOptions.parse)return e;e=function(e){let t={},i={};for(let e of Ze)t[e]=[],i[e]=0;return e.replace(et,((e,n,s)=>{if(\"<\"===n){let n=++i[s];return t[s].push(n),`${e}#${n}`}return`${e}#${t[s].pop()}`}))}(e);let t=Xe.findAll(e,\"rdf\",\"Description\");0===t.length&&t.push(new Xe(\"rdf\",\"Description\",void 0,e));let i,n={};for(let e of t)for(let t of e.properties)i=Je(t.ns,n),_e(t,i);return function(e){let t;for(let i in e)t=e[i]=f(e[i]),void 0===t&&delete e[i];return f(e)}(n)}assignToOutput(e,t){if(this.localOptions.parse)for(let[i,n]of Object.entries(t))switch(i){case\"tiff\":this.assignObjectToOutput(e,\"ifd0\",n);break;case\"exif\":this.assignObjectToOutput(e,\"exif\",n);break;case\"xmlns\":break;default:this.assignObjectToOutput(e,i,n)}else e.xmp=t}}c(We,\"type\",\"xmp\"),c(We,\"multiSegment\",!0),T.set(\"xmp\",We);class Ke{static findAll(e){return qe(e,/([a-zA-Z0-9-]+):([a-zA-Z0-9-]+)=(\"[^\"]*\"|'[^']*')/gm).map(Ke.unpackMatch)}static unpackMatch(e){let t=e[1],i=e[2],n=e[3].slice(1,-1);return n=Qe(n),new Ke(t,i,n)}constructor(e,t,i){this.ns=e,this.name=t,this.value=i}serialize(){return this.value}}class Xe{static findAll(e,t,i){if(void 0!==t||void 0!==i){t=t||\"[\\\\w\\\\d-]+\",i=i||\"[\\\\w\\\\d-]+\";var n=new RegExp(`<(${t}):(${i})(#\\\\d+)?((\\\\s+?[\\\\w\\\\d-:]+=(\"[^\"]*\"|'[^']*'))*\\\\s*)(\\\\/>|>([\\\\s\\\\S]*?)<\\\\/\\\\1:\\\\2\\\\3>)`,\"gm\")}else n=/<([\\w\\d-]+):([\\w\\d-]+)(#\\d+)?((\\s+?[\\w\\d-:]+=(\"[^\"]*\"|'[^']*'))*\\s*)(\\/>|>([\\s\\S]*?)<\\/\\1:\\2\\3>)/gm;return qe(e,n).map(Xe.unpackMatch)}static unpackMatch(e){let t=e[1],i=e[2],n=e[4],s=e[8];return new Xe(t,i,n,s)}constructor(e,t,i,n){this.ns=e,this.name=t,this.attrString=i,this.innerXml=n,this.attrs=Ke.findAll(i),this.children=Xe.findAll(n),this.value=0===this.children.length?Qe(n):void 0,this.properties=[...this.attrs,...this.children]}get isPrimitive(){return void 0!==this.value&&0===this.attrs.length&&0===this.children.length}get isListContainer(){return 1===this.children.length&&this.children[0].isList}get isList(){let{ns:e,name:t}=this;return\"rdf\"===e&&(\"Seq\"===t||\"Bag\"===t||\"Alt\"===t)}get isListItem(){return\"rdf\"===this.ns&&\"li\"===this.name}serialize(){if(0===this.properties.length&&void 0===this.value)return;if(this.isPrimitive)return this.value;if(this.isListContainer)return this.children[0].serialize();if(this.isList)return $e(this.children.map(Ye));if(this.isListItem&&1===this.children.length&&0===this.attrs.length)return this.children[0].serialize();let e={};for(let t of this.properties)_e(t,e);return void 0!==this.value&&(e.value=this.value),f(e)}}function _e(e,t){let i=e.serialize();void 0!==i&&(t[e.name]=i)}var Ye=e=>e.serialize(),$e=e=>1===e.length?e[0]:e,Je=(e,t)=>t[e]?t[e]:t[e]={};function qe(e,t){let i,n=[];if(!e)return n;for(;null!==(i=t.exec(e));)n.push(i);return n}function Qe(e){if(function(e){return null==e||\"null\"===e||\"undefined\"===e||\"\"===e||\"\"===e.trim()}(e))return;let t=Number(e);if(!Number.isNaN(t))return t;let i=e.toLowerCase();return\"true\"===i||\"false\"!==i&&e.trim()}const Ze=[\"rdf:li\",\"rdf:Seq\",\"rdf:Bag\",\"rdf:Alt\",\"rdf:Description\"],et=new RegExp(`(<|\\\\/)(${Ze.join(\"|\")})`,\"g\");var tt=Object.freeze({__proto__:null,default:Me,Exifr:te,fileParsers:w,segmentParsers:T,fileReaders:A,tagKeys:E,tagValues:B,tagRevivers:N,createDictionary:U,extendDictionary:F,fetchUrlAsArrayBuffer:M,readBlobAsArrayBuffer:R,chunkedProps:G,otherSegments:V,segments:z,tiffBlocks:H,segmentsAndBlocks:j,tiffExtractables:W,inheritables:K,allFormatters:X,Options:q,parse:ie,gpsOnlyOptions:me,gps:Se,thumbnailOnlyOptions:Ce,thumbnail:ye,thumbnailUrl:be,orientationOnlyOptions:Ie,orientation:Pe,rotations:ke,get rotateCanvas(){return we},get rotateCss(){return Te},rotation:Ae});const it=[\"xmp\",\"icc\",\"iptc\",\"tiff\"],nt=()=>{};async function st(e,t,i){let n=new q(t);n.chunked=!1,void 0===i&&\"string\"==typeof e&&(i=function(e){let t=e.toLowerCase().split(\".\").pop();if(function(e){return\"exif\"===e||\"tiff\"===e||\"tif\"===e}(t))return\"tiff\";if(it.includes(t))return t}(e));let s=await D(e,n);if(i){if(it.includes(i))return rt(i,s,n);g(\"Invalid segment type\")}else{if(function(e){let t=e.getString(0,50).trim();return t.includes(\"<?xpacket\")||t.includes(\"<x:\")}(s))return rt(\"xmp\",s,n);for(let[e]of T){if(!it.includes(e))continue;let t=await rt(e,s,n).catch(nt);if(t)return t}g(\"Unknown file format\")}}async function rt(e,t,i){let n=i[e];return n.enabled=!0,n.parse=!0,T.get(e).parse(t,n)}let at=l(\"fs\",(e=>e.promises));A.set(\"fs\",class extends ve{async readWhole(){this.chunked=!1,this.fs=await at;let e=await this.fs.readFile(this.input);this._swapBuffer(e)}async readChunked(){this.chunked=!0,this.fs=await at,await this.open(),await this.readChunk(0,this.options.firstChunkSize)}async open(){void 0===this.fh&&(this.fh=await this.fs.open(this.input,\"r\"),this.size=(await this.fh.stat(this.input)).size)}async _readChunk(e,t){void 0===this.fh&&await this.open(),e+t>this.size&&(t=this.size-e);var i=this.subarray(e,t,!0);return await this.fh.read(i.dataView,0,t,e),i}async close(){if(this.fh){let e=this.fh;this.fh=void 0,await e.close()}}});A.set(\"base64\",class extends ve{constructor(...e){super(...e),this.input=this.input.replace(/^data:([^;]+);base64,/gim,\"\"),this.size=this.input.length/4*3,this.input.endsWith(\"==\")?this.size-=2:this.input.endsWith(\"=\")&&(this.size-=1)}async _readChunk(e,t){let i,n,r=this.input;void 0===e?(e=0,i=0,n=0):(i=4*Math.floor(e/3),n=e-i/4*3),void 0===t&&(t=this.size);let o=e+t,l=i+4*Math.ceil(o/3);r=r.slice(i,l);let h=Math.min(t,this.size-e);if(a){let t=s.from(r,\"base64\").slice(n,n+h);return this.set(t,e,!0)}{let t=this.subarray(e,h,!0),i=atob(r),s=t.toUint8();for(let e=0;e<h;e++)s[e]=i.charCodeAt(n+e);return t}}});class ot extends se{static canHandle(e,t){return 18761===t||19789===t}extendOptions(e){let{ifd0:t,xmp:i,iptc:n,icc:s}=e;i.enabled&&t.deps.add(700),n.enabled&&t.deps.add(33723),s.enabled&&t.deps.add(34675),t.finalizeFilters()}async parse(){let{tiff:e,xmp:t,iptc:i,icc:n}=this.options;if(e.enabled||t.enabled||i.enabled||n.enabled){let e=Math.max(S(this.options),this.options.chunkSize);await this.file.ensureChunk(0,e),this.createParser(\"tiff\",this.file),this.parsers.tiff.parseHeader(),await this.parsers.tiff.parseIfd0Block(),this.adaptTiffPropAsSegment(\"xmp\"),this.adaptTiffPropAsSegment(\"iptc\"),this.adaptTiffPropAsSegment(\"icc\")}}adaptTiffPropAsSegment(e){if(this.parsers.tiff[e]){let t=this.parsers.tiff[e];this.injectSegment(e,t)}}}c(ot,\"type\",\"tiff\"),w.set(\"tiff\",ot);let lt=l(\"zlib\");const ht=[\"ihdr\",\"iccp\",\"text\",\"itxt\",\"exif\"];class ut extends se{constructor(...e){super(...e),c(this,\"catchError\",(e=>this.errors.push(e))),c(this,\"metaChunks\",[]),c(this,\"unknownChunks\",[])}static canHandle(e,t){return 35152===t&&2303741511===e.getUint32(0)&&218765834===e.getUint32(4)}async parse(){let{file:e}=this;await this.findPngChunksInRange(\"‰PNG\\r\\n\u001a\\n\".length,e.byteLength),await this.readSegments(this.metaChunks),this.findIhdr(),this.parseTextChunks(),await this.findExif().catch(this.catchError),await this.findXmp().catch(this.catchError),await this.findIcc().catch(this.catchError)}async findPngChunksInRange(e,t){let{file:i}=this;for(;e<t;){let t=i.getUint32(e),n=i.getUint32(e+4),s=i.getString(e+4,4).toLowerCase(),r=t+4+4+4,a={type:s,offset:e,length:r,start:e+4+4,size:t,marker:n};ht.includes(s)?this.metaChunks.push(a):this.unknownChunks.push(a),e+=r}}parseTextChunks(){let e=this.metaChunks.filter((e=>\"text\"===e.type));for(let t of e){let[e,i]=this.file.getString(t.start,t.size).split(\"\\0\");this.injectKeyValToIhdr(e,i)}}injectKeyValToIhdr(e,t){let i=this.parsers.ihdr;i&&i.raw.set(e,t)}findIhdr(){let e=this.metaChunks.find((e=>\"ihdr\"===e.type));e&&!1!==this.options.ihdr.enabled&&this.createParser(\"ihdr\",e.chunk)}async findExif(){let e=this.metaChunks.find((e=>\"exif\"===e.type));e&&this.injectSegment(\"tiff\",e.chunk)}async findXmp(){let e=this.metaChunks.filter((e=>\"itxt\"===e.type));for(let t of e){\"XML:com.adobe.xmp\"===t.chunk.getString(0,\"XML:com.adobe.xmp\".length)&&this.injectSegment(\"xmp\",t.chunk)}}async findIcc(){let e=this.metaChunks.find((e=>\"iccp\"===e.type));if(!e)return;let{chunk:t}=e,i=t.getUint8Array(0,81),s=0;for(;s<80&&0!==i[s];)s++;let r=s+2,a=t.getString(0,s);if(this.injectKeyValToIhdr(\"ProfileName\",a),n){let e=await lt,i=t.getUint8Array(r);i=e.inflateSync(i),this.injectSegment(\"icc\",i)}}}c(ut,\"type\",\"png\"),w.set(\"png\",ut),U(E,\"interop\",[[1,\"InteropIndex\"],[2,\"InteropVersion\"],[4096,\"RelatedImageFileFormat\"],[4097,\"RelatedImageWidth\"],[4098,\"RelatedImageHeight\"]]),F(E,\"ifd0\",[[11,\"ProcessingSoftware\"],[254,\"SubfileType\"],[255,\"OldSubfileType\"],[263,\"Thresholding\"],[264,\"CellWidth\"],[265,\"CellLength\"],[266,\"FillOrder\"],[269,\"DocumentName\"],[280,\"MinSampleValue\"],[281,\"MaxSampleValue\"],[285,\"PageName\"],[286,\"XPosition\"],[287,\"YPosition\"],[290,\"GrayResponseUnit\"],[297,\"PageNumber\"],[321,\"HalftoneHints\"],[322,\"TileWidth\"],[323,\"TileLength\"],[332,\"InkSet\"],[337,\"TargetPrinter\"],[18246,\"Rating\"],[18249,\"RatingPercent\"],[33550,\"PixelScale\"],[34264,\"ModelTransform\"],[34377,\"PhotoshopSettings\"],[50706,\"DNGVersion\"],[50707,\"DNGBackwardVersion\"],[50708,\"UniqueCameraModel\"],[50709,\"LocalizedCameraModel\"],[50736,\"DNGLensInfo\"],[50739,\"ShadowScale\"],[50740,\"DNGPrivateData\"],[33920,\"IntergraphMatrix\"],[33922,\"ModelTiePoint\"],[34118,\"SEMInfo\"],[34735,\"GeoTiffDirectory\"],[34736,\"GeoTiffDoubleParams\"],[34737,\"GeoTiffAsciiParams\"],[50341,\"PrintIM\"],[50721,\"ColorMatrix1\"],[50722,\"ColorMatrix2\"],[50723,\"CameraCalibration1\"],[50724,\"CameraCalibration2\"],[50725,\"ReductionMatrix1\"],[50726,\"ReductionMatrix2\"],[50727,\"AnalogBalance\"],[50728,\"AsShotNeutral\"],[50729,\"AsShotWhiteXY\"],[50730,\"BaselineExposure\"],[50731,\"BaselineNoise\"],[50732,\"BaselineSharpness\"],[50734,\"LinearResponseLimit\"],[50735,\"CameraSerialNumber\"],[50741,\"MakerNoteSafety\"],[50778,\"CalibrationIlluminant1\"],[50779,\"CalibrationIlluminant2\"],[50781,\"RawDataUniqueID\"],[50827,\"OriginalRawFileName\"],[50828,\"OriginalRawFileData\"],[50831,\"AsShotICCProfile\"],[50832,\"AsShotPreProfileMatrix\"],[50833,\"CurrentICCProfile\"],[50834,\"CurrentPreProfileMatrix\"],[50879,\"ColorimetricReference\"],[50885,\"SRawType\"],[50898,\"PanasonicTitle\"],[50899,\"PanasonicTitle2\"],[50931,\"CameraCalibrationSig\"],[50932,\"ProfileCalibrationSig\"],[50933,\"ProfileIFD\"],[50934,\"AsShotProfileName\"],[50936,\"ProfileName\"],[50937,\"ProfileHueSatMapDims\"],[50938,\"ProfileHueSatMapData1\"],[50939,\"ProfileHueSatMapData2\"],[50940,\"ProfileToneCurve\"],[50941,\"ProfileEmbedPolicy\"],[50942,\"ProfileCopyright\"],[50964,\"ForwardMatrix1\"],[50965,\"ForwardMatrix2\"],[50966,\"PreviewApplicationName\"],[50967,\"PreviewApplicationVersion\"],[50968,\"PreviewSettingsName\"],[50969,\"PreviewSettingsDigest\"],[50970,\"PreviewColorSpace\"],[50971,\"PreviewDateTime\"],[50972,\"RawImageDigest\"],[50973,\"OriginalRawFileDigest\"],[50981,\"ProfileLookTableDims\"],[50982,\"ProfileLookTableData\"],[51043,\"TimeCodes\"],[51044,\"FrameRate\"],[51058,\"TStop\"],[51081,\"ReelName\"],[51089,\"OriginalDefaultFinalSize\"],[51090,\"OriginalBestQualitySize\"],[51091,\"OriginalDefaultCropSize\"],[51105,\"CameraLabel\"],[51107,\"ProfileHueSatMapEncoding\"],[51108,\"ProfileLookTableEncoding\"],[51109,\"BaselineExposureOffset\"],[51110,\"DefaultBlackRender\"],[51111,\"NewRawImageDigest\"],[51112,\"RawToPreviewGain\"]]);let ct=[[273,\"StripOffsets\"],[279,\"StripByteCounts\"],[288,\"FreeOffsets\"],[289,\"FreeByteCounts\"],[291,\"GrayResponseCurve\"],[292,\"T4Options\"],[293,\"T6Options\"],[300,\"ColorResponseUnit\"],[320,\"ColorMap\"],[324,\"TileOffsets\"],[325,\"TileByteCounts\"],[326,\"BadFaxLines\"],[327,\"CleanFaxData\"],[328,\"ConsecutiveBadFaxLines\"],[330,\"SubIFD\"],[333,\"InkNames\"],[334,\"NumberofInks\"],[336,\"DotRange\"],[338,\"ExtraSamples\"],[339,\"SampleFormat\"],[340,\"SMinSampleValue\"],[341,\"SMaxSampleValue\"],[342,\"TransferRange\"],[343,\"ClipPath\"],[344,\"XClipPathUnits\"],[345,\"YClipPathUnits\"],[346,\"Indexed\"],[347,\"JPEGTables\"],[351,\"OPIProxy\"],[400,\"GlobalParametersIFD\"],[401,\"ProfileType\"],[402,\"FaxProfile\"],[403,\"CodingMethods\"],[404,\"VersionYear\"],[405,\"ModeNumber\"],[433,\"Decode\"],[434,\"DefaultImageColor\"],[435,\"T82Options\"],[437,\"JPEGTables\"],[512,\"JPEGProc\"],[515,\"JPEGRestartInterval\"],[517,\"JPEGLosslessPredictors\"],[518,\"JPEGPointTransforms\"],[519,\"JPEGQTables\"],[520,\"JPEGDCTables\"],[521,\"JPEGACTables\"],[559,\"StripRowCounts\"],[999,\"USPTOMiscellaneous\"],[18247,\"XP_DIP_XML\"],[18248,\"StitchInfo\"],[28672,\"SonyRawFileType\"],[28688,\"SonyToneCurve\"],[28721,\"VignettingCorrection\"],[28722,\"VignettingCorrParams\"],[28724,\"ChromaticAberrationCorrection\"],[28725,\"ChromaticAberrationCorrParams\"],[28726,\"DistortionCorrection\"],[28727,\"DistortionCorrParams\"],[29895,\"SonyCropTopLeft\"],[29896,\"SonyCropSize\"],[32781,\"ImageID\"],[32931,\"WangTag1\"],[32932,\"WangAnnotation\"],[32933,\"WangTag3\"],[32934,\"WangTag4\"],[32953,\"ImageReferencePoints\"],[32954,\"RegionXformTackPoint\"],[32955,\"WarpQuadrilateral\"],[32956,\"AffineTransformMat\"],[32995,\"Matteing\"],[32996,\"DataType\"],[32997,\"ImageDepth\"],[32998,\"TileDepth\"],[33300,\"ImageFullWidth\"],[33301,\"ImageFullHeight\"],[33302,\"TextureFormat\"],[33303,\"WrapModes\"],[33304,\"FovCot\"],[33305,\"MatrixWorldToScreen\"],[33306,\"MatrixWorldToCamera\"],[33405,\"Model2\"],[33421,\"CFARepeatPatternDim\"],[33422,\"CFAPattern2\"],[33423,\"BatteryLevel\"],[33424,\"KodakIFD\"],[33445,\"MDFileTag\"],[33446,\"MDScalePixel\"],[33447,\"MDColorTable\"],[33448,\"MDLabName\"],[33449,\"MDSampleInfo\"],[33450,\"MDPrepDate\"],[33451,\"MDPrepTime\"],[33452,\"MDFileUnits\"],[33589,\"AdventScale\"],[33590,\"AdventRevision\"],[33628,\"UIC1Tag\"],[33629,\"UIC2Tag\"],[33630,\"UIC3Tag\"],[33631,\"UIC4Tag\"],[33918,\"IntergraphPacketData\"],[33919,\"IntergraphFlagRegisters\"],[33921,\"INGRReserved\"],[34016,\"Site\"],[34017,\"ColorSequence\"],[34018,\"IT8Header\"],[34019,\"RasterPadding\"],[34020,\"BitsPerRunLength\"],[34021,\"BitsPerExtendedRunLength\"],[34022,\"ColorTable\"],[34023,\"ImageColorIndicator\"],[34024,\"BackgroundColorIndicator\"],[34025,\"ImageColorValue\"],[34026,\"BackgroundColorValue\"],[34027,\"PixelIntensityRange\"],[34028,\"TransparencyIndicator\"],[34029,\"ColorCharacterization\"],[34030,\"HCUsage\"],[34031,\"TrapIndicator\"],[34032,\"CMYKEquivalent\"],[34152,\"AFCP_IPTC\"],[34232,\"PixelMagicJBIGOptions\"],[34263,\"JPLCartoIFD\"],[34306,\"WB_GRGBLevels\"],[34310,\"LeafData\"],[34687,\"TIFF_FXExtensions\"],[34688,\"MultiProfiles\"],[34689,\"SharedData\"],[34690,\"T88Options\"],[34732,\"ImageLayer\"],[34750,\"JBIGOptions\"],[34856,\"Opto-ElectricConvFactor\"],[34857,\"Interlace\"],[34908,\"FaxRecvParams\"],[34909,\"FaxSubAddress\"],[34910,\"FaxRecvTime\"],[34929,\"FedexEDR\"],[34954,\"LeafSubIFD\"],[37387,\"FlashEnergy\"],[37388,\"SpatialFrequencyResponse\"],[37389,\"Noise\"],[37390,\"FocalPlaneXResolution\"],[37391,\"FocalPlaneYResolution\"],[37392,\"FocalPlaneResolutionUnit\"],[37397,\"ExposureIndex\"],[37398,\"TIFF-EPStandardID\"],[37399,\"SensingMethod\"],[37434,\"CIP3DataFile\"],[37435,\"CIP3Sheet\"],[37436,\"CIP3Side\"],[37439,\"StoNits\"],[37679,\"MSDocumentText\"],[37680,\"MSPropertySetStorage\"],[37681,\"MSDocumentTextPosition\"],[37724,\"ImageSourceData\"],[40965,\"InteropIFD\"],[40976,\"SamsungRawPointersOffset\"],[40977,\"SamsungRawPointersLength\"],[41217,\"SamsungRawByteOrder\"],[41218,\"SamsungRawUnknown\"],[41484,\"SpatialFrequencyResponse\"],[41485,\"Noise\"],[41489,\"ImageNumber\"],[41490,\"SecurityClassification\"],[41491,\"ImageHistory\"],[41494,\"TIFF-EPStandardID\"],[41995,\"DeviceSettingDescription\"],[42112,\"GDALMetadata\"],[42113,\"GDALNoData\"],[44992,\"ExpandSoftware\"],[44993,\"ExpandLens\"],[44994,\"ExpandFilm\"],[44995,\"ExpandFilterLens\"],[44996,\"ExpandScanner\"],[44997,\"ExpandFlashLamp\"],[46275,\"HasselbladRawImage\"],[48129,\"PixelFormat\"],[48130,\"Transformation\"],[48131,\"Uncompressed\"],[48132,\"ImageType\"],[48256,\"ImageWidth\"],[48257,\"ImageHeight\"],[48258,\"WidthResolution\"],[48259,\"HeightResolution\"],[48320,\"ImageOffset\"],[48321,\"ImageByteCount\"],[48322,\"AlphaOffset\"],[48323,\"AlphaByteCount\"],[48324,\"ImageDataDiscard\"],[48325,\"AlphaDataDiscard\"],[50215,\"OceScanjobDesc\"],[50216,\"OceApplicationSelector\"],[50217,\"OceIDNumber\"],[50218,\"OceImageLogic\"],[50255,\"Annotations\"],[50459,\"HasselbladExif\"],[50547,\"OriginalFileName\"],[50560,\"USPTOOriginalContentType\"],[50656,\"CR2CFAPattern\"],[50710,\"CFAPlaneColor\"],[50711,\"CFALayout\"],[50712,\"LinearizationTable\"],[50713,\"BlackLevelRepeatDim\"],[50714,\"BlackLevel\"],[50715,\"BlackLevelDeltaH\"],[50716,\"BlackLevelDeltaV\"],[50717,\"WhiteLevel\"],[50718,\"DefaultScale\"],[50719,\"DefaultCropOrigin\"],[50720,\"DefaultCropSize\"],[50733,\"BayerGreenSplit\"],[50737,\"ChromaBlurRadius\"],[50738,\"AntiAliasStrength\"],[50752,\"RawImageSegmentation\"],[50780,\"BestQualityScale\"],[50784,\"AliasLayerMetadata\"],[50829,\"ActiveArea\"],[50830,\"MaskedAreas\"],[50935,\"NoiseReductionApplied\"],[50974,\"SubTileBlockSize\"],[50975,\"RowInterleaveFactor\"],[51008,\"OpcodeList1\"],[51009,\"OpcodeList2\"],[51022,\"OpcodeList3\"],[51041,\"NoiseProfile\"],[51114,\"CacheVersion\"],[51125,\"DefaultUserCrop\"],[51157,\"NikonNEFInfo\"],[65024,\"KdcIFD\"]];F(E,\"ifd0\",ct),F(E,\"exif\",ct),U(B,\"gps\",[[23,{M:\"Magnetic North\",T:\"True North\"}],[25,{K:\"Kilometers\",M:\"Miles\",N:\"Nautical Miles\"}]]);class ft extends re{static canHandle(e,t){return 224===e.getUint8(t+1)&&1246120262===e.getUint32(t+4)&&0===e.getUint8(t+8)}parse(){return this.parseTags(),this.translate(),this.output}parseTags(){this.raw=new Map([[0,this.chunk.getUint16(0)],[2,this.chunk.getUint8(2)],[3,this.chunk.getUint16(3)],[5,this.chunk.getUint16(5)],[7,this.chunk.getUint8(7)],[8,this.chunk.getUint8(8)]])}}c(ft,\"type\",\"jfif\"),c(ft,\"headerLength\",9),T.set(\"jfif\",ft),U(E,\"jfif\",[[0,\"JFIFVersion\"],[2,\"ResolutionUnit\"],[3,\"XResolution\"],[5,\"YResolution\"],[7,\"ThumbnailWidth\"],[8,\"ThumbnailHeight\"]]);class dt extends re{parse(){return this.parseTags(),this.translate(),this.output}parseTags(){this.raw=new Map([[0,this.chunk.getUint32(0)],[4,this.chunk.getUint32(4)],[8,this.chunk.getUint8(8)],[9,this.chunk.getUint8(9)],[10,this.chunk.getUint8(10)],[11,this.chunk.getUint8(11)],[12,this.chunk.getUint8(12)],...Array.from(this.raw)])}}c(dt,\"type\",\"ihdr\"),T.set(\"ihdr\",dt),U(E,\"ihdr\",[[0,\"ImageWidth\"],[4,\"ImageHeight\"],[8,\"BitDepth\"],[9,\"ColorType\"],[10,\"Compression\"],[11,\"Filter\"],[12,\"Interlace\"]]),U(B,\"ihdr\",[[9,{0:\"Grayscale\",2:\"RGB\",3:\"Palette\",4:\"Grayscale with Alpha\",6:\"RGB with Alpha\",DEFAULT:\"Unknown\"}],[10,{0:\"Deflate/Inflate\",DEFAULT:\"Unknown\"}],[11,{0:\"Adaptive\",DEFAULT:\"Unknown\"}],[12,{0:\"Noninterlaced\",1:\"Adam7 Interlace\",DEFAULT:\"Unknown\"}]]);class pt extends re{static canHandle(e,t){return 226===e.getUint8(t+1)&&1229144927===e.getUint32(t+4)}static findPosition(e,t){let i=super.findPosition(e,t);return i.chunkNumber=e.getUint8(t+16),i.chunkCount=e.getUint8(t+17),i.multiSegment=i.chunkCount>1,i}static handleMultiSegments(e){return function(e){let t=function(e){let t=e[0].constructor,i=0;for(let t of e)i+=t.length;let n=new t(i),s=0;for(let t of e)n.set(t,s),s+=t.length;return n}(e.map((e=>e.chunk.toUint8())));return new I(t)}(e)}parse(){return this.raw=new Map,this.parseHeader(),this.parseTags(),this.translate(),this.output}parseHeader(){let{raw:e}=this;this.chunk.byteLength<84&&g(\"ICC header is too short\");for(let[t,i]of Object.entries(gt)){t=parseInt(t,10);let n=i(this.chunk,t);\"\\0\\0\\0\\0\"!==n&&e.set(t,n)}}parseTags(){let e,t,i,n,s,{raw:r}=this,a=this.chunk.getUint32(128),o=132,l=this.chunk.byteLength;for(;a--;){if(e=this.chunk.getString(o,4),t=this.chunk.getUint32(o+4),i=this.chunk.getUint32(o+8),n=this.chunk.getString(t,4),t+i>l)return void console.warn(\"reached the end of the first ICC chunk. Enable options.tiff.multiSegment to read all ICC segments.\");s=this.parseTag(n,t,i),void 0!==s&&\"\\0\\0\\0\\0\"!==s&&r.set(e,s),o+=12}}parseTag(e,t,i){switch(e){case\"desc\":return this.parseDesc(t);case\"mluc\":return this.parseMluc(t);case\"text\":return this.parseText(t,i);case\"sig \":return this.parseSig(t)}if(!(t+i>this.chunk.byteLength))return this.chunk.getUint8Array(t,i)}parseDesc(e){let t=this.chunk.getUint32(e+8)-1;return m(this.chunk.getString(e+12,t))}parseText(e,t){return m(this.chunk.getString(e+8,t-8))}parseSig(e){return m(this.chunk.getString(e+8,4))}parseMluc(e){let{chunk:t}=this,i=t.getUint32(e+8),n=t.getUint32(e+12),s=e+16,r=[];for(let a=0;a<i;a++){let i=t.getString(s+0,2),a=t.getString(s+2,2),o=t.getUint32(s+4),l=t.getUint32(s+8)+e,h=m(t.getUnicodeString(l,o));r.push({lang:i,country:a,text:h}),s+=n}return 1===i?r[0].text:r}translateValue(e,t){return\"string\"==typeof e?t[e]||t[e.toLowerCase()]||e:t[e]||e}}c(pt,\"type\",\"icc\"),c(pt,\"multiSegment\",!0),c(pt,\"headerLength\",18);const gt={4:mt,8:function(e,t){return[e.getUint8(t),e.getUint8(t+1)>>4,e.getUint8(t+1)%16].map((e=>e.toString(10))).join(\".\")},12:mt,16:mt,20:mt,24:function(e,t){const i=e.getUint16(t),n=e.getUint16(t+2)-1,s=e.getUint16(t+4),r=e.getUint16(t+6),a=e.getUint16(t+8),o=e.getUint16(t+10);return new Date(Date.UTC(i,n,s,r,a,o))},36:mt,40:mt,48:mt,52:mt,64:(e,t)=>e.getUint32(t),80:mt};function mt(e,t){return m(e.getString(t,4))}T.set(\"icc\",pt),U(E,\"icc\",[[4,\"ProfileCMMType\"],[8,\"ProfileVersion\"],[12,\"ProfileClass\"],[16,\"ColorSpaceData\"],[20,\"ProfileConnectionSpace\"],[24,\"ProfileDateTime\"],[36,\"ProfileFileSignature\"],[40,\"PrimaryPlatform\"],[44,\"CMMFlags\"],[48,\"DeviceManufacturer\"],[52,\"DeviceModel\"],[56,\"DeviceAttributes\"],[64,\"RenderingIntent\"],[68,\"ConnectionSpaceIlluminant\"],[80,\"ProfileCreator\"],[84,\"ProfileID\"],[\"Header\",\"ProfileHeader\"],[\"MS00\",\"WCSProfiles\"],[\"bTRC\",\"BlueTRC\"],[\"bXYZ\",\"BlueMatrixColumn\"],[\"bfd\",\"UCRBG\"],[\"bkpt\",\"MediaBlackPoint\"],[\"calt\",\"CalibrationDateTime\"],[\"chad\",\"ChromaticAdaptation\"],[\"chrm\",\"Chromaticity\"],[\"ciis\",\"ColorimetricIntentImageState\"],[\"clot\",\"ColorantTableOut\"],[\"clro\",\"ColorantOrder\"],[\"clrt\",\"ColorantTable\"],[\"cprt\",\"ProfileCopyright\"],[\"crdi\",\"CRDInfo\"],[\"desc\",\"ProfileDescription\"],[\"devs\",\"DeviceSettings\"],[\"dmdd\",\"DeviceModelDesc\"],[\"dmnd\",\"DeviceMfgDesc\"],[\"dscm\",\"ProfileDescriptionML\"],[\"fpce\",\"FocalPlaneColorimetryEstimates\"],[\"gTRC\",\"GreenTRC\"],[\"gXYZ\",\"GreenMatrixColumn\"],[\"gamt\",\"Gamut\"],[\"kTRC\",\"GrayTRC\"],[\"lumi\",\"Luminance\"],[\"meas\",\"Measurement\"],[\"meta\",\"Metadata\"],[\"mmod\",\"MakeAndModel\"],[\"ncl2\",\"NamedColor2\"],[\"ncol\",\"NamedColor\"],[\"ndin\",\"NativeDisplayInfo\"],[\"pre0\",\"Preview0\"],[\"pre1\",\"Preview1\"],[\"pre2\",\"Preview2\"],[\"ps2i\",\"PS2RenderingIntent\"],[\"ps2s\",\"PostScript2CSA\"],[\"psd0\",\"PostScript2CRD0\"],[\"psd1\",\"PostScript2CRD1\"],[\"psd2\",\"PostScript2CRD2\"],[\"psd3\",\"PostScript2CRD3\"],[\"pseq\",\"ProfileSequenceDesc\"],[\"psid\",\"ProfileSequenceIdentifier\"],[\"psvm\",\"PS2CRDVMSize\"],[\"rTRC\",\"RedTRC\"],[\"rXYZ\",\"RedMatrixColumn\"],[\"resp\",\"OutputResponse\"],[\"rhoc\",\"ReflectionHardcopyOrigColorimetry\"],[\"rig0\",\"PerceptualRenderingIntentGamut\"],[\"rig2\",\"SaturationRenderingIntentGamut\"],[\"rpoc\",\"ReflectionPrintOutputColorimetry\"],[\"sape\",\"SceneAppearanceEstimates\"],[\"scoe\",\"SceneColorimetryEstimates\"],[\"scrd\",\"ScreeningDesc\"],[\"scrn\",\"Screening\"],[\"targ\",\"CharTarget\"],[\"tech\",\"Technology\"],[\"vcgt\",\"VideoCardGamma\"],[\"view\",\"ViewingConditions\"],[\"vued\",\"ViewingCondDesc\"],[\"wtpt\",\"MediaWhitePoint\"]]);const St={\"4d2p\":\"Erdt Systems\",AAMA:\"Aamazing Technologies\",ACER:\"Acer\",ACLT:\"Acolyte Color Research\",ACTI:\"Actix Sytems\",ADAR:\"Adara Technology\",ADBE:\"Adobe\",ADI:\"ADI Systems\",AGFA:\"Agfa Graphics\",ALMD:\"Alps Electric\",ALPS:\"Alps Electric\",ALWN:\"Alwan Color Expertise\",AMTI:\"Amiable Technologies\",AOC:\"AOC International\",APAG:\"Apago\",APPL:\"Apple Computer\",AST:\"AST\",\"AT&T\":\"AT&T\",BAEL:\"BARBIERI electronic\",BRCO:\"Barco NV\",BRKP:\"Breakpoint\",BROT:\"Brother\",BULL:\"Bull\",BUS:\"Bus Computer Systems\",\"C-IT\":\"C-Itoh\",CAMR:\"Intel\",CANO:\"Canon\",CARR:\"Carroll Touch\",CASI:\"Casio\",CBUS:\"Colorbus PL\",CEL:\"Crossfield\",CELx:\"Crossfield\",CGS:\"CGS Publishing Technologies International\",CHM:\"Rochester Robotics\",CIGL:\"Colour Imaging Group, London\",CITI:\"Citizen\",CL00:\"Candela\",CLIQ:\"Color IQ\",CMCO:\"Chromaco\",CMiX:\"CHROMiX\",COLO:\"Colorgraphic Communications\",COMP:\"Compaq\",COMp:\"Compeq/Focus Technology\",CONR:\"Conrac Display Products\",CORD:\"Cordata Technologies\",CPQ:\"Compaq\",CPRO:\"ColorPro\",CRN:\"Cornerstone\",CTX:\"CTX International\",CVIS:\"ColorVision\",CWC:\"Fujitsu Laboratories\",DARI:\"Darius Technology\",DATA:\"Dataproducts\",DCP:\"Dry Creek Photo\",DCRC:\"Digital Contents Resource Center, Chung-Ang University\",DELL:\"Dell Computer\",DIC:\"Dainippon Ink and Chemicals\",DICO:\"Diconix\",DIGI:\"Digital\",\"DL&C\":\"Digital Light & Color\",DPLG:\"Doppelganger\",DS:\"Dainippon Screen\",DSOL:\"DOOSOL\",DUPN:\"DuPont\",EPSO:\"Epson\",ESKO:\"Esko-Graphics\",ETRI:\"Electronics and Telecommunications Research Institute\",EVER:\"Everex Systems\",EXAC:\"ExactCODE\",Eizo:\"Eizo\",FALC:\"Falco Data Products\",FF:\"Fuji Photo Film\",FFEI:\"FujiFilm Electronic Imaging\",FNRD:\"Fnord Software\",FORA:\"Fora\",FORE:\"Forefront Technology\",FP:\"Fujitsu\",FPA:\"WayTech Development\",FUJI:\"Fujitsu\",FX:\"Fuji Xerox\",GCC:\"GCC Technologies\",GGSL:\"Global Graphics Software\",GMB:\"Gretagmacbeth\",GMG:\"GMG\",GOLD:\"GoldStar Technology\",GOOG:\"Google\",GPRT:\"Giantprint\",GTMB:\"Gretagmacbeth\",GVC:\"WayTech Development\",GW2K:\"Sony\",HCI:\"HCI\",HDM:\"Heidelberger Druckmaschinen\",HERM:\"Hermes\",HITA:\"Hitachi America\",HP:\"Hewlett-Packard\",HTC:\"Hitachi\",HiTi:\"HiTi Digital\",IBM:\"IBM\",IDNT:\"Scitex\",IEC:\"Hewlett-Packard\",IIYA:\"Iiyama North America\",IKEG:\"Ikegami Electronics\",IMAG:\"Image Systems\",IMI:\"Ingram Micro\",INTC:\"Intel\",INTL:\"N/A (INTL)\",INTR:\"Intra Electronics\",IOCO:\"Iocomm International Technology\",IPS:\"InfoPrint Solutions Company\",IRIS:\"Scitex\",ISL:\"Ichikawa Soft Laboratory\",ITNL:\"N/A (ITNL)\",IVM:\"IVM\",IWAT:\"Iwatsu Electric\",Idnt:\"Scitex\",Inca:\"Inca Digital Printers\",Iris:\"Scitex\",JPEG:\"Joint Photographic Experts Group\",JSFT:\"Jetsoft Development\",JVC:\"JVC Information Products\",KART:\"Scitex\",KFC:\"KFC Computek Components\",KLH:\"KLH Computers\",KMHD:\"Konica Minolta\",KNCA:\"Konica\",KODA:\"Kodak\",KYOC:\"Kyocera\",Kart:\"Scitex\",LCAG:\"Leica\",LCCD:\"Leeds Colour\",LDAK:\"Left Dakota\",LEAD:\"Leading Technology\",LEXM:\"Lexmark International\",LINK:\"Link Computer\",LINO:\"Linotronic\",LITE:\"Lite-On\",Leaf:\"Leaf\",Lino:\"Linotronic\",MAGC:\"Mag Computronic\",MAGI:\"MAG Innovision\",MANN:\"Mannesmann\",MICN:\"Micron Technology\",MICR:\"Microtek\",MICV:\"Microvitec\",MINO:\"Minolta\",MITS:\"Mitsubishi Electronics America\",MITs:\"Mitsuba\",MNLT:\"Minolta\",MODG:\"Modgraph\",MONI:\"Monitronix\",MONS:\"Monaco Systems\",MORS:\"Morse Technology\",MOTI:\"Motive Systems\",MSFT:\"Microsoft\",MUTO:\"MUTOH INDUSTRIES\",Mits:\"Mitsubishi Electric\",NANA:\"NANAO\",NEC:\"NEC\",NEXP:\"NexPress Solutions\",NISS:\"Nissei Sangyo America\",NKON:\"Nikon\",NONE:\"none\",OCE:\"Oce Technologies\",OCEC:\"OceColor\",OKI:\"Oki\",OKID:\"Okidata\",OKIP:\"Okidata\",OLIV:\"Olivetti\",OLYM:\"Olympus\",ONYX:\"Onyx Graphics\",OPTI:\"Optiquest\",PACK:\"Packard Bell\",PANA:\"Matsushita Electric Industrial\",PANT:\"Pantone\",PBN:\"Packard Bell\",PFU:\"PFU\",PHIL:\"Philips Consumer Electronics\",PNTX:\"HOYA\",POne:\"Phase One A/S\",PREM:\"Premier Computer Innovations\",PRIN:\"Princeton Graphic Systems\",PRIP:\"Princeton Publishing Labs\",QLUX:\"Hong Kong\",QMS:\"QMS\",QPCD:\"QPcard AB\",QUAD:\"QuadLaser\",QUME:\"Qume\",RADI:\"Radius\",RDDx:\"Integrated Color Solutions\",RDG:\"Roland DG\",REDM:\"REDMS Group\",RELI:\"Relisys\",RGMS:\"Rolf Gierling Multitools\",RICO:\"Ricoh\",RNLD:\"Edmund Ronald\",ROYA:\"Royal\",RPC:\"Ricoh Printing Systems\",RTL:\"Royal Information Electronics\",SAMP:\"Sampo\",SAMS:\"Samsung\",SANT:\"Jaime Santana Pomares\",SCIT:\"Scitex\",SCRN:\"Dainippon Screen\",SDP:\"Scitex\",SEC:\"Samsung\",SEIK:\"Seiko Instruments\",SEIk:\"Seikosha\",SGUY:\"ScanGuy.com\",SHAR:\"Sharp Laboratories\",SICC:\"International Color Consortium\",SONY:\"Sony\",SPCL:\"SpectraCal\",STAR:\"Star\",STC:\"Sampo Technology\",Scit:\"Scitex\",Sdp:\"Scitex\",Sony:\"Sony\",TALO:\"Talon Technology\",TAND:\"Tandy\",TATU:\"Tatung\",TAXA:\"TAXAN America\",TDS:\"Tokyo Denshi Sekei\",TECO:\"TECO Information Systems\",TEGR:\"Tegra\",TEKT:\"Tektronix\",TI:\"Texas Instruments\",TMKR:\"TypeMaker\",TOSB:\"Toshiba\",TOSH:\"Toshiba\",TOTK:\"TOTOKU ELECTRIC\",TRIU:\"Triumph\",TSBT:\"Toshiba\",TTX:\"TTX Computer Products\",TVM:\"TVM Professional Monitor\",TW:\"TW Casper\",ULSX:\"Ulead Systems\",UNIS:\"Unisys\",UTZF:\"Utz Fehlau & Sohn\",VARI:\"Varityper\",VIEW:\"Viewsonic\",VISL:\"Visual communication\",VIVO:\"Vivo Mobile Communication\",WANG:\"Wang\",WLBR:\"Wilbur Imaging\",WTG2:\"Ware To Go\",WYSE:\"WYSE Technology\",XERX:\"Xerox\",XRIT:\"X-Rite\",ZRAN:\"Zoran\",Zebr:\"Zebra Technologies\",appl:\"Apple Computer\",bICC:\"basICColor\",berg:\"bergdesign\",ceyd:\"Integrated Color Solutions\",clsp:\"MacDermid ColorSpan\",ds:\"Dainippon Screen\",dupn:\"DuPont\",ffei:\"FujiFilm Electronic Imaging\",flux:\"FluxData\",iris:\"Scitex\",kart:\"Scitex\",lcms:\"Little CMS\",lino:\"Linotronic\",none:\"none\",ob4d:\"Erdt Systems\",obic:\"Medigraph\",quby:\"Qubyx Sarl\",scit:\"Scitex\",scrn:\"Dainippon Screen\",sdp:\"Scitex\",siwi:\"SIWI GRAFIKA\",yxym:\"YxyMaster\"},Ct={scnr:\"Scanner\",mntr:\"Monitor\",prtr:\"Printer\",link:\"Device Link\",abst:\"Abstract\",spac:\"Color Space Conversion Profile\",nmcl:\"Named Color\",cenc:\"ColorEncodingSpace profile\",mid:\"MultiplexIdentification profile\",mlnk:\"MultiplexLink profile\",mvis:\"MultiplexVisualization profile\",nkpf:\"Nikon Input Device Profile (NON-STANDARD!)\"};U(B,\"icc\",[[4,St],[12,Ct],[40,Object.assign({},St,Ct)],[48,St],[80,St],[64,{0:\"Perceptual\",1:\"Relative Colorimetric\",2:\"Saturation\",3:\"Absolute Colorimetric\"}],[\"tech\",{amd:\"Active Matrix Display\",crt:\"Cathode Ray Tube Display\",kpcd:\"Photo CD\",pmd:\"Passive Matrix Display\",dcam:\"Digital Camera\",dcpj:\"Digital Cinema Projector\",dmpc:\"Digital Motion Picture Camera\",dsub:\"Dye Sublimation Printer\",epho:\"Electrophotographic Printer\",esta:\"Electrostatic Printer\",flex:\"Flexography\",fprn:\"Film Writer\",fscn:\"Film Scanner\",grav:\"Gravure\",ijet:\"Ink Jet Printer\",imgs:\"Photo Image Setter\",mpfr:\"Motion Picture Film Recorder\",mpfs:\"Motion Picture Film Scanner\",offs:\"Offset Lithography\",pjtv:\"Projection Television\",rpho:\"Photographic Paper Printer\",rscn:\"Reflective Scanner\",silk:\"Silkscreen\",twax:\"Thermal Wax Printer\",vidc:\"Video Camera\",vidm:\"Video Monitor\"}]]);class yt extends re{static canHandle(e,t,i){return 237===e.getUint8(t+1)&&\"Photoshop\"===e.getString(t+4,9)&&void 0!==this.containsIptc8bim(e,t,i)}static headerLength(e,t,i){let n,s=this.containsIptc8bim(e,t,i);if(void 0!==s)return n=e.getUint8(t+s+7),n%2!=0&&(n+=1),0===n&&(n=4),s+8+n}static containsIptc8bim(e,t,i){for(let n=0;n<i;n++)if(this.isIptcSegmentHead(e,t+n))return n}static isIptcSegmentHead(e,t){return 56===e.getUint8(t)&&943868237===e.getUint32(t)&&1028===e.getUint16(t+4)}parse(){let{raw:e}=this,t=this.chunk.byteLength-1,i=!1;for(let n=0;n<t;n++)if(28===this.chunk.getUint8(n)&&2===this.chunk.getUint8(n+1)){i=!0;let t=this.chunk.getUint16(n+3),s=this.chunk.getUint8(n+2),r=this.chunk.getLatin1String(n+5,t);e.set(s,this.pluralizeValue(e.get(s),r)),n+=4+t}else if(i)break;return this.translate(),this.output}pluralizeValue(e,t){return void 0!==e?e instanceof Array?(e.push(t),e):[e,t]:t}}c(yt,\"type\",\"iptc\"),c(yt,\"translateValues\",!1),c(yt,\"reviveValues\",!1),T.set(\"iptc\",yt),U(E,\"iptc\",[[0,\"ApplicationRecordVersion\"],[3,\"ObjectTypeReference\"],[4,\"ObjectAttributeReference\"],[5,\"ObjectName\"],[7,\"EditStatus\"],[8,\"EditorialUpdate\"],[10,\"Urgency\"],[12,\"SubjectReference\"],[15,\"Category\"],[20,\"SupplementalCategories\"],[22,\"FixtureIdentifier\"],[25,\"Keywords\"],[26,\"ContentLocationCode\"],[27,\"ContentLocationName\"],[30,\"ReleaseDate\"],[35,\"ReleaseTime\"],[37,\"ExpirationDate\"],[38,\"ExpirationTime\"],[40,\"SpecialInstructions\"],[42,\"ActionAdvised\"],[45,\"ReferenceService\"],[47,\"ReferenceDate\"],[50,\"ReferenceNumber\"],[55,\"DateCreated\"],[60,\"TimeCreated\"],[62,\"DigitalCreationDate\"],[63,\"DigitalCreationTime\"],[65,\"OriginatingProgram\"],[70,\"ProgramVersion\"],[75,\"ObjectCycle\"],[80,\"Byline\"],[85,\"BylineTitle\"],[90,\"City\"],[92,\"Sublocation\"],[95,\"State\"],[100,\"CountryCode\"],[101,\"Country\"],[103,\"OriginalTransmissionReference\"],[105,\"Headline\"],[110,\"Credit\"],[115,\"Source\"],[116,\"CopyrightNotice\"],[118,\"Contact\"],[120,\"Caption\"],[121,\"LocalCaption\"],[122,\"Writer\"],[125,\"RasterizedCaption\"],[130,\"ImageType\"],[131,\"ImageOrientation\"],[135,\"LanguageIdentifier\"],[150,\"AudioType\"],[151,\"AudioSamplingRate\"],[152,\"AudioSamplingResolution\"],[153,\"AudioDuration\"],[154,\"AudioOutcue\"],[184,\"JobID\"],[185,\"MasterDocumentID\"],[186,\"ShortDocumentID\"],[187,\"UniqueDocumentID\"],[188,\"OwnerID\"],[200,\"ObjectPreviewFileFormat\"],[201,\"ObjectPreviewFileVersion\"],[202,\"ObjectPreviewData\"],[221,\"Prefs\"],[225,\"ClassifyState\"],[228,\"SimilarityIndex\"],[230,\"DocumentNotes\"],[231,\"DocumentHistory\"],[232,\"ExifCameraInfo\"],[255,\"CatalogSets\"]]),U(B,\"iptc\",[[10,{0:\"0 (reserved)\",1:\"1 (most urgent)\",2:\"2\",3:\"3\",4:\"4\",5:\"5 (normal urgency)\",6:\"6\",7:\"7\",8:\"8 (least urgent)\",9:\"9 (user-defined priority)\"}],[75,{a:\"Morning\",b:\"Both Morning and Evening\",p:\"Evening\"}],[131,{L:\"Landscape\",P:\"Portrait\",S:\"Square\"}]]);export default tt;export{te as Exifr,q as Options,X as allFormatters,G as chunkedProps,U as createDictionary,F as extendDictionary,M as fetchUrlAsArrayBuffer,w as fileParsers,A as fileReaders,Se as gps,me as gpsOnlyOptions,K as inheritables,Pe as orientation,Ie as orientationOnlyOptions,V as otherSegments,ie as parse,R as readBlobAsArrayBuffer,we as rotateCanvas,Te as rotateCss,Ae as rotation,ke as rotations,T as segmentParsers,z as segments,j as segmentsAndBlocks,st as sidecar,E as tagKeys,N as tagRevivers,B as tagValues,ye as thumbnail,Ce as thumbnailOnlyOptions,be as thumbnailUrl,H as tiffBlocks,W as tiffExtractables};\n","import * as Plupload from 'plupload';\nimport Vue from 'vue';\nimport GPFUP from './GPFUP.vue';\nimport GPFUPStore from './stores/GPFUPStore';\nimport isImage from \"./helpers/isImage\";\nimport Storage from './classes/Storage';\nimport debounce from 'debounce';\nimport sortHidddenGFInput from \"./helpers/sortHidddenGFInput\";\nimport loadWithBlueimp from \"./helpers/loadWithBlueimp\";\nimport replaceFile from \"./helpers/replaceFile\";\nimport triggerUpload from \"./helpers/triggerUpload\";\nimport getImageSize from \"./helpers/getImageSize\";\nimport type loadImage from \"blueimp-load-image\";\nimport exifr from 'exifr';\n\nconst { jQuery: $, gform } = window;\n\n/**\n * @class Class to enhance a Gravity Forms multi-file uploader\n */\nexport default class GPFUPField {\n\n\tpublic vm: Vue | undefined;\n\n\tpublic $store: any;\n\n\tpublic fieldId: string;\n\n\tpublic formId: string;\n\n\tpublic enableCrop: boolean;\n\n\tpublic enableSorting: boolean;\n\n\tpublic cropRequired: boolean;\n\n\tpublic aspectRatio: number | undefined;\n\n\tpublic maxWidth: number | undefined;\n\n\tpublic maxHeight: number | undefined;\n\n\tpublic minWidth: number | undefined;\n\n\tpublic minHeight: number | undefined;\n\n\tpublic exactWidth: number | undefined;\n\n\tpublic exactHeight: number | undefined;\n\n\t// @ts-ignore - set in constructor during gform_post_render\n\tpublic $field: HTMLElement | null;\n\n\t// @ts-ignore - set in constructor during gform_post_render\n\tpublic $preview: HTMLElement | null;\n\n\tpublic cropperContainerSelector: string;\n\n\t// @ts-ignore - set in constructor during gform_post_render\n\tpublic storage: Storage;\n\n\tget strings(): { [key: string]: string } {\n\t\tconst strings = {\n\t\t\t...(window.gform_gravityforms?.strings || {}),\n\t\t\t...window.GPFUP_CONSTANTS.STRINGS\n\t\t};\n\n\t\t/**\n\t\t * Filter the localized strings used on the File Uploader.\n\t\t *\n\t\t * @since 1.0.2\n\t\t *\n\t\t * @param object \t\tstrings \t\tLocalized strings.\n\t\t * @param int formId \t\t\tThe current form ID\n\t\t * @param int fieldId \t\tThe current uploader field ID\n\t\t * @param {GPFUPField}\tgpfupInstance \tCurrent File Upload Pro class instance\n\t\t */\n\t\treturn window.gform.applyFilters('gpfup_strings', strings, this.formId, this.fieldId, this);\n\t}\n\n\tget Uploader(): Plupload.Uploader {\n\t\tconst uploaderKey = `gform_multifile_upload_${this.formId}_${this.fieldId}`;\n\n\t\treturn window.gfMultiFileUploader.uploaders[uploaderKey];\n\t}\n\n\tconstructor(initSettings: GPFUPFieldInitSettings) {\n\t\tthis.formId = initSettings.formId;\n\t\tthis.fieldId = initSettings.fieldId;\n\t\tthis.enableCrop = initSettings.enableCrop;\n\t\tthis.enableSorting = initSettings.enableSorting;\n\t\tthis.cropRequired = initSettings.cropRequired && initSettings.enableCrop; // Ensure cropping is enabled too (HS#:27331)\n\t\tthis.aspectRatio = initSettings.aspectRatio;\n\t\tthis.maxWidth = initSettings.maxWidth ? initSettings.maxWidth : undefined;\n\t\tthis.maxHeight = initSettings.maxHeight ? initSettings.maxHeight : undefined;\n\t\tthis.minWidth = initSettings.minWidth ? initSettings.minWidth : undefined;\n\t\tthis.minHeight = initSettings.minHeight ? initSettings.minHeight : undefined;\n\t\tthis.exactWidth = initSettings.exactWidth ? initSettings.exactWidth : undefined;\n\t\tthis.exactHeight = initSettings.exactHeight ? initSettings.exactHeight : undefined;\n\n\t\tthis.cropperContainerSelector = '.gform_heading';\n\n\t\tthis.removeGFPreview();\n\n\t\t$(document).on('gform_post_render', async (e, formId) => {\n\t\t\tif (formId != this.formId) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t/**\n\t\t\t * Add portal for cropper. JavaScript is used to improve compatibility with AJAX on multi page forms.\n\t\t\t */\n\t\t\tif (this.enableCrop) {\n\t\t\t\tconst portalId = `gpfup-cropper-portal-${this.formId}-${this.fieldId}`;\n\n\t\t\t\t$(`#${portalId}`).remove();\n\t\t\t\t$('body').append(`<div id=\"${portalId}\"></div>`);\n\t\t\t}\n\n\t\t\t/**\n\t\t\t* Ensure selectors for $field and $preview are still valid after post render. This is typically needed\n\t\t\t* for things like GPNF.\n\t\t\t*/\n\t\t\tthis.$field = document.querySelector(`#field_${this.formId}_${this.fieldId} .ginput_container_fileupload`);\n\t\t\tthis.$preview = document.querySelector(`#gform_preview_${this.formId}_${this.fieldId} `);\n\n\t\t\tthis.storage = new Storage(this.formId, this.fieldId);\n\n\t\t\tthis.$store = GPFUPStore({\n\t\t\t\tstorage: this.storage,\n\t\t\t});\n\n\t\t\t/* Remove GF preview again in case it still exists. Needed for GPNF. */\n\t\t\tthis.removeGFPreview();\n\n\t\t\tthis.addStoreSubscriptions();\n\n\t\t\t$(this.$field!).find('.validation_message').remove();\n\n\t\t\t// This needs to be awaited on as this is when we repopulate Plupload's file array.\n\t\t\tawait this.rehydrateFiles();\n\n\t\t\t// Wait for this.Uploader before calling addVM and addPluploadFilters\n\t\t\t// The specific case here occurs in a WC product page. See #23362.\n\t\t\t// The source is WC `$.fn.wc_gravity_form running` and failing `gfMultiFileUploader.setup(this);`\n\t\t\t// See explanation in #9#issuecomment-808988375\n\t\t\tlet uploaderRetry = 0;\n\t\t\tlet initMaxRetry = 10;\n\t\t\tconst waitForUploader = ()=>{\n\t\t\t\tif ( ! this.Uploader ) {\n\t\t\t\t\tif ( uploaderRetry < initMaxRetry ) {\n\t\t\t\t\t\tuploaderRetry++;\n\t\t\t\t\t\treturn window.setTimeout( waitForUploader, 10 );\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.addVM();\n\t\t\t\tthis.addPluploadFilters();\n\t\t\t\t/**\n\t\t\t\t * Do something after the uploader has been initialized.\n\t\t\t\t *\n\t\t\t\t * @since 1.1.12\n\t\t\t\t *\n\t\t\t\t * @param \\GPFUPField gpfupField The instance of the GPFUPField class that has been initialized.\n\t\t\t\t */\n\t\t\t\tgform.doAction( 'gpfup_uploader_ready', this );\n\t\t\t\treturn;\n\t\t\t};\n\n\t\t\twaitForUploader();\n\t\t});\n\t}\n\n\t/**\n\t* Rehydrate Plupload using the Gravity Forms uploaded files hidden input.\n\t*\n\t* In addition to adding the files from the hidden input, we pull from localforage to add in other info such as\n\t* the file type, size, preview size, etc.\n\t *\n\t * It's important that this happens prior to the VM mounting as the mounted() lifecycle method relies on the files\n\t * being present.\n\t*/\n\tasync rehydrateFiles() {\n\t\tconst uploadedFilesInput:HTMLInputElement|null = document.querySelector(`#gform_uploaded_files_${this.formId}`);\n\n\t\tif (!uploadedFilesInput) {\n\t\t\treturn;\n\t\t}\n\n\t\tlet uploadedFilesInForm;\n\n\t\ttry {\n\t\t\tuploadedFilesInForm = JSON.parse(uploadedFilesInput.value);\n\t\t} catch (e) {\n\t\t\tthis.storage.purge();\n\t\t\treturn;\n\t\t}\n\n\t\tconst uploadedFilesInField:GFFile[] = uploadedFilesInForm?.[`input_${this.fieldId}`];\n\n\t\tif (!uploadedFilesInField?.length) {\n\t\t\tthis.storage.purge();\n\t\t\treturn;\n\t\t}\n\n\t\tfor ( const uploadedFile of uploadedFilesInField ) {\n\t\t\tconst file = new window.mOxie.File(null, new Blob(['asdf']));\n\t\t\tfile.name = uploadedFile.uploaded_filename;\n\t\t\tfile.id = uploadedFile.temp_filename?.match(/o_[a-z0-9]+(?=\\.)/)?.[0];\n\n\t\t\tif (!file.id && uploadedFile.temp_filename) {\n\t\t\t\tfile.id = uploadedFile.temp_filename;\n\t\t\t}\n\n\t\t\tif (!file.id) {\n\t\t\t\tfile.id = uploadedFile.uploaded_filename;\n\t\t\t}\n\n\t\t\tfile.size = undefined;\n\t\t\tfile.percent = 100;\n\t\t\tfile.status = plupload.DONE;\n\t\t\tfile.rehydrated = true;\n\n\t\t\tconst fileInfo = await this.storage.getFileInfo(file.id);\n\t\t\tconst dimensions = await this.storage.getPreviewDimensions(file.id);\n\n\t\t\tif (fileInfo) {\n\t\t\t\tconst { size, type, addedDate} = fileInfo;\n\n\t\t\t\tif (size) {\n\t\t\t\t\tfile.size = size;\n\t\t\t\t}\n\n\t\t\t\tif (type) {\n\t\t\t\t\tfile.type = type;\n\t\t\t\t}\n\n\t\t\t\tif (addedDate) {\n\t\t\t\t\tfile.addedDate = addedDate;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (dimensions) {\n\t\t\t\tfile.previewWidth = dimensions.width;\n\t\t\t\tfile.previewHeight = dimensions.height;\n\t\t\t}\n\n\t\t\tthis.Uploader.files.push(file);\n\t\t\tthis.$store.commit('ADD_FILE', file);\n\t\t}\n\n\t\tthis.$store.commit('SET_FILES', this.Uploader.files);\n\t}\n\n\taddVM() {\n\t\tif (!this.Uploader) {\n\t\t\tconsole.debug('Plupload not ready yet. Cannot add Vue.');\n\t\t\treturn;\n\t\t}\n\n\t\tconst parent = this;\n\n\t\tif (!jQuery(`#gform_drag_drop_area_${this.formId}_${this.fieldId}`).length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.vm) {\n\t\t\tthis.vm.$destroy();\n\t\t}\n\n\t\tthis.vm = new Vue({\n\t\t\tel: `#gform_drag_drop_area_${this.formId}_${this.fieldId}`,\n\t\t\tstore: this.$store,\n\t\t\trender: function(h) : Vue.VNode {\n\t\t\t\treturn h(GPFUP, {\n\t\t\t\t\tprops: {\n\t\t\t\t\t\tfieldId: this.fieldId,\n\t\t\t\t\t\tformId: this.formId,\n\t\t\t\t\t\tup: this.up,\n\t\t\t\t\t\tstrings: this.strings,\n\t\t\t\t\t\tenableCrop: this.enableCrop,\n\t\t\t\t\t\tenableSorting: this.enableSorting,\n\t\t\t\t\t\tcropRequired: this.cropRequired,\n\t\t\t\t\t\taspectRatio: this.aspectRatio,\n\t\t\t\t\t\tmaxWidth: this.maxWidth,\n\t\t\t\t\t\tmaxHeight: this.maxHeight,\n\t\t\t\t\t\tminWidth: this.minWidth,\n\t\t\t\t\t\tminHeight: this.minHeight,\n\t\t\t\t\t\texactWidth: this.exactWidth,\n\t\t\t\t\t\texactHeight: this.exactHeight,\n\t\t\t\t\t},\n\t\t\t\t\tref: 'root',\n\t\t\t\t});\n\t\t\t},\n\t\t\tdata: () => ({\n\t\t\t\tformId: this.formId,\n\t\t\t\tfieldId: this.fieldId,\n\t\t\t\tstrings: this.strings,\n\t\t\t\tenableCrop: this.enableCrop,\n\t\t\t\tenableSorting: this.enableSorting,\n\t\t\t\tcropRequired: this.cropRequired,\n\t\t\t\taspectRatio: this.aspectRatio,\n\t\t\t\tmaxWidth: this.maxWidth,\n\t\t\t\tmaxHeight: this.maxHeight,\n\t\t\t\tminWidth: this.minWidth,\n\t\t\t\tminHeight: this.minHeight,\n\t\t\t\texactWidth: this.exactWidth,\n\t\t\t\texactHeight: this.exactHeight,\n\t\t\t\t/**\n\t\t\t\t* not 100% sure why this happens but by adding this.Uploader here to the data, it makes the properties\n\t\t\t\t* Observables\n\t\t\t\t*/\n\t\t\t\tup: this.Uploader,\n\t\t\t}),\n\t\t\t/**\n\t\t\t* Progressively rehydrate the field from server and localforage.\n\t\t\t*/\n\t\t\tmounted: async function() {\n\t\t\t\t/* Fetch previews */\n\t\t\t\tfor (const file of this.up.files) {\n\t\t\t\t\tconst previewBase64 = await parent.storage.getPreview(file.id);\n\n\t\t\t\t\tif (previewBase64) {\n\t\t\t\t\t\tparent.$store.commit('ADD_IMAGE_PREVIEW', Object.freeze({\n\t\t\t\t\t\t\tfileId: file.id,\n\t\t\t\t\t\t\tbase64: previewBase64,\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Add originals (only applies if cropping is enabled) */\n\t\t\t\tfor (const file of this.up.files) {\n\t\t\t\t\tconst original = await parent.storage.getOriginal(file.id);\n\n\t\t\t\t\tif (original?.size && original?.src) {\n\t\t\t\t\t\tconst { size, src } = original;\n\n\t\t\t\t\t\tparent.$store.commit('STORE_ORIGINAL', {\n\t\t\t\t\t\t\tfileId: file.id,\n\t\t\t\t\t\t\tsrc,\n\t\t\t\t\t\t\tsize,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Add cropper results (only applies if cropping is enabled) */\n\t\t\t\tfor (const file of this.up.files) {\n\t\t\t\t\tconst results = await parent.storage.getCroppedResults(file.id);\n\n\t\t\t\t\tif (results) {\n\t\t\t\t\t\tparent.$store.commit('STORE_CROPPER_RESULTS', {\n\t\t\t\t\t\t\tfileId: file.id,\n\t\t\t\t\t\t\tresults,\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t/* Fetch from server */\n\t\t\t\tconst rehydrationInfo: null | { [fileId: string]: { url?: string, size: number, type: string }} = (window as any)[`gpfup_rehydration_${this.formId}_${this.fieldId}`];\n\n\t\t\t\tif (rehydrationInfo) {\n\t\t\t\t\t// Loop over files, set size and type, and set loading flag if URL is present to show spinner.\n\t\t\t\t\tfor (const file of this.up.files) {\n\t\t\t\t\t\tconst id = file.id ?? file.name;\n\t\t\t\t\t\tconst previewBase64 = await parent.storage.getPreview(file.id);\n\n\t\t\t\t\t\tfile.size = rehydrationInfo[id].size;\n\t\t\t\t\t\tfile.type = rehydrationInfo[id].type;\n\n\t\t\t\t\t\tif (previewBase64 || !rehydrationInfo[id].url) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfile.loading = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fetch previews/originals from server if not present in localforage\n\t\t\t\t\tfor (const file of this.up.files) {\n\t\t\t\t\t\tconst id = file.id ?? file.name;\n\t\t\t\t\t\tconst previewBase64 = await parent.storage.getPreview(file.id);\n\t\t\t\t\t\tconst url = rehydrationInfo[id]?.url;\n\n\t\t\t\t\t\tif (previewBase64 || !url) {\n\t\t\t\t\t\t\tfile.loading = false;\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst request = new Request(url);\n\t\t\t\t\t\tconst response = await fetch(request);\n\t\t\t\t\t\tconst blob = await response.blob();\n\n\t\t\t\t\t\tfile.getNative = () => blob;\n\t\t\t\t\t\tfile.loading = false;\n\n\t\t\t\t\t\tawait this.$store.dispatch('storeOriginal', file);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t},\n\t\t\twatch: {\n\t\t\t\t/**\n\t\t\t\t* Debounce is used here to prevent a flash of files that exceed the max file limit.\n\t\t\t\t*/\n\t\t\t\t'up.files': debounce((newValue: any) => {\n\t\t\t\t\t/**\n\t\t\t\t\t* Automatically copy files from Plupload when it changes so we can import/export Vuex state to\n\t\t\t\t\t* rapidly develop UI.\n\t\t\t\t\t*/\n\t\t\t\t\tthis.$store.dispatch('setFiles', newValue);\n\t\t\t\t}, 10),\n\t\t\t},\n\t\t\tcomponents: {\n\t\t\t\tGPFUP\n\t\t\t}\n\t\t});\n\n\t}\n\n\tremoveGFPreview() {\n\t\t$(`#gform_preview_${this.formId}_${this.fieldId}`).remove();\n\t}\n\n\thandleFileError(up: Plupload.Uploader, file: any, err: { code: string | number, message: string }) {\n\t\tconst { strings } = this;\n\n\t\tup.removeFile(file);\n\n\t\tif(err.code === plupload.FILE_EXTENSION_ERROR){\n\t\t\tvar extensions = typeof up.settings.filters.mime_types != 'undefined'\n\t\t\t\t? up.settings.filters.mime_types[0].extensions /* plupoad 2 */\n\t\t\t\t: up.settings.filters[0].extensions;\n\n\t\t\tthis.$store.commit('PUSH_ERRED_FILE', {\n\t\t\t\tfile: file,\n\t\t\t\terror: `${strings.invalid_file_extension} ${extensions}`\n\t\t\t});\n\t\t} else if (err.code === plupload.FILE_SIZE_ERROR) {\n\t\t\tthis.$store.commit('PUSH_ERRED_FILE', {\n\t\t\t\tfile,\n\t\t\t\terror: strings.file_exceeds_limit,\n\t\t\t});\n\t\t} else {\n\t\t\tthis.$store.commit('PUSH_ERRED_FILE', {\n\t\t\t\tfile,\n\t\t\t\terror: err.message,\n\t\t\t});\n\t\t}\n\t}\n\n\tgetFileCount() {\n\t\t// Get GravityView preview count.\n\t\tconst gvPreviewCount = $(`#preview_existing_files_${this.fieldId} > div`).length;\n\n\t\treturn this.Uploader.files.length + gvPreviewCount;\n\t}\n\n\tgetMaxFileLimit() {\n\t\tconst limit = $(\"#gform_multifile_upload_\" + this.formId + \"_\" + this.fieldId ).data('settings')?.gf_vars?.max_files\n\n\t\t// If limit is 0, it's infinite.\n\t\treturn limit === 0 ? 99999 : limit;\n\t}\n\n\taddPluploadFilters() {\n\t\tif (!this.Uploader) {\n\t\t\tconsole.debug('Plupload not ready yet. Cannot add filters.');\n\t\t\treturn;\n\t\t}\n\n\t\tthis.Uploader.bind('BeforeUpload', (up: Plupload.Uploader, file: any) => {\n\t\t\t/**\n\t\t\t * Action to process/validate file prior to upload.\n\t\t\t *\n\t\t\t * @since 1.1.1\n\t\t\t *\n\t\t\t * @param int \t\tformId \t\t\tThe current form ID\n\t\t\t * @param int \t\tfieldId \t\tThe current uploader field ID\n\t\t\t * @param {MOxieFile}\t\t\tfile\t\t\tFile being uploaded. MOxieFile extends File/Blob.\n\t\t\t * @param {Plupload.Uploader}\tup \t\t\t\tCurrent Plupload instance\n\t\t\t * @param {GPFUPField}\t\t\tgpfupInstance \tCurrent File Upload Pro class instance\n\t\t\t */\n\t\t\twindow.gform.doAction('gpfup_before_upload', this.formId, this.fieldId, file, up, this);\n\n\t\t\tif (isImage(file)) {\n\t\t\t\t/**\n\t\t\t\t * Only run this logic if constraints are set.\n\t\t\t\t */\n\t\t\t\tif (!file.processed) {\n\t\t\t\t\t(async () => {\n\t\t\t\t\t\tlet blob = file.getNative();\n\n\t\t\t\t\t\t// Convert to JPEG if a HEIC\n\t\t\t\t\t\tif (file.type === 'image/heic') {\n\t\t\t\t\t\t\tconst heic2any = await import('heic2any');\n\n\t\t\t\t\t\t\tconst heicBlob = await heic2any.default({\n\t\t\t\t\t\t\t\tblob,\n\t\t\t\t\t\t\t\ttoType: 'image/jpeg',\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t// Create new file object\n\t\t\t\t\t\t\tconst convertedHeicFile = new window.mOxie.File(null, heicBlob);\n\t\t\t\t\t\t\tconvertedHeicFile.name = file.name.replace(/\\.heic$/i, '.jpg');\n\t\t\t\t\t\t\tconvertedHeicFile.id = file.id;\n\n\t\t\t\t\t\t\tconst image = replaceFile({\n\t\t\t\t\t\t\t\tup,\n\t\t\t\t\t\t\t\t$store: this.$store,\n\t\t\t\t\t\t\t\tfieldId: this.fieldId,\n\t\t\t\t\t\t\t\tformId: this.formId,\n\t\t\t\t\t\t\t\tnewFile: convertedHeicFile,\n\t\t\t\t\t\t\t\texistingFile: file,\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\ttriggerUpload(up, image);\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst imageSize = await getImageSize(blob);\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Orientation check can throw exceptions (e.g. mime-type not supported by exifr. See: HS#26994.)\n\t\t\t\t\t\t */\n\t\t\t\t\t\tlet orientation;\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\torientation = await exifr.orientation(blob);\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\torientation = 0;\n\t\t\t\t\t\t\tconsole.debug( 'Orientation check failed. File type is probably not supported. Message:', e );\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * If orientation is 0, 1, or undefined and cropping is disabled, skip running the image\n\t\t\t\t\t\t * through Blueimp.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tconst requiresRotation = !([0, 1, undefined].includes(orientation));\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Filter whether or not the image loader (Blueimp) should be skipped. This can be advantageous\n\t\t\t\t\t\t * if large images are frequently uploaded.\n\t\t\t\t\t\t *\n\t\t\t\t\t\t * @since 1.0.2\n\t\t\t\t\t\t *\n\t\t\t\t\t\t * @param boolean \t\tskipLoader \t\tWhether or not to skip sending the image to the loader (Blueimp).\n\t\t\t\t\t\t * @param int formId \t\t\tThe current form ID\n\t\t\t\t\t\t * @param int fieldId \t\tThe current uploader field ID\n\t\t\t\t\t\t * @param {GPFUPField}\tgpfupInstance \tCurrent File Upload Pro class instance\n\t\t\t\t\t\t */\n\t\t\t\t\t\tconst skipLoader = window.gform.applyFilters('gpfup_skip_image_loader', !requiresRotation && !this.enableCrop, this.formId, this.fieldId, this);\n\n\t\t\t\t\t\tif (skipLoader) {\n\t\t\t\t\t\t\t// Ensure we haven't reached the Plupload max number of files.\n\t\t\t\t\t\t\tif (this.getFileCount() > this.getMaxFileLimit()) {\n\t\t\t\t\t\t\t\tup.removeFile(file);\n\n\t\t\t\t\t\t\t\tup.stop();\n\t\t\t\t\t\t\t\tup.start();\n\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\tfile.processed = true;\n\t\t\t\t\t\t\tthis.$store.dispatch('storeOriginal', file);\n\n\t\t\t\t\t\t\tup.stop();\n\t\t\t\t\t\t\tup.start();\n\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Minimum is only enforced if cropping is enabled.\n\t\t\t\t\t\t */\n\t\t\t\t\t\tif (this.enableCrop) {\n\t\t\t\t\t\t\tlet meetsMinimum = true;\n\t\t\t\t\t\t\tlet code;\n\t\t\t\t\t\t\tlet message;\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\t(this.minWidth && this.minHeight) &&\n\t\t\t\t\t\t\t\t(this.minWidth > imageSize.width || this.minHeight > imageSize.height)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tmeetsMinimum = false;\n\t\t\t\t\t\t\t\tcode = 'does_not_meet_minimum_dimensions';\n\t\t\t\t\t\t\t\tmessage = this.strings.does_not_meet_minimum_dimensions\n\t\t\t\t\t\t\t\t\t.replace('{minWidth}', this.minWidth.toString())\n\t\t\t\t\t\t\t\t\t.replace('{minHeight}', this.minHeight.toString());\n\n\t\t\t\t\t\t\t} else if (this.minWidth && this.minWidth > imageSize.width) {\n\t\t\t\t\t\t\t\tmeetsMinimum = false;\n\t\t\t\t\t\t\t\tcode = 'does_not_meet_minimum_width';\n\t\t\t\t\t\t\t\tmessage = this.strings.does_not_meet_minimum_width\n\t\t\t\t\t\t\t\t\t.replace('{minWidth}', this.minWidth.toString());\n\n\t\t\t\t\t\t\t} else if (this.minHeight && this.minHeight > imageSize.height) {\n\t\t\t\t\t\t\t\tmeetsMinimum = false;\n\t\t\t\t\t\t\t\tcode = 'does_not_meet_minimum_height';\n\t\t\t\t\t\t\t\tmessage = this.strings.does_not_meet_minimum_height\n\t\t\t\t\t\t\t\t\t.replace('{minHeight}', this.minHeight.toString());\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * Filter whether or not image meets minimum size requirement.\n\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t * @since 1.3.17\n\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t * @param boolean \t\tmeetsMinimum Whether or not image meets minimun size requirement\n\t\t\t\t\t\t\t * @param object \timageSize \t\tThe current image size object\n\t\t\t\t\t\t\t * @param int \tformId \t\t\tThe current form ID\n\t\t\t\t\t\t\t * @param int \tfieldId \t\tThe current uploader field ID\n\t\t\t\t\t\t\t * @param {GPFUPField}\tgpfupInstance \tCurrent File Upload Pro class instance\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tmeetsMinimum = window.gform.applyFilters('gpfup_meets_minimum_requirement', meetsMinimum, imageSize, this.formId, this.fieldId, this);\n\n\t\t\t\t\t\t\tif (!meetsMinimum) {\n\t\t\t\t\t\t\t\tthis.handleFileError(up, file, { code, message });\n\n\t\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t\t * When returning out and stopping an upload in some situations, the uploader can get into\n\t\t\t\t\t\t\t\t * an odd state and not process subsequent uploads.\n\t\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t\t * This resolves that.\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\tup.stop();\n\t\t\t\t\t\t\t\tup.start();\n\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!file.cropped) {\n\t\t\t\t\t\t\tawait this.$store.dispatch('storeOriginal', file);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet imageLoaderOptions: loadImage.LoadImageOptions = {\n\t\t\t\t\t\t\tmaxWidth: undefined,\n\t\t\t\t\t\t\tmaxHeight: undefined,\n\t\t\t\t\t\t\tminWidth: undefined,\n\t\t\t\t\t\t\tminHeight: undefined,\n\t\t\t\t\t\t\taspectRatio: undefined,\n\t\t\t\t\t\t\tcrop: undefined,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// Check for automatically scaling down the image for iOS devices, because of the canvas area max limit of 16,777,216 pixels.\n\t\t\t\t\t\tconst iPhoneMaxCanvas = navigator.userAgent.match(/iPhone|iPad|iPod/i) && (imageSize.width * imageSize.height > 16777216);\n\t\t\t\t\t\tif (this.enableCrop) {\n\t\t\t\t\t\t\timageLoaderOptions = {\n\t\t\t\t\t\t\t\tmaxWidth: (this.exactWidth || this.maxWidth) ?? undefined,\n\t\t\t\t\t\t\t\tmaxHeight: (this.exactHeight || this.maxHeight) ?? undefined,\n\t\t\t\t\t\t\t\tminWidth: this.exactWidth ?? this.minWidth ?? undefined,\n\t\t\t\t\t\t\t\tminHeight: this.exactHeight ?? this.minHeight ?? undefined,\n\t\t\t\t\t\t\t\t/*\n\t\t\t\t\t\t\t\t * If aspectRatio is used, it takes precedence over max widht/height\n\t\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\t\taspectRatio: (!this.exactWidth && !this.exactHeight ? this.aspectRatio : undefined) ?? undefined,\n\t\t\t\t\t\t\t\tcrop: (this.enableCrop && !file.cropped && !iPhoneMaxCanvas) ? true : undefined,\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst processedImage = await loadWithBlueimp({\n\t\t\t\t\t\t\timage: file,\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * Filter whether or not image metadata (EXIF) should be stripped from the image when uploaded.\n\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t * Disabling metadata is useful if you need to maintain original metadata such as DPI, camera\n\t\t\t\t\t\t\t * settings, etc.\n\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t * @since 1.0.4\n\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t * @param boolean \t\t\tstripMetadata Whether or not to strip metadata/EXIF of the image. Defaults to true.\n\t\t\t\t\t\t\t * @param int \tformId \t\t\tThe current form ID\n\t\t\t\t\t\t\t * @param int \tfieldId \t\tThe current uploader field ID\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tstripMetadata: window.gform.applyFilters('gpfup_strip_image_metadata', true, this.formId, this.fieldId),\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * Filter the options that are sent to\n\t\t\t\t\t\t\t * [blueimp-load-image](https://www.npmjs.com/package/blueimp-load-image).\n\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t * @since 1.0-beta-2.0\n\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t * @param object \t\t\toptions \tOptions to send to blueimp-load-image\n\t\t\t\t\t\t\t * @param int \tformId \t\t\tThe current form ID\n\t\t\t\t\t\t\t * @param int \tfieldId \t\tThe current uploader field ID\n\t\t\t\t\t\t\t * @param {GPFUPField}\t\tgpfupInstance \tCurrent File Upload Pro class instance\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tloadImageOptions: window.gform.applyFilters('gpfup_image_loader_options', imageLoaderOptions, this.formId, this.fieldId, this),\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * Filter the quality used for JPEGs when auto-cropping and manual cropping.\n\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t * @since 1.0.4\n\t\t\t\t\t\t\t *\n\t\t\t\t\t\t\t * @param float \t\t\tjpegQuality 0-1 representation of JPEG quality. Defaults to 0.92.\n\t\t\t\t\t\t\t * @param int \tformId \t\t\tThe current form ID\n\t\t\t\t\t\t\t * @param int \tfieldId \t\tThe current uploader field ID\n\t\t\t\t\t\t\t * @param {GPFUPField}\t\tgpfupInstance \tCurrent File Upload Pro class instance\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tjpegQuality: window.gform.applyFilters('gpfup_jpeg_quality', 0.92, this.formId, this.fieldId, this),\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// Ensure we haven't reached the Plupload max number of files.\n\t\t\t\t\t\tif (this.getFileCount() > this.getMaxFileLimit()) {\n\t\t\t\t\t\t\tup.removeFile(file);\n\n\t\t\t\t\t\t\tup.stop();\n\t\t\t\t\t\t\tup.start();\n\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst image = replaceFile({\n\t\t\t\t\t\t\tup,\n\t\t\t\t\t\t\t$store: this.$store,\n\t\t\t\t\t\t\tfieldId: this.fieldId,\n\t\t\t\t\t\t\tformId: this.formId,\n\t\t\t\t\t\t\tnewFile: processedImage,\n\t\t\t\t\t\t\texistingFile: file,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\timage.processed = true;\n\n\t\t\t\t\t\ttriggerUpload(up, image);\n\t\t\t\t\t})();\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.$store.dispatch('storeImagePreview', {\n\t\t\t\t\tfileId: file.id,\n\t\t\t\t\tblob: file.getNative(),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t/**\n\t\t\t* Add a date that we can sort using. This is primarily for consolidated erred files with uploaded files.\n\t\t\t*/\n\t\t\tif (!file.addedDate) {\n\t\t\t\tfile.addedDate = new Date();\n\t\t\t}\n\n\t\t\tif (!file.cropped && this.cropRequired && isImage(file)) {\n\t\t\t\tthis.$store.dispatch('setCurrentFileAndOpenEditor', {\n\t\t\t\t\tfile,\n\t\t\t\t\t/*\n\t\t\t\t\t* Only clear out the previous image if uploading 1 image at a time. If we clear out the image when\n\t\t\t\t\t* cropping a set, it can create jank and make things like the \"Cropping X of X\" to hide then reshow\n\t\t\t\t\t*/\n\t\t\t\t\tclearPrevious: this.$store.getters.currentAddedFiles <= 1,\n\t\t\t\t\t/*\n\t\t\t\t\t* Use a slight delay when opening the first image (or single image) when cropping is required.\n\t\t\t\t\t*\n\t\t\t\t\t* Minor detail, but it smooths out the UX.\n\t\t\t\t\t*/\n\t\t\t\t\tdelayMs: this.$store.getters.currentImageIndex === undefined ? 300 : undefined,\n\t\t\t\t});\n\n\t\t\t\t// Prevent uploading until the file is cropped.\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t});\n\n\t\tthis.Uploader.bind('FilesAdded', (up: Plupload.Uploader, files: MOxieFile[]) => {\n\t\t\t/**\n\t\t\t* When replacing files, we use addFile in Plupload which triggers FilesAdded. Without this conditional,\n\t\t\t* it will cause the SET_CURRENT_ADDED_FILES to run with only the file that was cropped which hinders the\n\t\t\t* required cropping flow.\n\t\t\t*/\n\t\t\tif (this.cropRequired) {\n\t\t\t\tif (!(up as any).replacingFile) {\n\t\t\t\t\tthis.$store.commit('SET_CURRENT_ADDED_FILES', files);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( const file of files ) {\n\t\t\t\tthis.$store.commit('ADD_FILE', file);\n\t\t\t}\n\n\t\t\tif ('replacingFile' in up) {\n\t\t\t\tdelete (up as any).replacingFile;\n\t\t\t}\n\t\t});\n\n\t\tthis.Uploader.bind('FileUploaded', (up: Plupload.Uploader, file: any, result: any) => {\n\t\t\tvar response = JSON.parse(result.response);\n\n\t\t\tif(response.status == 'error'){\n\t\t\t\tthis.handleFileError(up, file, response.error);\n\t\t\t}\n\n\t\t\tsortHidddenGFInput(this.formId, this.fieldId, this.$store.state.fileOrder);\n\t\t});\n\n\t\tthis.Uploader.bind('FilesRemoved', (up: Plupload.Uploader, files: MOxieFile[]) => {\n\t\t\tfor ( const file of files ) {\n\t\t\t\tthis.storage.purgeFile(file);\n\t\t\t\tthis.$store.commit('REMOVE_FILE', file);\n\t\t\t}\n\t\t});\n\n\t\tthis.Uploader.bind('Error', (up: Plupload.Uploader, err: plupload_error) => {\n\t\t\tthis.$store.commit('ADD_FILE', err.file);\n\n\t\t\tthis.handleFileError(up, err.file, err);\n\t\t});\n\t}\n\n\t/**\n\t* Add various subscriptions on the store\n\t*/\n\taddStoreSubscriptions() {\n\t\tthis.$store.subscribe((mutation: any, state: any) => {\n\t\t\t/**\n\t\t\t* If we're in a GPNF Tingle modal, we need to check the overflow to recalculate the height of the modal\n\t\t\t* so scrolling remains possible.\n\t\t\t*/\n\t\t\tconst $gpnfModal = $(this.$field!).closest('.gpnf-modal');\n\t\t\tif ($gpnfModal.length) {\n\t\t\t\tlet nestedFormParentID: string;\n\t\t\t\tlet nestedFormFieldID: string;\n\n\t\t\t\t$gpnfModal[0].classList.forEach((value) => {\n\t\t\t\t\tconst match = /gpnf-modal-(\\d+)-(\\d+)/.exec(value);\n\n\t\t\t\t\tif (!match) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tnestedFormParentID = match[1];\n\t\t\t\t\tnestedFormFieldID = match[2];\n\t\t\t\t});\n\n\t\t\t\t// @ts-ignore\n\t\t\t\twindow?.[`GPNestedForms_${nestedFormParentID!}_${nestedFormFieldID!}`].modal?.checkOverflow();\n\t\t\t}\n\t\t});\n\n\t\t/**\n\t\t * Re-sort the Gravity Forms hidden input any time the file order changes.\n\t\t */\n\t\tthis.$store.subscribe((mutation: { payload: any, type: string }, state: any) => {\n\t\t\tif (mutation?.type !== 'SET_FILE_ORDER') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsortHidddenGFInput(this.formId, this.fieldId, state.fileOrder, true);\n\t\t});\n\t}\n}\n","import getImageSize from '../../helpers/getImageSize';\nimport {blobToDataURL} from 'blob-util';\nimport Vue from 'vue';\n\nexport default function () {\n\treturn {\n\t\tstate: {\n\t\t\tcurrentFile: null,\n\t\t\toriginals: {},\n\t\t\tcropperResults: {},\n\t\t\topen: false,\n\t\t},\n\t\tgetters: {\n\t\t\tcurrentImageIndex: (state: any, getters: any, rootState: any) => {\n\t\t\t\tif (!state.currentFile?.id) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\treturn rootState.currentAddedFiles.findIndex((file: MOxieFile) => {\n\t\t\t\t\treturn file.id === state.currentFile?.id;\n\t\t\t\t}) + 1;\n\t\t\t},\n\t\t\timgSrc: (state: any) => {\n\t\t\t\treturn state.originals[state.currentFile?.id]?.src;\n\t\t\t},\n\t\t\timgSize: (state: any) => {\n\t\t\t\tconst cropped = state?.cropperResults[state.currentFile?.id]?.coords;\n\n\t\t\t\tif (cropped) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\twidth: cropped.width,\n\t\t\t\t\t\theight: cropped.height,\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn state.originals[state.currentFile?.id]?.size;\n\t\t\t},\n\t\t\timgOriginalSize: (state: any) => {\n\t\t\t\treturn state.originals[state.currentFile?.id]?.size;\n\t\t\t},\n\t\t\timgPos: (state: any) => {\n\t\t\t\tconst cropped = state?.cropperResults[state.currentFile?.id]?.coords;\n\n\t\t\t\tif (cropped) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tleft: cropped.left,\n\t\t\t\t\t\ttop: cropped.top,\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\ttop: 0,\n\t\t\t\t\tleft: 0,\n\t\t\t\t};\n\t\t\t},\n\t\t\timgTransforms: (state: any) => {\n\t\t\t\tconst imageTransforms = state?.cropperResults[state.currentFile?.id]?.imageTransforms;\n\n\t\t\t\treturn imageTransforms;\n\t\t\t}\n\t\t},\n\t\tactions: {\n\t\t\tasync setCurrentFile(context: any, { file, clearPrevious = true } : { file: MOxieFile, clearPrevious: boolean }) {\n\t\t\t\t/**\n\t\t\t\t * In some cases we don't want to clear the current file before setting it to a new file.\n\t\t\t\t *\n\t\t\t\t * A specific example of this is in required cropping mode when cropping a set of images.\n\t\t\t\t */\n\t\t\t\tif (clearPrevious) {\n\t\t\t\t\tcontext.commit('SET_CURRENT_FILE', null);\n\t\t\t\t}\n\n\t\t\t\tif (!context.state.originals[file.id]) {\n\t\t\t\t\tawait context.dispatch('storeOriginal', file);\n\t\t\t\t}\n\n\t\t\t\tcontext.commit('SET_CURRENT_FILE', file);\n\t\t\t},\n\t\t\tasync storeOriginal(context: any, file: MOxieFile) {\n\t\t\t\tlet dataUrl: string;\n\n\t\t\t\t/**\n\t\t\t\t * If file.getNative() is not available, then this is a subsequent pageload and an original still does not\n\t\t\t\t * exist so we need to use the preview from localforge as the original.\n\t\t\t\t */\n\t\t\t\tif (typeof file.getNative === 'function') {\n\t\t\t\t\tdataUrl = await blobToDataURL(file.getNative());\n\t\t\t\t} else {\n\t\t\t\t\tdataUrl = await context.rootState.storage.getPreview(file.id);\n\t\t\t\t}\n\n\t\t\t\tcontext.dispatch('storeImagePreview', {\n\t\t\t\t\tfileId: file.id,\n\t\t\t\t\tdataUrl,\n\t\t\t\t});\n\n\t\t\t\tcontext.commit('STORE_ORIGINAL', {\n\t\t\t\t\tfileId: file.id,\n\t\t\t\t\tsrc: dataUrl,\n\t\t\t\t\tsize: await getImageSize(dataUrl),\n\t\t\t\t});\n\n\t\t\t\tcontext.rootState.storage.storeOriginal(file.id, {\n\t\t\t\t\tsrc: dataUrl,\n\t\t\t\t\tsize: await getImageSize(dataUrl),\n\t\t\t\t});\n\t\t\t},\n\t\t\tasync transferOriginal(context: any, {\n\t\t\t\tcurrentFileId,\n\t\t\t\tnewFileId\n\t\t\t}: { currentFileId: string, newFileId: string }) {\n\t\t\t\tcontext.commit('TRANSFER_ORIGINAL', {\n\t\t\t\t\tcurrentFileId,\n\t\t\t\t\tnewFileId,\n\t\t\t\t});\n\n\t\t\t\tcontext.rootState.storage.transferOriginal(newFileId, currentFileId);\n\t\t\t},\n\t\t\tasync transferResults(context: any, {\n\t\t\t\tcurrentFileId,\n\t\t\t\tnewFileId\n\t\t\t}: { currentFileId: string, newFileId: string }) {\n\t\t\t\tcontext.commit('TRANSFER_RESULTS', {\n\t\t\t\t\tcurrentFileId,\n\t\t\t\t\tnewFileId,\n\t\t\t\t});\n\n\t\t\t\tcontext.rootState.storage.transferResults(newFileId, currentFileId);\n\t\t\t},\n\t\t\tasync storeCroppedResults(context: any, {fileId, coords, imageTransforms}: { fileId: string, coords: Coords, imageTransforms: ImageTransforms }) {\n\t\t\t\tconst results = {\n\t\t\t\t\tcoords,\n\t\t\t\t\timageTransforms,\n\t\t\t\t};\n\n\t\t\t\tcontext.commit('STORE_CROPPER_RESULTS', {\n\t\t\t\t\tfileId,\n\t\t\t\t\tresults,\n\t\t\t\t});\n\n\t\t\t\tcontext.rootState.storage.storeCroppedResults(fileId, {\n\t\t\t\t\tcoords,\n\t\t\t\t\tresults,\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tmutations: {\n\t\t\tSET_CURRENT_FILE(state: any, file: MOxieFile) {\n\t\t\t\tstate.currentFile = file;\n\t\t\t},\n\t\t\tOPEN_EDITOR(state: any) {\n\t\t\t\tstate.open = true;\n\t\t\t},\n\t\t\tCLOSE_EDITOR(state: any) {\n\t\t\t\tstate.open = false;\n\t\t\t},\n\t\t\tSTORE_ORIGINAL(\n\t\t\t\tstate: any,\n\t\t\t\t{fileId, src, size}: { fileId: string, src: string, size: number }\n\t\t\t) {\n\t\t\t\tVue.set(state.originals, fileId, {\n\t\t\t\t\tsrc,\n\t\t\t\t\tsize,\n\t\t\t\t});\n\t\t\t},\n\t\t\t/**\n\t\t\t * Originally, we set the originals using the filename instead of ID. Unfortunately, I found that Plupload\n\t\t\t * would transform the name and upon refresh, the filename in the Gravity Forms hidden input did not match\n\t\t\t * what Plupload would sanitize it to be. Specifically, hyphens were doubling up.\n\t\t\t */\n\t\t\tTRANSFER_ORIGINAL(\n\t\t\t\tstate: any,\n\t\t\t\t{newFileId, currentFileId}: { newFileId: string, currentFileId: string }\n\t\t\t) {\n\t\t\t\tVue.set(state.originals, newFileId, state.originals?.[currentFileId]);\n\t\t\t\tVue.delete(state.originals, currentFileId);\n\t\t\t},\n\t\t\tTRANSFER_RESULTS(\n\t\t\t\tstate: any,\n\t\t\t\t{newFileId, currentFileId}: { newFileId: string, currentFileId: string }\n\t\t\t) {\n\t\t\t\tVue.set(state.cropperResults, newFileId, state.cropperResults?.[currentFileId]);\n\t\t\t\tVue.delete(state.cropperResults, currentFileId);\n\t\t\t},\n\t\t\tSTORE_CROPPER_RESULTS(\n\t\t\t\tstate: any,\n\t\t\t\t{fileId, results}: { filename: string, fileId: string, results: CropperResults },\n\t\t\t) {\n\t\t\t\tVue.set(state.cropperResults, fileId, results);\n\t\t\t},\n\t\t},\n\t}\n}\n","import 'core-js/es/array/includes'; /* Polyfill */\nimport 'core-js/es/array/filter'; /* Polyfill */\nimport 'core-js/es/object/assign'; /* Polyfill */\nimport 'core-js/es/object/values'; /* Polyfill */\nimport 'core-js/es/object/entries'; /* Polyfill */\nimport 'core-js/es/number/is-finite'; /* Polyfill */\nimport 'core-js/es/string/starts-with'; /* Polyfill */\nimport 'es6-promise/auto'; /* Polyfill */\n\nimport GPFUPField from './GPFUPField';\n\nfor( const prop in window ) {\n\tif ( window.hasOwnProperty( prop ) &&\n\t\t( prop.indexOf( 'GPFUP_FORM_INIT_' ) === 0 )\n\t) {\n\t\tfor ( const gpfupFieldInitSettings of window[prop] as unknown as GPFUPFieldInitSettings[] ) {\n\t\t\tconst { formId, fieldId } = gpfupFieldInitSettings;\n\n\t\t\twindow[`GPFUP_${formId}_${fieldId}`] = new GPFUPField(gpfupFieldInitSettings);\n\t\t}\n\t}\n}\n"],"names":["leafPrototypes","getProto","inProgress","dataWebpackPrefix","module","exports","factory","loadImage","ExifMapProto","ExifMap","prototype","tags","ifd1","stringValues","ExposureProgram","MeteringMode","LightSource","Flash","SensingMethod","SceneCaptureType","SceneType","CustomRendered","WhiteBalance","GainControl","Contrast","Saturation","Sharpness","SubjectDistanceRange","FileSource","ComponentsConfiguration","Orientation","getText","name","value","this","get","String","fromCharCode","getAll","prop","obj","map","Object","hasOwnProperty","call","ifds","getName","tagCode","ifd","subTags","Number","defineProperty","Thumbnail","Blob","Exif","GPSInfo","Interoperability","id","ExifTagTypes","getValue","dataView","dataOffset","getUint8","size","ascii","littleEndian","getUint16","getUint32","getInt32","getExifValue","tiffOffset","offset","type","length","tagSize","values","i","str","c","tagType","byteLength","console","log","shouldIncludeTag","includeTags","excludeTags","parseExifTags","dirOffset","tagOffsets","tagsNumber","dirEndOffset","tagOffset","tagNumber","tagValue","parseExifData","data","options","disableExif","thumbnailIFD","includeExifTags","excludeExifTags","exif","disableExifOffsets","exifOffsets","exifTiffOffset","exifLittleEndian","keys","forEach","parseExifIFD","bufferSlice","buffer","getExifThumbnail","metaDataParsers","jpeg","push","exifWriters","orientationOffset","DataView","setUint16","writeExifData","global","fetch","Request","Response","blob","fetchBlob","url","callback","responseHandler","response","Promise","then","err","XMLHttpRequest","responseType","executor","resolve","reject","req","open","method","headers","key","setRequestHeader","withCredentials","credentials","onload","onerror","onabort","ontimeout","send","body","IptcMapProto","IptcMap","a","b","p","L","P","S","stringValue","getTagValue","types","slice","outstr","end","n","getStringValue","combineTagValues","newValue","undefined","Array","parseIptcTags","segmentOffset","segmentLength","segmentEnd","getInt16","iptc","iptcOffsets","isSegmentStart","getHeaderLength","ObjectName","parseIptcData","disableIptc","markerLength","headerLength","disableIptcOffsets","includeIptcTags","excludeIptcTags","originalTransform","transform","blobSlice","webkitSlice","mozSlice","ArrayBuffer","begin","arr1","Uint8Array","arr2","set","parseMetaData","file","that","maxMetaDataSize","readFile","Error","markerBytes","parsers","maxOffset","headLength","disableMetaDataParsers","disableImageHead","imageHead","replaceJPEGHead","oldHead","newHead","img","requiresMetaData","result","apply","arguments","replaceHead","head","originalRequiresCanvas","requiresCanvas","originalRequiresMetaData","originalTransformCoordinates","transformCoordinates","originalGetTransformedOptions","getTransformedOptions","requiresCanvasOrientation","withMetaData","orientation","requiresOrientationChange","autoOrientation","requiresRot180","$","document","createElement","width","height","ctx","createCanvas","getContext","drawImage","orientationCropBug","getImageData","toString","src","originalWidth","originalHeight","opts","exifOrientation","top","right","bottom","left","newOptions","maxWidth","maxHeight","minWidth","minHeight","sourceWidth","sourceHeight","tmpTop","tmpRight","canvas","translate","scale","rotate","Math","PI","offscreen","OffscreenCanvas","aspectRatio","crop","naturalWidth","naturalHeight","sourceX","sourceY","destWidth","destHeight","imageSmoothingEnabled","msImageSmoothingEnabled","imageSmoothingQuality","pixelRatio","downsamplingRatio","tmp","useCanvas","HTMLCanvasElement","scaleUp","max","round","scaleDown","min","contain","cover","style","floor","parseFloat","setTransform","urlAPI","URL","webkitURL","createObjectURL","revokeObjectURL","revokeHelper","noRevoke","FileReader","reader","error","readerMethod","isInstanceOf","resolveWrapper","image","fetchBlobCallback","crossOrigin","event","meta","window","parse","format","formatThousandsRegExp","formatDecimalsRegExp","kb","mb","gb","tb","pow","pb","parseRegExp","isFinite","mag","abs","thousandsSeparator","unitSeparator","decimalPlaces","fixedDecimals","Boolean","unit","toLowerCase","toFixed","replace","split","s","join","val","isNaN","floatValue","results","exec","parseInt","entryUnbind","path","assign","entries","isCallable","tryToString","TypeError","argument","wellKnownSymbol","create","definePropertyModule","UNSCOPABLES","ArrayPrototype","f","configurable","isObject","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","el","fromIndex","O","index","includes","indexOf","bind","uncurryThis","IndexedObject","toObject","arraySpeciesCreate","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","callbackfn","specificCreate","self","boundFunction","target","filter","some","every","find","findIndex","filterReject","fails","V8_VERSION","SPECIES","METHOD_NAME","array","constructor","foo","isArray","isConstructor","originalArray","C","arraySpeciesConstructor","stringSlice","it","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tag","tryGet","callee","hasOwn","ownKeys","getOwnPropertyDescriptorModule","source","exceptions","getOwnPropertyDescriptor","MATCH","regexp","error1","error2","DESCRIPTORS","createPropertyDescriptor","object","bitmap","enumerable","writable","EXISTS","getBuiltIn","match","version","userAgent","process","Deno","versions","v8","CONSTRUCTOR","METHOD","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","sham","aCallable","NATIVE_BIND","fn","test","Function","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","aFunction","namespace","V","func","check","globalThis","g","classof","propertyIsEnumerable","store","functionToString","inspectSource","has","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","state","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","noop","empty","construct","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","called","replacement","feature","detection","normalize","POLYFILL","NATIVE","string","isRegExp","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","toLength","getOwnPropertySymbols","symbol","Symbol","globalIsFinite","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","concat","A","B","alphabet","chr","T","argumentsLength","j","activeXDocument","anObject","definePropertiesModule","enumBugKeys","html","documentCreateElement","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","domain","display","appendChild","contentWindow","F","Properties","V8_PROTOTYPE_DEFINE_BUG","defineProperties","props","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","Attributes","current","internalObjectKeys","getOwnPropertyNames","names","$propertyIsEnumerable","NASHORN_BUG","TO_ENTRIES","input","pref","valueOf","getOwnPropertyNamesModule","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","uid","SHARED","IS_PURE","mode","copyright","license","toIntegerOrInfinity","integer","requireObjectCoercible","ceil","number","isSymbol","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","iterator","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","$filter","proto","arrayMethodHasSpeciesSupport","$includes","addToUnscopables","$entries","$values","notARegExp","correctIsRegExpLogic","un$StartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","searchString","search","debounce","wait","immediate","timeout","args","context","timestamp","later","last","Date","now","setTimeout","debounced","callNow","clear","clearTimeout","flush","createAbortError","createDelay","defaultClear","willResolve","ms","signal","aborted","timeoutId","settle","rejectFn","signalListener","delayPromise","removeEventListener","addEventListener","once","createWithTimers","clearAndSet","delay","range","minimum","maximum","randomInteger","isFunction","x","len","vertxNext","customSchedulerFn","asap","arg","queue","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","channel","iterations","observer","node","onFulfillment","onRejection","parent","child","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","nextTick","createTextNode","observe","characterData","port1","onmessage","port2","postMessage","vertx","require","runOnLoop","runOnContext","e","attemptVertx","substring","PENDING","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","reason","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","Enumerator","Constructor","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","didError","_settledAt","Promise$1","_willSettleAt","enumerator","resolver","needsResolver","initializePromise","needsNew","catch","finally","all","race","_","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","polyfill","local","promiseToString","cast","t","r","o","u","code","l","_dereq_","scheduleDrain","draining","Mutation","element","setImmediate","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","oldQueue","task","INTERNAL","handlers","REJECTED","FULFILLED","outcome","safelyResolveThenable","QueueItem","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","unwrap","returnValue","getThen","onError","onSuccess","tryCatch","status","out","iterable","resolved","allResolver","outValue","_typeof","idb","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","getIDB","createBlob","parts","properties","builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","append","getBlob","executeCallback","executeTwoCallbacks","errorCallback","normalizeKey","warn","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","READ_ONLY","READ_WRITE","_binStringToArrayBuffer","bin","buf","arr","charCodeAt","_checkBlobSupport","txn","transaction","objectStore","put","preventDefault","stopPropagation","oncomplete","matchedChrome","navigator","matchedEdge","_checkBlobSupportWithoutCaching","_deferReadiness","dbInfo","dbContext","deferredOperation","deferredOperations","dbReady","_advanceReadiness","pop","_rejectReadiness","_getConnection","upgradeNeeded","forages","db","dbArgs","openreq","onupgradeneeded","createObjectStore","storeName","oldVersion","ex","newVersion","onsuccess","onversionchange","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","objectStoreNames","contains","isDowngrade","isUpgrade","incVersion","_decodeBlob","encodedBlob","atob","_isEncodedBlob","__local_forage_encoded_blob","_fullyReady","_initReady","_dbInfo","createTransaction","retries","tx","forage","_tryReconnect","asyncStorage","_driver","_initStorage","ready","initPromises","ignoreErrors","_defaultConfig","k","_support","isSafari","openDatabase","platform","hasFetch","IDBKeyRange","isIndexedDBValid","iterate","openCursor","iterationNumber","cursor","getItem","setItem","blobSupport","onloadend","base64","btoa","readAsBinaryString","removeItem","count","advanced","openKeyCursor","advance","dropInstance","currentConfig","config","dbPromise","dropObjectPromise","deleteObjectStore","_forage2","dropDBPromise","deleteDatabase","onblocked","BASE_CHARS","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","encoded1","encoded2","encoded3","encoded4","bufferLength","bytes","bufferToString","base64String","localforageSerializer","serialize","valueType","marker","fileReader","readAsArrayBuffer","JSON","stringify","deserialize","blobType","matcher","Int8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","createDbTable","executeSql","tryExecuteSql","sqlStatement","SYNTAX_ERR","rows","_setItem","retriesLeft","originalValue","serializer","sqlError","QUOTA_ERR","getAllStoreNames","storeNames","item","webSQLStorage","dbInfoPromise","operationInfo","dropTable","operations","_getKeyPrefix","defaultConfig","keyPrefix","_isLocalStorageUsable","localStorageTestKey","localStorage","checkIfLocalStorageThrows","localStorageWrapper","isLocalStorageValid","keyPrefixLength","itemKey","searchElement","y","DefinedDrivers","DriverSupport","DefaultDrivers","INDEXEDDB","WEBSQL","LOCALSTORAGE","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","DefaultConfig","driver","callWhenReady","localForageInstance","libraryMethod","_args","extend","_key","LocalForage","driverTypeKey","instance","_classCallCheck","driverName","defineDriver","_config","_driverSet","_initDriver","_ready","_wrapLibraryMethodsWithReady","setDriver","driverObject","complianceError","driverMethods","driverMethodName","methodNotImplementedFactory","methodName","_i","_len","optionalDriverMethod","configureMissingMethods","setDriverSupport","support","info","getDriver","getDriverPromise","getSerializer","serializerPromise","drivers","supportedDrivers","_getSupportedDrivers","setDriverToConfig","extendSelfWithDriver","_extend","oldDriverSetDone","currentDriverIndex","driverPromiseLoop","initDriver","supports","libraryMethodsAndProperties","createInstance","localforage_js","Vue","inBrowser","pick","reduce","acc","transports","targets","sources","Wormhole","trackInstances","methods","transport","to","from","passengers","_transport$order","order","Infinity","newTransport","freeze","compareFn","currentIndex","$_getTransportIndex","newTransports","v","idx","sort","force","splice","registerTarget","vm","$set","unregisterTarget","$delete","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_ref","wormhole","_id","Portal","disabled","default","slim","slotProps","created","_this","$nextTick","mounted","sendUpdate","updated","beforeDestroy","watch","oldValue","closer","normalizeSlots","$scopedSlots","$slots","normalizeOwnChildren","children","slotContent","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","render","h","Tag","class","PortalTarget","multiple","required","transition","firstRender","ownTransports","$emit","newVal","oldVal","_this2","computed","newPassengers","combinePassengers","noWrapper","_id$1","portalProps","targetProps","MountingPortal","inheritAttrs","bail","mountTo","targetSlim","targetSlotProps","targetTag","querySelector","$props","portalTarget","mountEl","_props","$parent","propsData","$el","$destroy","manual","attrs","$attrs","on","$listeners","scopedSlots","install","Vue$$1","component","portalName","portalTargetName","MountingPortalName","_defineProperty","_extends","_objectSpread","sym","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","pattern","IE11OrLess","Edge","FireFox","Safari","IOS","ChromeForAndroid","captureMode","capture","passive","off","matches","selector","msMatchesSelector","webkitMatchesSelector","getParentOrHost","host","nodeType","closest","includeCTX","_throttleTimeout","R_SPACE","toggleClass","classList","className","css","defaultView","getComputedStyle","currentStyle","matrix","selfOnly","appliedTransforms","matrixFn","DOMMatrix","WebKitCSSMatrix","CSSMatrix","MSCSSMatrix","tagName","list","getElementsByTagName","getWindowScrollingElement","scrollingElement","getRect","relativeToContainingBlock","relativeToNonStaticParent","undoScale","container","getBoundingClientRect","elRect","innerHeight","innerWidth","containerRect","elMatrix","scaleX","scaleY","d","isScrolledPast","elSide","parentSide","getParentAutoScrollElement","elSideVal","parentSideVal","getChild","childNum","currentChild","Sortable","ghost","dragged","draggable","lastChild","lastElementChild","previousElementSibling","nodeName","toUpperCase","clone","getRelativeScrollOffset","offsetLeft","offsetTop","winScroller","scrollLeft","scrollTop","includeSelf","elem","gotSelf","clientWidth","scrollWidth","clientHeight","scrollHeight","elemCSS","overflowX","overflowY","isRectEqual","rect1","rect2","throttle","scrollBy","Polymer","jQuery","Zepto","dom","cloneNode","setRect","rect","unsetRect","expando","getTime","plugins","defaults","initializeByDefault","PluginManager","mount","plugin","option","pluginEvent","eventName","sortable","evt","eventCanceled","cancel","eventNameGlobal","pluginName","initializePlugins","initialized","modified","modifyOption","getEventProperties","eventProperties","modifiedValue","optionListeners","dispatchEvent","rootEl","targetEl","cloneEl","toEl","fromEl","oldIndex","newIndex","oldDraggableIndex","newDraggableIndex","originalEvent","putSortable","extraEventProperties","onName","charAt","substr","CustomEvent","createEvent","initEvent","bubbles","cancelable","pullMode","lastPutMode","allEventProperties","dragEl","parentEl","ghostEl","nextEl","lastDownEl","cloneHidden","dragStarted","moved","activeSortable","active","hideGhostForTarget","_hideGhostForTarget","unhideGhostForTarget","_unhideGhostForTarget","cloneNowHidden","cloneNowShown","dispatchSortableEvent","_dispatchEvent","activeGroup","tapEvt","touchEvt","lastDx","lastDy","tapDistanceLeft","tapDistanceTop","lastTarget","lastDirection","targetMoveDistance","ghostRelativeParent","awaitingDragStarted","ignoreNextClick","sortables","pastFirstInvertThresh","isCircumstantialInvert","ghostRelativeParentInitialScroll","_silent","savedInputChecked","documentExists","PositionGhostAbsolutely","CSSFloatProperty","supportDraggable","supportCssPointerEvents","cssText","pointerEvents","_detectDirection","elCSS","elWidth","paddingLeft","paddingRight","borderLeftWidth","borderRightWidth","child1","child2","firstChildCSS","secondChildCSS","firstChildWidth","marginLeft","marginRight","secondChildWidth","flexDirection","gridTemplateColumns","touchingSideChild2","_prepareGroup","toFn","pull","sameGroup","group","otherGroup","originalGroup","checkPull","checkPut","revertClone","stopImmediatePropagation","nearestEmptyInsertDetectEvent","touches","nearest","clientX","clientY","threshold","emptyInsertThreshold","insideHorizontally","insideVertically","ret","_onDragOver","_checkOutsideTargetEl","_isOutsideThisEl","animationCallbackId","animationStates","handle","swapThreshold","invertSwap","invertedSwapThreshold","removeCloneOnHide","direction","ghostClass","chosenClass","dragClass","ignore","preventOnFilter","animation","easing","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delayOnTouchOnly","touchStartThreshold","devicePixelRatio","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","nativeDraggable","_onTapStart","captureAnimationState","fromRect","thisAnimationDuration","childMatrix","addAnimationState","removeAnimationState","indexOfObject","animateAll","animating","animationTime","time","toRect","prevFromRect","prevToRect","animatingRect","targetMatrix","sqrt","calculateRealTime","animate","animationResetTimer","currentRect","duration","translateX","translateY","animatingX","animatingY","offsetWidth","repaint","animated","_onMove","dragRect","targetRect","willInsertAfter","retVal","onMoveFn","onMove","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","href","sum","_nextTick","_cancelNextTick","_getDirection","touch","pointerType","originalTarget","shadowRoot","composedPath","root","inputs","checked","_saveInputCheckedState","button","isContentEditable","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_onDrop","_disableDelayedDragEvents","_triggerDragStart","_disableDelayedDrag","_delayedDragTouchMoveHandler","_dragStartTimer","_onTouchMove","_onDragStart","selection","getSelection","removeAllRanges","_dragStarted","fallback","_appendGhost","_nulling","_emulateDragOver","elementFromPoint","ghostMatrix","relativeScrollOffset","dx","dy","cssMatrix","_hideClone","cloneId","insertBefore","_loopId","setInterval","effectAllowed","_dragStartId","revert","vertical","isOwner","canSort","fromSortable","completedFired","dragOverEvent","_ignoreWhileAnimating","completed","elLastChild","_ghostIsLast","changed","targetBeforeFirstSwap","sibling","differentLevel","differentRowCol","dragElS1Opp","dragElS2Opp","dragElOppLength","targetS1Opp","targetS2Opp","targetOppLength","_dragElInRowColumn","side1","scrolledPastTop","scrollBefore","isLastTarget","mouseOnAxis","targetLength","targetS1","targetS2","invert","_getInsertDirection","_getSwapDirection","dragIndex","nextElementSibling","after","moveVector","extra","axis","insertion","_showClone","_offMoveEvents","_offUpEvents","clearInterval","save","handleEvent","dropEffect","_globalDragOver","toArray","getAttribute","items","destroy","querySelectorAll","removeAttribute","utils","is","dst","cancelNextTick","detectDirection","scrollEl","scrollRootEl","lastAutoScrollX","lastAutoScrollY","touchEvt$1","pointerElemChangedInterval","autoScrolls","scrolling","clearAutoScrolls","autoScroll","pid","clearPointerElemChangedInterval","lastSwapEl","isFallback","scroll","scrollCustomFn","sens","scrollSensitivity","speed","scrollSpeed","scrollThisInstance","scrollFn","layersOut","currentParent","canScrollX","canScrollY","scrollPosX","scrollPosY","vx","vy","layer","scrollOffsetY","scrollOffsetX","bubbleScroll","drop","toSortable","changedTouches","onSpill","Revert","Remove","SwapPlugin","Swap","swapClass","dragStart","dragOverValid","_ref2","swap","prevSwapEl","_ref3","n1","n2","i1","i2","p1","p2","isEqualNode","nulling","swapItem","startIndex","_ref4","parentSortable","lastMultiDragSelect","multiDragSortable","dragEl$1","clonesFromRect","clonesHidden","multiDragElements","multiDragClones","initialFolding","folding","MultiDragPlugin","MultiDrag","_deselectMultiDrag","_checkKeyDown","_checkKeyUp","selectedClass","multiDragKey","multiDragElement","multiDragKeyDown","isMultiDrag","delayStartGlobal","delayEnded","setupClone","sortableIndex","insertMultiDragClones","showClone","hideClone","_ref5","dragStartGlobal","_ref6","multiDrag","_ref7","removeMultiDragElements","dragOver","_ref8","_ref9","clonesInserted","insertMultiDragElements","dragOverCompleted","_ref10","dragRectAbsolute","clonesHiddenBefore","dragOverAnimationCapture","_ref11","dragMatrix","dragOverAnimationComplete","_ref12","originalEvt","shiftKey","lastIndex","multiDragIndex","update","nullingGlobal","destroyGlobal","shift","select","deselect","_this3","oldIndicies","newIndicies","clones","elementsInserted","AutoScroll","_handleAutoScroll","_handleFallbackAutoScroll","dragOverBubble","ogElemScroller","newElem","m","__esModule","modifiers","avoid","focus","elm","encodeKey","prevent","directive","unbind","decodeKey","ctrlKey","metaKey","altKey","srcKey","keyDown","NODE_ENV","activeElement","run","fun","title","browser","env","argv","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","Element","matchesSelector","defaultPrevented","initCustomEvent","Event","__WEBPACK_EXTERNAL_MODULE_a352__","modules","installedModules","moduleId","getter","toStringTag","ns","property","LIBRARY","$export","hide","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","kind","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$anyNative","toInteger","defined","TO_STRING","pos","at","unicode","ignoreCase","multiline","sticky","$keys","dP","getKeys","wks","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","arg2","forceStringMethod","done","strfn","rxfn","RegExp","cof","ARG","SRC","$toString","TPL","safe","dPs","Empty","createDict","lt","USE_SYMBOL","INCLUDES","createDesc","ObjectProto","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","core","own","exp","IS_FORCED","IS_GLOBAL","G","IS_STATIC","IS_PROTO","IS_BIND","expProto","U","W","R","builtinExec","IObject","gOPS","pIE","K","aLen","getSymbols","isEnum","__g","def","__e","ArrayProto","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","res","rx","functionalReplace","fullUnicode","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","getSubstitution","tailPos","symbols","ch","$iterators","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","explicit","Collection","toIObject","__webpack_exports__","insertNodeAt","camelize","removeNode","cache","regex","parentElement","fatherNode","refNode","px","step","iterated","_t","_k","Arguments","arrayIndexOf","STARTS_WITH","$startsWith","currentScript","scripts","stack","readyState","setPublicPath_i","_arrayLikeToArray","_unsupportedIterableToArray","minLen","_toConsumableArray","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_","external_commonjs_sortablejs_commonjs2_sortablejs_amd_sortablejs_root_Sortable_default","helper","evtName","evtData","delegateAndEmit","realList","isTransitionName","getSlot","slot","scopedSlot","eventsListened","eventsToEmit","readonlyProperties","draggingElement","draggableComponent","noTransitionOnDrag","original","move","componentData","transitionMode","noneFunctionalComponentMode","slots","componentOptions","_arrayWithHoles","_arr","_n","_d","_e","_s","_iterableToArrayLimit","_nonIterableRest","vuedraggable_isTransition","_computeChildrenAndOf","headerOffset","footerOffset","header","footer","computeChildrenAndOffsets","attributes","propName","buildAttribute","componentDataAttrs","getComponentAttributes","getTag","getIsFunctional","optionsAdded","elt","onDragMove","_sortable","rootContainer","computeIndexes","handler","newOptionValue","updateOptions","deep","fnOptions","_vnode","functional","getChildrenNodes","$children","rawNodes","_this4","visibleIndexes","isTransition","elmFromNodes","footerIndex","rawIndexes","ind","_computeIndexes","getUnderlyingVm","htmlElt","vnodes","getUnderlyingPotencialDraggableComponent","vue","__vue__","$options","_componentTag","emitChanges","_this5","alterList","onList","newList","spliceList","_arguments","updatePosition","getRelatedContextFromMoveEvent","destination","getVmIndex","domIndex","indexes","numberIndexes","getComponent","componentInstance","resetTransitionData","transitionContainer","kept","onDragStart","_underlying_vm_","onDragAdd","added","onDragRemove","removed","onDragUpdate","updateProperty","propertyName","computeFutureIndex","relatedContext","domChildren","currentDOMIndex","draggedContext","futureIndex","onDragEnd","vuedraggable","VueGPFUP","__webpack_module_cache__","__webpack_require__","cachedModule","__webpack_modules__","definition","chunkId","promises","miniCssF","script","needAttach","charset","nc","setAttribute","onScriptComplete","prev","doneFns","scriptUrl","location","installedChunks","installedChunkData","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","getOwnPropertyDescriptors","classNames","classname","w","z","M","directions","params","E","nativeEvent","previousPosition","anchor","staticRenderFns","_compiled","_scopeId","$vnode","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","beforeCreate","$createElement","_self","_c","ref","touchstart","onTouchStart","mousedown","onMouseDown","mouseover","onMouseOver","mouseleave","onMouseLeave","mixins","beforeMount","onMouseUp","onMouseMove","onTouchMove","onTouchEnd","$refs","hovered","initAnchor","processEnd","processMove","fake","H","classes","drag","leave","enter","components","DraggableElement","horizontalPosition","verticalPosition","D","I","X","Y","N","Z","q","Q","J","tt","et","cos","sin","nt","st","ot","rt","ht","ct","ignoreMinimum","sizeRestrictions","correctRatio","dt","ut","mt","coordinates","positionRestrictions","ft","imageSize","visibleArea","pt","getAreaRestrictions","boundaries","stencilSize","stencilReference","gt","vt","bt","wt","yt","zt","adjustStencil","factor","stencil","area","center","Rt","previousImageSize","angle","At","flip","previousFlip","horizontal","St","preserveRatio","compensate","xt","Mt","Ct","Et","wrapper","onDrag","onEnter","onLeave","HandlerWrapper","defaultClass","hoverClass","wrapperClass","hover","Wt","Tt","Ot","LineWrapper","$t","Ht","jt","Pt","_v","_l","lineNodes","onHandlerDrag","horizontalDirection","verticalDirection","onEnd","handlerNodes","wrapperStyle","transitions","eastNorth","north","westNorth","west","westSouth","south","eastSouth","east","handlersComponent","handlersClasses","handlersWrappersClasses","lines","linesComponent","linesClasses","linesWrappersClasses","resizable","points","enabled","timingFunction","handlersWrappers","linesWrappers","allowedDirections","preserveAspectRatio","respectDirection","Dt","Lt","movable","activationDistance","classnames","touchStarted","It","Xt","kt","centerMass","spread","imageStyle","stencilCoordinates","imageClass","imageWrapper","transforms","Ut","wheel","onWheel","touchMove","mouseMove","touchResize","wheelResize","eventsFilter","transforming","debouncedProcessEnd","oldGeometricProperties","processStart","processEvent","identifier","buttons","ratio","deltaY","wheelDelta","Nt","resize","TransformableImage","Vt","Zt","directives","rawName","expression","fill","calculatedImageSize","calculatedSize","onChangeImage","refreshImage","refresh","destroyed","complete","qt","_b","Preview","Gt","Qt","boundingBox","onResize","onResizeEnd","onMoveEnd","preview","StencilPreview","BoundingBox","DraggableArea","minAspectRatio","maxAspectRatio","movingClass","resizingClass","previewClass","boundingBoxClass","moving","resizing","aspectRatios","Kt","Jt","te","ee","ie","BackgroundWrapper","stencilComponent","backgroundWrapperComponent","stencilProps","autoZoom","boundariesClass","backgroundClass","foregroundClass","checkOrientation","transitionTime","imageRestriction","validator","roundResult","defaultSize","defaultPosition","defaultVisibleArea","defaultTransforms","defaultBoundaries","priority","resizeImage","moveImage","autoZoomAlgorithm","resizeAlgorithm","widthFrozen","heightFrozen","moveAlgorithm","initStretcher","stretcher","fitCoordinates","fitVisibleArea","areaRestrictionsAlgorithm","sizeRestrictionsAlgorithm","positionRestrictionsAlgorithm","transitionsActive","imageLoaded","imageAttributes","defaultImageTransforms","appliedImageTransforms","imageTransforms","coefficient","settings","mouse","areaRestrictions","transitionsOptions","getStencilSize","cropper","background","foreground","cropperWrapper","defaultCoordinates","boundariesStyle","opacity","resetCoordinates","runAutoZoom","onChange","onPropsChange","reset","debouncedUpdate","debouncedDisableTransitions","disableTransitions","awaiting","onSuccessLoadImage","onFailLoadImage","revoke","getResult","prepareResult","getCanvas","zoom","onManipulateImage","setCoordinates","enableTransitions","applyTransform","delayedTransforms","updateVisibleArea","resetVisibleArea","awaitRender","getPublicProperties","processAutoZoom","getAspectRatio","normalizeEvent","restore","sourceCanvas","maxArea","maxCanvasSize","fillColor","clearRect","fillStyle","fillRect","clearImage","updateBoundaries","change","protocol","port","onprogress","getResponseHeader","abort","Bt","Ft","arrayBuffer","onParseImage","subarray","ticking","currentStencilSize","ne","crossorigin","blobToDataURL","hasBinaryString","binary","arrayBufferToBinaryString","blobToBinaryString","blobToBase64String","canvasToBlob","quality","toBlob","dataURL","binaryStringToArrayBuffer","dataURLToBlob","toDataURL","devtoolHook","__VUE_DEVTOOLS_GLOBAL_HOOK__","deepCopy","hit","copy","forEachValue","Module","rawModule","_children","_rawModule","rawState","prototypeAccessors","namespaced","addChild","hasChild","actions","mutations","getters","forEachChild","forEachGetter","forEachAction","forEachMutation","ModuleCollection","rawRootModule","register","targetModule","newModule","getNamespace","this$1","rawChildModule","unregister","isRegistered","Store","strict","_committing","_actions","_actionSubscribers","_mutations","_wrappedGetters","_modules","_modulesNamespaceMap","_watcherVM","_makeLocalGettersCache","dispatch","commit","payload","installModule","resetStoreVM","devtools","_devtoolHook","targetState","replaceState","mutation","prepend","subscribeAction","action","devtoolPlugin","prototypeAccessors$1","genericSubscribe","subs","unshift","resetStore","hot","oldVm","_vm","wrappedGetters","partial","silent","$$state","$watch","_data","sync","enableStrictMode","_withCommit","rootState","isRoot","parentState","getNestedState","moduleName","noNamespace","_type","_payload","_options","unifyObjectStyle","gettersProxy","splitPos","localType","makeLocalGetters","makeLocalContext","registerMutation","rootGetters","registerAction","rawGetter","registerGetter","_Vue","mixin","vuexInit","_init","init","$store","applyMixin","sub","before","cb","registerModule","preserveState","unregisterModule","delete","hasModule","hotUpdate","committing","mapState","normalizeNamespace","states","normalizeMap","getModuleByNamespace","vuex","mapMutations","mapGetters","mapActions","isValidMap","startMessage","logger","collapsed","groupCollapsed","endMessage","groupEnd","getFormattedTime","pad","getHours","getMinutes","getSeconds","getMilliseconds","num","maxLength","times","createNamespacedHelpers","createLogger","stateBefore","stateAfter","transformer","mutationTransformer","mut","actionFilter","actionTransformer","act","logMutations","logActions","prevState","nextState","formattedTime","formattedMutation","formattedAction","removeFileFromGFUploadedMeta","formId","fieldId","filesJson","files","secureEvalJSON","inputName","$multfile","hiddenFileMeta","temp_filename","uploaded_filename","gf_vars","max_files","message_id","gfMultiFileUploader","toggleDisabled","toJSON","replaceFile","up","existingFile","newFile","replacingFile","addFile","cropped","addedDate","replacedFile","removeFile","currentFileId","newFileId","fileIndexUI","eq","remove","triggerUpload","plupload","UPLOADING","trigger","stop","start","Cropper","cropperOptions","gform","applyFilters","imgSrc","enableRotate","stripMetadata","currentFile","editor","totalNumberOfFiles","currentAddedFiles","imgSize","originalSize","imgOriginalSize","imgPos","imgTransforms","blobImageType","mOxie","File","cropRequired","fileId","coords","currentImageIndex","addedFile","currentAddedErredFiles","erredFile","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_injectStyles","originalRender","existing","_h","staticClass","staticStyle","$event","strings","rotateLeft","rotateRight","editing","cropping","editingOf","croppedOf","isImage","webp","imgPreviews","croppingAvailable","enableCrop","previewSize","onlyImagesAllowed","previewWidth","previewHeight","showPreview","rehydrated","processed","editFile","storePreviewDimensions","storage","loading","metMinimumDisplayTime","metMinimumDisplayTimeTimeout","percentage","newPercent","oldPercent","percent","LoadingBar","ImagePreview","DragHandle","allowSorting","fileExtension","getSize","getFileName","deleteFile","domProps","errorMessage","dropareaCounter","preventDragAndDrop","allowDrop","reachedMaxFiles","onDrop","dragleave","max_reached","drop_files_here","or","onBrowse","select_files","setDragCursor","toggle","previewFilesCount","previewObserver","ErredFile","Droparea","GPFUPCropper","portalMountTo","erredFiles","editorOpen","allFiles","maxFiles","extensions","filters","mime_types","imageExtensionWhitelist","onlyImages","extension","containerClasses","enableSorting","dragOptions","$previewDiv","previewElement","childList","disconnect","browse","exactWidth","exactHeight","model","$$v","getImageSize","Image","getFileInfo","prefix","getPreview","getPreviewDimensions","getOriginal","getCroppedResults","storeFileInfo","fileInfo","storeOriginal","transferOriginal","existingKey","existingOriginal","storePreview","dataUrl","dimensions","storeCroppedResults","transferResults","existingResults","purgeFile","fileIdPrefix","fileNamePrefix","purge","fileOrder","orderChanged","$uploadedFiles","idPattern","aId","bId","gpfup_order_changed","loadWithBlueimp","jpegQuality","loadImageOptions","getNative","processedBlob","HTMLImageElement","Buffer","BigInt","import","hostname","pathname","encodeURI","statusCode","Map","endsWith","ifd0","makerNote","userComment","gps","interop","jfif","xmp","icc","TextDecoder","decode","decodeURIComponent","escape","static","le","byteOffset","_swapDataView","_swapArrayBuffer","_swapBuffer","_lengthToEnd","toUint8","getUint8Array","getString","getLatin1String","getUnicodeString","getInt8","getFloat32","getFloat64","getFloat","getDouble","getUintBytes","getUint64","getUint","ensureChunk","super","keyList","async","read","tagKeys","allKeys","tagValues","allValues","translateKeys","translateValues","reviveValues","needed","deps","Set","applyInheritables","canBeFiltered","dict","translateTagSet","skip","finalizeFilters","tiff","ihdr","multiSegment","sanitize","mergeOutput","silentErrors","chunked","firstChunkSize","firstChunkSizeNode","firstChunkSizeBrowser","chunkSize","chunkLimit","setupFromTrue","setupFromUndefined","setupFromArray","setupFromObject","filterNestedSegmentTags","traverseTiffDependencyTree","checkLoadedPlugins","setupGlobalFilters","thumbnail","batchEnableWithBool","batchEnableWithUserValue","onlyTiff","errors","useCached","setup","fileParser","canHandle","output","executeParsers","pushToErrors","assignToOutput","getOrFindSegment","ensureSegmentChunk","extractThumbnail","__proto__","Exifr","fileParsers","segmentParsers","fileReaders","tagRevivers","createDictionary","extendDictionary","fetchUrlAsArrayBuffer","readBlobAsArrayBuffer","chunkedProps","otherSegments","segments","tiffBlocks","segmentsAndBlocks","tiffExtractables","inheritables","allFormatters","Options","se","available","chunk","readChunk","extendOptions","injectSegment","createParser","createParsers","normalizeInput","globalOptions","localOptions","canTranslate","translated","translateBlock","raw","fromEntries","translateValue","assignObjectToOutput","ae","oe","he","findAppSegments","readSegments","appSegments","mergeMultiSegments","mergedAppSegments","setupSegmentFinderArgs","findAll","wanted","remaining","unfinishedMultiSegment","readWhole","findAppSegmentsInRange","canReadNextChunk","nextChunkOffset","readNextChunk","findPosition","chunkNumber","chunkCount","recordUnknownSegments","unknownSegments","stopAfterSos","recordJpegSegments","jpegSegments","handleMultiSegments","getSegment","ue","ce","parseHeader","headerParsed","parseTags","parseTag","parseTagValue","fe","parseIfd0Block","safeParse","createOutput","handleError","findIfd0Offset","ifd0Offset","findIfd1Offset","ifd1Offset","parseBlock","exifOffset","interopOffset","gpsOffset","unpack","de","parseExifBlock","ifd1Parsed","parseThumbnailBlock","pe","ge","me","Se","latitude","longitude","Ce","ye","be","Ie","Pe","ke","dimensionSwapped","deg","rad","we","Te","Ae","De","Oe","ranges","_tryExtend","allocUnsafe","uintView","xe","ve","fullyRead","chunksRead","safeWrapAddress","_readChunk","readChunked","Me","gpsOnlyOptions","thumbnailOnlyOptions","thumbnailUrl","orientationOnlyOptions","rotations","rotateCanvas","rotateCss","rotation","httpHeaders","Re","parseBoxes","parseBoxHead","parseSubBoxes","boxes","findBox","parseBoxFullHead","Le","findIcc","findExif","registerSegment","findExifLocIdInIinf","findExtentInIloc","get8bits","Ue","Fe","Ee","Be","Ne","Ge","Ve","ze","setHours","setMinutes","setSeconds","He","je","fromCodePoint","We","extended","Ze","Xe","Je","Ke","qe","unpackMatch","Qe","attrString","innerXml","isPrimitive","isListContainer","isList","isListItem","$e","Ye","fs","fh","adaptTiffPropAsSegment","findPngChunksInRange","metaChunks","findIhdr","parseTextChunks","catchError","findXmp","unknownChunks","injectKeyValToIhdr","inflateSync","parseDesc","parseMluc","parseText","parseSig","lang","country","text","UTC","AAMA","ACER","ACLT","ACTI","ADAR","ADBE","ADI","AGFA","ALMD","ALPS","ALWN","AMTI","AOC","APAG","APPL","AST","BAEL","BRCO","BRKP","BROT","BULL","BUS","CAMR","CANO","CARR","CASI","CBUS","CEL","CELx","CGS","CHM","CIGL","CITI","CL00","CLIQ","CMCO","CMiX","COLO","COMP","COMp","CONR","CORD","CPQ","CPRO","CRN","CTX","CVIS","CWC","DARI","DATA","DCP","DCRC","DELL","DIC","DICO","DIGI","DPLG","DS","DSOL","DUPN","EPSO","ESKO","ETRI","EVER","EXAC","Eizo","FALC","FF","FFEI","FNRD","FORA","FORE","FP","FPA","FUJI","FX","GCC","GGSL","GMB","GMG","GOLD","GOOG","GPRT","GTMB","GVC","GW2K","HCI","HDM","HERM","HITA","HP","HTC","HiTi","IBM","IDNT","IEC","IIYA","IKEG","IMAG","IMI","INTC","INTL","INTR","IOCO","IPS","IRIS","ISL","ITNL","IVM","IWAT","Idnt","Inca","Iris","JPEG","JSFT","JVC","KART","KFC","KLH","KMHD","KNCA","KODA","KYOC","Kart","LCAG","LCCD","LDAK","LEAD","LEXM","LINK","LINO","LITE","Leaf","Lino","MAGC","MAGI","MANN","MICN","MICR","MICV","MINO","MITS","MITs","MNLT","MODG","MONI","MONS","MORS","MOTI","MSFT","MUTO","Mits","NANA","NEC","NEXP","NISS","NKON","NONE","OCE","OCEC","OKI","OKID","OKIP","OLIV","OLYM","ONYX","OPTI","PACK","PANA","PANT","PBN","PFU","PHIL","PNTX","POne","PREM","PRIN","PRIP","QLUX","QMS","QPCD","QUAD","QUME","RADI","RDDx","RDG","REDM","RELI","RGMS","RICO","RNLD","ROYA","RPC","RTL","SAMP","SAMS","SANT","SCIT","SCRN","SDP","SEC","SEIK","SEIk","SGUY","SHAR","SICC","SONY","SPCL","STAR","STC","Scit","Sdp","Sony","TALO","TAND","TATU","TAXA","TDS","TECO","TEGR","TEKT","TI","TMKR","TOSB","TOSH","TOTK","TRIU","TSBT","TTX","TVM","TW","ULSX","UNIS","UTZF","VARI","VIEW","VISL","VIVO","WANG","WLBR","WTG2","WYSE","XERX","XRIT","ZRAN","Zebr","appl","bICC","berg","ceyd","clsp","ds","dupn","ffei","flux","iris","kart","lcms","lino","none","ob4d","obic","quby","scit","scrn","sdp","siwi","yxym","scnr","mntr","prtr","link","abst","spac","nmcl","cenc","mid","mlnk","mvis","nkpf","amd","crt","kpcd","pmd","dcam","dcpj","dmpc","dsub","epho","esta","flex","fprn","fscn","grav","ijet","imgs","mpfr","mpfs","offs","pjtv","rpho","rscn","silk","twax","vidc","vidm","containsIptc8bim","isIptcSegmentHead","pluralizeValue","initSettings","cropperContainerSelector","removeGFPreview","portalId","$field","$preview","originals","cropperResults","setCurrentFile","clearPrevious","SET_CURRENT_FILE","OPEN_EDITOR","CLOSE_EDITOR","STORE_ORIGINAL","TRANSFER_ORIGINAL","TRANSFER_RESULTS","STORE_CROPPER_RESULTS","removedFiles","storeImagePreview","setFiles","setCurrentFileAndOpenEditor","delayMs","closeEditor","SET_FILES","ADD_FILE","SET_CURRENT_ADDED_FILES","CLEAR_CURRENT_ADDED_FILES","REMOVE_FILE","REPLACE_FILE","fileOrderIndex","currentAddedFilesIndex","PUSH_ERRED_FILE","REMOVE_ERRED_FILE","ADD_IMAGE_PREVIEW","SET_FILE_ORDER","addStoreSubscriptions","rehydrateFiles","uploaderRetry","waitForUploader","Uploader","addVM","addPluploadFilters","doAction","gform_gravityforms","GPFUP_CONSTANTS","STRINGS","uploaderKey","uploaders","uploadedFilesInput","uploadedFilesInForm","uploadedFilesInField","uploadedFile","DONE","GPFUP","previewBase64","rehydrationInfo","debug","handleFileError","FILE_EXTENSION_ERROR","invalid_file_extension","FILE_SIZE_ERROR","file_exceeds_limit","getFileCount","gvPreviewCount","getMaxFileLimit","limit","toType","heicBlob","convertedHeicFile","requiresRotation","meetsMinimum","does_not_meet_minimum_dimensions","does_not_meet_minimum_width","does_not_meet_minimum_height","imageLoaderOptions","iPhoneMaxCanvas","processedImage","sortHidddenGFInput","$gpnfModal","modal","checkOverflow","gpfupFieldInitSettings"],"sourceRoot":""}